ARP包解析及工作原理

2023-05-16

ARP数据包42字节

参照以下例子:
前12字节为以太网的目的地址(54 89 98 0f 2b be)和源地址(54 89 98 5b 5b 8a),当目的地址全为1时是以太网广播地址,
此时ARP还未建立缓存表,这时源主机只知道目的主机的IP地址,并不知道MAC地址,所以
通过广播的是方式将ARP请求数据包发送出去,这时同一网段上的以太网接口都会接收到广播的数据包

2字节的帧类型,对于ARP包来说字段为0x0806(08 06)
之后为ARP数据包部分
2字节的硬件类型,表示发送方想要知道的硬件接口类型,对于以太网MAC地址,它的值为1(00 01)
2字节的协议类型,表示要映射的协议地址类型,值为0x0800时,即表示要映射为IP地址(08 00)
1字节硬件地址长度(06) 1位协议地址长度(IP)(04)
2字节操作字段,指出了ARP数据包的类型,arp请求值为1,arp应答值为2(00 02)
6字节发送方以太网MAC地址(54 89 98 5b 5b 8a)
4字节发送方IP地址(0a 00 00 02)
6字节目的端的以太网MAC地址(54 89 98 0f 2b be)
4字节目的段的IP地址(0a 00 00 01 )10.0.0.1

PAD凑足46字节,省略未写

例子:

54 89 98 0f 2b be 54 89 98 5b 5b 8a 08 06 00 01
08 00 06 04 00 02 54 89 98 5b 5b 8a 0a 00 00 02
54 89 98 0f 2b be 0a 00 00 01 

ARP解析过程

(1)当PC1想发送数据给PC2,首先在自己的本地ARP缓存表中检查主机PC2匹配的MAC地址

(2)如果PC1缓存中没有找到响应的条目,它将询问主机PC2的MAC地址,从而将ARP请求帧广播到本地网络的所有主机。
     该帧中包括源主机PC1的IP、MAC地址,本地网络中的所有主机都接收到ARP请求,并且检查是否与自己的IP地址相匹配。如果发现请求中IP地址与自己IP不匹配,则丢弃ARP请求。

(3)主机PC2确定ARP请求中得IP地址与自己的IP地址匹配,则将主机PC1的地址和MAC地址添加到本地缓存表中。

(4)主机PC2将包含其MAC地址的ARP回复消息直接发送回主机PC1(数据帧为单播)。

