5.5.1Ping命令

5.5.1Ping命令

Ping命令最初的含义是潜水艇声呐探测目标时发出的脉冲,该脉冲遇到目标后会反射回来。这也提示了Ping命令的工作原理。Ping是Windows、Unix和Linux在路由器TCP/IP协议组中写的网络报文控制协议ICMP中的命令。Ping命令是测试网络连接状况以及信息包发送和接收状况的非常有用的工具,是网络测试最常用的命令。Ping是Windows软件自带的程序,可在MS-DOS提示符下或在【运行】对话框中直接执行。

Ping向目标地址发送一个回送请求数据包,要求目标主机收到请求后给予答复,从而判断网络的响应时间以及本机是否与目标主机连通。

如果执行Ping不成功,则可以预测故障出现在以下几个方面:网线故障、网络适配器配置不正确、IP地址不正确等。如果执行Ping成功而网络仍无法使用,那么问题很可能出在网络系统的软件配置方面。Ping成功只能保证本机与目标主机间存在一条连通的物理路径。

1.命令格式

在命令提示符下键入:

Ping目标地址[-t][-a][-n count][-l size]

其中,目标地址是指IP地址或主机名或域名。

2.主要功能

用来测试一帧数据从一台主机传输到另一台主机所需的时间,从而判断主机响应时间。

3.参数含义

(1)-t连续对IP地址执行Ping命令,直到被用户以Ctrl+C中断。

在Ping命令测试中,如果网络未连接成功,除了出现“Request Time Out”错误提示信息外,还有可能出现“Unknown Hostname(未知用户名)”“Network Unreachable(网络没有连通)”“No Answer(没有响应)”和“Destination Specified Is Invalid(指定目标地址无效)”等错误提示信息。

①“Unknown Hosmame”表示主机名无法识别。通常情况下,这条信息出现在使用了“Ping主机名[命令参数]”之后,如果当前测试的远程主机名字不能被命令服务器转换成相应的IP地址(名称服务器有故障、主机名输入有误、系统与远程主机之间的通信线路故障等),就会给出这条提示信息.

②“Network Unreachable”表示网络不通。如果返回这条错误信息,表明本地系统没有到达远程系统的路由。此时,可以检查局域网路由器的配置,如果没有路由器(软件或硬件),可进行添加。

③“No Answer”表示当前所Ping的远程系统没有响应。返回这条错误信息可能是由于远程系统接受不到本地发给局域网中心路由的任何分组报文,如中心路由工作异常、网络配置不正确、本地系统工作异常、通信线路工作异常等。

④“Destination Specified Is Invalid”表示指定的目的地址无效,返回这条错误信息可能是由于当前所Ping的目的地址已经被取消,或者输入目的地址时出现错误等。

(2)-a:指定对目的地IP地址进行反向名称解析。如果解析成功,Ping将显示相应的主机名。

示例:

C:\>Ping-a 192.168.1.21

Pinging iceblood.yofor.com【192.168.1.21】with 32 bytes of data:

Reply from 192.168.1.21:bytes=32 time<10ms TTL=254

Reply from 192.168.1.21:bytes=32 time<10ms TTL=254

Reply from 192.168.1.21:bytes=32 time<10ms TTL=254

Reply from 192.168.1.21:bytes=32 time<10ms TTL=254

Ping statistics for 192.168.1.21:

Packets:Sent=4,Received=4,Lost=0(0%loss),Approximate round trip times in milli-seconds:

Minimum=0 ms,Maximum=0 ms,Average=0 ms

从上面就可以知道IP为192.168.1.21的计算机NetBios名为iceblood.yofor.com。

(3)-n Count(计数):指定发送回响请求消息的次数,默认值是4。

在默认情况下,一般都只发送4个数据包,通过这个命令可以自己定义发送的数据包个数,对衡量网络速度很有帮助。比如想测试发送50个数据包的回响消息的平均时间为多少、最快时间为多少、最慢时间为多少就可通过以下命令获知:

C:\>Ping-n 50 202.103.96.68

Pinging 202.103.96.68 with 32 bytes of data:

Reply from 202.103.96.68:bytes=32 time=50ms TTL=241

Reply from 202.103.96.68:bytes=32 time=50ms TTL=241

Reply from 202.103.96.68:bytes=32 time=50ms TTL=241

Request timed out.

……

Reply from 202.103.96.68:bytes=32 time=50ms TTL=241

Reply from 202.103.96.68:bytes=32 time=50ms TTL=241

Ping statistics for 202.103.96.68:

Packets:Sent=50,Received=48,Lost=2(4%loss),Approximate round trip times in milli-seconds:

Minimum=40 ms,Maximum=51 ms,Average=46 ms

从以上可知,在给202.103.96.68发送50个数据包的过程当中,返回了48个数据包,其中有两个由于未知原因丢失。这48个数据包当中返回速度最快的为40 ms,最慢的为51 ms,平均速度为46 ms。

(4)-l Size(长度):指定发送的回响请求消息中“数据”字段的长度(以字节为单位)。

在默认的情况下,Windows的Ping发送的数据包大小为32 bit,我们也可以自己定义它的大小,但有限制,就是最大只能发送65500 bit。也许有人会问“为什么要限制到65500 bit”,因为Windows系统有一个安全漏洞(也许还包括其他系统),就是当向对方一次发送的数据包大于或等于65532 bit时,对方很有可能死机,所以微软公司为了解决这一安全漏洞,于是限制了Ping的数据包大小。虽然微软公司已经做了此限制,但这个参数配合其他参数以后危害依然非常强大,比如我们就可以通过配合-t参数来实现一个带有攻击性的命令:

C:\>Ping-l 65500-t 192.168.1.21

Pinging 192.168.1.21 with 65500 bytes of data:

Reply from 192.168.1.21:bytes=65500 time<10ms TTL=254

Reply from 192.168.1.21:bytes=65500 time<10ms TTL=254

……

这样它就会不停地向192.168.1.21计算机发送大小为65 500 bit的数据包,如果只有一台计算机这样做也许没有什么效果,但如果有很多台计算机这样做,就可以使对方完全瘫痪。当同时使用10台以上计算机Ping一台Windows系统的计算机时,不到5 min对方的网络就会完全瘫痪,网络严重堵塞,HTTP和FTP服务完全停止。

4.常用Ping命令诊断

在使用Ping命令进行故障诊断时,可以通过Ping下列地址来判断故障的位置。

(1)Ping 127.0.0.1。在此命令执行时,计算机将模拟远程操作的方式来测试本机。如果不通,则极有可能是TCP/IP协议安装不正常,应删除TCP/IP协议,重新启动计算机,再重新安装TCP/IP协议;或者网络适配器安装有问题,应删除后重新添加。

(2)Ping本机IP地址。如果不通,则说明在相应端口上的协议绑定有问题。查看网络设置,可能是网络协议绑定不正确。

(3)Ping其他主机IP地址。如果前两种方式都能Ping通,而不能Ping通其他主机的IP地址,那么说明其他主机的网络设置有问题,或者网络连接有问题,可以检查其他主机的网络设置,检查物理连接是否有问题。