当ping一个IP的时候发生了什么

ping是一个可执行文件,ping.exe,当我们执行这个指令的时候,会向指定的IP地址发送一定长度的数据包,按约定,若指定IP地址存在的话,会返回同样大小的数据包。

若特定时间内没有返回,就是“超时”,就认为指定的IP地址不存在。

pingman 手册就可以看出来,ping 实际上发送了 ICMP ECHO_REQUEST 的报文

ping – send ICMP ECHO_REQUEST packets to network hosts

通过让目标 IP 地址返回 ICMP ECHO_RESPONSE 报文来判断 IP 可不可达。

ICMP 分为 Query 查询报文Error Message 报文,ping 为查询报文

由于ping使用的是ICMP(Internet Control Message Protocal)协议,有些防火墙软件会屏蔽ICMP协议,所以ping的结果只能作为参考,ping不通并不一定说明对方的IP不存在。