is语音888团接单频道:〓〓〓ARP的解析过程〓〓〓

来源:百度文库 编辑:神马品牌网 时间:2024/04/29 02:05:57
要求ARP的解析的详细过程

ARP解析过程

ARP
当 IP 通过共享访问、基于广播的网络技术(例如以太网或 802.11 无线 LAN)发送数据包时,协议必须能够解析与数据包要转发到的节点的 IPv4 地址(又称下一跃点 IPv4 地址)相对应的媒体访问控制 (MAC) 地址。正如 RFC 826 所定义的,ARP 使用 MAC 级广播将下一跃点 IPv4 地址解析为它们的相应 MAC 地址。

在转发数据包时,IPv4 基于目标 IPv4 地址和路由确定过程来决定下一跃点 IPv4 地址和接口。然后,IPv4 将 IPv4 数据包、下一跃点 IPv4 地址和下一跃点接口传递给 ARP。

如果数据包的下一跃点的 IPv4 地址与数据包目标的 IPv4 地址相同,则 ARP 执行到目标的直接传送。在直接传送中,ARP 必须将数据包目标的 IPv4 地址解析为它的 MAC 地址。

如果数据包的下一跃点的 IPv4 地址与数据包目标的 IPv4 地址不同,则 ARP 执行到路由器的间接传送。在间接传送中,ARP 必须将路由器的 IPv4 地址解析为它的 MAC 地址。

为将数据包的下一跃点的 IPv4 地址解析为它的 MAC 地址,ARP 使用共享访问网络技术(例如以太网或 802.11)上的广播工具来发送一个广播 ARP 请求帧。作为响应,发送方会收到一个 ARP 应答帧,其中包含与数据包的下一跃点的 IPv4 地址相对应的 MAC 地址。

ARP 缓存
为最大限度地减少广播 ARP 请求帧的数量,许多 TCP/IP 协议实现都包含一个 ARP 缓存,它是一个记录了最近解析过的 IPv4 地址及其相应的 MAC 地址的表。在发送 ARP 请求帧之前,ARP 将首先检查此缓存。每个接口都有其自己的 ARP 缓存。

ARP 缓存可具有以下特性(具体取决于供应商实现):

? ARP 缓存条目可以是动态的(基于 ARP 应答),也可以是静态的。静态 ARP 缓存条目是永久性的,您可以使用 TCP/IP 工具(例如 Windows 附带的 Arp 工具)手动添加它们。静态 ARP 缓存条目禁止节点发送对常用的本地 IPv4 地址(例如路由器和服务器的 IPv4 地址)的 ARP 请求。使用静态 ARP 缓存条目的问题是,在网络适配器设备发生更改时您必须手动更新它们。

? 动态 ARP 缓存条目拥有与之相关的超时值,所以在超过指定的时间后,将从缓存中删除它们。例如,Windows 的动态 ARP 缓存条目不超过 10 分钟就会被删除。

要查看基于 Windows 的计算机上的 ARP 缓存,请在命令提示符下键入 arp -a。您还可以使用 Arp 工具来添加或删除静态 ARP 缓存条目。

ARP 过程
在发送主机发送初始数据包或路由器转发数据包时,IPv4 会将 IPv4 数据包、下一跃点 IPv4 地址和下一跃点接口发送给 ARP。无论是执行直接传送还是间接传送,ARP 都执行下面的过程:

1.
根据下一跃点 IPv4 地址和接口,ARP 会检查适当的 ARP 缓存以查找与下一跃点 IPv4 地址相匹配的条目。如果 ARP 找到了一个相应条目,则 ARP 会跳到步骤 6。

2.
如果 ARP 没有找到任何相应的条目,则 ARP 将构造一个 ARP 请求帧。此帧包含发出 ARP 请求的接口的 MAC 地址和 IPv4 地址以及 IPv4 数据包的下一跃点 IPv4 地址。然后,ARP 将从相应的接口广播此 ARP 请求帧。

3.
子网中的所有节点都会接收此广播帧并处理 ARP 请求。如果 ARP 请求中的下一跃点地址对应于分配给子网中的某个接口的 IPv4 地址,则该接收节点会使用 ARP 请求方的 IPv4 地址和 MAC 地址更新它自己的 ARP 缓存。所有其他节点都会悄悄地丢弃该 ARP 请求。

4.
被分配了 IPv4 数据包的下一跃点地址的接收节点会构造一个 ARP 应答,并会直接将该应答发送给 ARP 请求方;该应答包含被请求的 MAC 地址。

5.
ARP 请求方将在收到 ARP 应答后使用地址映射更新其 ARP 缓存。通过 ARP 请求和 ARP 应答的交换,ARP 请求方和 ARP 应答方都在其 ARP 缓存中拥有了对方的地址映射。