过期罐头电脑论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 6296|回复: 5
收起左侧

认识Windows自带可执行命令Ping

[复制链接]
zhjiazhong 2011-3-27 15:44:28 | 显示全部楼层
本帖最后由 zhjiazhong 于 2011-3-27 16:17 编辑

Ping 是Windows系列自带的一个可执行命令。利用它可以检查网络是否能够连通,用好它可以很好地帮助我们分析判定网络故障。应用格式:Ping IP地址。该命令还可以加许多参数使用,具体是键入Ping按回车即可看到详细说明。

概念

PingDOS命令,一般用于检测网络通与不通 ,也叫时延,其值越大,速度越慢

PING (Packet Internet Grope),因特网包探索器,用于测试网络连接量的程序。Ping发送一个ICMP回声请求消息给目的地并报告是否收到所希望的ICMP回声应答。

它是用来检查网络是否通畅或者网络连接速度的命令。作为一个生活在网络上的管理员或者黑客来说,ping命令是第一个必须掌握的DOS命令,它所利用的原理是这样的:利用网络上机器IP地址的唯一性,给目标IP地址发送一个数据包,再要求对方返回一个同样大小的数据包来确定两台网络机器是否连接相通,时延是多少?

ping指的是端对端连通,通常用来作为可用性的检查, 但是某些病毒木马会强行大量远程执行ping命令抢占你的网络资源,导致系统变慢,网速变慢。严禁ping入侵作为大多数防火墙的一个基本功能提供给用户进行选择。通常的情况下你如果不用作服务器或者进行网络测试,可以放心的选中它,保护你的电脑

工作流程

我们以下面一个网络为例:有A、B、C、D四台机子,一台路由RA,子网掩码均为255.255.255.0,默认路由为192.168.0.1

1.在同一网段内

在主机A上运行“Ping 192.168.0.5”后,都发生了些什么呢? 首先,Ping命令会构建一个固定格式的ICMP请求数据包,然后由ICMP协议将这个数据包连同地址“192.168.0.5”一起交给IP层协议(和ICMP一样,实际上是一组后台运行的进程),IP层协议将以地址“192.168.0.5”作为目的地址,本机IP地址作为源地址,加上一些其他的控制信息,构建一个IP数据包,并想办法得到192.168.0.5的MAC地址(物理地址,这是数据链路层协议构建数据链路层的传输单元——帧所必需的),以便交给数据链路层构建一个数据帧。关键就在这里,IP层协议通过机器B的IP地址和自己的子网掩码,发现它跟自己属同一网络,就直接在本网络内查找这台机器的MAC,如果以前两机有过通信,在A机的ARP缓存表应该有B机IP与其MAC的映射关系,如果没有,就发一个ARP请求广播,得到B机的MAC,一并交给数据链路层。后者构建一个数据帧,目的地址是IP层传过来的物理地址,源地址则是本机的物理地址,还要附加上一些控制信息,依据以太网的介质访问规则,将它们传送出去。

主机B收到这个数据帧后,先检查它的目的地址,并和本机的物理地址对比,如符合,则接收;否则丢弃。接收后检查该数据帧,将IP数据包从帧中提取出来,交给本机的IP层协议。同样,IP层检查后,将有用的信息提取后交给ICMP协议,后者处理后,马上构建一个ICMP应答包,发送给主机A,其过程和主机A发送ICMP请求包到主机B一模一样。

2.不在同一网段内

在主机A上运行“Ping 192.168.1.4”后,开始跟上面一样,到了怎样得到MAC地址时,IP协议通过计算发现D机与自己不在同一网段内,就直接将交由路由处理,也就是将路由的MAC取过来,至于怎样得到路由的MAC,跟上面一样,先在ARP缓存表找,找不到就广播吧。路由得到这个数据帧后,再跟主机D进行联系,如果找不到,就向主机A返回一个超时的信息。

PING测试

1.Ping本机IP

例如本机IP地址为:172.168.200.2。则执行命令Ping 172.168.200.2。如果网卡安装配置没有问题,则应有类似下列显示:

Replay from 172.168.200.2 bytes=32 time<10ms

Ping statistics for 172.168.200.2

Packets Sent=4 Received=4 Lost=0 0% loss

Approximate round trip times in milli-seconds

Minimum=0ms Maxiumu=1ms Average=0ms

如果在MS-DOS方式下执行此命令显示内容为:Request timed out,则表明网卡安装或配置有问题。将网线断开再次执行此命令,如果显示正常,则说明本机使用的IP地址可能与另一台正在使用的机器IP地址重复了。如果仍然不正常,则表明本机网卡安装或配置有问题,需继续检查相关网络配置。

2.Ping网关IP

假定网关IP为:172.168.6.1,则执行命令Ping 172.168.6.1。在MS-DOS方式下执行此命令,如果显示类似以下信息:

Reply from 172.168.6.1 bytes=32 time=9ms TTL=255

Ping statistics for 172.168.6.1

Packets Sent=4 Received=4 Lost=0

Approximate round trip times in milli-seconds

Minimum=1ms Maximum=9ms Average=5ms

则表明局域网中的网关路由器正在正常运行。不反之,则说明网关有问题。

3.Ping远程IP

这一命令可以检测本机能否正常访问Internet。比如本地电信运营商的IP地址为:202.102.48.141。在MS-DOS方式下执行命令:Ping 202.102.48.141,如果屏幕显示:

Reply from 202.102.48.141 bytes=32 time=33ms TTL=252

Reply from 202.102.48.141 bytes=32 time=21ms TTL=252

Reply from 202.102.48.141 bytes=32 time=5ms TTL=252

Reply from 202.102.48.141 bytes=32 time=6ms TTL=252

Ping statistics for 202.102.48.141

Packets Sent=4 Received=4 Lost=0 0% loss

Approximate round trip times in milli-seconds

Minimum=5ms Maximum=33ms Average=16ms

