如果两台PC在同一网络上具有相同的IP地址和相同的子网掩码,Ping会发生什么?

网络工程 ip 子网 IP地址 国际会议
2021-07-26 23:46:30

如果局域网中有两台具有相同 IP 地址的 PC,如果我从同一网络上的另一台 PC ping 那个 IP 地址会发生什么,为什么?

2个回答

实际上,如果它们在同一个 LAN 上,ping 将发送到第 2 层地址。假设以太网,发送主机的 ARP 缓存中可能有一个 MAC 地址,并且 ping 被发送到具有该 MAC 地址的主机(故事结束)。

如果主机需要发送 ARP 请求以将第 3 层 IP 地址解析为第 2 层 MAC 地址,这就是棘手的地方。ARP 请求是一个广播,以便 LAN 上的所有主机都得到它,并且具有该 IP 地址的两台主机都将使用该 IP 地址的 MAC 地址进行响应第一个 ping 数据包可能会去接收到的第一个 MAC 地址,如果所有主机都在同一台交换机上,或者具有重复地址的主机与发送主机在不同的交换机上,您无法预测会收到哪个第一的。发送主机会将收到的第一个 MAC 地址放在其 ARP 缓存中以备将来使用(后续 ping,通常单个用户 ping 会发送多个 ping)。

同时,发送主机将从另一台主机接收 MAC 地址,并且应该更新其 ARP 缓存并将该 MAC 地址用于发送到该 IP 地址的流量。来自 ping 命令的下一个 ping转到具有该 IP 地址的第二台主机。

假设发送主机在其 ARP 缓存中没有 IP 地址的 MAC 地址,您真的无法知道主机将以何种顺序响应 ARP 请求。

物理上离您的系统更近的主机“通常”会收到 ping。但行为是未定义的。任一设备都可以接收数据包。

您可以通过发送 ARP 请求并解析 MAC 地址来找出实际接收 ICMP 数据包的设备。