1、简介
Ping(Packet Internet Groper)是一种计算机网络管理应用,用于确认因特网上的一台主机是否可达,它通过向目标主机发送ICMP(Internet Control Message Protocol)回显请求报文,并根据回复的ICMP回显应答报文来判断目的站是否可达,同时获取连接的丢包率和往返时间等信息。
2、历史由来
Ping程序由Mike Muuss编写,其命名源自声纳系统在进行回声定位时发出的声音,Ping的原理与声纳系统类似,都是通过发送信号并接收回显来判断距离或状态。
3、实现方式
ICMPPing:向目标主机发送ICMP信息报文,根据收到的ICMP报文判断目标主机的可达性,常用的信息报文有回应请求/应答报文、时间戳请求/响应报文和掩码请求/响应报文等。
TCPPing:在目标主机的网络网关过滤了ICMP Ping包时使用,通过向目标主机发送TCPSYN包或TCPACK包来判断目标主机是否可达,准确性比ICMPPing高,需要利用RAW Socket定制TCP包并封装在IP包中,非root用户在某些系统下无法直接操作。
UDPPing:与TCPPing原理类似,通过RAW Socket定制UDP包,若目标主机不可达,路由器会发送目的不可达ICMP报文;若目标主机可达但端口关闭,会回送“端口不可达”的ICMP报文。
4、工作原理
当执行ping命令时,主机会向目标设备或指定IP地址发送ICMP回显请求消息,这些请求消息是最多64字节的小数据包(一般为32字节),然后等待远程主机的响应,如果远程主机正在运行且网络可达,会将ICMP回显响应消息送回原始计算机,程序会根据时间和成功响应的次数估算丢失数据包率和往返时间。
5、语法
ping [options] <destination>
常用选项包括:
a
:将地址解析为计算机名。
c count
:在count个回复后停止。
i interval
:指定发送每个数据包之间的时间间隔(秒数)。
l preload
:在等待回复时发送preload个包数。
n count
:指定发送的数据包数量。
s size
:使用size作为要发送的数据字节数。
t ttl
:定义生存时间。
v
:详细输出。
w timeout
:回复等待timeout秒。
6、示例
测试本机与CSDN网站的连通情况:ping geek.csdn.net
。
不停地ping指定的目的主机,直到中断:ping t 192.168.0.2
。
指定发送数据包的数量为1000:ping c 1000 192.168.0.2
。
7、返回信息分析
Request timed out
:可能原因包括对方已关机、不在同一网段、设置了ICMP数据包过滤、错误设置IP地址等,可使用带参数a的Ping命令进一步判断。
Destination host Unreachable
:可能原因包括对方与自己不在同一网段且未设置默认路由、设置了ICMP数据包过滤等。
二、相关问题与解答
1、问题一:Ping命令中的t
参数有什么作用?
答案:t
参数用于不停地ping指定的计算机,直到手动中断。ping t 192.168.0.2
会一直向IP地址为192.168.0.2的计算机发送数据包,直到按下Ctrl+C键终止,这在需要持续监测网络连通性时非常有用,比如在排查网络故障或测试网络稳定性时。
2、问题二:如何通过Ping命令判断网络链路的质量?
答案:可以通过多次执行Ping命令并观察返回的信息来判断网络链路的质量,使用ping c 100 192.168.0.2
命令向IP地址为192.168.0.2的计算机发送100个数据包,然后查看返回的结果,如果丢失的数据包较少,且往返时间(time)较短且稳定,说明网络链路质量较好;反之,如果丢失的数据包较多,或者往返时间较长且波动较大,则说明网络链路可能存在问题,如带宽不足、网络拥塞、设备故障等,还可以观察Ping命令返回的最小值(Minmum)、最大值(Maximum)和平均值(Average),这些值也能反映网络链路的质量。
来源互联网整合,作者:小编,如若转载,请注明出处:https://www.aiboce.com/ask/130707.html