ping命令详解

  • 格式:pdf
  • 大小:172.50 KB
  • 文档页数:3

ping命令详解

Ping 是Windows⾃带的⼀个DOS命令。利⽤它可以检查⽹络是否能够连通,⽤好它可以很好地帮助我们分析判定⽹络故障。

该命令可以加许多参数使⽤,键⼊Ping按回车即可看到详细说明。Ping 命令可以⽤来验证与远程计算机的连接。

下⾯我和⼤家讲解⼀下,每个参数意思和使⽤。ping [-t] [-a] [-n count] [-l length] [-f] [-i ttl] [-v tos] [-r count] [-s count] [-j computer-list] | [-k computer-list] [-w timeout] destination-

list

-t Ping 指定的计算机直到中断。

-a 将地址解析为计算机名。

-n count 发送 count 指定的 ECHO 数据包数。默认值为 4。

-l length 发送包含由 length 指定的数据量的 ECHO 数据包。默认为 32 字节;最⼤值是65,527。

-f 在数据包中发送"不要分段"标志。数据包就不会被路由上的⽹关分段。

-i ttl 将"⽣存时间"字段设置为 ttl 指定的值。

-v tos 将"服务类型"字段设置为 tos 指定的值。

-r count 在"记录路由"字段中记录传出和返回数据包的路由。count 可以指定最少 1 台,最多 9 台计算机。

-s count 指定 count 指定的跃点数的时间戳。

-j computer-list 利⽤ computer-list 指定的计算机列表路由数据包。连续计算机可以被中间⽹关分隔(路由稀疏源)IP 允许的

最⼤数量为 9。-k computer-list 利⽤ computer-list 指定的计算机列表路由数据包。连续计算机不能被中间⽹关分隔(路由严格源)IP 允许的

最⼤数量为 9。-w timeout 指定超时间隔,单位为毫秒。destination-list 指定要 ping 的远程计算机。

红的不懂看绿的哦,绿的更清楚⼀些

 【参数说明】-t :不停的ping指定的计算机,直到按下Ctrl+C中断。

-a :将地址解析为计算机NetBios名。

-n :发送count指定的ECHO数据包数。通过这个命令可以⾃⼰定义发送的个数,对衡量⽹络速度很有帮助。能够测试发送数

据包的返回平均时间,及时间的快慢程度。默认值为 4。

-l :发送指定数据量的ECHO数据包。默认为 32 字节;最⼤值是65500byt。

-f :在数据包中发送“不要分段”标志,数据包就不会被路由上的⽹关分段。通常你所发送的数据包都会通过路由分段再发送给对

⽅,加上此参数以后路由就不会再分段处理。

-i :将“⽣存时间”字段设置为TTL指定的值。指定TTL值在对⽅的系统⾥停留的时间。同时检查⽹络运转情况的。

-v :tos 将“服务类型”字段设置为 tos 指定的值。

-r :在“记录路由”字段中记录传出和返回数据包的路由。通常情况下,发送的数据包是通过⼀系列路由才到达⽬标地址的,通

过此参数可以设定,想探测经过路由的个数。限定能跟踪到9个路由。

-s :指定 count 指定

的跃点数的时间戳。与参数-r差不多,但此参数不记录数据包返回所经过的路由,最多只记录4个。

-j :利⽤ computer-list 指定的计算机列表路由数据包。连续计算机可以被中间⽹关分隔(路由稀疏源) IP 允许的最⼤数量为 9。

-k :computer-list 利⽤ computer-list 指定的计算机列表路由数据包。连续计算机不能被中间⽹关分隔(路由严格源)IP 允许的最

⼤数量为 9。

-w:timeout 指定超时间隔,单位为毫秒。

⼀般情况下,通过ping⽬标地址,可让对⽅返回TTL值的⼤⼩,通过TTL值可以粗略判断⽬标主机的系统类型是Windows还是UNIX/Linux,⼀般情况下Windows系统返回的TTL值在100-130之间,⽽UNIX/Linux系统返回的TTL值在240-255之间。因为

