ARP 广播与默认路由

网络工程 路由 协议理论 arp 国际会议
2021-07-18 06:02:22

假设主机连接到路由器。如果主机 ping 一个不在主机路由表中的未知单播地址,将发生以下哪一种情况?(假设默认路由指向路由器接口)

  1. 主机会向默认网关发送 ping 请求吗?
  2. 主机将尝试通过发送 ARP 广播来解决未知单播 IP 到 MAC?
  3. 还要别的吗?

我在我的笔记本电脑上尝试了这个,在无线网卡上运行 Wireshark 并在 ARP 或 ICMP 上显示过滤器。笔记本电脑中既没有 ARP 请求/洪水,也没有 ping 请求。Ping 失败并显示“请求超时”消息。

我希望有人能帮助我理解这种行为。

1个回答

每次主机需要在第 2 层 LAN 上发送第 3 层数据包时,它必须将第 3 层地址解析为第 2 层地址,以便能够构建第 2 层帧来封装第 2 层3包。这就是 ARP(地址解析协议)所做的。

主机将首先确定目标地址是否与主机本身在同一网络中。如果是,那么它将查看其 ARP 表以查看它是否已经具有该分辨率。ARP 表开始为空,ARP 表条目超时,静态定义的分辨率除外。如果它在其 ARP 表中找到该条目,则它具有用于构建帧的第 2 层地址。

如果三层地址不在 ARP 表中,主机将发送 ARP 请求以查找二层地址。如果目标在特定时间段内没有响应,则第 3 层数据包将被丢弃,并且会向应用程序发送一条 ICMP 消息说找不到主机。

如果目标第 3 层地址在不同的网络上,则主机将使用上述过程获取其配置网关的第 2 层地址。最有可能的是,主机的 ARP 表中已经有第 3 层地址和第 2 层解析,因此它不需要发送 ARP 请求,但如果条目超时,它会发送。