我 ping 了 google 和 yahoo,并使用 wireshark 捕获数据包,发现它们都只有一个 arp 请求。
谁能解释一下为什么两次 ping 只有一个 arp 请求??
答案1
发送 ARP 请求是为了获取网关的 MAC 地址,然后使用该地址向网关发送第一个 ping 请求。第二个 ping 目标不需要另一个 ARP 请求,因为第一跳是相同的(即网关),并且仍在本地 ARP 缓存中。
答案2
ARP 与您在 LAN 之外所做的事情无关。
ARP 请求不会超越您的路由器。
ARP 不像 ping,与路由器后面的网站或任何计算机都无关。 它与您尝试通过路由器访问的网站、服务器或计算机无关。您的计算机只会询问它是外部的还是内部的,如果是外部的,则使用路由器的 MAC,如果是内部的,则使用目标计算机的 MAC。如果它不知道 MAC,则使用 ARP,发出 ARP 请求
您可能会看到 yahoo.com 的 DNS 请求和 google.com 的 DNS 请求,但与 ARP 无关。
ARP 获取计算机(或路由器)的第 2 层地址,而您不知道或询问路由器外部计算机的第 2 层地址。除非您处于该特定 LAN 中,否则您无法找到它。