分类:
2008-10-16 18:56:52
Ping命令
Packet Internet groper(ping) 该命令主要是用来检查是否能够到达,由于该命令的包长非常小,所以在网上传递的速度非常快,可以快速检测要去的站点是否可达,一般您在去某一站点是可以先运行一下该命令看看该站点是否可达。如果执行Ping不成功,则可以预测故障出现在以下几个方面:网线是否连通、网络适配器配置是否正确、IP地址是否可用等。如果执行Ping成功而网络仍无法使用,那么问题很可能出在网络系统的软件配置方面,Ping成功只能保证当前主机与目的主机间存在一条连通的物理路径。它的使用格式是在命令提示符下键入:Ping IP地址或主机名,执行结果显示响应时间,重复执行这个命令,你可以发现Ping报告的响应时间是不同的。
以用户方式使用Ping命令实际上是个非常简单的全局命令。它的形式如下:
bjrouter#ping [protocol] {host|address} |
使用这个形式的Ping命令时,我们可以键入下面的命令来执行ping:bjrouter#ping 192.168.1.2
假设我们的路由器使用的是IP,将5个ICMP回送请求数据包发送到IP地址为192.168.1.2的对方路由器。另外我们也可以使用下面这个远程的路由器名字:
bjrouter#ping gzrouter |
如果要使用路由器名字,就必须激活路由器名字转换特性。如果路由器不知道如何将gzrouter转换成IP地址,我们就无法完成Ping命令的运行了。这时我们将会看到这个消息:
bjrouter#ping gzrouter Translating“gzrouter” %Unrecognized host or address,or protocol not running. |
如果我们感到这个消息的文字太长,我们可以设定使用的IP地址,用Ping命令来查询地址为192.168.1.2的对方机器,方法是输入如下的命令:
bjrouter#ping 192.168.1.2 |
或者,如果我们想要检查一个使用AppleTalk的网络路由器,我们可以在命令中用apple,而不是使用IP,然后使用一个有效的AppleTalk地址,例如:
bjrouter#ping apple 22.195 |
我们来看看以用户方式使用Ping命令能看到什么呢?
当在一个路由器上发出一个Ping命令:
bjrouter#ping 192.168.1.2 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 192.168.1.2 ,timeout is 2 seconds: .!!! Success rate is 80 percent (4/5),round-trip min/avg/max=48/49/52ms |
请注意,5个数据包已经发出,但是我们在第一个数据包上遇到一个超时,而所有其他的数据包平均只用了49毫秒就得到了应答。其实这也不一定说明它有问题,实际上这种情况是非常多见的,之所以第一个数据包超时,这是很容易解释的。以太网在OSI模型的第2层上运行,而IP和ICMP则在第3层上层运行。在我们能够与运程的路由器通信之前,我们必须将第3层的地址转换成第3层的地址,这需要花费时间,Ping的默认超时只有两秒钟。我们不能以足够快的速度将IP地址转换成MAC地址,来防止第一个数据包超时,而后面的数据包则不需要转换MAC地址,因为它已经保存在ARP表中了。如果我们在第一个Ping之后立即试发相同的Ping,那么我们就不应该看到第一个数据包超时,因为ARP高速缓存仍然着远程路由器的MAC地址。我们再来看一看,这个例子:
bjrouter#ping 192.168.1.2 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 192.168.1.2 ,timeout is 2 seconds: !!!!! Success rate is 100 percent (5/), round-trip min/avg/max=48/50/55 ms |
请注意这一次所有的数据包都接收到了,有些情况下,可能有几个数据包收不到。我们立即可以想到的一种情况是ISDN(DNN)连接有问题了。如果在发送Ping命令时数据链路恰巧出现故障,那么在连接恢复之前,所有的5个数据包都可能超时。在这种情况下,你既可以改变感兴趣的信息的定义,也可以在试发Ping命令之前使用另一种方法,就是扩展型Ping命令。
[1]