当ping一个IP的时候发生了什么
ping是一个可执行文件,ping.exe,当我们执行这个指令的时候,会向指定的IP地址发送一定长度的数据包,按约定,若指定IP地址存在的话,会返回同样大小的数据包。
若特定时间内没有返回,就是“超时”,就认为指定的IP地址不存在。
从 ping
的 man
手册就可以看出来,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不存在。