则表明运行正常,能够正常接入互联网。反之,则表明主机文件(windows/host)存在问题。

 楼主| zhjiazhong 2011-3-27 15:48:48 | 显示全部楼层
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
  Ping 命令可以用来验证与远程计算机的连接。(该命令只有在安装了TCP/IP协议后才能使用)
  【参数说明】 :
  -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 指定超时间隔,单位为毫秒。
  destination-list: 指定要 ping 的远程计算机。
  一般情况下,通过ping目标地址,可让对方返回TTL值的大小,通过TTL值可以粗略判断目标主机的系统类型是Windows还是UNIX/Linux,一般情况下Windows系统返回的TTL值在100-130之间,而UNIX/Linux系统返回的TTL值在240-255之间。但TTL的值是可以修改的。故此种方法可作为参考.
  【一般操作方法如下】:
  C:\>ping www.yahoo com
  Pinging www.yahoo.akadns net [66.218.71.81] with 32 bytes of data:
  Reply from 66.218.71.81: bytes=32 time=160ms TTL=41
  Reply from 66.218.71.81: bytes=32 time=150ms TTL=41
  Reply from 66.218.71.81: bytes=32 time=160ms TTL=41
  Reply from 66.218.71.81: bytes=32 time=161ms TTL=41
  Ping statistics for 66.218.71.81:
  Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),Approximate
  round trip times in milli-seconds:
  Minimum = 150ms, Maximum = 161ms, Average = 157ms
  ----------------------------------------------------------------
  Tracerttracert
  Tracert 该诊断实用程序将包含不同生存时间 (TTL) 值的 Internet 控制消息协议(ICMP)
  回显数据包发送到目标,以决定到达目标采用的路由。要在转发数据包上的 TTL 之前至少递减 1,必需路径上的每个路由器,所以 TTL
  是有效的跃点计数。数据包上的 TTL 到达 0 时,路由器应该将“ICMP 已超时”的消息发送回源系统。Tracert 先发送 TTL为 1 的回显数据包,并在随后的每次发送过程将 TTL 递增 1,直到目标响应或 TTL 达到最大值,从而确定路由。路由通过检查中级路由器发送回的“ICMP 已超时”的消息来确定路由。不过,有些路由器悄悄地下传包含过期 TTL 值的数据包,而 tracert 看不到。
  tracert [-d] [-h maximum_hops] [-j computer-list] [-w timeout]
  target_name
  参数说明:
  /d 指定不将地址解析为计算机名。
  -h maximum_hops 指定搜索目标的最大跃点数。
  -j computer-list 指定沿 computer-list 的稀疏源路由。
  -w timeout 每次应答等待 timeout 指定的微秒数。
  target_name 目标计算机的名称。
  一般操作方法如下:
  C:\>tracert www.yahoo com
  Tracing route to www.yahoo.akadns net [66.218.71.81] over a maximum
  of 30 hops:
  1 10 ms <10 ms <10 ms 192.168.0.7
  2 <10 ms 10 ms <10 ms 210.192.97.129
  3 <10 ms 20 ms 10 ms 192.168.200.21
  4 <10 ms 10 ms 10 ms 203.212.0.69
  5 <10 ms 10 ms 10 ms 202.108.252.1
  6 10 ms 10 ms <10 ms 202.106.193.201
  7 10 ms 20 ms 20 ms 202.106.193.169
  8 <10 ms 10 ms 10 ms 202.106.192.226
  9 <10 ms 10 ms 10 ms 202.96.12.45
  10 20 ms 30 ms 20 ms p-6-0-r1-c-shsh-1 cn net [202.97.34.34]
  11 20 ms 30 ms 30 ms p-3-0-r3-i-shsh-1 cn net [202.97.33.74]
  12 160 ms 161 ms 160 ms if-7-7.core1.LosAngeles.Teleglobe net
  [207.45.193.73]
  13 200 ms 201 ms 200 ms if-4-0.core1.Sacramento.Teleglobe net
  [64.86.83.170]
  14 190 ms 190 ms 190 ms if-2-0.core1.PaloAlto.Teleglobe net
  [64.86.83.201]
  15 160 ms 160 ms 160 ms ix-5-0.core1.PaloAlto.Teleglobe net
  [207.45.196.90]
  16 180 ms 180 ms 160 ms ge-1-3-0.msr1.pao.yahoo com
  [216.115.100.150]
  17 170 ms 210 ms 321 ms vl10.bas1.scd.yahoo com [66.218.64.134]
  18 170 ms 170 ms 170 ms w2.scd.yahoo com [66.218.71.81]
  ===============================================
  对于Windows下ping命令相信大家已经再熟悉不过了,但是能把ping的功能发挥到最大的人却并不是很多,当然我也并不是说我可以让ping发挥最大的功能,我也只不过经常用ping这个工具,也总结了一些小经验,现在和大家分享一下。
  现在我就参照ping命令的帮助说明来给大家说说我使用ping时会用到的技巧,ping只有在安装了TCP/IP协议以后才可以使用:
  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
  Options:
  -t Ping the specified host until stopped To see statistics and continue - type Control-Break;To stop - type Control-C.
  不停的ping地方主机,直到你按下Control-C。
  此功能没有什么特别的技巧,不过可以配合其他参数使用,将在下面提到。
  -a Resolve addresses to hostnames.
  解析计算机NetBios名。
  示例: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 = 0ms, Maximum = 0ms, Average = 0ms
  从上面就可以知道IP为192.168.1.21的计算机NetBios名为iceblood.yofor com。
  n count Number of echo requests to send.
  发送count指定的Echo数据包数。
  在默认情况下,一般都只发送四个数据包,通过这个命令可以自己定义发送的个数,对衡量网络速度很有帮助,比如我想测试发送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 = 40ms, Maximum = 51ms, Average = 46ms
  从以上我就可以知道在给202.103.96.68发送50个数据包的过程当中,返回了48个,其中有两个由于未知原因丢失,这48个数据包当中返回速度最快为40ms,最慢为51ms,平均速度为46ms。
  l size Send buffer size.
  定义echo数据包大小。
  在默认的情况下windows的ping发送的数据包大小为32byt,我们也可以自己定义它的大小,但有一个大小的限制,就是最大只能发送65500byt,也许有人会问为什么要限制到65500byt,因为Windows系列的系统都有一个安全漏洞(也许还包括其他系统)就是当向对方一次发送的数据包大于或等于65532时,对方就很有可能挡机,所以微软公司为了解决这一安全漏洞于是限制了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计算机发送大小为65500byt的数据包,如果你只有一台计算机也许没有什么效果,但如果有很多计算机那么就可以使对方完全瘫痪,我曾经就做过这样的试验,当我同时使用10台以上计算机ping一台Win2000Pro系统的计算机时,不到5分钟对方的网络就已经完全瘫痪,网络严重堵塞,HTTP和FTP服务完全停止,由此可见威力非同小可。
  -f Set Don<|>t Fragment flag in packet.
  在数据包中发送“不要分段”标志。
  在一般你所发送的数据包都会通过路由分段再发送给对方,加上此参数以后路由就不会再分段处理。
  -i TTL Time To Live.
  指定TTL值在对方的系统里停留的时间。
  此参数同样是帮助你检查网络运转情况的。
  -v TOS Type Of Service.
  将“服务类型”字段设置为 tos 指定的值。
  r count Record route for count hops.
  在“记录路由”字段中记录传出和返回数据包的路由。
  在一般情况下你发送的数据包是通过一个个路由才到达对方的,但到底是经过了哪些路由呢?通过此参数就可以设定你想探测经过的路由的个数,不过限制在了9个,也就是说你只能跟踪到9个路由,如果想探测更多,可以通过其他命令实现,我将在以后的文章中给大家讲解。以下为示例:
  C:\>ping -n 1 -r 9 202.96.105.101 (发送一个数据包,最多记录9个路由)
  Pinging 202.96.105.101 with 32 bytes of data:
  Reply from 202.96.105.101: bytes=32 time=10ms TTL=249
  Route: 202.107.208.187 ->
  202.107.210.214 ->
  61.153.112.70 ->
  61.153.112.89 ->
  202.96.105.149 ->
  202.96.105.97 ->
  202.96.105.101 ->
  202.96.105.150 ->
  61.153.112.90
  Ping statistics for 202.96.105.101:
  Packets: Sent = 1, Received = 1, Lost = 0 (0% loss),
  Approximate round trip times in milli-seconds:
  Minimum = 10ms, Maximum = 10ms, Average = 10ms
  从上面我就可以知道从我的计算机到202.96.105.101一共通过了202.107.208.187 ,202.107.210.214 , 61.153.112.70 , 61.153.112.89 , 202.96.105.149 , 202.96.105.97这几个路由。
  指定 count 指定的跃点数的时间戳。
  此参数和-r差不多,只是这个参数不记录数据包返回所经过的路由,最多也只记录4个。
  -j host-list Loose source route along host-list.
  利用 computer-list 指定的计算机列表路由数据包。连续计算机可以被中间网关分隔(路由稀疏源)IP 允许的最大数量为 9。
  -k host-list Strict source route along host-list.
  利用 computer-list 指定的计算机列表路由数据包。连续计算机不能被中间网关分隔(路由严格源)IP 允许的最大数量为 9。
  -w timeout Timeout in milliseconds to wait for each reply.
  指定超时间隔,单位为毫秒。
  此参数没有什么其他技巧。
  ping命令的其他技巧:在一般情况下还可以通过ping对方让对方返回给你的TTL值大小,粗略的判断目标主机的系统类型是Windows系列还是UNIX/Linux系列,一般情况下Windows系列的系统返回的TTL值在100-130之间,而UNIX/Linux系列的系统返回的TTL值在240-255之间,当然TTL的值在对方的主机里是可以修改的,Windows系列的系统可以通过修改注册表以下键值实现:
  [HKEY_LOCAL_MACHINE\sys tem\CurrentControlSet\Services\Tcpip\Parameters]
  "DefaultTTL"=dword:000000ff
  255---FF
  128---80
  64----40
  32----20
  Ping是个使用频率极高的网络诊断程序,用于确定本地主机是否能与另一台主机交换(发送与接收)数据报。根据返回的信息,你就可以推断TCP/IP参数是否设置得正确以及运行是否正常。需要注意的是:成功地与另一台主机进行一次或两次数据报交换并不表示TCP/IP配置就是正确的,你必须执行大量的本地主机与远程主机的数据报交换,才能确信TCP/IP的正确性。
  ===============================================
  Ping的返回信息有"Request Timed Out"、"Destination Net Unreachable"和"Bad IP address"还有"Source quench received"。
  "Request Timed Out"这个信息表示对方主机可以到达到TIME OUT,这种情况通常是为对方拒绝接收你发给它的数据包造成数据包丢失。大多数的原因可能是对方装有防火墙或已下线。
  "Destination Net Unreachable"这个信息表示对方主机不存在或者没有跟对方建立连接。这里要说明一下"destination host unreachable"和"time out"的区别,如果所经过的路由器的路由表中具有到达目标的路由,而目标因为其它原因不可到达,这时候会出现"time out",如果路由表中连到达目标的路由都没有,那就会出现"destination host unreachable"。
  "Bad IP address" 这个信息表示你可能没有连接到DNS服务器所以无法解析这个IP地址,也可能是IP地址不存在。
  "Source quench received"信息比较特殊,它出现的机率很少。它表示对方或中途的服务器繁忙无法回应。
  ===============================================
  怎样使用Ping这命令来测试网络连通呢?
  连通问题是由许多原因引起的,如本地配置错误、远程主机协议失效等,当然还包括设备等造成的故障。
  首先我们讲一下使用Ping命令的步骤。
  使用Ping检查连通性有六个步骤:
  1. 使用ipconfig /all观察本地网络设置是否正确;
  2. Ping 127.0.0.1,127.0.0.1 回送地址Ping回送地址是为了检查本地的TCP/IP协议有没有设置好;
  3. Ping本机IP地址,这样是为了检查本机的IP地址是否设置有误;
  4. Ping本网网关或本网IP地址,这样的是为了检查硬件设备是否有问题,也可以检查本机与本地网络连接是否正常;(在非局域网中这一步骤可以忽略)
  5.Ping本地DNS地址,这样做是为了检查DNS是否能够将IP。
  6.Ping远程IP地址,这主要是检查本网或本机与外部的连接是否正常。
  ===============================================
  在检查网络连通的过程中可能出现一些错误,这些错误总的来说分为两种最常见。
  1. Request Timed Out
  "request time out"这提示除了在《PING(一)》提到的对方可能装有防火墙或已关机以外,还有就是本机的IP不正确和网关设置错误。
  ①、IP不正确:
  IP不正确主要是IP地址设置错误或IP地址冲突,这可以利用ipconfig /all这命令来检查。在WIN2000下IP冲突的情况很少发生,因为系统会自动检测在网络中是否有相同的IP地址并提醒你是否设置正确。在NT中不但会出现"request time out"这提示而且会出现"Hardware error"这提示信息比较特殊不要给它的提示所迷惑。
  ②、网关设置错误:这个错误可能会在第四个步骤出现。网关设置错误主要是网关地址设置不正确或网关没有帮你转发数据,还有就是可能远程网关失效。这里主要是在你Ping外部网络地址时出错。错误表现为无法Ping外部主机返回信息"Request timeout"。
  2. Destination Host Unreachable
  当你在开始PING网络计算机时如果网络设备出错它返回信息会提示"destination host unreachable"。如果局域网中使用DHCP分配IP时,而碰巧DHCP失效,这时使用 PING命令就会产生此错误。因为在DHCP失效时客户机无法分配到IP系统只有自设IP,它往往会设为不同子网的IP。所以会出现"Destination Host Unreachable"。另外子网掩码设置错误也会出现这错误。
  还有一个比较特殊就是路由返回错误信息,它一般都会在"Destination Host Unreachable"前加上IP地址说明哪个路由不能到达目标主机。这说明你的机器与外部网络连接没有问题,但与某台主机连接存在问题。
 楼主| zhjiazhong 2011-3-27 15:58:21 | 显示全部楼层

