什么是地址解析协议 (ARP)?


地址解析协议 (ARP) 是一种网络特定标准协议。地址解析协议对于将高级协议地址(IP 地址)转换为物理网络地址非常重要。它在 RFC 826 中有描述。

ARP 将 IP 地址与物理地址关联起来。在典型的物理网络(如 LAN)中,链路上的每个设备都由一个物理地址标识,通常印在网络接口卡 (NIC) 上。当特定机器上的 NIC 出现故障时,物理地址可以轻松更改。

IP 地址不能更改。当知道节点的互联网地址时,ARP 可以找到该节点的物理地址。ARP 提供了从 IP 地址到相应硬件地址的动态映射。

当一个主机想要与网络上的另一个主机通信时,它需要将每个主机的 IP 地址解析为主机的硬件地址。

此过程如下:

  • 当主机尝试与另一主机交互时,会发起 ARP 请求。如果 IP 地址是本地网络的,则源主机检查其 ARP 缓存以查找目标计算机的硬件地址。
  • 如果未找到相应的硬件地址,ARP 会将请求广播到所有本地主机。
  • 所有主机接收广播并检查自己的 IP 地址。如果未发现匹配项,则忽略该请求。
  • 找到匹配 IP 地址的目标主机将 ARP 响应及其硬件地址发送回源主机,从而建立通信。然后,ARP 缓存会更新为目标主机的硬件地址。

ARP 数据包生成

如果应用程序需要将信息发送到特定的 IP 目标地址,则 IP 路由结构首先确定数据包下一跳的 IP 地址(应该是目标主机本身或路由器)以及应在其上传输的硬件工具。

如果是 IEEE 802.3/4/5 网络,则应考虑 ARP 结构以将 <协议类型目标协议地址> 设计为物理地址。

ARP 模块尝试在 ARP 缓存中查找该地址。如果找到连接对,它会将等效的 48 位物理位置提供回调用方(设备驱动程序),然后后者共享数据包。

如果它没有在其表中找到该对,它会删除数据包(假设较高级别的协议将重新发送)并创建 ARP 请求的网络广播。

  • **硬件地址空间:**它指定硬件类型,例如以太网或分组无线电网络。
  • **协议地址空间:**它指定协议类型,与 IEEE 802 标头中的 Ether 类型字段相同(IP 或 ARP)。
  • **硬件地址长度:**它确定此数据包中硬件地址的长度(以字节为单位)。对于 IEEE 802.3 和 IEEE 802.5,这是 6。
  • **协议地址长度:**它指定此数据包中协议地址的长度(以字节为单位)。对于 IP,这是 4 字节。
  • **操作码:**它指定这是 ARP 请求 (1) 还是回复 (2)。
  • **源/目标硬件地址:**它包含物理网络硬件地址。对于 IEEE 802.3,这些是 48 位地址。
  • 对于 ARP 请求数据包,目标硬件地址是数据包中唯一未定义的字段。

更新于: 2021 年 5 月 5 日

10K+ 浏览量

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告