Mr.Chan

导航

Traceroute使用详解

  Internet,即国际互联网,是目前世界上最大的计算机网络,更确切地说是网络的网络。它由遍布全球的几万局域网和数百万台计算机组成,并通过用于异构网络的TCP/IP协议进行网间通信。互联网中,信息的传送是通过网中许多段的传输介质和设备(路由器,交换机,服务器,网关等等)从一端到达另一端。每一个连接在Internet上的设备,如主机、路由器、接入服务器等一般情况下都会有一个独立的IP地址。通过Traceroute我们可以知道信息从你的计算机到互联网另一端的主机是走的什么路径。当然每次数据包由某一同样的出发点(source)到达某一同样的目的地(destination)走的路径可能会不一样,但基本上来说大部分时候所走的路由是相同的。UNIX系统中,我们称之为Traceroute,MS Windows中为Tracert。 Traceroute通过发送小的数据包到目的设备直到其返回,来测量其需要多长时间。一条路径上的每个设备Traceroute要测3次。输出结果中包括每次测试的时间(ms)和设备的名称(如有的话)及其IP地址。
在大多数情况下,作为网络工程技术人员或者系统管理员会在UNIX主机系统下,直接执行命令行:
Traceroute hostname

而在Windows系统下是执行Tracert的命令:
Tracerert hostname

比如在北京地区使用windows NT 主机(已经与北京163建立了点对点的连接后)
使用NT系统中的Tracert命令:(用户可用:开始->运行,输入"command" 调出command窗口使用此命令)
C:\>tracert www.yahoo.com
Tracing route to www.yahoo.com [204.71.200.75]
over a maximum of 30 hops:

1 161 ms 150 ms 160 ms 202.99.38.67
2 151 ms 160 ms 160 ms 202.99.38.65
3 151 ms 160 ms 150 ms 202.97.16.170
4 151 ms 150 ms 150 ms 202.97.17.90
5 151 ms 150 ms 150 ms 202.97.10.5
6 151 ms 150 ms 150 ms 202.97.9.9
7 761 ms 761 ms 752 ms border7-serial3-0-0.Sacramento.cw.net [204.70.122.69]
8 751 ms 751 ms * core2-fddi-0.Sacramento.cw.net [204.70.164.49]
9 762 ms 771 ms 751 ms border8-fddi-0.Sacramento.cw.net [204.70.164.67]
10 721 ms * 741 ms globalcenter.Sacramento.cw.net [204.70.123.6]
11 * 761 ms 751 ms pos4-2-155M.cr2.SNV.globalcenter.net [206.132.150.237]
12 771 ms * 771 ms pos1-0-2488M.hr8.SNV.globalcenter.net [206.132.254.41]
13 731 ms 741 ms 751 ms bas1r-ge3-0-hr8.snv.yahoo.com [208.178.103.62]
14 781 ms 771 ms 781 ms www10.yahoo.com [204.71.200.75]

Trace complete.

参数说明:
tracert [-d] [-h maximum_hops] [-j computer-list] [-w timeout] target_name
该诊断实用程序通过向目的地发送具有不同生存时间 (TL) 的 Internet 控制信息协议 (CMP) 回应报文,以确定至目的地的路由。路径上的每个路由器都要在转发该 ICMP 回应报文之前将其 TTL 值至少减 1,因此 TTL 是有效的跳转计数。当报文的 TTL 值减少到 0 时,路由器向源系统发回 ICMP 超时信息。通过发送 TTL 为 1 的第一个回应报文并且在随后的发送中每次将 TTL 值加 1,直到目标响应或达到最大 TTL 值,Tracert 可以确定路由。通过检查中间路由器发发回的 ICMP 超时 (ime Exceeded) 信息,可以确定路由器。注意,有些路由器“安静”地丢弃生存时间 (TLS) 过期的报文并且对 tracert 无效。
参数:

-d
指定不对计算机名解析地址。
-h maximum_hops
指定查找目标的跳转的最大数目。
-jcomputer-list
指定在 computer-list 中松散源路由。
-w timeout
等待由 timeout 对每个应答指定的毫秒数。
target_name
目标计算机的名称。


二、什么是Traceroute网关—— Traceroute Gateway?
一般使用Traceroute(或者是Tracert)是基于一台主机的,但是通常您只能知道以手边的主机为源地址到互联网络上任意一台在线的主机的路由连接质量以及数据传输效率的情况,而使用基于WEB的方式,只要一台主机安装了特定的CGI程序,用户就可以通过这台主机运行相关的程序,执行Traceroute的功能。这台主机我们把它叫做Traceroute网关。Traceroute网关可以帮助用户了解网络的物理与逻辑连接的拓扑情况以及数据传输的效率。如果这种网关足够多,我们就可以方便地了解到各主机之间连接的情况了。