(5)主机PC1收到PC2发挥的ARP回复消息,将PC2的IP和MAC地址添加至自己ARP缓存表中,本机缓存是有生存期的,默认ARP缓存表有效期120s。
     当超过该有效期后,则将重复上面过程。主机PC2的MAC地址一旦确定,主机PC1就能向主机PC2发送IP信息

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ARP包解析及工作原理 的相关文章

  • Vue----模板渲染语法中使用JavaScript表达式

    文章目录 3 5 模板渲染语法中使用JavaScript表达式 3 5 模板渲染语法中使用JavaScript表达式 在vue提供的模板渲染语法中 xff0c 除了支持绑定简单的数据值外 xff0c 还支持JavaScript表达式运算 用
  • 树莓派下载Ubuntu20.04.3版本 +通过设置找到wifi标志+开启vnc远程桌面+灰屏解决方法

    貌似从19版本开始就下完之后右上角没有出现wifi标志 xff0c 在csdn上也十分难找到方法 xff0c 对于网线直连的 csdn上是有十分多的方法的 xff0c 大家可以去找找看 但是对于一开始就连wifi的方法似乎特别少 xff0c
  • 字符数组和字符串数组中的‘\0‘尾零存在的问题

    一 在字符和字符串中是否必须存在 答 xff1a 在字符数组中非必要存在 xff0c 但是在字符串数组中定义的时候必须存在 字符数组 1 并不要求它的最后一个字符为 39 0 39 xff0c 甚至可以不包括 39 0 39 xff0c 像
  • FreeRTOS学习笔记一

    FreeRTOS 任务不允许以任何方式从实现函数中返回 它们绝不能有一条 return 语句 void ATaskFunction void pvParameters int iVariableExample 61 0 for 传入NULL
  • css实现loading效果

    主要利用css3特性 xff0c 以及伪元素的使用实现此功能 lt html lang 61 34 en 34 gt lt head gt lt meta charset 61 34 UTF 8 34 gt lt meta http equ
  • ros学习记录:Gazebo加载速度慢,长时间停在“Preparing your world”

    前言 ros学习记录笔记 xff0c 一个小白的自留地 xff0c 欢迎大佬批评指正 一 问题描述 Gazebo加载速度慢 xff0c 长时间停在 Preparing your world 二 解决办法 1 下载模型到根文件下的 gazeb
  • ROS坐标系统,常见的坐标系和其含义

    摘自 xff1a ros基础必看之各个frame的理解 黑猫爱小鹿的博客 CSDN博客 文章目录 常见的坐标系坐标系的约定坐标系变换的计算Map之间的切换添加 ros中常见的坐标系 转载链接 1 1 现在小车进行移动 1 2 如图 1 2
  • 运行roscore报错解决(重装ROS)

    前言 一个小白的自留地 xff0c 欢迎大佬批评指正 运行roscore出现如下错误 WARNING unable to configure logging No log files will be generated Checking l
  • keil5出现‘Target not created‘

    keil5出现 Target not created 新建工程中写了main函数进行编译时出现错误的问题 xff1a Using Compiler 39 V5 06 update 5 build 528 39 folder 39 D Kei
  • 2 常见模块库(2)

    2 5 复用器与分路器模块 Mux是一种用于将多个信号组合成一个信号的模块 Mux模块的名称来源于多路复用器 xff08 Multiplexer xff09 使用Mux可以将多个输入信号组合成一个向量或矩阵 xff0c 以便在模型中传递和处
  • 8 DWA(一)

    8 DWA DMA简介 DMA xff08 Direct Memory Access xff09 直接存储器存取 xff08 可以直接访问32内部存储器 xff0c 包括内存SRAM xff0c Flash xff09 DMA可以提供外设和
  • 9 串口通信(一)

    9 串口通信 通信接口 通信的目的 xff1a 将一个设备的数据传送到另一个设备 xff0c 扩展硬件系统 通信协议 xff1a 制定通信的规则 xff0c 通信双方按照协议规则进行数据收发 名称引脚双工时钟电平设备USARTTX RX全双
  • 9 串口通信(二)

    函数介绍 xff1a span class token comment init三剑客 span span class token keyword void span span class token function USART DeIn
  • 3 连续模块(二)

    3 5 零极点增益模块 在控制系统设计和分析中 xff0c 常用的函数包括 传递函数 xff08 tf xff09 零极点 xff08 zpk xff09 和状态空间 xff08 ss xff09 函数 传递函数 xff08 tf xff0
  • Android packageManagerService如何添加安装权限白名单

    https blog csdn net myvest article details 54344076
  • 4 非线性模块库(二)

    4 4 量化模块及归零模块 1 xff09 Quantizer 在Simulink中 xff0c Quantizer xff08 量化器 xff09 模块是一种数学运算模块 xff0c 用于将连续信号离散化为多级离散值 xff0c 具有模拟
  • TRIZ创新方法——技术系统进化趋势

    技术系统进化趋势 技术系统及进化趋势S曲线法则技术系统的S曲线产品的进化曲线 八大技术系统进化法则 xff08 1 xff09 完备性法则 xff08 2 xff09 能量传递法则 xff08 3 xff09 协调性进化法则 xff08 4
  • 英特尔 NUC X15 笔记本 评测 英特尔上架新款 NUC X15 笔记本参数配置

    配置方面 xff0c 这款笔记本搭载了 i7 12700H 处理器 xff0c 14 核 20 线程 xff0c 睿频可达 4 7GHz 显卡为英特尔锐炫 A730M xff0c 搭载 24 个 Xe 内核 xff0c 拥有 12GB 19
  • vs2019未能正确加载解决方案的项目

    网上朋友们说是路径出了问题 xff0c 需要修改 vcxproj文件的内容 xff0c 我试了一下没成功 最后发现 xff0c 所以打不开 xff0c 是因为我下载了别人的项目 xff0c 用解压软件解压后直接打开了 sln 当我把解压后的
  • 自我提升解决bug的能力(一)

    我和大家分享一个我的自我提升解决bug的能力 满满的干货 一名优秀的程序员会具备较强解决bug的能力 如果你觉得自己不够优秀 xff0c 解决bug能力不足 xff0c 学习处于被动的状态 那我要大声的告诉你请不要迷茫 xff0c 陷入低沉