PING的各类反馈信息

  Request timed out

  a.对方已关机,或者网络上根本没有这个地址:比如在上图中主机A中PING 192.168.0.7 ,或者主机B关机了,在主机A中PING 192.168.0.5 都会得到超时的信息。

  b.对方与自己不在同一网段内,通过路由也无法找到对方,但有时对方确实是存在的,当然不存在也是返回超时的信息。

  c.对方确实存在,但设置了ICMP数据包过滤(比如防火墙设置)

  怎样知道对方是存在,还是不存在呢,可以用带参数 -a 的Ping命令探测对方,如果能得到对方的NETBIOS名称,则说明对方是存在的,是有防火墙设置,如果得不到,多半是对方不存在或关机,或不在同一网段内。

  d.错误设置IP地址

  正常情况下,一台主机应该有一个网卡,一个IP地址,或多个网卡,多个IP地址(这些地址一定要处于不同的IP子网)。但如果一台电脑的“拨号网络适配器”(相当于一块软网卡)的TCP/IP设置中,设置了一个与网卡IP地址处于同一子网的IP地址,这样,在IP层协议看来,这台主机就有两个不同的接口处于同一网段内。当从这台主机Ping其他的机器时,会存在这样的问题:

  A.主机不知道将数据包发到哪个网络接口,因为有两个网络接口都连接在同一网段。

  B.主机不知道用哪个地址作为数据包的源地址。因此,从这台主机去Ping其他机器,IP层协议会无法处理,超时后,Ping 就会给出一个“超时无应答”的错误信息提示。但从其他主机Ping这台主机时,请求包从特定的网卡来,ICMP只须简单地将目的、源地址互换,并更改一些标志即可,ICMP应答包能顺利发出,其他主机也就能成功Ping通这台机器了。

  Destination host Unreachable

  对方与自己不在同一网段内,而自己又未设置默认的路由,比如上例中A机中不设定默认的路由,运行Ping 192.168.1.4就会出现“Destination host Unreachable”。

  网线出了故障

  这里要说明一下“destination host unreachable”和 “time out”的区别,如果所经过的路由器的路由表中具有到达目标的路由,而目标因为其他原因不可到达,这时候会出现“time out”,如果路由表中连到达目标的路由都没有,那就会出现“destination host unreachable”。

  Bad IP address

  这个信息表示您可能没有连接到DNS服务器,所以无法解析这个IP地址,也可能是IP地址不存在。

  Source quench received

  这个信息比较特殊,它出现的机率很少。它表示对方或中途的服务器繁忙无法回应。

  Unknown host——不知名主机

  这种出错信息的意思是,该远程主机的名字不能被域名服务器(DNS)转换成IP地址。故障原因可能是域名服务器有故障,或者其名字不正确,或者网络管理员的系统与远程主机之间的通信线路有故障。

  No answer——无响应

  这种故障说明本地系统有一条通向中心主机的路由,但却接收不到它发给该中心主机的任何信息。故障原因可能是下列之一:中心主机没有工作;本地或中心主机网络配置不正确;本地或中心的路由器没有工作;通信线路有故障;中心主机存在路由选择问题。

  Ping 127.0.0.1:127.0.0.1是本地循环地址

  如果本地址无法Ping通,则表明本地机TCP/IP协议不能正常工作。

  no rout to host:网卡工作不

