当前位置: 首页 > news >正文

ARP报文格式

ARP报文格式

  • 一、ARP请求报文
  • 二、ARP回复报文

一、ARP请求报文

在这里插入图片描述
Who has 10.1.1.2? Te11 10.1.1.1:谁有10.1.1.2,告诉10.1.1.1
在这里插入图片描述
这个请求报文其实很明显了,主要分为三个部分看

  1. Frame 8 :抓包工具(如 Wireshark)给当前捕获到的第 8 个网络数据包分配的唯一序号,核心作用是 “定位和区分数据包”
  2. Ethernet Ⅱ:(以太网 Ⅱ 型帧)是 ARP 报文在数据链路层的封装载体 —— 简单说,ARP 报文本身不能直接在网络中传输,必须 “打包” 进一个以太网帧里,而这个以太网帧的格式就是Ethernet Ⅱ
  3. Address Resolution Protocol (request):直接点明了这个数据包的本质:它是一个 ARP 协议的 “请求报文”,核心目的是 “查询某个 IP 地址对应的 MAC 地址”
    在这里插入图片描述
    Frame 8:是抓包工具在这个给抓包过程中用来定位。

在这里插入图片描述

  • Ethernet II:这是整个帧的 “格式标识”,表示当前数据包遵循 以太网 Ⅱ 型帧标准(最常用的以太网帧格式,区别于早期的 “802.3 帧”),是 ARP、IP 等上层协议在局域网传输的 “载体外壳”。
  • Src: HuaweiTe_a8:48:d1 (54:89:98:a8:48:d1):即发送该以太网帧的设备物理地址(MAC 地址)
  • Dst: Broadcast (ff:ff:ff:ff:ff:ff):即接收该以太网帧的设备物理地址(MAC 地址)
    • Broadcast:抓包工具标注的 “广播” 含义 —— 表示这个帧会被局域网内所有设备接收(而非仅发给某个特定设备),常见于 ARP 请求、DHCP 发现等需要 “全网段通知” 的场景。
    • (ff:ff:ff:ff:ff:ff):这是以太网的全局广播 MAC 地址(固定值),所有网卡收到目的 MAC 为该值的帧时,都会将其 “上交上层协议” 处理(不会丢弃),实现 “一次发送、全网接收”。
  • 关于目的 MAC(Broadcast: ff:ff:ff:ff:ff:ff)的属性
    • … …1. … … … … : LG bit: Locally administered address (this is NOT the factory default)
      • LG bit = Local Group bit(局部管理位),是 MAC 地址第 2 字节的第 7 位(二进制)
      • 此处值为 “1”(字段标注 “Locally administered”),表示该 MAC 地址是 “用户 / 管理员手动配置的局部地址”(非设备出厂时厂商烧录的默认地址);
      • 而广播地址ff:ff:ff:ff:ff:ff是协议规定的 “特殊广播地址”,其 LG bit 固定为 1,不遵循常规的 “厂商默认地址” 规则
    • … …1 … … … … = IG bit: Group address (multicast/broadcast):
      • IG bit = Individual/Group bit(单播 / 组播位),是 MAC 地址第 2 字节的第 8 位(二进制)
      • 此处值为 “1”(字段标注 “Group address”),表示该 MAC 地址是 “组播 / 广播地址”(对应 “发给一组设备”);
      • 广播是 “组播的特殊形式”(组内包含所有设备),所以这里同时标注 “multicast/broadcast”,明确该帧是广播帧。
    • 关于源 MAC(HuaweiTe_a8:48:d1)的属性
      • … …0. … … … …= LG bit: Globally unique address (factory default)
      • 源 MAC 的LG bit为 “0”(字段标注 “Globally unique”),表示该 MAC 地址是厂商出厂时烧录的 “全球唯一地址”(即 “工厂默认地址”)
      • MAC 地址前 6 位(54:89:98)由国际组织(IEEE)分配给华为,后 6 位(a8:48:d1)由华为自行分配,确保全球所有设备的 MAC 地址不重复。
      • … …0 … … … … = IG bit: Individual address (unicast)
      • 源 MAC 的IG bit为 “0”(字段标注 “Individual address”),表示该 MAC 地址是单播地址(对应 “仅一个设备拥有该地址”):
      • 源设备(华为设备)是 “唯一发送方”,所以用单播 MAC 标识,确保接收方知道 “回复时该发给谁”。
  • Type: ARP (0x0806):根据十六进制值0x0806自动识别的上层协议 —— 表示该帧内部装的是 “ARP 协议数据”(地址解析请求 / 响应)
  • Padding:是为了满足以太网帧的 “最小长度要求” 而添加的 “无效数据”(全 0)。以太网协议规定:完整的以太网帧(头部 + 数据 + 校验和)最小长度必须是 64 字节(其中头部 14 字节、校验和 4 字节,因此 “数据区 + 填充” 至少需要 46 字节),这个帧封装的是 ARP 数据(ARP 数据区固定 28 字节),28 字节 < 46 字节,所以需要填充46-28=18字节的全0数据(你提供的0000…就是这些填充字节),填充字段的作用仅为 “凑够最小长度”,接收方会自动忽略这些全 0 数据,不影响上层协议(ARP)的解析

