Ping工作流程

627 阅读1分钟

首先,ping 命令其实就是给目标主机随机发送一串32字节的字符,如果目标主机同样也回复了一串字符(32字节),那么说明主机是在线的。其中32字节的数据就是ICMP协议随机生成并封装的,如图:

icmp

按TCP/IP五层模型来说,ICMP协议与IP协议同属网络层。 正常来说,上层协议一般都会依赖在它底层的协议才能工作,比如网络层的IP协议要依赖传输层的TCP或UDP协议,应用层的HTTP(s)协议需要依赖网络层的IP协议来工作,然而很有趣的是,网络层的ICMP协议却依赖于同属网络层的IP协议才能工作

ping命令发出时,源主机的ICMP协议封装好Data数据后,就会去封装IP包头,但下一层数据链路层的封装需要目标主机的MAC地址,若源主机的MAC地址表中没有目标的MAC地址,源主机就会发送ARP请求来获取MAC地址,得到MAC地址并封装好数据帧后Ping包就出发了。

不成功的结果一:

若目标主机不存在,即MAC地址根本获取不到的话,就会出现无法访问目标主机的结果。

目标不存在

不成功的结果二:

若目标主机存在,即MAC地址已经获取到,并成功发送了Ping包,但没有回包,就会出现目标主机不可达。