ping:Packet-Internet-Groper, 因特网包探索器
ping所利用的原理:利用网络上机器IP地址的唯一性,给目标IP地址发送一个数据包,再要求对方返回一个同样大小的数据包来确定两台网络机器是否连接相通以及时延是多少。
ping发送一个ICMP(Internet-Control-Messages-Protocol,因特网信报控制协议),请求消息给目的地并报告是否收到所希望的ICMP-echo(ICMP回声应答),它是用来检查网络是否通畅或者网络连接速度的命令。
下图是利用ping命令检测某地址是否能连通,向对端发送ICMP消息:
下图是同一时刻在ping的目标地址,利用wireshark截包,发现来自ping命令的ICMP包到达:
通过上面两图可以观察到,ping命令所发送的报文消息类型是ICMP,且每一个报文都会统计响应时间,响应时间越小,说明连接这个地址速度越快。
在Windows下,ping命令默认发送4次数据包后结束,可以使用ping + IP地址 -t 的形式,一直向对端发送探测报文信息。具体操作如下:
在Linux下,ping命令默认一直发送数据包,直到用户手动停止发送(Ctrl + C)。
可以对比Windows和Linux下ping命令发送的数据包的不同:
(1)Windows下数据包大小是32byte
(2)Linux下数据包大小是64byte
关于ping命令的其他命令选项可以自行查找,一般使用的话,ping + IP地址,即可。
本文原理分析来自:《后台开发 核心技术与应用实践》
谢谢阅读