三、为什么要使用Traceroute?

  1. 几乎每一个网上人(尤其是Webmaster)对他们的计算机(或其它设备)与Internet的连接,路由(径),连通时间,速度等都很关心。使用由ChianNetMap组织起来的各地区Webmaster提供的Traceroute网关的服务,将给你一个满意的答案。从你的计算机到任何别的地方,ChinaNetMap(Traceroute)都能提供其间的每个设备(IP地址)及其连通时间。它可以让你画出通过网络的路径。
  2. 许多公司和单位都设有或正在设立自己的服务器-尤其是Web服务器。一旦有自己的Web服务器,随着网民数量的日益增加(包括潜在的,没法统计的网民),你一定很想知道是否他们都能与你连接。你的ISP如何与一个或多个NAP连接,以及他们的连接效率会直接影响到你的连接质量.
  3. 在选择ISP,骨干网连接,你站点的主机时,大多数有见识的网民喜欢检查该Site的连接性能及其它是怎样精确的与谁连,连到哪儿。ChinaNetMap(Traceroute)将给你一个完美的答案。


四、Traceroute的功能介绍:
Traceroute最早是由Van Jacobson在1988写出的小程序。当时主要是解决他自己碰到的一些网络的问题。Traceroute是一个正确理解IP网络并了解路由原理的重要工具。他们对负责网络工程技术与系统管理的Webmaster是一个使用方便的程序。
对ISP而言,设立Traceroute网关,将使网络服务提供商帮助用户建立并维持对服务商服务质量的信心。服务质量高的ISP可以通过设立Traceroute网关,使用户了解其与网络连接以及数据传输的效率。当然,基础设施差,服务质量低的ISP是比较害怕提供这种服务。因为,这样用户可以使用这一工具了解服务商目前的网络连接情况。
在一台主机安装了相关的Traceroute的CGI程序后,您可以输入相应的目的主机的IP地址或者名字,就可以得到相关的数据:


五、Traceroute的命令参数:
Traceroute的用法为: Traceroute [options] <IP-address or domain-name> [data size]
[options]的内容有:

[-n]:显示的地址是用数字表示而不是符号
[-v]:长输出
[-p]:UDP端口设置(缺省为33434)
[-q]:设置TTL测试数目(缺省为3)
[-t]:设置测包的服务类型
[data size]:每次测试包的数据字节长度(缺省为38)


六、Traceroute的工作原理:
Traceroute最简单的基本用法是:traceroute hostname
Traceroute程序的设计是利用ICMP及IP header的TTL(Time To Live)栏位(field)。首先,traceroute送出一个TTL是1的IP datagram(其实,每次送出的为3个40字节的包,包括源地址,目的地址和包发出的时间标签)到目的地,当路径上的第一个路由器(router)收到这个datagram时,它将TTL减1。此时,TTL变为0了,所以该路由器会将此datagram丢掉,并送回一个「ICMP time exceeded」消息(包括发IP包的源地址,IP包的所有内容及路由器的IP地址),traceroute 收到这个消息后,便知道这个路由器存在于这个路径上,接着traceroute 再送出另一个TTL是2 的datagram,发现第2 个路由器...... traceroute 每次将送出的datagram的TTL 加1来发现另一个路由器,这个重复的动作一直持续到某个datagram 抵达目的地。当datagram到达目的地后,该主机并不会送回ICMP time exceeded消息,因为它已是目的地了,那么traceroute如何得知目的地到达了呢?

Traceroute在送出UDP datagrams到目的地时,它所选择送达的port number 是一个一般应用程序都不会用的号码(30000 以上),所以当此UDP datagram 到达目的地后该主机会送回一个「ICMP port unreachable」的消息,而当traceroute 收到这个消息时,便知道目的地已经到达了。所以traceroute 在Server端也是没有所谓的Daemon 程式。

Traceroute提取发 ICMP TTL到期消息设备的IP地址并作域名解析。每次 ,Traceroute都打印出一系列数据,包括所经过的路由设备的域名及 IP地址,三个包每次来回所花时间。

Traceroute face="宋体" 有一个固定的时间等待响应(ICMP TTL到期消息)。如果这个时间过了,它将打印出一系列的*号表明:在这个路径上,这个设备不能在给定的时间内发出ICMP TTL到期消息的响应。然后,Traceroute给TTL记数器加1,继续进行

 

traceroute命令

那里 可以 用于 ping 验证设备的之间连通性,可以 用于traceroute命令发现路径信息包 开始对路由在哪里划分的远端目的地,并且。