相关CMD命令

  1. gpedit.msc-----组策略

  2. sndrec32-------录音机

  3. Nslookup-------IP地址侦测器

  4. explorer-------打开资源管理器

  5. logoff---------注销命令

  6. tsshutdn-------60秒倒计时关机命令

  7. lusrmgr.msc----本机用户和组

  8. services.msc---本地服务设置

  9. oobe/msoobe /a----检查XP是否激活

  10. notepad--------打开记事本

  11. cleanmgr-------垃圾整理

  12. net start messenger----开始信使服务

  13. compmgmt.msc---计算机管理

  14. net stop messenger-----停止信使服务

  15. conf-----------启动netmeeting

  16. dvdplay--------DVD播放器

  17. charmap--------启动字符映射表

  18. diskmgmt.msc---磁盘管理实用程序

  19. calc-----------启动计算器

  20. dfrg.msc-------磁盘碎片整理程序

  21. chkdsk.exe-----Chkdsk磁盘检查

  22. devmgmt.msc--- 设备管理器

  23. regsvr32 /u *.dll----停止dll文件运行

  24. drwtsn32------ 系统医生

  25. rononce -p ----15秒关机

  26. dxdiag---------检查DirectX信息

  27. regedit-------注册表编辑器

  28. Msconfig.exe---系统配置实用程序

  29. rsop.msc-------组策略结果集

  30. mem.exe--------显示内存使用情况

  31. regedit.exe----注册表

  32. winchat--------XP自带局域网聊天

  33. progman--------程序管理器

  34. winmsd---------系统信息

  35. perfmon.msc----计算机性能监测程序

  36. sfc /scannow-----扫描错误并复原

  37. taskmgr-----任务管理器(2000/xp/2003

  38. winver---------检查Windows版本

  39. wmimgmt.msc----打开windows管理体系结构(WMI)

  40. wupdmgr--------windows更新程序

  41. wscript--------windows脚本宿主设置

  42. write----------写字板

  43. wiaacmgr-------扫描仪和照相机向导

  44.. Msconfig.exe---系统配置实用程序

  45. mplayer2-------简易widnows media player (媒体播放机)

  46. mspaint--------画图板

  47. mstsc----------远程桌面连接

  48. magnify--------放大镜实用程序

  49. mmc------------打开控制台

  50. mobsync--------同步命令

  51. dcomcnfg-------打开系统组件服务

  52. ddeshare-------打开DDE共享设置

  53. nslookup-------网络管理的工具向导

  54. ntbackup-------系统备份和还原

  55. narrator-------屏幕“讲述人”

  56. ntmsmgr.msc----移动存储管理器

  57. ntmsoprq.msc---移动存储管理员操作请求

  58. netstat -an----(TC)命令检查接口

  59. syncapp--------创建一个公文包

  60. sysedit--------系统配置编辑器

  61. sigverif-------文件签名验证程序

  62. shrpubw--------创建共享文件夹

  63. secpol.msc-----本地安全策略

  64. syskey---------系统加密,一旦加密就不能解开,保护windows xp系统的双重密码

  65. services.msc---本地服务设置

  66. Sndvol32-------音量控制程序

  67. sfc.exe--------系统文件检查器

  68. tourstart------xp简介(安装完成后出现的漫游xp程序)

  69. eventvwr-------事件查看器

  70. eudcedit-------造字程序

  71. packager-------对象包装程序

  72. regedit.exe----注册表

  73. regsvr32 /u zipfldr.dll------取消ZIP支持

  74. cmd.exe--------CMD命令提示符

  75. chkdsk.exe-----Chkdsk磁盘检查

  76. certmgr.msc----证书管理实用程序

  77. cliconfg-------SQL SERVER 客户端网络实用程序

  78. Clipbrd--------剪贴板查看器

  79. ciadv.msc------索引服务程序

  80. osk------------打开屏幕键盘

  81. odbcad32-------ODBC数据源管理器

  82. iexpress-------木马捆绑工具,系统自带

  83. fsmgmt.msc-----共享文件夹管理器

  84. utilman--------辅助工具管理器

ping UNIX命令

  用途

  发送一个回送信号请求给网络主机。

  语法

  ping [ -d] [ -D ] [ -n ] [ -q ] [ -r] [ -v] [ \ -R ] [ -a addr_family ] [ -c Count ] [ -w timeout ] [ -f | -i \ Wait ] [ -l Preload ] [ -p Pattern ] [ -s PacketSize ] [ -S hostname/IP addr ] \ [ -L ] [ - I a.b.c.d. ] [ -o interface ] [ -T ttl ] Host [ PacketSize ] \ [ Count ]

  描述

  /usr/sbin/ping 命令发送一个因特网控制报文协议(ICMP) ECHO_REQUEST 去从主机或网关那里获得 ICMP ECHO_RESPONSE 信号。ping 命令用于:

  * 确定网络和各外部主机的状态。

  * 跟踪和隔离硬件和软件问题。

  * 测试、评估和管理网络。

 楼主| zhjiazhong 2011-3-27 16:03:55 | 显示全部楼层

    如果主机正在运行并连在网上,它就对回送信号进行响应。每个回送信号请求包含一个网际协议(IP)和 ICMP 头,后面紧跟一个 timeval 结构,以及来填写这个信息包的足够的字节。缺省情况是连续发送回送信号请求直到接收到中断信号(Ctrl-C)。

  ping 命令每秒发送一个数据报并且为每个接收到的响应打印一行输出。ping 命令计算信号往返时间和(信息)包丢失情况的统计信息,并且在完成之后显示一个简要总结。ping 命令在程序超时或当接收到 SIGINT 信号时结束。Host 参数或者是一个有效的主机名或者是因特网地址。

  缺省情况下,ping 命令将连续发送回送信号请求到显示器直到接收到中断信号(Ctrl-C). 中断键可以使用 stty 命令来更改。

  由于连续回送信号请求会对系统造成一定的负载,重复的请求信号应当主要用作问题隔离。

  标志

  -c Count 指定要被发送(或接收)的回送信号请求的数目,由 Count 变量指出。

  -w timeout 这个选项仅和 -c 选项一起才能起作用。它使 ping 命令以最长的超时时间去等待应答(发送最后一个信息包后)。

  -d 开始套接字级别的调试。

  -D 这个选项引起 ICMP ECHO_REPLY 信息包向标准输出的十六进制转储。

  -f 指定 flood-ping 选项。 -f 标志“倾倒”或输出信息包,在它们回来时或每秒 100 次,选择较快一个。每一次发送 ECHO_REQUEST,都打印一个句号,而每接收到一个 ECHO_REPLY 信号,就打印一个退格。这就提供了一种对多少信息包被丢弃的信息的快速显示。仅仅 root 用户可以使用这个选项。

  注:这在网络上将非常困难,必须小心使用。Flood ping 命令仅仅 root 用户可以使用。-f 标志与 -i Wait 标志不兼容。

  -I a.b.c.d 指定被 a.b.c.d 标明的接口将被用于向外的 IPv4 多点广播。-I 标志是大写的 i 。

  -o interface 指出 interface 将被用于向外的 IPv6 多点广播。接口以 “en0”,“tr0”等的形式指定。

  -i Wait 在每个信息包发送之间等待被 Wait 变量指定的时间(秒数)。缺省值是在每个信息包发送之间等待 1 秒。这个选项与 -f 标志不兼容。

  -L 对多点广播 ping 命令禁用本地回送。

  -l Preload 在进入正常行为模式(每秒 1 个)前尽快发送 Preload 变量指定数量的信息包。-l 标志是小写的 L。

  -n 指定仅输出数字。不企图去查寻主机地址的符号名。

  -p Pattern 指定用多达 16 个“填充”字节去填充你发送的信息包。这有利于诊断网络上依赖数据的问题。例如,-p ff 全部用 1 填充信息包。

  -q 指定静默输出。除了在启动和结束时显示总结行外什么也不显示。

  -r 忽略路由表直接送到连接的网络上的主机上。如果 主机 不在一个直接连接的网络上,ping 命令将产生一个错误消息。这个选项可以被用来通过一个不再有路由经过的接口去 ping 一个本地主机。

  -R 指定记录路由选项。-R 标志包括 ECHO_REQUEST 信息包中的 RECORD_ROUTE 选项,并且显示返回信息包上的路由缓冲。

  注: IP 头仅仅大到适合 9 个这样的路由。而且,许多主机和网关忽略这个选项。

  -a addr_family 映射 ICMP 信息包的目的地址到 IPv6 格式,如果 addr_family 等于 “inet6”的话。

  -s PacketSize 指定要发送数据的字节数。缺省值是 56,当和 8 字节的 ICMP 头数据合并时被转换成 64 字节的 ICMP 数据。

  -S hostname/IP addr 将 IP 地址用作发出的 ping 信息包中的源地址。在具有不止一个 IP 地址的主机上,可以使用 -S 标志来强制源地址为除了软件包在其上发送的接口的 IP 地址外的任何地址。如果 IP 地址不是以下机器接口地址之一,则返回错误并且不进行任何发送。

  -T ttl 指定多点广播信息包的生存时间为 ttl 秒。

  -v 请求详细输出,其中列出了除回送信号响应外接收到的 ICMP 信息。

  参数

  PacketSize 指定了要发送数据的字节数。缺省值是 56,当和 8 字节的 ICMP 头数据合并时被转换成 64 字节的 ICMP 数据。包含这个参数是为了和以前的 ping 命令版本相兼容。

  Count 指定了要发送(接收)的回送信号请求的数目。包含这个参数是为了和以前的 ping 命令版本相兼容。

  示例

  1. 要检查网络和主机 canopus 的连接性,并且指定要发送的回送信号请求的数目,请输入:

  ping -c 5 canopus

  或者

  ping canopus 56 5

  类似下列的信息将被显示:

  PING canopus.austin.century com: (128.116.1.5): 56 data bytes

  64 bytes from 128.116.1.5: icmp_seq=0 ttl=255 time=2 ms

  64 bytes from 128.116.1.5: icmp_seq=1 ttl=255 time=2 ms

  64 bytes from 128.116.1.5: icmp_seq=2 ttl=255 time=3 ms

  64 bytes from 128.116.1.5: icmp_seq=3 ttl=255 time=2 ms

  64 bytes from 128.116.1.5: icmp_seq=4 ttl=255 time=2 ms

  ----canopus.austin.century com PING Statistics----

  5 packets transmitted, 5 packets received, 0% packet loss

  round-trip min/avg/max = 2/2/3 ms

  2. 要想获取有关主机 lear 的信息,并且启动套接字级别的调试,请输入:

  ping -d lear

  类似下列的信息将被显示:

  PING lear.austin.century com: (128.114.4.18) 56 data bytes

  64 bytes from 128.114.4.18: icmp_seq=0 ttl=255 time=6 ms

  64 bytes from 128.114.4.18: icmp_seq=1 ttl=255 time=17 ms

  64 bytes from 128.114.4.18: icmp_seq=2 ttl=255 time=6 ms

  64 bytes from 128.114.4.18: icmp_seq=3 ttl=255 time=6 ms

  64 bytes from 128.114.4.18: icmp_seq=4 ttl=255 time=6 ms

  ^C

  ----lear.austin.century com PING Statistics ----

  5 packets transmitted, 5 packets received, 0% packet loss

  round-trip min/avg/max = 6/8/17 ms

  注:输出将一直重复直到接收到中断信号(Ctrl-C)。

  3. 要获取有关主机 opus 的信息,并且指定要发送的字节数,请输入:

  ping -s 2000 opus

  或者

  ping opus 2000

  类似下列的信息将被显示:

  PING opus.austin.century com: (129.35.34.234): 2000 data bytes

  2008 bytes from 129.35.34.234: icmp_seq=0 ttl=255 time=20 ms

  2008 bytes from 129.35.34.234: icmp_seq=1 ttl=255 time=19 ms

  2008 bytes from 129.35.34.234: icmp_seq=2 ttl=255 time=20 ms

  2008 bytes from 129.35.34.234: icmp_seq=3 ttl=255 time=20 ms

  2008 bytes from 129.35.34.234: icmp_seq=4 ttl=255 time=20 ms

  2008 bytes from 129.35.34.234: icmp_seq=5 ttl=255 time=19 ms

  2008 bytes from 129.35.34.234: icmp_seq=6 ttl=255 time=19 ms

  ^C

  ----opus.austin.century com PING Statistics----

  7 packets transmitted, 7 packets received, 0% packet loss

  round-trip min/avg/max = 19/19/20 ms

  注:输出将一直重复直到接收到中断信号 (Ctrl-C)。

  4. 要调用 flood-ping 选项给主机 stlopnor,请输入:

  ping -f stlopnor

  类似下列的信息将被显示:

  Ping stlopnor.austin.century com: (129.35.34.234): 56 data bytes

  .^C

  ----stlopnor.austin.century com PING Statistics ----

  1098 packets transmitted, 1097 packets received, 0% packet loss

  round-trip min/avg/max = 4/4/11

  注: flood-ping 命令的输出将一直重复,直到接收到中断信号(Ctrl-C)。

  5. 要指定发送到主机 opus 信息包的发送时间间隔为 5 秒,请输入:

  ping -i5 opus

  类似下列的信息将被显示:

  PING opus.austin.century com: (129.35.34.234): 56 data bytes

  64 bytes from 129.35.34.234: icmp_seq=0 ttl=255 time=5 ms

  64 bytes from 129.35.34.234: icmp_seq=1 ttl=255 time=5 ms

  64 bytes from 129.35.34.234: icmp_seq=2 ttl=255 time=6 ms

  ^C

  ----opus.austin.century com PING Statistics----

  3 packets transmitted, 3 packets received, 0% packet loss

  round-trip min/avg/max = 5/5/6 ms

  注:输出将一直重复,直到接收到中断信号(Ctrl-C)。

  6. 在进入正常行为模式前尽快发送 Preload 变量指定的数量的信息包到主机 opus,请输入:

  ping -l 10 opus

  类似下列的信息将被显示:

  PING opus.austin.century com: (129.35.34.234): 56 data bytes

  64 bytes from 129.35.34.234: icmp_seq=0 ttl=255 time=9 ms

  64 bytes from 129.35.34.234: icmp_seq=1 ttl=255 time=11 ms

  64 bytes from 129.35.34.234: icmp_seq=2 ttl=255 time=16 ms

  64 bytes from 129.35.34.234: icmp_seq=3 ttl=255 time=22 ms

  64 bytes from 129.35.34.234: icmp_seq=4 ttl=255 time=26 ms

  64 bytes from 129.35.34.234: icmp_seq=5 ttl=255 time=27 ms

  64 bytes from 129.35.34.234: icmp_seq=6 ttl=255 time=30 ms

  64 bytes from 129.35.34.234: icmp_seq=7 ttl=255 time=31 ms

  64 bytes from 129.35.34.234: icmp_seq=8 ttl=255 time=33 ms

  64 bytes from 129.35.34.234: icmp_seq=9 ttl=255 time=35 ms

  64 bytes from 129.35.34.234: icmp_seq=10 ttl=255 time=36 ms

  64 bytes from 129.35.34.234: icmp_seq=11 ttl=255 time=6 ms

  64 bytes from 129.35.34.234: icmp_seq=12 ttl=255 time=6 ms

  64 bytes from 129.35.34.234: icmp_seq=13 ttl=255 time=6 ms

  64 bytes from 129.35.34.234: icmp_seq=14 ttl=255 time=7 ms

  64 bytes from 129.35.34.234: icmp_seq=15 ttl=255 time=6 ms

  ^C

  ----opus.austin.century com PING Statistics----

  16 packets transmitted, 16 packets received, 0% packet loss

  round-trip min/avg/max = 6/19/36 ms

  注:输出将一直重复,直到接收到中断信号(Ctrl-C)。

  7. 要诊断网络上依赖数据的问题,请输入:

  ping -p ff opus

  这个命令用全为 1 的填充模式发送信息包给主机 opus 。类似下列的信息将被显示:

  PATTERN: 0xff

  PING opus.austin.century com: (129.35.34.234): 56 data bytes

  64 bytes from 129.35.34.234: icmp_seq=0 ttl=255 time=5 ms

  64 bytes from 129.35.34.234: icmp_seq=1 ttl=255 time=5 ms

  64 bytes from 129.35.34.234: icmp_seq=2 ttl=255 time=5 ms

  64 bytes from 129.35.34.234: icmp_seq=3 ttl=255 time=6 ms

  64 bytes from 129.35.34.234: icmp_seq=4 ttl=255 time=5 ms

  ^C

  ----opus.austin.century com PING Statistics----

  5 packets transmitted, 5 packets received, 0% packet loss

  round-trip min/avg/max = 5/5/6 ms

  注:输出将一直重复,直到接收到中断信号(Ctrl-C)。

  8. 要指定静默输出,请输入:

  ping -q bach

  仅仅类似下列的总结信息将被显示:

  PING bach.austin.century com: (129.35.34.234): 56 data bytes

  ^C

  ----bach.austin.century com PING Statistics----

  5 packets transmitted, 5 packets received, 0% packet loss

  round-trip min/avg/max = 5/5/8 ms

  注:虽然没有显示,信息包的输出将一直继续,直到接收到中断信号(Ctrl-C)。

利用ping命令检查网络故f.障

  事实上,无论是什么类型的故障诊断工具,在一些特殊网络故障面前都会显得无能为力;此时,我们所能做的就是依靠自己,从使用Ping命令开始,手工逐步排查故障原因。

  首先对本地工作站的循环地址127.0.0.1进行ping测试。当遇到一些无法直接找到故障原因的特殊网络故障时,我们首先需要使用Ping命令测试一下本地工作站的循环地址127.0.0.1能否被正常Ping通,倘若该地址无法被正常Ping通的话,那么说明本地工作站的TCP/IP协议程序受到了破坏,或者网卡设备发生了损坏。

  此时,我们不妨打开本地工作站系统的设备管理器窗口,从中找到网卡设备选项,并用鼠标右键单击该选项,从弹出的快捷菜单中执行“属性”命令,打开网卡设备的属性设置窗口,在该窗口的“常规”标签页面中我们就能看到当前的网卡工作状态是否正常了。

  当发现网卡工作状态正常的话,那很有可能是本地工作站的TCP/IP协议程序受到了破坏,此时我们不妨打开本地连接属性设置窗口,选中并删除该设置窗口中的TCP/IP协议选项,之后再重新安装一下TCP/IP协议程序,相信这么一来本地工作站的循环地址127.0.0.1就能被正常Ping通了。

  其次对本地工作站的IP地址进行ping测试。在确认127.0.0.1地址能够被Ping通的情况下,我们继续使用Ping命令测试一下本地工作站的静态IP地址是否能被正常Ping通,倘若该地址不能被正常Ping通的话,那么说明本地工作站的网卡参数没有设置正确,或者网卡驱动程序不正确,也有可能是本地的路由表受到了破坏。

  此时我们可以重新检查一下本地工作站的网络参数是否设置正确,如果在网络参数设置正确的情况下仍然无法Ping通本地IP地址的话,我们最好重新安装一下网卡设备的原装驱动程序,相信这么一来我们就能正确Ping通本地工作站的静态IP地址了。一旦本地工作站的静态IP地址被顺利Ping通的话,那就表明本地工作站已经能够加入到局域网网络中了。

  接着对本地局域网的默认网关地址进行ping测试。由于本地工作站是通过网关与局域网中的其他工作站进行相互通信的,只有本地工作站与默认网关之间连接正常,才能确保本地工作站与其他工作站通信正常。倘若网关地址能被正常Ping通的话,那就表明本地工作站可以与局域网中的其他工作站进行正常通信。

  要是Ping命令操作不成功的话,那很有可能是网关设备自身存在问题,或者是本地工作站与网关之间的线路连接不正常,也有可能是本地工作站与网关没有设置成同一个子网中。此时,我们可以先用专业的线缆测试工具测试一下网络线缆的连通性,在线缆连通性正常的情况下,再检查本地工作站的网络参数是否与网关的参数设置成同一个子网中。

  倘若网络参数设置正确的话,我们再从其他工作站Ping一下网关地址,以便确认网关自身是否存在原因,如果局域网中的其他工作站也无法Ping通网关的话,那多半是网关设备自身存在问题,这个时候我们只要将故障排查重点锁定在网关设备上就可以了。

  下面对局域网中任意一台远程工作站的IP地址进行ping测试,以便检验本地工作站能否通过网关设备与局域网中的其他工作站进行通信。要是我们发现远程工作站的IP地址无法Ping通的话,那很有可能是远程工作站自身无法响应,或者是远程工作站与网关设备之间的线路连接出现了问题,此时我们可以将网络故障的排查重点聚焦到远程工作站上或者是局域网的网络设备上。

  最后对局域网的远程工作站主机名称进行ping测试。在确认能够Ping通远程工作站IP地址的情况下,仍然出现无法访问远程工作站内容的时候,我们就有必要进行这一项测试操作。如果该主机名称无法被Ping成功的话,那很有可能是DNS解析出现了问题,而不是网络连接发生了故障,此时我们不妨把故障检查重点锁定在DNS服务器上。

  小提示:为了有效地找出网络故障原因,我们在使用Ping命令进行测试检查时,尽量确保局域网中只配置了一个网关,同时确保本地工作站没有启用IP安全设置策略,这样可以保证Ping命令能够获得正确的测试结果

 楼主| zhjiazhong 2011-3-27 16:08:50 | 显示全部楼层
本帖最后由 zhjiazhong 于 2011-3-27 16:11 编辑

Ping命令的幕后过程及其返回信息的分析

“Ping”命令是我们在判断网络故障常用的命令,但您真正明白这个命令运行后会发生什么,以及出现的各种信息说明了什么吗?本人将平时工作中积累的经验介绍给大家。

  “Ping”的幕后过程

  我们以下面一个网络为例:有ABCD四台机子,一台路由RA,子网掩码均为255.255.255.0,默认路由为192.168.0.1

  1.在同一网段内

  在主机A上运行“Ping 192.168.0.5”后,都发生了些什么呢? 首先,Ping命令会构建一个固定格式的ICMP请求数据包,然后由ICMP协议将这个数据包连同地址“192.168.0.5”一起交给IP层协议(和ICMP一样,实际上是一组后台运行的进程),IP层协议将以地址“192.168.0.5”作为目的地址,本机IP地址作为源地址,加上一些其他的控制信息,构建一个IP数据包,并想办法得到192.168.0.5MAC地址(物理地址,这是数据链路层协议构建数据链路层的传输单元——帧所必需的),以便交给数据链路层构建一个数据帧。关键就在这里,IP层协议通过机器BIP地址和自己的子网掩码,发现它跟自己属同一网络,就直接在本网络内查找这台机器的MAC,如果以前两机有过通信,在A机的ARP缓存表应该有BIP与其MAC的映射关系,如果没有,就发一个ARP请求广播,得到B机的MAC,一并交给数据链路层。后者构建一个数据帧,目的地址是IP层传过来的物理地址,源地址则是本机的物理地址,还要附加上一些控制信息,依据以太网的介质访问规则,将它们传送出去。

  主机B收到这个数据帧后,先检查它的目的地址,并和本机的物理地址对比,如符合,则接收;否则丢弃。接收后检查该数据帧,将IP数据包从帧中提取出来,交给本机的IP层协议。同样,IP层检查后,将有用的信息提取后交给ICMP协议,后者处理后,马上构建一个ICMP应答包,发送给主机A,其过程和主机A发送ICMP请求包到主机B一模一样。

  

  2.不在同一网段内

  在主机A上运行“Ping 192.168.1.4”后,开始跟上面一样,到了怎样得到MAC地址时,IP协议通过计算发现D机与自己不在同一网段内,就直接将交由路由处理,也就是将路由的MAC取过来,至于怎样得到路由的MAC,跟上面一样,先在ARP缓存表找,找不到就广播吧。路由得到这个数据帧后,再跟主机D进行联系,如果找不到,就向主机A返回一个超时的信息。

  

  Ping后返回信息的分析

  1.Request timed out

  这是大家经常碰到的提示信息,很多文章中说这是对方机器置了过滤ICMP数据包,从上面工作过程来看,这是不完全正确的,至少有下几种情况。

01.jpg

1对方已关机,或者网络上根本没有这个地址:比如在上图中主机APING 192.168.0.7 ,或者主机B关机了,在主机APING 192.168.0.5 都会得到超时的信息。

2)对方与自己不在同一网段内,通过路由也无法找到对方,但有时对方确实是存在的,当然不存在也是返回超时的信息。

