1.3.3 ping命令

1.3.3 ping命令

ping命令是网络管理员最常用的命令之一,用来测试本地计算机与另一台计算机的连通性。众多操作系统均支持ping命令,如Windows、Unix、Linux、Mac系列操作系统。网络设备(路由器、交换机)中的操作系统也支持ping命令。不同操作系统中ping命令的实现略有不同,但其功能是一样的,都是检查网络是否连通,从而帮助用户分析和判定网络故障,缩小故障范围。

在Windows操作系统中的命令提示符使用“ping/?”能够查看ping命令的格式与参数,如图1-21所示。

图1-21 ping命令的格式与参数

“-t”参数比较常用,正常“ping”命令利用ICMP数据包的请求与应答机制测试目的主机连通性时默认只测试4次,结束后汇总丢包率、平均往返时延等统计信息。使用“-t”参数时,这种测试将不会停止,一直到用户使用“Ctrl+C”组合键中断该命令,在这个过程中用户也可以使用“Ctrl+Break”组合键查看当前的统计信息。

上面的输出显示:与目的主机www.baidu.com能够“ping”通,默认携带的数据为32个字节,往返时延22 ms,TTL值为53。

“-l”参数可以指定每次测试时的ICMP报文携带数据的字节数,“-n”参数可以指定ping测试的次数,下列指令测试与www.baidu.com的连通性,只测试一次,携带的数据量为1000字节。

TTL是IP数据包首部中的一个字段,每经过一个路由器这个值减1,如果在IP数据包到达目的主机之前TTL减少为0了,那么路由器将会丢弃收到的TTL为0的IP数据包,并向源地址发送ICMP超时报文通知。TTL的主要作用是避免IP数据包在网络中可能出现的循环转发。通过“ping”结果中的TTL值也可以知道,源主机距离目的主机经过了多少次转发。默认TTL值为64,如果“ping”结果中显示TTL=53,那么中间过程大约经过了64-53=11次转发。“-i”参数可以设定TTL的初始值。

如果“ping”命令的输出结果与上面的信息不一样,就属于“ping”不通的情况,这可能是网络中断引起超时,也可能是因为防火墙过滤了ICMP数据包。