返回论坛首页联系我们论坛帮助
>> 在使用电脑时遇到问题了吗?来这里求答解疑吧……本版精华
搜一搜相关精彩主题 
泥客论坛(十几年前的回忆)泥客技术☆电脑应用☆ → ping 命令详解

您是本帖的第 5552 个阅读者
树形 打印
标题:
ping 命令详解
小轲
帅哥哟,离线,有人找我吗?
头衔:泥客主席
等级:校长
威望:10
文章:10703
积分:67062
注册:1949年10月1日
楼主
  QQ 点击这里发送电子邮件给小轲 访问小轲的主页

发贴心情
ping 命令详解

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

1、Unknown host:不知名主机这种出错信息的意思是,该远程主机的名字不能被域名服务器(DNS)转换成IP地址。故障原因可能是域名服务器有故障,或者其名字不正确,或者网络管理员的系统与远程主机之间的通信线路有故障。
2、Noanswer:无响应这种故障说明本地系统有一条通向中心主机的路由,但却接收不到它发给该中心主机的任何信息。故障原因可能是下列之一:中心主机没有工作;本地或中心主机网络配置不正确:本地或中心的路由器没有工作;通信线路有故障;中心主机存在路由选择问题。
3、Request timbd out:超时工作站与中心主机的连接超时,数据包全部丢失of原因:可能是到路由器的连接出现问题,或路由器不能通过,也可能是中心主机已经关机或死机。

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

1.Ping命令的语法格式:

ping命令看似小小的一个工具,但它带有许多参数,要完全掌握它的使用方法还真不容易,要达到熟练使用则更是难下加难,但不管怎样我们还得来看看它的真面目,首先我们还是从最基本的命令格式入手吧!

ping命令的完整格式如下:

ping [-t] [-a] [-n count] [-l length] [-f] [-i ttl] [-v tos] [-r count] [-s count] [-j -Host list] | [-k Host-list] [-w timeout] destination-list

从这个命令式中可以看出它的复杂程度,ping命令本身后面都是它的执行参数,现对其参数作一下详细讲解吧!

-t—— 有这个参数时,当你ping一个主机时系统就不停的运行ping这个命令,直到你按下Control-C。

-a——解析主机的NETBIOS主机名,如果你想知道你所ping的要机计算机名则要加上这个参数了,一般是在运用ping命令后的第一行就显示出来。

-n count——定义用来测试所发出的测试包的个数,缺省值为4。通过这个命令可以自己定义发送的个数,对衡量网络速度很有帮助,比如我想测试发送20个数据包的返回的平均时间为多少,最快时间为多少,最慢时间为多少就可以通过执行带有这个参数的命令获知。

-l length——定义所发送缓冲区的数据包的大小,在默认的情况下windows的ping发送的数据包大小为32byt,也可以自己定义,但有一个限制,就是最大只能发送65500byt,超过这个数时,对方就很有可能因接收的数据包太大而死机,所以微软公司为了解决这一安全漏洞于是限制了ping的数据包大小。

-f—— 在数据包中发送“不要分段”标志,一般你所发送的数据包都会通过路由分段再发送给对方,加上此参数以后路由就不会再分段处理。

-i ttl—— 指定TTL值在对方的系统里停留的时间,此参数同样是帮助你检查网络运转情况的。

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

-r count—— 在“记录路由”字段中记录传出和返回数据包的路由。一般情况下你发送的数据包是通过一个个路由才到达对方的,但到底是经过了哪些路由呢?通过此参数就可以设定你想探测经过的路由的个数,不过限制在了9个,也就是说你只能跟踪到9个路由。

-s count——指定“count” 指定的跃点数的时间戳,此参数和-r差不多,只是这个参数不记录数据包返回所经过的路由,最多也只记录4个。

-j host-list ——利用“ computer-list” 指定的计算机列表路由数据包。连续计算机可以被中间网关分隔IP 允许的最大数量为 9。

-k host-list ——利用 “computer-list” 指定的计算机列表路由数据包。连续计算机不能被中间网关分隔IP 允许的最大数量为 9。

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

destination-list ——是指要测试的主机名或IP地址

-t参数

-t—— 有这个参数时,当你ping一个主机时系统就不停的运行ping这个命令,直到你按下Control-C。例如:

C:\WINDOWS>ping 192.168.1.188 -t

Pinging 192.168.1.188 with 32 bytes of data:

Reply from 192.168.1.188: bytes=32 time<10ms TTL=64
Reply from 192.168.1.188: bytes=32 time<10ms TTL=64
Reply from 192.168.1.188: bytes=32 time<10ms TTL=64
Reply from 192.168.1.188: bytes=32 time<10ms TTL=64
Reply from 192.168.1.188: bytes=32 time<10ms TTL=64
Reply from 192.168.1.188: bytes=32 time<10ms TTL=64
Reply from 192.168.1.188: bytes=32 time<10ms TTL=64
Reply from 192.168.1.188: bytes=32 time<10ms TTL=64

