【业务领域】以太Mac/IP/UDP/TCP报文格式简介-arp、rarp

时间:2024-01-25 21:17:26

ARP 协议的全称是 Address Resolution Protocol(地址解析协议),它是一个通过用于实现从 IP 地址到 MAC 地址的映射,即询问目标 IP 对应的 MAC 地址 的一种协议。ARP 协议在 IPv4 中极其重要。

注意:ARP 只用于 IPv4 协议中,IPv6 协议使用的是 Neighbor Discovery Protocol,译为邻居发现协议,它被纳入 ICMPv6 中。

简而言之,ARP 就是一种解决地址问题的协议,它以 IP 地址为线索,定位下一个应该接收数据分包的主机 MAC 地址。如果目标主机不在同一个链路上,那么会查找下一跳路由器的 MAC 地址。

在这里插入图片描述
域段含义
前面 14 个字节构成标准以太网的首部,前两个字段 DST 和 SRC 分别表示 以太网的目的地址 和 以太网的源地址,以太网的目的地址如果是 ff:ff:ff:ff:ff:ff 全部为 1 表示广播地址,在同一广播域中的所有以太网接口可以接收这些帧。后面紧跟着的是 ARP 请求的长度/类型,ARP 请求 和 ARP 应答这个值为 0x0806。
硬件类型表示硬件地址的类型,硬件地址常见的有 MAC 物理或者以太网地址,对于以太网来说,此值为 1。
协议类型 指出映射的协议地址类型,对于 IPv4 地址,这个值是 0x0800。
硬件大小协议大小 分别指出硬件地址和协议地址的字节数。对于以太网中使用 IPv4 的 ARP 请求或应答,它们的值分别是 6 和 4。
Op 字段指出如果是 ARP 请求,Op = 1,ARP 应答 ,Op = 2,RARP 请求 Op = 3,RARP 应答,Op = 4。
紧跟在 Op 之后的是 发送方硬件地址(MAC 地址),发送方的协议地址(IPv4 地址),目的硬件地址目的协议地址。后面四个字段写入的是一些物理地址和协议地址。不一定全部有值。 对于ARP Request 而言,我们不知道目的MAC地址是什么,因此 Target’s Hardware Address 全部填充为0。

ARP帧的交互:当主机接收到一个针对其协议地址的ARP Request时,它会回应ARP Reply. 该Reply消息内容为:对调sender 和 Target 地址字段,然后将Sender’s Hardware Address(即原来的Target’s Hardware Address )修改为本机的Hardware Address。另外OP字段有1变为2.

RARP 协议

Reverse Address Resolution Protocol 反向地址转换协议,用于获得已知 MAC 地址的 IP 地址。

一般在主机刚接入网络时,通过本地 MAC 地址来发送 RARP 请求,如果局域网内有 RARP Server 且 Server 上存在关于此 MAC 地址的映射 IP,则会返回 RARP Reply 响应,此时主机就获取了 IP 地址。

  • 需要 RARP 服务器,一般用于无法使用 DHCP 或没有任何输入接口的小型嵌入式设备
  • 主机以广播的形式发送 RARP 请求包,声明自己的 MAC 地址,并请求分配一个 IP 地址
  • RARP 服务器收到 RARP 请求包后,检查 RARP 列表,查找该 MAC 地址对应的 IP 地址;
    若存在,则返回 RARP 响应包,成功分配 IP 地址;
    若不存在,则不做任何响应,分配 IP 地址失败;

解释一下arp的含义