ARP、反向ARP、逆向ARP、代理ARP和 gratuitous ARP


地址解析协议

地址解析协议 (ARP) 是一种在 TCP/IP 第二层工作的通信协议。

  • ARP 帮助从 IP 地址获取连接的路由器或网关的 MAC 地址。
  • ARP 是一种请求-响应协议,其中一个设备向另一个设备发送请求以询问某些信息,另一个设备将以所需信息进行响应/回复。
  • ARP 数据包由链路层封装,并且仅在特定网络中分发。ARP 被认为是链路层协议。

ARP 如何工作?

  • 发送 IP 数据包之前,发送方必须知道目标 MAC 地址。
  • 如果不知道 MAC 地址,则发送方将广播 ARP 发现数据包,请求目标的 MAC 地址。
  • 该网络中的每个主机都将收到此消息,但只有与其 IP 关联的目标接收主机才会接受 IP 数据包;其他所有主机都将丢弃该数据包。
  • 接收方将使用其 MAC 地址向 ARP 发现数据包的发送方发送单播数据包。
  • 发送方将接收 ARP 回复并更新 ARP 检查,然后开始向目标发送单播消息。

ARP 数据包的格式

下图显示了 ARP 数据包的格式。

硬件类型协议
硬件长度协议长度操作:ARP 请求 1,ARP 回复 2
发送方硬件地址(例如,以太网的 6 个字节)
发送方协议地址(例如,IP 的 4 个字节)
目标硬件地址(例如,以太网的 6 个字节。在请求中未填写)
目标协议地址(例如,IP 的 4 个字节)

现在让我们找出 ARP 数据包中每个字段的作用:

  • **硬件类型**:这是一个 16 位字段,定义 ARP 运行的网络类型。
  • **协议类型**:这是一个 16 位字段,定义使用 ARP 的协议。
  • **硬件长度**:这是一个 8 位字段,定义物理地址的长度(以字节为单位)。
  • **协议长度**:这是一个 8 位字段,定义 IP 地址的长度(以字节为单位)。
  • **操作**:这是一个 16 位字段,定义数据包的类型:(i)ARP 请求和(ii)ARP 回复。
  • **发送方硬件地址**:这是一个可变长度字段,定义目标的物理地址。
  • **目标硬件地址**:这是一个可变长度字段,定义目标的逻辑地址。

反向地址解析协议 (RARP)

RARP 协议用于知道其 MAC 地址但不知道其在局域网 (LAN) 中的 IP 地址的设备。

  • 网络管理员在局域网 (LAN) 网关路由器中创建一个表,该表将物理机器地址映射到等效的 IP 地址。
  • 设置新机器时,其 RARP 客户端将向网关路由器请求 IP 地址。
  • 假设在路由器表中已设置了条目,则反向 ARP 服务器将返回 IP 地址到机器,该机器可以将其存储以供将来使用。

从 MAC 地址获取 IP 地址的问题可以通过反向地址解析协议 (RARP) 来处理,其工作方式类似于 ARP。

为了获得 IP 地址,主机首先广播一个包含其 MAC 地址的 RARP 请求数据包到网络上。网络中的所有主机都将收到这些数据包,但只有服务器通过发送包含主机 MAC 和 IP 地址的 RARP 响应数据包来响应主机。

逆向地址解析协议 (InARP)

逆向 ARP 与 ARP 相反。逆向 ARP 不是使用 3 层 IP 地址查找 2 层 MAC 地址,而是使用 2 层 MAC 地址查找 3 层 IP 地址。

逆向 ARP 主要由帧中继和 ATM 网络使用,以将 DLCI 映射到 IP 地址。因此,路由器通过列出该路由器的 DLCI 来请求目标或 PVC 的其他端点的 IP 地址。

代理 ARP

代理 ARP 是一种技术,通过该技术,给定网络上的代理服务器可以回答不在该网络上的 IP 地址的 ARP 查询。

  • 例如,假设主机通过以太网连接到路由器,并且主机具有地址 10.10.1.1/16,而路由器具有 10.10.10.0/24。
  • 主机希望解析 10.10.1.110 的 ARP,并认为路由器在同一子网中,因此它将能够获取 MAC 地址。
  • 但是,由于路由器在设计上限制了广播域,因此它不会发送 ARP 回复并会拒绝请求。
  • 但是,如果另一个路由器有任何其他接口连接到 10.10.1.1/16 网络并且启用了代理 ARP,则路由器将通过列出其自己的 MAC 地址向主机发送 ARP 回复。它将充当目标网络的代理。

Gratuitous ARP

Gratuitous ARP 是未经请求的地址解析协议响应。

当新设备加入局域网 (LAN) 时,它会在网络接口启动后立即将其 MAC 地址广播到整个网络。

Gratuitous ARP 数据包的源 IP 和目标 IP 都设置为发出数据包的设备的 IP 地址,目标 MAC 地址是广播地址 ff:ff:ff:ff:ff:ff 或 00:00:00:00:00:00,具体取决于地址解析协议 (ARP) 的实现。

不会发送任何后续数据包来响应 Gratuitous ARP 数据包。

更新于:2021年11月23日

6000+ 次查看

启动您的职业生涯

完成课程获得认证

开始
广告
© . All rights reserved.