1058 字
5 分钟
ARP协议

本文作为附加学习

ARP协议又称地址解析协议。

IP 协议的设计目标是为跨越不同类型物理网络的分组交换提供互操作。这需要网络层软件使用的地址和底层网络硬件使用的地址之间进行转换。网络接口硬件通常有一个主要的硬件地址(例如以太网或802.11无线接口的48位地址)。

ARP仅用于 IPv4,IPv6 使用邻居发现协议,它被合并入ICMPv6。

对于网络硬件,主地址是由设备制造商定义的,并存储在设备的永久性内存中,所以它不会改变。因此,工作在特定硬件技术上的任意协议族,必须利用特定类型的地址。

地址解析是发现两个地址之间的映射关系的过程。对于使用IPv4的TCPAIP协议族,这是由运行的ARP来实现的。ARP是一个通用的协议,从这个意义上来看,它被设计为支持多种地址之间的映射。

ARP 提供从网络层地址到相关硬件地址的动态映射。我们使用动态这个术语是因为它会自动执行和随时间变化,而不需要系统管理员重新配置。也就是说,如果一台主机改变它的网络接口卡,从而改变了它的硬件地址(但保留其分配的IP 地址),ARP可以在一定延时后继续正常运作。ARP 操作通常与用户或系统管理员无关。

1 ARP帧格式#

ARP报文格式解析
  1. 前两个字段包含目的和源以太网地址。对于ARP 请求,目的以太网地址 ff:ff:ff:ff:ff(全部为1)是广播地址,在同一广播域中的所有以太网接口可接收这些帧。段必须为0x0806。
  2. 长度/类型字段之后的前4个字段指定了最后4个字段的类型和大小。这些值由IANA [RFC5494]来指定。
  3. 硬件地址的常见术语有MAC、物理或链路层地址(或以太网地址,当网络基于IEEE 802.3/以太网的一系列规范时)。
  4. 硬件类型字段指出硬件地址类型。对于以太网,该值为1。
  5. 协议类型字段指出映射的协议地址类型。对于 IPv4地址,该值为Ox0800。
  6. 硬件大小和协议大小分别指出硬件地址和协议地址的字节数。 对于以太网中使用IPv4地址的ARP 请求或应答,它们的值分别为6和4。
  7. Op 字段指出该操作是 ARP 请求(值为1)、ARP 应答(2)、RARP 请求(3)或RARP 应答(4)。
  8. 紧跟在后面的4个字段是发送方硬件地址(在这个例子中是以太网MAC地址)、发送方协议地址(IPv4地址)、目的硬件地址(MAC/以太网地址)和目的协议地址(IPv4地址)。
  9. 以太网头部和 ARP消息都包含发送方硬件地址。对于一个 ARP请求,除了目的硬件地址(设力0)之外,其他字段都需要填充。当一个系统接收到一个ARP请求,它填充自己的硬件地址,将两个发送方地址和两个接收方地址互换,将Op 字段设置为2,然后发送生成的应答。

软状态是指在超时到达前没有更新而被丢弃的信息。如果网络条件发生改变,软状态有助于启动自动重新配置,因此很多 Internet 协议使用软状态。软状态的成本是协议必须刷新状态以避免过期。在一些协议设计中,经常包括“软状态刷新”,以保持软状态的活跃。

参考资料#

TCP/P 详解 卷1:协议(原书第2版)/(美)福尔(Fall, K. R.),(美)史蒂文斯(Stevens, W. R.)著;吴英,张玉,许昱玮译,一北京:机械工业出版社,2016.6 (计算机科学丛书) 书名原文/IP Illustrated, Volume 1: The Protocols, Second Edition

ARP协议
https://lemontrees.top/posts/net-41-arp/
作者
Lemon-Tree
发布于
2025-03-19
许可协议
CC BY-NC-SA 4.0