在这里插入图片描述

  • Address Resolution Protocol (request):表示这是 “主动查询” 的报文(对应 ARP 操作码 = 1),而非 “回复查询” 的 ARP 响应报文(reply,操作码 = 2);作用是 “将 IP 地址(逻辑地址)映射为 MAC 地址(物理地址)
  • Hardware type: Ethernet (1):Hardware type(硬件类型),定义 ARP 协议 “适用的物理网络类型”(即要解析的 “硬件地址” 属于哪种网络);Ethernet:抓包工具标注的网络类型,即 “以太网”(我们日常用的有线网、WiFi 都属于以太网范畴);(1):硬件类型的编码值(固定为 1),是 ARP 协议规定的 “以太网” 标识 —— 这意味着后续要解析的 “硬件地址” 是以太网 MAC 地址(6 字节),而非其他类型的硬件地址(如令牌环网地址)
  • Protocol type: IPv4 (0x0800):Protocol type(协议类型),定义 ARP 协议 “要映射的上层协议地址类型”(即 “哪个协议的地址需要对应到硬件地址”);抓包工具标注的协议类型,即 “IPv4 协议”—— 表示当前要解析的是 “IPv4 地址” 与 MAC 地址的对应关系;
  • Hardware size: 6:Hardware size(硬件地址长度),定义 “硬件地址(即 MAC 地址)的字节数”;以太网 MAC 地址固定为6 字节(12 位十六进制,如54:89:98:a8:48:d1),因此该字段值固定为 6—— 告诉接收方:“后续提到的 MAC 地址,每个都是 6 字节长”
  • Protocol size: 4:Protocol size(协议地址长度),定义 “上层协议地址(即 IPv4 地址)的字节数”;IPv4 地址固定为4 字节(如10.1.1.1,每个十进制段对应 1 字节,4 段共 4 字节),因此该字段值固定为 4—— 告诉接收方:“后续提到的 IPv4 地址,每个都是 4 字节长”。
  • Opcode: request (1):Opcode(操作码),定义 ARP 报文的 “具体操作类型”,是区分 “请求” 和 “响应” 的核心标识;request:表示当前是 “ARP 请求”,即 “主动询问目标 IP 的 MAC 地址”;(1):操作码的编码值(固定为 1),对应的 “ARP 响应” 编码为 2(Opcode=2)—— 接收方通过这个值判断:“这是一个需要我回应的查询,还是别人给我的回复”。
  • Sender MAC address: HuaweiTe_a8:48:d1 (54:89:98:a8:48:d1):HuaweiTe_a8:48:d1:抓包工具根据 MAC 厂商代码(54:89:98是华为预留段)识别的设备品牌(华为设备);(54:89:98:a8:48:d1):完整的发送方 MAC 地址 —— 这是 “目标设备回复时的依据”:如果某设备发现 “自己是被查询的目标”,就会通过这个 MAC 地址单播回复(避免再广播)。
  • Sender IP address: 10.1.1.1:10.1.1.1是发送方(华为设备)的 IPv4 地址 —— 作用是 “让目标设备知道‘谁在查我’”,后续回复时会在 “Target IP” 字段填写这个 IP,确保发送方识别 “这是对我查询的回应”
  • Target MAC address: Broadcast (ff:ff:ff:ff:ff:ff):Target MAC address(目标 MAC 地址),即 “ARP 查询要找的设备的物理地址”。因为是 “请求报文”,发送方(10.1.1.1)此时不知道目标设备的 MAC 地址,所以这里填写 “广播 MAC 地址(ff:ff:ff:ff:ff:ff)”—— 但注意:这并非 “真的要发给所有设备”,而是表示 “该地址未知,需要符合条件的设备主动认领”;后续 “ARP 响应报文” 中,这个字段会被替换为 “发送方的 MAC 地址(10.1.1.1 的 MAC:54:89:98:a8:48:d1)”,因为目标设备已明确 “要回复给谁”
  • Target IP address: 10.1.1.2:Target IP address(目标 IP 地址),即 “ARP 查询的核心目标”—— 发送方想知道 “哪个设备的 MAC 地址”,就填哪个设备的 IP;10.1.1.2是发送方(10.1.1.1)要查询的 IPv4 地址 —— 局域网内所有设备收到这个 ARP 请求后,会对比 “自己的 IP 地址” 和 “Target IP”;如果某设备的 IP 是10.1.1.2,就会确认 “我是被查询的目标”,然后用自己的 MAC 地址生成 ARP 响应,回复给发送方(10.1.1.1);如果设备 IP 不是10.1.1.2,就会直接丢弃这个请求,不做处理。

