Reply from XXX.XXX.X.X: bytes=32 time

1个回答

  • ping是一个很常用的小工具,它主要用于确定网络的连通性问题.使用ping命令后,常见的出错信息通常分为3种:

    1、Unknown host:不知名主机这种出错信息的意思是,该远程主机的名字不能被域名服务器(DNS)转换成IP地址.

    故障原因可能是域名服务器有故障,或者其名字不正确,或者网络管理员的系统与远程主机之间的通信线路有故障. 飞

    2、Noanswer:无响应这种故障说明本地系统有一条通向中心主机的路由,但却接收不到它发给该中心主机的任何信·

    息.故障原因可能是下列之一:中心主机没有工作;本地或中心主机网络配置不正确:本地或中心的路由器没有;1::作:

    通信线路有故障;中心主机存在路由选择问题. 1

    3、Request timbd out:超时工作站与中心主机的连接超时,数据包全部丢失of原因:可能是到路由器的连接出现

    问题,或路由器不能通过,也可能是中心主机已经关机或死机.

    如何用ping命令查找无法上网的原因?

    1.Ping命令的语法格式:

    有必要先给不了解Ping命令的人介绍一卜Ping命令的具体语法格式:ping目的地址[参数1J[参数2]……

    其中目的地址是指被测试计算机的IP地址或域名.主要参数有:

    a:解析主机地址.

    n:数据:发出的测试包的个数,缺省值为4.

    l:数值:所发送缓冲区的大小.

    t:继续执行Ping命令,直到用户按Ctrl/C终上.

    有关hng的其他参数,可通过在MS-DOS提示符—卜运行Ping或Ping—?命令来查看.

    2.hng命令的应用技巧:

    用Ping::[:具检查网络服务器和任意一台客户端上TCP/IP协议的:]二作情况时,只要在网络中其他任何一台计算机上Ping

    该计算机的IP地址即可.例如要检查网络文件服务器192.192.225.225HPQW上的TCP/IP协议二[:作是否正常,只要在

    开始菜单下的“运行”子项中键入Ping 192.192.225.225就可以了.如果HPQW的TCP/IP协议:[:作正常,即会以DOS

    屏幕方式显示如下所示的信息:

    Pinging 192.192.225.225 with 32 byteS of dara:

    Reply from 192.192.225,225:bytes=32 time=lms TTL二128

    Reply from 192.192,225.225:bytes=32 timeping 61.152.104.40

    Pinging 61.152.104.40 with 32 bytes of data:

    Reply from 61.152.104.40: bytes=32 time=28ms TTL=54

    Reply from 61.152.104.40: bytes=32 time=18ms TTL=54

    Reply from 61.152.104.40: bytes=32 time=18ms TTL=54

    Reply from 61.152.104.40: bytes=32 time=13ms TTL=54

    Ping statistics for 61.152.104.40:

    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss

    Approximate round trip times in milli-seconds:

    Minimum = 13ms, Maximum = 28ms, Average = 19ms

    第一台TTL为118,则基本可以判断这是一台Windows机器,从我的机器到这台机器经过了10个节点,因为128-118=10.而第二台应该是台Linux,理由一样64-54=10.

    了解了上面的东西,可能有人会有一些疑问,例如以下:

    1,不是说包可能走很多路径吗,为什么我看到的4个包TTL都是一样的,没有出现不同?

    这是由于包经过的路径是经过了一些最优选择算法来定下来的,在网络拓扑稳定一段时间后,包的路由路径也会相对稳定在一个最短路径上.具体怎么算出来的要去研究路由算法了,不在讨论之列.

    2,对于上面例子第二台机器,为什么不认为它是经过了74个节点的Windows机器?因为128-74=54.

    对于这个问题,我们要引入另外一个很好的ICMP协议工具.不过首先要声明的是,一个包经过74个节点这个有些恐怖,这样的路径还是不用为好.

    要介绍的这个工具是tracert(*nix下为traceroute),让我们来看对上面的第二台机器用这个命令的结果

    D:Documents and Settingshx>tracert 61.152.104.40

    Tracing route to 61.152.104.40 over a maximum of 30 hops

    1 13 ms 16 ms 9 ms 10.120.32.1

    2 9 ms 9 ms 11 ms 219.233.244.105

    3 12 ms 10 ms 10 ms 219.233.238.173

    4 15 ms 15 ms 17 ms 219.233.238.13

    5 14 ms 19 ms 19 ms 202.96.222.73

    6 14 ms 17 ms 13 ms 202.96.222.121

    7 14 ms 15 ms 14 ms 61.152.81.86

    8 15 ms 14 ms 13 ms 61.152.87.162

    9 16 ms 16 ms 28 ms 61.152.99.26

    10 12 ms 13 ms 18 ms 61.152.99.94

    11 14 ms 18 ms 16 ms 61.152.104.40

    Trace complete.

    从这个命令的结果能够看到从我的机器到服务器所走的路由,确实是11个节点(上面说10个好像是我犯了忘了算0的错误了,应该是64-54+1,嘿嘿),而不是128的TTL经过了70多个节点.

    既然已经说到这里了,不妨顺便说说关于这两个ICMP命令的高级一点的东西.

    首先是ping命令,其实ping有这样一个参数,可以无视操作系统默认TTL值而使用自己定义的值来发送ICMP Request包.

    例如还是用那台Linux机器,用以下命令:

    D:Documents and Settingshx>ping 61.152.104.40 -i 11

    Pinging 61.152.104.40 with 32 bytes of data:

    Reply from 61.152.104.40: bytes=32 time=10ms TTL=54

    Reply from 61.152.104.40: bytes=32 time=13ms TTL=54

    Reply from 61.152.104.40: bytes=32 time=10ms TTL=54

    Reply from 61.152.104.40: bytes=32 time=13ms TTL=54

    Ping statistics for 61.152.104.40:

    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),

    Approximate round trip times in milli-seconds:

    Minimum = 10ms, Maximum = 13ms, Average = 11ms

    D:Documents and Settingshx>

    这个命令我们定义了发包的TTL为11,而前面我们知道,我到这台服务器是要经过11个节点的,所以这个输出和以前没什么不同.现在再用这个试试看:

    D:Documents and Settingshx>ping 61.152.104.40 -i 10

    Pinging 61.152.104.40 with 32 bytes of data:

    Reply from 61.152.99.94: TTL expired in transit.

    Reply from 61.152.99.94: TTL expired in transit.

    Reply from 61.152.99.94: TTL expired in transit.

    Reply from 61.152.99.94: TTL expired in transit.

    Ping statistics for 61.152.104.40:

    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),

    Approximate round trip times in milli-seconds:

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

    D:Documents and Settingshx>

    可以看到,结果不一样了,我定义了TTL为10来发包,结果是TTL expired in transit.就是说在到达服务器之前这个包的生命周期就结束了.注意看这句话前面的ip,这个ip恰好是我们前面tracert结果到服务器之前的最后1个ip,包的TTL就是在这里减少到0了,根据我们前面的讨论,当TTL减为0时设备会丢弃包并发送一个TTL过期的ICMP反馈给源地址,这里的结果就是最好的证明.

    通过这里再次又证明了从我机器到服务器是经过了11个节点而不是70多个,呵呵.

    最后再巩固一下知识,有人可能觉得tracer这个命令很神奇,可以发现一个包所经过的路由路径.其实这个命令的原理就在我们上面的讨论中.

    想象一下,如果我给目的服务器发送一个TTL为1的包,结果会怎样?

    根据前面的讨论,在包港出发的第一个节点,TTL就会减少为0,这时这个节点就会回应TTL失效的反馈,这个回应包含了设备本身的ip地址,这样我们就得到了路由路径的第一个节点的地址.

    因此,我们继续发送TTL=2的包,也就受到第二个节点的TTL失效回应

    依次类推,我们一个一个的发现,当最终返回的结果不是TTL失效而是ICMP Response的时候,我们的tracert也就结束了,就是这么简单.

    顺便补一句ping命令还有个-n的参数指定要发包的数量,指定了这个数字就会按照你的要求来发包了而不是默认的4个包.如果使用-t参数的话,命令会一直发包直到你强行中止它.