我正在学习网络知识,对 ARP 回显问题有疑问。
我使用Wireshark进行数据包捕获,我的操作系统是Windows 7。
内容
ARP 基础知识 ARP 代表地址解析协议。当您尝试 ping 本地网络上的 IP 地址(例如 192.168.1.1)时,您的系统必须将 IP 地址 192.168.1.1 转换为 MAC 地址。这涉及使用 ARP 来解析地址,因此得名。
系统会保留一个 ARP 查找表,其中存储了哪些 IP 地址与哪些 MAC 地址相关联的信息。当尝试向 IP 地址发送数据包时,系统将首先查阅此表以查看是否已经知道 MAC 地址。如果存在缓存值,则不使用 ARP。
如果在 ARP 表中找不到 IP 地址,系统将使用 ARP 协议向网络发送广播数据包,询问“谁拥有 192.168.1.1”。由于它是一个广播数据包,因此它会被发送到一个特殊的 MAC 地址,从而使网络上的所有计算机都能接收它。任何具有所请求 IP 地址的计算机都会回复一个 ARP 数据包,内容是“我是 192.168.1.1”,其中包括可以接收该 IP 数据包的 MAC 地址。
我理解 ARP 是“当尝试向 IP 地址发送数据包时,系统将首先查阅此表以查看它是否已经知道 MAC 地址。如果缓存了值,则不使用 ARP。”
我的拓扑是 [PC-A] - [交换机] - [PC B]
问:我命令 ping [PC B] 到 [PC A] 并且检查 ARP 表是否更新。
并再次向 [PC B] 和 [PC A] 发出相同的 ping 命令。
已经知道 MAC 地址。但是发生了 ARP 重新回应。
看起来像那样。
我不太明白重新回应 ARP 的问题。
答案1
这是因为 arp 条目只能缓存一段时间。之后,如果有任何变化(例如,一台机器被授予了之前由另一台机器使用的 DHCP 租约),PC 将通过重新发送 arp 请求来刷新条目。本文解释在 Windows 的各个版本中条目的缓存时间。对于 Vista 及更高版本,条目的缓存时间在 15 到 45 秒之间。
如果某个条目在 15 到 45 秒的时间内未被使用,它将变为“过时”状态。然后,当任何 IP 数据报发送到该目的地时,主机必须向网络发送 IPV4 的 ARP 请求。