分类: LINUX
2005-03-17 12:13:53
下面给出的语法和例子都是在Unix操作系统下的情况,在其它操作系统中,该命令可能有不同的使用方法或表示,例如在Windows NT和Windows 95下,类似的命令叫tracert。
traceroute的语法为:
traceroute [-m Max_ttl] [-n ] [-p Port] [-q Nqueries] [-r] [-s SRC_Addr]
[-t TypeOfService] [-v] [-w WaitTime] Host [PacketSize]
其中,
-m Max_ttl:指定最大生存期(Maximum Time-to-live)。也就是数据包从本地机到达目标机所经过的最大跳步(hop),即最多经过这么多路由器。缺省值为30步。
-n:只显示途径路由器的IP地址,不再显示其名字。
-p:指定包传输时使用的UDP端口号。
-q:指定每次跳步发送的探询包的数目,缺省值为3。
-v:列出详细信息。
-w WaitTime:指定每次跳步等待接收响应包的最长时间,缺省值为3秒。
Host:目标机的IP地址或机器名。
PacketSize:指定每个跳步传输的数据包的大小,缺省值为38个字节。
traceroute实际上是通过给目标机的一个非法UDP端口号发送一系列UDP数据包来工作的。使用缺省设置时,本地机给每个路由器发送3个数据包,最多可经过30个路由器。如果已经经过了30个路由器,但还未到达目标机,那么traceroute将终止。每个数据包都对应一个Max_ttl值,同一跳步的数据包该值一样,不同跳步的数据包的值从1开始,每经过一个跳步值加1。当本地机发出的数据包到达路由器时,路由器就响应一个ICMP Time Exceed消息,于是traceroute就显示出当前跳步数,路由器的IP地址或名字,3个数据包分别对应的周转时间(以ms为单位)。如果本地机在WaitTime内未收到响应包,那么在数据包的周转时间栏就显示出一个星号。当一个跳步结束时,本地机根据当前路由器的路由信息,给下一个路由器又发出3个数据包,周而复始,直到收到一个ICMP PORT_UNREACHABLE的消息,意味着已到达目标机,或者已达到指定的最大跳步数。
% traceroute
traceroute to (159.226.1.17), 30 hops max, 40 byte packets
1 router1.sp.net.edu.cn (202.112.35.254) 2 ms 2 ms 2 ms
2 202.112.1.210 (202.112.1.210) 4 ms 2 ms 2 ms
3 202.38.96.1 (202.38.96.1) 3 ms 2 ms 2 ms
4 159.226.1.17 (159.226.1.17) 3 ms 2 ms 2 ms
例中是中科院的WWW服务器,本地机是CERNET高性能计算中心SP2的一个节点机。首先从SP2连到CERNET的HUB(202.112.35.254)出去,然后经过CERNET和CASnet的路由器到达目标服务器。可以看到,数据包的平均周转时间为2ms,这是相当快的速度了。
% traceroute
traceroute to wailea.mhpcc.edu (164.122.9.37), 30 hops max, 40 byte packets
1 router1.sp.net.edu.cn (202.112.35.254) 2 ms 2 ms 2 ms
2 202.112.1.198 (202.112.1.198) 7 ms 11 ms 4 ms
3 us-igw.net.edu.cn (202.112.1.206) 45 ms 54 ms *
4 gsl-stock-3-Serial10/4.gsl.net (204.59.160.245) 554 ms 552 ms 575 ms
5 gsl-sl-stock-fddi.gsl.net (204.59.128.198) 559 ms 553 ms 551 ms
6 sl-mae-w-H3/0-T3.sprintlink.net (144.228.10.110) 562 ms 557 ms 564 ms
7 mae-west.dren.net (198.32.136.81) 571 ms 622 ms 587 ms
8 wahiawa-nctams.dren.net (138.18.232.2) 677 ms 617 ms 621 ms
9 maui.dren.net (138.18.236.1) 611 ms 649 ms 629 ms
10 bcn77-f11-7.mhpcc.edu (164.122.7.7) 613 ms 608 ms 610 ms
11 wailea.mhpcc.edu (164.122.9.37) 622 ms 617 ms *
要到达MHPCC的WWW服务器,在第3跳步到达CERNET通往美国的路由器,然后经过Sprint公司的其它路由器在第8跳步到达Hawaii,最后经过Maui的路由器到达目标节点。可以看出,从本地机发往国内几个路由器的周转时间为几十ms,到达美国后猛增到500多ms。