TTL的值在对⽅的主机⾥是可以修改的,故此种⽅法可作为参考。Windows系列的系统可以通过修改注册表以下键值实现修改

PING命令TTL值:

[HKEY_LOCAL_MACHINE\sys tem\CurrentControlSet\Services\Tcpip\Parameters] "DefaultTTL"=dword:000000ff

255---FF

128---80

64----40

32----20

⼀、Ping⼯作原理

提到Ping命令,就不能不介绍ICMP(Internet Control Messages Protocol),因特⽹控制信息协议。ICMP通常被认为是IP层

的⼀个组成部分,⽤于传递差错报⽂和其它需要注意 的信息。ICMP报⽂是在IP数据包内部传输的。

ICMP报⽂格式类型字段可以有15个不同的值,描述特定类型的ICMP报⽂。Ping报⽂实际 上是类型为0的“回显应答”和类型为

8的“请求回显”报⽂。

⼆、Ping命令的格式和参数

在Quidway系列路由器上,Ping命令格式如下,粗体为关键字,斜体为参数: Ping [-c number][-t number][-s number] ip-address

-c: Ping报⽂的个数,缺省值是5个;

-t: 设置Ping报⽂的超时时间,以毫秒为单位,缺省值为2000;

-s: 设置Ping报⽂的⼤⼩,缺省值是56 byte。

实际上,Ping命令的参数还有很多,本⽂仅重点介绍最常⽤的三个。

三、Ping命令的使⽤误区

分析Ping 202.101.6.21命令,虽然没有附加参数,实际使⽤的是缺省值,路由器将发 送5个⼤⼩为56个字节的ICMP报⽂,并

认为正常的相应时间为2000毫秒,⽽这些缺省参数通 常为我们所忽视。

 1、真的Ping不通?

 【案例⼀】⼯程师⼩L在配置完⼀台路由器之后,执⾏Ping命令检测链路是否通畅,发送 了五个报⽂都没有Ping通,于是检

查双⽅配置命令和路由表,⼀直没有找出错误。最后⽆奈 之下,重复执⾏了⼀遍相同的Ping命令,发现此次的五个报⽂中,

竟有两个Ping通了。原来 线路质量不好,存在着严重的丢包现象。

 【点评】⼩L被Ping命令的缺

省参数-c给迷惑了。Ping不通的背后可能隐藏着丢包现象,毕竟配置错误和线路质量不好的解决⽅法⼤相径庭。有了此次教训

之后,⼩L再遇到Ping不 通的情况,都会将命令多执⾏⼀遍,并加上参数:-c 10,这意味着连续Ping10个报⽂来检 验是否存

在丢包现象。

命令格式:Ping -c 10 ip-address

 【案例⼆】⼯程师⼩L配置完⼀台路由器之后,执⾏Ping命令访问internet某站点IP地址 ,没有Ping通。有了上次教训,⼩L

再⼀次Ping了10个报⽂,仍没有响应,于是⼩L断定为⽹ 络故障,在费劲周折检查了配置、链路后,仍没有发现任何可疑之

处。最后⼩L采取逐段检 测法,对链路⽹ 关进⾏逐级测试,发现每段都可Ping通,但响应时间越来越长,最后⼀个⽹关的响

应时间已 达到1800ms左右,会不会是由于超时⽽导致显⽰为Ping不同呢?受此启发,⼩L将Ping命令 时间改为4000ms,Ping通了,观察发现,所有报⽂响应时间都在2100ms左右。

 【点评】这⼀次,⼩L被Ping命令的另⼀个缺省参数-t 给迷惑了。Ping不通的背后可能隐 藏着超时处理,系统缺省认为Ping

报⽂应该在2000ms内有回应,如果超出该时间,即使有回 应报⽂送达,也认为Ping不通。有了这次教训之后,⼩L再遇到Ping不通的情况,都要把命 令再敲⼀遍,并 加上参数:-c 10、-t 4000,这意味着连续Ping10个报⽂、每个报⽂的超时设置为