随机推荐

  • 论文笔记:VIBE: Video Inference for Human Body Pose and Shape Estimation

    要解决的问题 有3D关键点标注的数据集太少 xff0c 所以我们想生成这样的数据集 所以我们提出了一个 利用视频进行动作估计的新方法 xff0c 解决了数据集缺乏和预测准确率不佳的问题 主要创新点 利用 对抗式生成网络 来区分 真实人类动作
  • 2022年春招实习十四面(嵌入式面经)(已完结)

    文章目录 前言CVTE xff08 嵌入式软件 xff09 CVTE一面 xff08 嵌入式软件开发 xff09 时长 xff1a 50分钟CVTE二面 xff08 55分钟 xff09 阿里菜鸟网络 xff08 嵌入式软件 xff09 阿
  • 二分算法简单介绍

    二分算法 xff0c 顾名思义 就是把一组有序数据的搜索区域缩小一半 下面给大家举例说明一下 如何确定被缩小的搜索区间 原理分析 拿一个有序的整形数组来举例 int a 10 61 1 2 3 4 5 6 7 8 9 10 xff0c 在初
  • 论文投稿指南——中文核心期刊

    gt gt gt 深度学习Tricks xff0c 第一时间送达 lt lt lt 目录 xff08 一 xff09 国内三大核心 1 中文社会科学引文索引 xff08 CSSCI 南大核心 xff09 2 中国科学引文数据库 xff08
  • linux opendir(打开目录函数) readdir(读取目录函数) closedir(关闭目录函数)

    Linux下opendir readdir 和closedir 这三个函数主要用来遍历目录 在使用这三个函数前必须先包括以下两个头文件 xff1a include lt sys types h gt include lt dirent h
  • Cmakelists.txt 的基本框架

    执行 cmake 表示在当前目录下执行 cmake cmake 表示在前一级目录下执行 cmake make 在当前目录下执行 make 语法 1 设置 cmake 版本需求 cmake minimum required VERSION 2
  • UartAssist - 串口调试助手。

    由于项目需要用到串口 xff0c 所以我就找到一个简单易上手的串口调试助手 串口调试助手 1 助手界面 xff1a 2 设置串口 xff0c 点击 打开 3 设置发送区和接收区参数 4 输入发送内容 xff0c 点击 发送 即可
  • 网络摄像机rtsp地址详解。

    RTSP xff08 Real Time Streaming Protocol xff09 xff0c RFC2326 xff0c 实时流传输协议 xff0c 是TCP IP协议体系中的一个应用层协议 xff0c 由哥伦比亚大学 网景和Re
  • Qt 登陆界面实现

    简单的QT用户登录界面 一 项目描述 在登录界面输入用户名和密码正确之后才进入欢迎界面 用户名 xff1a xiaoxian 密码 xff1a 1240 二 效果图 三 源代码 loginform span class token punc
  • FFMPEG保存视频流数据至本地(rtsp转mp4)

    将rtsp流中的h264视频流在没解码之前获取下来 xff0c 并保存到本地文件mp4中的h264流中 xff0c h264 gt mp4 网络摄像机rtsp地址详解 流程图 xff1a 源码 xff1a span class token
  • Qt + FFmpeg实现播放器(FFmpeg可以解码的格式基本都可以播放)。

    一 开发环境的准备 Linux下移植ffmpeg开源库 二 代码实现播放功能 1 打开音视频流并获取音视频流信息 xff1b 2 查找视频流位置以及查找并打开视频解码器 xff1b 3 视频解码的同时处理图片像素数据 xff1b 4 最后要
  • SecureCRT 下的串口不能输入指令。

    1 在 SecureCRT 下的串口不能输入指令 解决方法 xff1a Session Options gt Connection gt Serial gt Flow Control xff0c 将原先默认选中的 RTS CTS取消掉即可
  • Qt实现简单密码登陆界面

    效果图 xff1a 代码实现 span class token macro property span class token directive hash span span class token directive keyword i
  • error: ‘uint8_t’,‘uint32_t’ does not name a type

    c 43 43 里用了c的代码 xff0c 确切的说 xff0c 是引用了c写的x264 h xff0c 结果报错了 xff1a 解决方法 xff1a span class token macro property span class t
  • gitlab 同时拉取整个项目

    一 xff1a 下载repo工具包 下载地址 xff1a GitHub NeutionWei repo unzip repo 刚下载的repo包解压 xff0c 其中的repo只是一个几百行的脚本 xff0c 需要repo init才可以获
  • CMakeLists.txt详解

    一 xff1a CMakeLists txt文件是cmake用来生成Makefile文件需要的一个描述编译链接的规则文件 学习cmake需要提前了解gcc等编译命令 xff0c 先来解释一条最简单的命令 gcc source c o bin
  • opencv估计两图的三维坐标变换矩阵

    cv estimateAffine3D MatFrom MatTo Transfrom inlier Transform得到的是重MatFrom到MatTo的变换矩阵 inlier给一个空矩阵就可以 MatFrom和MatTo都是点的矩阵
  • shell脚本详解

    通俗来讲shell脚本就是把shell命令放在一个 脚本 中 xff0c 脚本的第一行 xff01 bin bash 意思为这个脚本指定一款在 bin 下名叫bash的shell解释器 xff0c 来解释接下来的任何命令 xff0c 如果我
  • 车载以太网测试规范tc8下载地址

    网上只要搜到下载就要积分 xff0c VIP xff0c 其实他们也是从别处免费下载的 xff0c 拿到别处骗钱 xff0c 话不多说下载地址如下 xff1a Open Alliance 不用谢 xff01
  • ARP包解析及工作原理

    ARP数据包42字节 参照以下例子 xff1a 前12字节为以太网的目的地址 54 89 98 0f 2b be 和源地址 54 89 98 5b 5b 8a xff0c 当目的地址全为1时是以太网广播地址 xff0c 此时ARP还未建立缓