二、ARP回复报文

在这里插入图片描述

在这里插入图片描述
回复报文和请求报文比较类似,这里指列出不同的点

  • Ethernet Ⅱ的目的地址中,请求报文是1,回复报文是0,是因为G 位取值为0,表示该 MAC 是 “单播地址”(仅对应一个设备,只能被该设备接收);广播地址(IG=1)
  • Opcode:reply(2):ARP 响应
http://www.dtcms.com/a/395179.html

相关文章:

  • 【论文速递】2025年第26周(Jun-22-28)(Robotics/Embodied AI/LLM)
  • 用【PinMe】轻松实现前端部署(文章附有演示案例)
  • 巨坑Spring ai 之spring-ai-starter-vector-store-elasticsearch
  • 【LeetCode 每日一题】2349. 设计数字容器系统
  • i.MX6ULL移植内核6.6(一)修改网络驱动和LCD驱动
  • vue-router(vue 路由)基本使用指南(一)
  • 酒店台账报表:押金原路退回与收支自动化指南-东方仙盟自动化
  • ⸢ 伍-Ⅰ⸥ ⤳ 默认安全治理实践:软件供应链安全治理
  • LeetCode 刷题【88. 合并两个有序数组、89. 格雷编码】
  • 《青花》歌曲,使用3D表现出意境
  • 【Linux篇】- Ext系列文件系统
  • C++符号表
  • Pythoner 的Flask项目实践-带折叠菜单的响应式多页面应用签到墙(源码)
  • 异常:java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeConverter
  • Java-131 深入浅出 MySQL MyCat 深入解析 schema.xml 配置详解:逻辑库、逻辑表、数据节点全攻略
  • Vmware CentOS Docker Daemon配置代理
  • 【JAVA】java多态
  • 【AI分析进行时】大模型显存需求估算与国内开源模型实践指南
  • C++基础:(一)C++入门知识介绍(上)
  • Python项目的多语言翻译babel
  • python flask框架详解
  • 基于STM32单片机的家庭医护血氧体温血压吃药监测APP系统
  • 整合亮数据Bright Data与Dify构建自动化分析系统
  • Browser-Use+cpolar:企业网页操作自动化的无界解决方案
  • 深入理解 Elasticsearch:核心原理、性能优化与高频面试题解析
  • 【C++】Lambda表达式参数问题
  • 数学金融方向要额外学什么课?这个专业对编程和建模能力要求高吗?
  • 第二部分:VTK核心类详解(第54章 vtkVariantArray变体数组类)
  • 【2025最新】ArcGIS for JS点聚合功能实现
  • Leecode hot100 - 114. 二叉树展开为链表 基础方法到提高方法