ping 命令究竟是如何工作的?ARP(地址解析协议)具体是怎么发挥作用的?
我在一次面试中被问到这个问题,我无法想出 ARP 可以使用的场景。
答案1
如果你真的想了解,有一篇非常出色的白皮书这里。
以下是摘要:
- Ping(应用层程序。
- 打开到 IP 层的“原始”套接字。
- IP 层(OSI 上的第 2 层)打包 ICMP 数据包并发送。
由于中间没有 TCP 层,因此Ping (program)
必须监控所有传入的 ICMP 数据包并仅过滤来自目的地的内容。
希望有所帮助。
答案2
假设 ping 涉及通过以太网或 WiFi 网络发送的数据包,则使用 ARP 来查找接收出站数据包的设备的以太网硬件地址。通常,这将是发起 ping 的机器所在的 LAN 的路由器。
典型过程是:
您输入命令来 ping 目的地。
DNS 用于确定 IP 地址(如果需要)。
查阅路由表来找到到达该目的地的下一跳。
ARP用于查找下一跳的硬件地址。
IP 数据包被封装在以太网或 WiFi 帧中,并被发送到下一跳。
答案3
Ping 实际上是两个不同的 ICMP(Internet 控制消息协议)数据包。
要 ping 一个主机,首先要发送一个 ICMP 回显请求包,然后主机会回复一个 ICMP 回显答复。
更多信息请参阅:https://en.wikipedia.org/wiki/Ping_(networking_utility)
答案4
ARP 提供了 MAC 地址,但有时如果没有 DMAC 地址,则使用广播地址。
这种使用广播DMAC的帧被称为ARP广播帧,通过它我们可以得到DMAC地址。