3)对方确实存在,但设置了ICMP数据包过滤(比如防火墙设置)。

怎样知道对方是存在,还是不存在呢,可以用带参数 -a Ping命令探测对方,如果能得到对方的NETBIOS名称,则说明对方是存在的,是有防火墙设置,如果得不到,多半是对方不存在或关机,或不在同一网段内。

4)错误设置IP地址

正常情况下,一台主机应该有一个网卡,一个IP地址,或多个网卡,多个IP地址(这些地址一定要处于不同的IP子网)。但如果一台电脑的拨号网络适配器(相当于一块软网卡)的TCP/IP设置中,设置了一个与网卡IP地址处于同一子网的IP地址,这样,在IP层协议看来,这台主机就有两个不同的接口处于同一网段内。当从这台主机Ping其他的机器时,会存在这样的问题:

A.主机不知道将数据包发到哪个网络接口,因为有两个网络接口都连接在同一网段。

B.主机不知道用哪个地址作为数据包的源地址。因此,从这台主机去Ping其他机器,IP层协议会无法处理,超时后,Ping 就会给出一个超时无应答的错误信息提示。但从其他主机Ping这台主机时,请求包从特定的网卡来,ICMP只须简单地将目的、源地址互换,并更改一些标志即可,ICMP应答包能顺利发出,其他主机也就能成功Ping通这台机器了。