目的在 traceroute 命令之后将记录 每个ICMP "时间超出的"消息的来源提供信息包开始到达目的地路径 的跟踪。

执行traceroute命令的 设备派出用户数据协议顺序 (UDP)数据包,其中每一带有增加存活时间(TTL)值,到一个无效的 端口地址(默认值33434)在远端主机。

首先,三个数据包被发送,其中每一与TTL域值设定 到1。当在路径,击中第一个路由器TTL值为1导致数据包对" 超时"; 此路由器然后回应与表明的ICMP "时间超出的"消 息数据包到期了。

其次,三更多UDP 信息被发送,其中每一带有设置的TTL值到2。这在路径导致 第二个路由器对目的地对回归ICMP "时间超出的"消息。

此进程继续直到信息包到达目的地 并且直到产生追踪途径的系统在路径从每个路由器收到了ICMP "时 间超出的"消息对目的地。 因为这些数据包设法访问一个无 效的端口(默认值33434)在目的地主机,主机回应与ICMP "表示一 个不可达的端口的端口不可得到的" 消息。此事件信号追踪 路由程序完成。

延长的traceroute命令

延长的 traceroute 命令是 traceroute命令的变化 。 可以 用于延长的 traceroute命令发现什么路径信息包开始达到对目的地。可 能也用于命令检查同时路由。这为确定是有用的为故障排除 路由循环,或者信息包何处获得丢失(如果路由是缺少的,或者如果 信息包由访问控制表(ACL)或防火墙阻拦)。您能使用 外部Ping命令确定连接问题 的种类,然后使用延长的 traceroute 命令缩小问题其 中发生。

"时间超出的"错误信息表 明一个半成品通信服务器看见了并且丢弃了信息包。 "目的 地不可得到的"错误信息表明目的地节点接受了探测并且丢弃了它因 为不可能传送信息包。如果计时器去在回应进来之前, 跟踪 打印星号(*)。命 令终止当以下每一个发生时:

  • 目的 地回应

  • 最大数量TTL被超出

  • 用户中断跟踪带有换码序列

    注意: 换码序 列可以通过同时按Ctrl,班次和"6"调用。

traceroute命令字段说明

下面的表列出 traceroute命令字段说明。

字段

说明

协议[ ip ]:

提示对 于一个支持的协议。输入AppleTalk、clns、ip、Novell、阿 波罗、vines、decnet或者xns.默认值: ip.

瞄准 IP addres

您必须输入主机名或IP地 址。没有默认值。

源地址:

使用的路由器的接口或IP地址作为 源地址为探测。路由器正常选择出局接口的IP地址使用。

数字显示[ n ]:

默认值是有一个符号和数字显示; 然而,您 能抑制符号显示。

超时以秒钟[ 3 ] :

等待对探针信息包的一种回应的 秒钟的数量。默认值是3秒。

探测计数[ 3 ]:

将被发送的探测的 数量在每个TTL级别。默认计数是3。

最低的存活时间[ 1 ]:

第一次探测的TTL值。默认值是1 ,但可以设 置为一个高价值抑制已知跳跃显示。

最大存活时间[ 30 ]:

能使用的最大的TTL值。默认值是30。 traceroute命令终止当目的地 到达时或当此值达到时。

端口号 [ 33434 ]:

UDP探测消息使用的目 的地端口。 默认值是33434。

松散,严格,记录,时间戳,Verbose[none ]:

IP头选项。您能指定所有组 合。 traceroute命令发出提 示对于要求的字段。注意 traceroute命令在每次探测将安置请求的选项 ; 然而,没有保证所有路由器(或端节点)将处理选项。

示例

Router A>enable
 Router A#traceroute
 Protocol [ip]:
 Target IP address: 192.168.40.2   
 
 !--- The address to which the path is being traced.
 
 Source address: 172.16.23.2
 Numeric display [n]:
 Timeout in seconds [3]:
 Probe count [3]:
 Minimum Time to Live [1]:
 Maximum Time to Live [30]:
 Port Number [33434]:
 Loose, Strict, Record, Timestamp, Verbose[none]:
 Type escape sequence to abort.
 Tracing the route to 192.168.40.2
   1 172.31.20.2 16 msec 16 msec 16 msec
   2 172.20.10.2 28 msec 28 msec 32 msec
   3 192.168.40.2 32 msec 28 msec *   
 
 !--- Traceroute is successful
 
 Router A#
 

注意: 延长的 traceroute命令在可以被执行priveleged 仅EXEC模式,而正常 traceroute命令研究用户和特权EXEC模式。

posted on 2005-05-18 23:37  cunshen  阅读(2990)  评论(0编辑  收藏  举报