欢迎光临散文网 会员登陆 & 注册

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

2023-05-02 08:57 作者:晓林电脑服务  | 我要投稿


ARP 角色

地址解析协议 (ARP) 是计算机网络中非常基础的协议。当 PC 想要通过网络发送消息时,它必须将数据封装到 OSI 模型的各个层中。在每一层,它必须在第 4 层报头中填写 TCP/UDP 端口等所有报头信息,在第 3 层报头中填写源和目标 IP 地址,在第 2 层报头中填写源和目标 MAC 地址。如果您考虑一下,除了目标 MAC 地址之外,所有这些信息都可供最终客户端使用。 已引入 地址解析协议 (ARP) ,以根据本地网络中的给定 IP 地址解析 MAC 地址。

让我们看一下图 1 所示的示例。


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

PC1 尝试 ping PC3,它在同一个局域网和同一个子网 10.1.1.0/24。当用户执行命令ping 10.1.1.3时,PC1 开始将 ICMP 请求 (ping) 封装到以太网帧中,然后通过网络发送。让我们看看PC是如何构造协议数据单元(PDU)的:

  • 在第 4 - PC1 通过发送 ICMP Echo Request 知道 ping 工作并等待 ICMP Echo Response。因此它将第 4 层的协议设置为 ICMP,并设置了 Echo Request 标志。 因此,这一层所需的一切都是可用的。

  • 在第 3 - PC1 知道目标 IP 地址,用户在 ping 10.1.1.3 命令中明确提及,因此将其放入目标 IP 字段。PC1 知道自己配置的 IP 地址 10.1.1.1 并将其放在源字段中。因此,这一层所需的一切都是可用的。

  • 稍后 2 - PC1 知道自己配置的 MAC 地址并放入源字段。但是 PC1 无法知道 LAN 中的哪个终端客户端配置了 10.1.1.3 以及它的 MAC 地址是什么。因此目标 MAC 地址对 PC1 不可用,它必须使用ARP才能获得它。 

ARP 的工作原理

ARP 使用广播通信(一对多)来询问 LAN 内的所有终端客户端,给定 IP 的物理地址是什么。 

ARP 消息

ARP操作中有两种主要类型的数据包:

  • ARP 请求

  • ARP回复



图 2 显示了这两种类型的示例。可以看到ARP头中有四个字段:

  • 源硬件地址 (MAC)

  • 源协议地址 (IP)

  • 目标硬件地址 (MAC)

  • 目标协议地址 (IP)

图 2. ARP 消息

注意,在ARP 请求消息中,目的 MAC 地址是众所周知的广播地址FFFF-FFFF-FFFF。这向 LAN 中的交换机发出信号,表明这是广播通信,并且 LAN 中的所有连接设备都必须接收帧的副本。另一个需要注意的重要值是目标 MAC0000-0000-0000。这向目标 IP 的所有者发出信号,表明发送者正在尝试解析此 IP 的物理地址。

请注意,在 ARP 回复消息中,源 MAC 地址和目标 MAC 地址都是单播的。 


图 3. 使用 ARP 的典型案例

出现这种情况有四种典型情况:

1.    主机想要向同一网络中的另一台主机发送数据。例如,PC2 向 PC3 发送消息。

o   PC2 发送关于 PC3 的 IP 地址 192.168.1.3 的 ARP 请求。

o   LAN 上的每个人都会收到一份 ARP 帧的副本。 

o   PC3 回复其物理地址 BBBB-BBBB-BBBB。所有其他主机都会丢弃 ARP 请求。

2.    主机想要将数据发送到另一个网络中的另一个主机。 例如,PC2 向 google.com 发送一条消息。

o   PC2 查看它的路由表。

o   查找其默认网关 192.168.1.1 的 IP 地址。

o   发送关于默认网关 IP 地址 192.168.1.1 的 ARP 请求。

o   LAN 上的每个人都会收到一份 ARP 帧的副本,包括 Router1。 

o   Router1 回复其物理地址 DDDD-DDDD-DDDD。

3.    路由器接收发往本地连接网络中主机的数据。Router1 接收发往 PC2 的数据。

o   路由器 1 发送关于目标 IP 地址 192.168.1.2 的 ARP 请求。

o   LAN 上的每个人都会收到一份 ARP 帧的副本。 

o   PC2 用它的物理地址回复。所有其他主机都会丢弃 ARP 请求。

4.    路由器接收发往另一个网络上的主机的数据。Router2 接收发往 PC2 的数据。

o   Router2 检查其路由表。

o   发现到 PC2 的下一跳地址是 34.43.12.1。

o   发送关于下一跳 IP 地址 34.43.12.1 的 ARP 请求。

o   Router1 收到 ARP 请求的副本。

o   Router1 回复其物理地址 AD12-43AB-F432。

ARP 表(ARP 缓存) 

当设备成功解析给定 IP 的 MAC 地址时,它将 IP 到 MAC 绑定存储在称为ARP 的表中。后续通信使用此缓存绑定,而不是再次发送 ARP 请求。让我们看一下 Cisco 路由器的 ARP 表。 


默认情况下,表中的每个条目都会保留 240 分钟(4 小时)。此值称为ARP 超时,可以为每个接口设置不同的值。您可以通过查看show interface的输出来检查它。


运行 Windows 或 Unix 的主机的 ARP Cache 可以通过在命令提示符窗口中执行arp -a来检查


概括

  • 地址解析协议 (ARP) 是一种解析LAN 中给定逻辑地址 ( IP ) 的物理地址 ( MAC ) 的机制: IP MAC 绑定

  • 一个ARP 请求被封装在一个广播帧中。因此,这是一对多的通信,局域网中的每个主机都会收到一份 ARP 请求的副本。只有目标 IP 的所有者才会回复。

  • 一个ARP 应答 被封装在一个单播帧中。因此,它是 请求者和答复者之间的一对一通信。

  • 当设备接收到 IP 的物理地址时,它会在其ARP 表(ARP 缓存)中创建一个条目。任何后续通信都使用缓存的条目。

  • ARP 表中的每个条目默认保留 4 小时。这称为ARP 超时


什么是地址解析协议(ARP)?的评论 (共 条)

分享到微博请遵守国家法律