2.Destination host Unreachable

1
对方与自己不在同一网段内,而自己又未设置默认的路由,比如上例中A机中不设定默认的路由,运行Ping 192.168.0.1.4就会出现“Destination host Unreachable”

2)网线出了故障

这里要说明一下“destination host unreachable” “time out”的区别,如果所经过的路由器的路由表中具有到达目标的路由,而目标因为其他原因不可到达,这时候会出现“time out”,如果路由表中连到达目标的路由都没有,那就会出现“destination host unreachable”

3.Bad IP address

这个信息表示您可能没有连接到DNS服务器,所以无法解析这个IP地址,也可能是IP地址不存在。

4.Source quench received

这个信息比较特殊,它出现的机率很少。它表示对方或中途的服务器繁忙无法回应。

5.Unknown host——不知名主机

这种出错信息的意思是,该远程主机的名字不能被域名服务器(DNS)转换成IP地址。故障原因可能是域名服务器有故障,或者其名字不正确,或者网络管理员的系统与远程主机之间的通信线路有故障。

6.No answer——无响应

这种故障说明本地系统有一条通向中心主机的路由,但却接收不到它发给该中心主机的任何信息。故障原因可能是下列之一:中心主机没有工作;本地或中心主机网络配置不正确;本地或中心的路由器没有工作;通信线路有故障;中心主机存在路由选择问题。

7.Ping 127.0.0.1127.0.0.1是本地循环地址

如果本地址无法Ping通,则表明本地机TCP/IP协议不能正常工作。

8.no rout to host:网卡工作不正常。

9.transmit failed,error code10043网卡驱动不正常。

10.unknown host nameDNS配置不正确。

以上是在Ping)的过程中的一些经验技巧,希望能对大家的工作和学习有所帮助。

qiongzuoshi 2011-3-31 23:39:28 | 显示全部楼层
长见识了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

一键重装系统|雨人系统下载|联系我们|网站地图|过期罐头电脑论坛

GMT+8, 2024-4-20 03:18 , Processed in 0.047410 second(s), 28 queries .

官方免责声明:本站内容来自网友和互联网.若侵犯到您的版权.请致信联系,我们将第一时间删除相关内容!

Powered by Discuz!

专注于win7_win10_win11系统下载装机

© 2010-2023 GQGTPC.Com

快速回复 返回顶部 返回列表