Ping statistics for 192.168.1.188:
Packets: Sent = 8, Received = 8, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 0ms, Average = 0ms
Control-C

-a参数

-a——解析主机的NETBIOS主机名,如果你想知道你所ping的要机计算机名则要加上这个参数了,一般是在运用ping命令后的第一行就显示出来。

例如:
C:\WINDOWS>ping -a 192.168.1.100

Pinging 000 [192.168.1.100] with 32 bytes of data:

Reply from 192.168.1.100: bytes=32 time<10ms TTL=128
Reply from 192.168.1.100: bytes=32 time<10ms TTL=128
Reply from 192.168.1.100: bytes=32 time<10ms TTL=128
Reply from 192.168.1.100: bytes=32 time<10ms TTL=128

Ping statistics for 192.168.1.100:
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.100的计算机,NETBIOS名为000

再如:
C:\WINDOWS>ping -a 192.168.0.23

Pinging 9.localdomain [192.168.0.23] with 32 bytes of data:

Reply from 192.168.0.23: bytes=32 time<10ms TTL=128
Reply from 192.168.0.23: bytes=32 time<10ms TTL=128
Reply from 192.168.0.23: bytes=32 time<10ms TTL=128
Reply from 192.168.0.23: bytes=32 time<10ms TTL=128

Ping statistics for 192.168.0.23:
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.0.23的计算机,NETBIOS名为9

-n参数
-n count——定义用来测试所发出的测试包的个数,缺省值为4。通过这个命令可以自己定义发送的个数,对衡量网络速度很有帮助,比如我想测试发送20个数据包的返回的平均时间为多少,最快时间为多少,最慢时间为多少就可以通过执行带有这个参数的命令获知。

例如:
C:\WINDOWS>ping -n 10 192.168.1.188

Pinging 192.168.1.188 with 32 bytes of data:

Reply from 192.168.1.188: bytes=32 time<10ms TTL=64
Reply from 192.168.1.188: bytes=32 time<10ms TTL=64
Reply from 192.168.1.188: bytes=32 time<10ms TTL=64
Reply from 192.168.1.188: bytes=32 time<10ms TTL=64
Reply from 192.168.1.188: bytes=32 time<10ms TTL=64
Reply from 192.168.1.188: bytes=32 time<10ms TTL=64
Reply from 192.168.1.188: bytes=32 time<10ms TTL=64
Reply from 192.168.1.188: bytes=32 time<10ms TTL=64
Reply from 192.168.1.188: bytes=32 time<10ms TTL=64
Reply from 192.168.1.188: bytes=32 time<10ms TTL=64

Ping statistics for 192.168.1.188:
Packets: Sent = 10, Received = 10, Lost = 0 (0% loss)
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 0ms, Average = 0ms

向IP为192.168.1.188的计算机,发送10个数据包,发送10个,返回10个,没有丢包。

-l参数
-l length——定义所发送缓冲区的数据包的大小,在默认的情况下windows的ping发送的数据包大小为32byt,也可以自己定义,但有一个限制,就是最大只能发送65500byt,超过这个数时,对方就很有可能因接收的数据包太大而死机,所以微软公司为了解决这一安全漏洞于是限制了ping的数据包大小。

例如:
C:\WINDOWS>ping -l 32768 -n 10 192.168.1.188

Pinging 192.168.1.188 with 32768 bytes of data:

Request timed out.
Reply from 192.168.1.188: bytes=32768 time=12ms TTL=64
Reply from 192.168.1.188: bytes=32768 time=12ms TTL=64
Reply from 192.168.1.188: bytes=32768 time=12ms TTL=64
Reply from 192.168.1.188: bytes=32768 time=9ms TTL=64
Reply from 192.168.1.188: bytes=32768 time=9ms TTL=64
Reply from 192.168.1.188: bytes=32768 time=9ms TTL=64
Reply from 192.168.1.188: bytes=32768 time=9ms TTL=64
Reply from 192.168.1.188: bytes=32768 time=9ms TTL=64
Reply from 192.168.1.188: bytes=32768 time=9ms TTL=64

Ping statistics for 192.168.1.188:
Packets: Sent = 10, Received = 9, Lost = 1 (10% loss),
Approximate round trip times in milli-seconds:
Minimum = 9ms, Maximum = 12ms, Average = 9ms

向IP为192.168.1.188的计算机,发送大小为32768byt的数据包10个,发送10个,返回9个,丢失1个。返回数据包最短时间为9ms,最长时间为12ms。


