“ping” 命令究竟如何工作?

“ping” 命令究竟如何工作?

ping 命令究竟是如何工作的?ARP(地址解析协议)具体是怎么发挥作用的?

我在一次面试中被问到这个问题,我无法想出 ARP 可以使用的场景。

答案1

如果你真的想了解,有一篇非常出色的白皮书这里

以下是摘要:

  • Ping(应用层程序。
  • 打开到 IP 层的“原始”套接字。
  • IP 层(OSI 上的第 2 层)打包 ICMP 数据包并发送。

由于中间没有 TCP 层,因此Ping (program)必须监控所有传入的 ICMP 数据包并仅过滤来自目的地的内容。

希望有所帮助。

答案2

假设 ping 涉及通过以太网或 WiFi 网络发送的数据包,则使用 ARP 来查找接收出站数据包的设备的以太网硬件地址。通常,这将是发起 ping 的机器所在的 LAN 的路由器。

典型过程是:

  1. 您输入命令来 ping 目的地。

  2. DNS 用于确定 IP 地址(如果需要)。

  3. 查阅路由表来找到到达该目的地的下一跳。

  4. ARP用于查找下一跳的硬件地址。

  5. IP 数据包被封装在以太网或 WiFi 帧中,并被发送到下一跳。

答案3

Ping 实际上是两个不同的 ICMP(Internet 控制消息协议)数据包。

要 ping 一个主机,首先要发送一个 ICMP 回显请求包,然后主机会回复一个 ICMP 回显答复。

更多信息请参阅:https://en.wikipedia.org/wiki/Ping_(networking_utility)

答案4

ARP 提供了 MAC 地址,但有时如果没有 DMAC 地址,则使用广播地址。

这种使用广播DMAC的帧被称为ARP广播帧,通过它我们可以得到DMAC地址。

相关内容