因为时间的关系,昨天的 ARP 推文只写了 ARP 缓存部分,所以今天补充 ARP 工作的原理以及 ARP 帧格式和 ARP 的四种典型情况。ARP 工作原理假设有一台主机想要向本地局域网上的另一台目标主机发送 IP 分组时,首先会在本地主机的 ARP 高速缓存中查询是否有目标主机的 IP 地址,如果有该 IP 地址对应的条目,则可以直接查出其 MAC 地址,写入 MAC 帧,然后通过局域网将该帧发送给对应 MAC 地址的主机上。 如果没有,则先通过广播 ARP 请求分组(如上图),在获得目标主机的 ARP 响应分组后(如下图),将目标主机的 MAC 地址写入 ARP 高速缓存,建立目标主机的 IP 地址到 MAC 地址的映射关系。注意:ARP 请求分组是广播发送的,但 ARP 响应分组是普通的单播。 当然,ARP 只是解决同一个局域网上的主机或路由器的 IP 地址和 MAC 地址的映射问题的。如果所要找的主机和源主机不在同一个局域网上,那么就要通过 ARP 找到一个位于本局域网上的某个路由器的硬件地址,然后把分组发送给这个路由器,让这个路由器把分组转发给下一个网络,剩下的工作就由下一个网络来做。 ARP 帧格式由图可见,前 首先让我们看看以太网头部,第一个字段是 接下来的 4 个字段指定了最后 4 个字段的类型和大小 [RFC5494]。 硬件类型字段 指出硬件地址类型。对于以太网,硬件类型字段值为 协议类型字段 指出映射的协议地址类型。对于 IPv4 ,协议类型字段的值为 硬件大小字段 指出硬件地址的字节数。对于以太网中使用 IPv4 地址的 ARP 请求或响应,硬件大小字段的值为 协议大小字段 指出协议地址的字节数。对于以太网中使用 IPv4 地址的 ARP 请求或响应,协议大小字段的值为 操作码字段(Op) 指出该报文所执行的操作。当 接下来的字段指出了发送方和目的的硬件地址和协议地址。 发送方硬件地址字段 指出了发送方的以太网 MAC 地址。 发送方协议地址字段 指出了发送方的 IPv4 地址。 目的硬件地址字段 指出了目的地的以太网 MAC 地址。 目的协议地址字段 指出了目的地的 IPv4 地址。 接下来是 填充字段 ,当要发送一个 ARP 请求时,除了目的硬件地址设为 ARP 的 4 种典型情况总结:
参考文献: [1] Fall, K. R., and Stevens, W. R. TCP/IP详解 卷1:协议. Translated by 吴英, 张玉 and 许昱玮, 2nd ed., 机械工业出版社, 2016. [2] 谢希仁, 计算机网络, 8th ed., 电子工业出版社, 2021. [3] J. Arkko, C. Pignataro, "IANA Allocation Guidelines for the Address Resolution Protocol (ARP)" RFC 5494, April 2009. 👇每周一到周五晚上21:00更新,期待你的关注👇 |
|