ip地址已设置保密
2006/12/17 13:48:29
小轲
帅哥哟,离线,有人找我吗?
头衔:泥客主席
等级:校长
威望:10
文章:10703
积分:67062
注册:1949年10月1日
2
  QQ 点击这里发送电子邮件给小轲 访问小轲的主页

发贴心情

2.Ping命令的应用

(1)、测试网络的通畅
我们知道可以用ping命令来测试一下网络是否通畅,这在局域网的维护中经常用到,方法很简单,只需要在DOS或Windows的开始菜单下的“运行”子项中用ping命令加上所要测试的目标计算机的IP地址或主机名即可(目标计算机要与你所运行ping命令的计算机在同一网络或通过电话线或其它专线方式已连接成一个网络),其它参数可全不加。如要测试台IP地址为196.168.0.23的工作站与服务器是否已连网成功,就可以在服务器上运行:ping -a 196.168.0.23 即可,如果工作站上TCP/IP协议工作正常,即会以DOS屏幕方式显示如下所示的信息:

C:\WINDOWS>ping -a 192.168.0.23

Pinging 9.localdomain [192.168.0.23] with 32 bytes of data:

Reply from 192.168.0.23: bytes=32 time<10ms TTL=128
Reply from 192.168.0.23: bytes=32 time<10ms TTL=128
Reply from 192.168.0.23: bytes=32 time<10ms TTL=128
Reply from 192.168.0.23: bytes=32 time<10ms TTL=128

Ping statistics for 192.168.0.23:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 0ms, Average = 0ms

从上面我们就可以看出目标计算机与服务器连接成功,TCP/IP协议工作正常,因为加了“-a”这个参数所以还可以知道IP为196.168.0.23的计算机的NetBIOS名为9。

下面我们来PING IP为192.168.0.1的计算机,如果网络未连成功则显示如下错误信息:
C:\WINDOWS>ping 192.168.0.1

Pinging 192.168.0.1 with 32 bytes of data:

Request timed out.
Request timed out.
Request timed out.
Request timed out.

Ping statistics for 192.168.0.1:
Packets: Sent = 4, Received = 0, Lost = 4 (100% loss),
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 0ms, Average = 0ms

为什么不管网络是否连通在提示信息中都会有重复四次一样的信息呢(如上的“Reply from 192.168.1.188: bytes=32768 time=12ms TTL=64”和“Request timed out”),那是因为一般系统默认每次用ping测试时是发送四个数据包,这些提示就是告诉你所发送的四个数据包的发送情况。

(2)、获取计算机的IP地址

利用ping这个工具我们可以获取对方计算机的IP地址,特别是在局域网中,我们经常是利用NT或WIN2K的DHCP动态IP地址服务自动为各工作站分配动态IP地址,这时当然我们要知道所要测试的计算机的NETBIOS名,也即我们通常在“网络邻居”中看到的“计算机名”。使用ping命令时我们只要用ping命令加上目标计算机名即可,如果网络连接正常,则会显示所ping的这台机的动态IP地址。其实我们完全可以在互联网使用,以获取对方的动态IP地址,这一点对于黑客来说是比较有用的,当然首先的一点就是你先要知道对方的计算机名。

例如:
C:\WINDOWS>ping www.kesonic.com

Pinging www.kesonic.com [218.26.153.214] with 32 bytes of data:

Request timed out.
Request timed out.
Request timed out.
Request timed out.

Ping statistics for 218.26.153.214:
Packets: Sent = 4, Received = 0, Lost = 4 (100% loss),
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 0ms, Average = 0ms

ping www.kesonic.com,得到www.kesonic.com的计算机,IP为218.26.153.214。