4000ms, 以此检验是否存在丢包和响应时间过长等现象。

命令格式:Ping -c 10 -t 4000 ip-address

 2、真的能Ping通?

 【案例⼀】⼯程师⼩L在⼀次⼯程中,需要在ATM接⼝上运⾏OSPF协议,由于该ATM接⼝只有⼀个对端,便将OSPF接⼝类型改为point-to-point。ATM顺利调通之后,可正常Ping通对 端地址,但是OSPF却⽆法正常运⾏。

 系统配置如下:

interface Atm2/0/0.100

ip address 202.111.128.214 255.255.255.252

map-group atmzz

atm pvc 1 163 199 aal5snap ipoa ubr 155000 155000 32

ip ospf network point-to-point

map-list atmzz

ip 202.111.128.213 atm-vc 1

查看调试信息发现,双⽅都没有收到对端发来的Hello报⽂,打开Debug开关,发现本端 发送的Hello报⽂由OSPF交给IP层,

但IP层交给ATM层时,却被ATM层丢弃了。细查原因,原 来OSPF Hello报⽂为多播报⽂(类似⼴播报⽂),⽽ATM的缺省设

置不⽀持发送⼴播报⽂, ⽽需要特殊配置 。将配置改为:ip 2.111.128.213 atm-vc 1 broadcast,增加broadcast参数后,⽀持

⼴ 播报⽂的发送,问题解决。

 【点评】Ping命令只能⽤于测试单播报⽂,⽽不能测试⼴播和多播报⽂。

 【案例⼆】⼩L在⼀次⼯程中,需要在NE路由器和JUNIPER路由器之间通过POS接⼝相连, 并运⾏OSPF路由协议。

配置完成后,⼀切正常,割接后设备运⾏稳定,未出现任何故障。但 两个⽉之后,⽤户突然反馈⽹络中断。

⼩L登录路由器后,观察POS接⼝连接正常,可以Ping通对端地址,但OSPF协议中断,接 着按照以下步骤进⾏查询:

查看邻居状态STATE处于exstart状态,打开NE路由器Debug 开关,查看相应报⽂信息, 发现相互之间可以收到Hello报⽂。

但是,NE发送DD报⽂后,却⼀直没有收到对⽅回应的DD 报⽂。 开JUNIPER路由器Debug开关,发现对⽅收到NE DD报⽂

后,发送了相应DD报⽂予以回 应,但是NE没有收到。

初步断定,NE没有接收到这个报⽂,但对⽅确实发送出来了。既然可以接收到Hello报 ⽂,说明链路通畅,⽽且多播报⽂收

发也正常。有⼀种可能就是对⽅发送的DD报⽂有错误, 导致NE拒收。查看相应信息,NE并没有报告接收到错误的DD报

⽂。仔细查看对端路由器调试 信息,发现该DD 报⽂很⼤,有2000多字节。

会不会是由于报⽂太⼤导致的问题呢?⼩L试着Ping了⼀个2000字节的报⽂,竟然不通 !仔细察看发现,双⽅的MTU设置不

⼀致,导致⼤包不通所致。JUNIPER路由器的MTU为4000 多,⽽NE为1500,将JUNIPER MTU改为1500,问题解决。为什

么⼯程初期没有问题,这是因 为后来⽹络扩容, 导致路由信息过多,使DD报⽂长度超过了1500字节。

 【点评】这⼀次,⼩L是被Ping命令的另⼀个缺省参数-s 给迷惑了。由于Ping缺省报⽂为 56个字节,所以显⽰Ping通的信

息只表⽰56字节的报⽂可以通,并不表⽰其他⼤⼩的报⽂都 可以通。这并不意味我们必须从56个字节逐级向上Ping,通常如

果⼤包可以Ping通,则⼩包 ⼀定会通。有 了这次教训之后,⼩L在Ping通的情况,都要把命令再敲⼀遍,并加上参数:-s8000,测试 ⼀下⼤包是否能通。

命令格式:Ping -s 8000 ip-address