Ping 命令详解

Ping 是Windows自带的一个DOS命令。利用它可以检查网络是否能够连通,用好它可以很好地帮助我们分析判定网络故障。该命令可以加许多参数使用,键入Ping按回车即可看到详细说明。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]  

  【参数说明】

  -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通的情况,都要把命令再敲一遍,并加上参数:-s 8000,测试 一下大包是否能通。

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

 3、A能Ping通B,则B一定能Ping通A?

  小L在学习了Ping的工作原理之后,一直这样认为:如果A能够Ping通B,则B也一定能够 Ping通A(不考虑防火墙因素)。但是在一次工程实践中,却发现并非如此。

  在路由器A上Ping路由器B以太网地址2.2.2.2,显示可以正常Ping通,但在路由器B上Pi ng路由器A以太网地址3.3.3.3时,却返回无法Ping通。仔细察配置发现,路由器A配置了一 条指向2.0.0.0/8网段的静态路由,但在路由器B上却没有相应配置到3.0.0.0/8的路由,因 此路由器B Ping 不通3.3.3.3。但是,为什么路由器A可以Ping通2.2.2.2呢?同样没有回程路由,小L百思不 得其解。打开路由器IP报文调试开关后,终于真相大白,原来从路由器A上发出的ICMP报文 的源地址填写的是1.1.1.1,而不是3.3.3.3,由于两台路由器的s0接口处于同一网段,所以 响应的报文可以顺利送达路由器A。

 【点评】A能够Ping通B,则B一定能够Ping通A(不考虑防火墙的因素),这句话本身并没 有错,关键是这里的A、B究竟指的是什么?如果是指两台主机或两个IP地址,那么这句话是 正确的,但是如果指两台路由器,那就不一定了,因为路由器通常都含有多个IP地址,现在 就有如下问题 ,当从一台路由器上执行Ping命令,它发出的ICMP报文的源地址究竟选择哪一个呢?实际上 路由器选择的是发出报文的接口IP地址。

原文地址http://www.china125.com/os/Windows/3878.htm

时间: 2024-12-11 18:44:24

Ping 命令详解的相关文章

Linux和Windows下ping命令详解

转:http://linux.chinaitlab.com/command/829332.html 一.Linux下的ping参数 用途 发送一个回送信号请求给网络主机. 语法 ping [ -d] [ -D ] [ -n ] [ -q ] [ -r] [ -v] [ \ -R ] [ -a addr_family ] [ -c Count ] [ -w timeout ] [ -f | -i \ Wait ] [ -l Preload ] [ -p Pattern ] [ -s PacketS

网工最实用最常用的网络命令之一——Ping 命令详解(一)

Ping是Windows.Unix和Linux系统下的一个命令.ping也属于一个通信协议,是TCP/IP协议的一部分.利用"ping"命令可以检查网络是否连通,可以很好地帮助我们分析和判定网络故障. 网工最实用最常用的网络命令之一--Ping 命令详解(一)使用格式:ping -参数 (中间有个空格) 很多时候大家都只单独ping 加IP地址,验证本机到目的IP地址之间的网络是否连通,其实加上一些参数会获得不一样的结果. 1.ping -t 目标主机IP地址 机房的环境有多噪音大家都

Ping命令详解

引言:我们每天都在使用Ping命令,但是我们可能不太清楚Ping的工作原理,对运行结果中的很多细节也不是很清楚.查找了一下资料,现在和大家分享一下Ping的运行原理和相关细节. A.Ping命令的工作原理Ping命令主要用于测试本地主机与远程主机之间的连通性.Ping命令会向远程主机发送ICMP回应请求数据报(echo request),远程主机收到后回应应答数据报(echo reply).本地主机会计算从发送回应请求数据报到回应应答数据报返回之间的时间,从而确定本地主机与远程主机之间是否正常连

网络管理常用命令之一 - Ping命令详解

Ping命令... TTL:生存时间... 不带选项... -t 选项... -a 选项... -n 选项... -l 选项(Length)... -f 选项... Request timed out(请求超时) Destination host Unreachable(目标主机不可达) Bad IP address. Source quench received. 7 Unknown host No answer 1.Ping命令 在网络维护过程中,Ping命令是一个经常使用的DOS命令,它是

Linux ping命令详解

Linux系统的ping命令是常用的网络命令,它通常用来测试与目标主机的连通性 基于IMCP协议 常见命令参数 -q 不显示任何传送封包的信息,只显示最后的结果 -n 只输出数值 -R 记录路由过程 -c count 总次数 -i 时间间隔 -t 存活数值:设置存活数值TTL的大小 常见命令展示 ping网关 ping -b 192.168.120.1 ping指定次数 ping -c 10 192.168.120.206 时间间隔和次数限制的ping ping -c 10 -i 0.5 192

ping, tracert和traceroute命令详解

ping命令详解 使 用 ping可以测试计算机名和计算机的 ip 地址,验证与远程计算机的连接,通过将 icmp 回显数据包发送到计算机并侦听回显回复数据包来验证与一台或多台远程计算机的连接,该命令只有在安装了 tcp/ip 协议后才可以使用. 现在打开你的ms-dos(开始→程序→ms-dos),用win2000的朋友打开cmd.exe(这是win2000下的ms-dos,开始→程序→ 附件→"命令提示符" 或 开始→搜索文件或文件夹→"填入cmd.exe",找

linux screen 命令详解

linux screen 命令详解 一.背景 系统管理员经常需要SSH 或者telent 远程登录到Linux 服务器,经常运行一些需要很长时间才能完成的任务,比如系统备份.ftp 传输等等.通常情况下我们都是为每一个这样的任务开一个远程终端窗口,因为它们执行的时间太长了.必须等待它们执行完毕,在此期间不能关掉窗口或者断开连接,否则这个任务就会被杀掉,一切半途而废了. 二.简介 GNU Screen是一款由GNU计划开发的用于命令行终端切换的自由软件.用户可以通过该软件同时连接多个本地或远程的命

YUM安装调试以及命令详解

背景,需要安装cacti,google了很多安装资料,需要先yum安装一些准备lib包,比如snmp以及openssl等等. [[email protected] ~]# yum install net-snmp-devel Loaded plugins: rhnplugin, security This system is not registered with RHN. RHN support will be disabled. Setting up Install Process No p

IIS7.0 Appcmd 命令详解和定时重启应用池及站点的设置

IIS7.0 Appcmd 命令详解 废话不说!虽然有配置界面管理器!但是做安装包的时候命令创建是必不可少的!最近使用NSIS制作安装包仔细研究了一下Appcmd的命令,可谓是功能齐全. 上网查了些资料,那些博客大部分都是转载的别人的.都是些基本的介绍,很多命令都没介绍到(不知道是不是我走眼了). 就连微软的 技术资源库 也不详细: 附地址:http://technet.microsoft.com/zh-cn/library/cc772200(WS.10).aspx(反正我找了一遍!没找到我要的