ping命令的其他技巧:在一般情况下还可以通过ping对方让对方返回给你的TTL值大小,粗略的判断目标主机的系统类型是Windows系列还是UNIX/Linux系列,一般情况下Windows系列的系统返回的TTL值在100-130之间,而UNIX/Linux系列的系统返回的TTL值在240-255之间,当然TTL的值在对方的主机里是可以修改的,Windows系列的系统可以通过修改注册表以下键值实现。 
2.ping命令的应用技巧:
用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 time<1mS TTL=128
Reply from 192.192.225.225:byteS’32 timeReply from 192.192.225.225:byteS‘32 timePing StatiStiCe for 192.192.225.225:
PacketS:Sent二4,ReceiVed二4,LOSt二0(0%lOSS)
Approximate round trip timeS in milli-secondS:
Minimum=Oms,Maximum=1mS,Average=OmS
以上返回了4个测试数据包,其中bytes=32表示测试中发送的数据包大小是32个字节,“me<10ms表示与对方主机
往返一次所用的时间小于10毫秒,TTL=128表示当前测试使用的TTL(Time to Live)值为128(系统默认值)。
如果网络有问题,则返回如下所示的响应失败信息:
Pinging 192.192,225.225 with 32 bytes of data
RequeSt timed out.
RequeSt timed out.
RequeSt timed OUt.
RequeSt timed out.
Ping StatiStiCe for 192.192.225,225:
PacketS:Sent=4,ReceiVed二0,LOSt\二4(100%lOSS)
Minimum‘0ms,Maximum=OmS,Average’0mS
网络故障:出现第二种情况时,建议从以上几个方面来着手排查:
一是看被测试计算机是否已安装了TCP/IP协议:
二是检查一下被测试计算机的网卡安装是否正确且是否已经连通:
三是看被测试计算机的TCP/IP协议是否与网卡有效的绑定(具体方法是通过选择“开始一设置一控制面板一网络”来查看):如果通过以上几个步骤的检查还没有发现问题的症结,建议重新安装并设置一,‘厂TCP/”协议,如果是TCP/IP协议的问题,这时绝对可以彻底解决。按照上述方法,我们还可以用Ping命令来检查任意一台客户湍计算机上TCP/IP的工作情况。例如我们要检查网络任一客户端“机房0厂上的TCP/IP协议的配置和工作情况,可直接在该台机器上Ping本机的IP地址,若返回成功的信息,说明IP地虹LB己置无误,若失败则应检查IP地址的配置。可通过以下步骤进行:首先先检查一·卜整个网络,重点看一下该IP地址是否正在被其他用户使用,然后再看一下该工作站是否已正确连入网络(很多情况下用户没有登陆网络也会出现此种情况,这可是低级错误啊)。最后检查网—E的I/0地址lIRQ值和DMA值,这些值是否与其他设置发生了冲突。其中最后一项的检查非常重要,也常被许多用户所忽视,即使是Ping成功后也要进行此项的检查。因为当Ping本机的IP地址成功后,仅表明本机的IP地址配置没有问题,但并不能说明网卡的配置完全正确。这时虽然在本机的“网上邻居”中能够看到本机的计算机名,可就是无法与其他的用户连通,不知问题出在何处,其实问题往往就出在网卡上。
简单来说,TTL全程Time to Live,意思就是生存周期。
首先要说明ping命令是使用的网络层协议ICMP,所以TTL指的是一个网络层的网络数据包(package)的生存周期,这句话不懂的先回去复习OSI7层协议去。
第一个问题,为什么要有生存周期这个概念。
很显然,一个package从一台机器到另一台机器中间需要经过很长的路径,显然这个路径不是单一的,是很复杂的,并且很可能存在环路。如果一个数据包在传输过程中进入了环路,如果不终止它的话,它会一直循环下去,如果很多个数据包都这样循环的话,那对于网络来说这就是灾难了。所以需要在包中设置这样一个值,包在每经过一个节点,将这个值减1,反复这样操作,最终可能造成2个结果:包在这个值还为正数的时候到达了目的地,或者是在经过一定数量的节点后,这个值减为了0。前者代表完成了一次正常的传输,后者代表包可能选择了一条非常长的路径甚至是进入了环路,这显然不是我们期望的,所以在这个值为0的时候,网络设备将不会再传递这个包而是直接将他抛弃,并发送一个通知给包的源地址,说这个包已死。
其实TTL值这个东西本身并代表不了什么,对于使用者来说,关心的问题应该是包是否到达了目的地而不是经过了几个节点后到达。但是TTL值还是可以得到有意思的信息的。

每个操作系统对TTL值得定义都不同,这个值甚至可以通过修改某些系统的网络参数来修改,例如Win2000默认为128,通过注册表也可以修改。而Linux大多定义为64。不过一般来说,很少有人会去修改自己机器的这个值的,这就给了我们机会可以通过ping的回显TTL来大体判断一台机器是什么操作系统。

以我公司2台机器为例,看如下命令
D:Documents and Settingshx>ping 61.152.93.131

Pinging 61.152.93.131 with 32 bytes of data:

Reply from 61.152.93.131: bytes=32 time=21ms TTL=118
Reply from 61.152.93.131: bytes=32 time=19ms TTL=118
Reply from 61.152.93.131: bytes=32 time=18ms TTL=118
Reply from 61.152.93.131: bytes=32 time=22ms TTL=118

Ping statistics for 61.152.93.131:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss
Approximate round trip times in milli-seconds:
Minimum = 18ms, Maximum = 22ms, Average = 20ms

D:Documents and Settingshx>ping 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参数的话,命令会一直发包直到你强行中止它。


ip地址已设置保密
2006/12/17 13:49:17

 2   2   1/1页      1    
Powered By Dvbbs Version 7.1.0 Sp1
页面执行时间 00.12500 秒, 4 次数据查询