Answers:
如果您真的想了解,这里有一份很好的白皮书(写得很好):
http://images.globalknowledge.com/wwwimages/whitepaperpdf/WP_Mays_Ping.pdf
这是摘要->
Ping (Program on the application layer)
------->
Opens a 'raw' socket to IP Layer
------>
IP layer (Layer 2 on OSI) packages ICMP packet and sends it
由于两者之间没有TCP层,因此Ping (program)
必须监视所有传入的ICMP数据包,并仅过滤来自目的地的一个。
希望能有所帮助。
Ping实际上是两个不同的ICMP(Internet控制消息协议)数据包。
要ping主机,您首先要发送ICMP Echo Request数据包,然后该主机将以ICMP Echo Reply进行回复。
有关更多信息,请参见:https : //en.wikipedia.org/wiki/Ping_(networking_utility)
Ping和ARP是位于网络协议堆栈中不同层的不同事物。
Ping位于网络层(或Internet层-看ICMP协议,如@ServerMonkey所指出)。
Arp协议处于链接级别(较低级别)。Arp协议旨在允许直接连接的网络硬件之间进行物理连接。
在TCP / IP网络堆栈中,每一层都使用下面的层来转发其数据,并将其封装在底层协议中。每一层都是彼此独立的,并且可能不知道其他级别的特定细节和实现(这并不总是正确的:请参见跨层功能)。
ARP提供一个MAC地址,但是有时如果没有DMAC地址,则使用广播地址。
使用广播DMAC的此帧称为ARP广播帧,由此获得DMAC地址。