Traceroute使用详解
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:\\>tracertwww.yahoo.com Tracing route towww.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. 您目前正在ONLINE状态的话,可以直接尝试一下。 参数说明: 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地址或者名字,就可以得到相关的数据: 如:在美国的主机http://bs.mit.edu:8001/cgi-bin/traceroute上 查询其到中国南京的北极星站点www.lodesoft.com(中国Webmaster联盟的合作伙伴)数据传输的路径。 查询界面为: Traceroute Hack --------------------------------------------------------------------------------
可以搜索该索引。请键入要搜索的关键字: 查询结果为: Traceroute Hack 1 E40-RTR-E40SERVER72-ETHER.MIT.EDU (18.72.0.1) 4 ms 4 ms 4 ms 2 EXTERNAL-RTR-FDDI.MIT.EDU (18.168.0.12) 4 ms 4 ms 4 ms 3 f1-0.cambridge2-br2.bbnplanet.net (192.233.33.6) 4 ms 4 ms 4 ms 4 s11-0-1.cambridge1-br1.bbnplanet.net (4.0.1.201) 8 ms 4 ms 4 ms 5 p1-0.cambridge1-nbr2.bbnplanet.net (4.0.1.45) 4 ms 4 ms 4 ms 6 p4-1.bstnma1-ba1.bbnplanet.net (4.0.2.170) 4 ms 4 ms 4 ms 7 p1-0.bstnma1-ba2.bbnplanet.net (4.24.4.194) 4 ms 8 ms 8 ms 8 p2-1.nyc4-nbr3.bbnplanet.net (4.24.4.238) 8 ms 12 ms 12 ms 9 p1-0.nyc4-nbr2.bbnplanet.net (4.0.5.25) 8 ms 12 ms 8 ms 10 p4-0.sanjose1-nbr2.bbnplanet.net (4.0.5.97) 70 ms 70 ms 70 ms 11 p1-0.sanjose1-nbr1.bbnplanet.net (4.0.5.85) 70 ms 70 ms 70 ms 12 p4-0.paloalto-nbr2.bbnplanet.net (4.0.1.1) 70 ms 74 ms 70 ms 13 p0-0-0.paloalto-cr18.bbnplanet.net (4.0.3.86) 70 ms 74 ms 74 ms 14 h1-0.atteasylink.bbnplanet.net (4.1.142.254) 74 ms 74 ms 78 ms 15 199.37.127.234 (199.37.127.234) 78 ms 74 ms 78 ms 16 205.174.74.170 (205.174.74.170) 230 ms 238 ms 227 ms 17 202.97.9.65 (202.97.9.65) 238 ms 231 ms 223 ms 18 * 202.97.9.49 (202.97.9.49) 234 ms * 19 202.97.10.110 (202.97.10.110) 246 ms 250 ms * 20 202.97.24.178 (202.97.24.178) 234 ms 238 ms 238 ms 21 202.102.24.74 (202.102.24.74) 234 ms 254 ms * 五、Traceroute的命令参数: Traceroute的用法为: Traceroute [options] [data size] [options]的内容有: [-n]:显示的地址是用数字表示而不是符号 [-v]:长输出 [-p]:UDP端口设置(缺省为33434) [-q]:设置TTL测试数目(缺省为3)
tracertroute 标准
tracertroute 标准traceroute(又称为tracert)是一种网络诊断工具,用于追踪数据包从源IP地址到目的IP地址的路径。
它利用ICMP协议中的时间戳字段来实现。
通过追踪路由路径,我们可以确定网络连接出现问题的位置,并找到解决方法,提高网络性能。
traceroute命令的基本语法是traceroute [选项]目标主机名/目标IP地址。
下面我们将详细讲解这些选项的作用和用法。
traceroute命令的选项包括:-h <max_hop>:设置最大跃点数,即最多经过多少个网络节点。
默认值为30。
-I:使用ICMP协议进行traceroute追踪,默认选项。
-T:使用TCP协议进行traceroute追踪。
这个选项在某些网络环境中可能无法使用,因为默认会使用被防火墙屏蔽的端口号。
-d:启用socket调试功能,输出包括内核代码的调试信息。
-q <nqueries>:设置每个跳点探测的数据报数目,默认值为3。
-w <timeout>:设置等待返应的时间,默认为5秒。
如果在该时间内没有收到回应,则认为探测失败。
-n:不进行IP地址到主机名的反向解析。
-m <max_ttl>:设置最大探查跳Step,即最多经过多少个网络节点。
默认值为30。
-r:<start_ttl> <end_ttl>:设置探查时IP数据包经过的最小和最大跳数之间。
-s <src_addr>:指定本地主机发送数据包的源IP地址。
-4:使用IPv4进行traceroute追踪,默认选项。
-6:使用IPv6进行traceroute追踪。
traceroute命令的实际应用如下:1.网络故障排查:当网络出现连接问题时,可以通过traceroute 命令来追踪数据包的路径,找出导致问题的节点。
例如,当你无法访问某个网站时,可以使用traceroute命令来检查是否出现网络延迟或者断点问题,以便进一步解决。
tranceroute用法 -回复
tranceroute用法-回复"Traceroute" 是一种网络诊断工具,用于追踪互联网中数据包的路径流经的节点。
它通过发送一系列的数据包,然后利用数据包的跳数和来自每个节点的响应时间来确定数据包的路由路径。
这篇文章将逐步介绍traceroute 的使用方法,以及如何解释和分析收集到的数据。
首先,我们需要了解如何在不同操作系统中运行traceroute 命令。
尽管不同的操作系统具有不同的命令行界面和参数选项,但traceroute 在大多数系统中的基本原理都是相同的。
在Windows 系统中,我们可以在命令提示符下输入"tracert" 命令,后跟目标IP 地址或域名。
例如:tracert在类Unix 系统中,我们可以使用"traceroute" 命令,然后跟上目标IP 地址或域名。
例如:traceroute一旦我们运行了traceroute 命令,系统会发送一系列的数据包,并使用时间戳跟踪响应时间和路由路径。
数据包将从我们的设备发送到目标设备,然后通过网络中的路由器和中继点逐步传输。
当数据包到达目标设备时,它将生成一个响应,其中包含关于每个路由器和节点的信息。
这些信息包括路由器的IP 地址、响应时间和距离。
在Windows 系统下,我们可以看到每个节点的IP 地址和响应时间,以及数据包的总共跳数。
在类Unix 系统中,我们还可以看到相关的DNS 信息。
通过分析这些信息,我们可以了解数据包在互联网中的路径以及节点之间的延迟。
对于距离较远或速度较慢的节点,响应时间可能会更长。
通过查看多次运行traceroute 的结果,我们可以确定不同时间和地点之间的差异,并评估网络的性能。
值得注意的是,由于互联网是一个动态的网络,路由路径可能会发生变化。
因此,每次运行traceroute 的结果可能会有所不同。
为了获得更准确和可靠的结果,我们建议在不同的时间和地点运行多次traceroute,并比较结果。
tracert 解析 -回复
tracert 解析-回复tracert 解析:如何使用tracert 命令进行网络故障排除引言:在当今数字化时代,互联网已经成为我们生活和工作中不可或缺的一部分。
随着互联网的普及,我们可能会遇到许多网络故障问题,例如网站无法访问、网络速度慢或网络连接不稳定等。
为了解决这些问题,我们常常需要进行网络故障排除。
tracert 命令是一种非常有用的工具,可以帮助我们分析和解决这些网络故障。
本文将一步一步地介绍如何使用tracert 命令进行网络故障排除。
第一步:了解tracert 命令的作用和原理tracert(trace route)是一种网络故障排除工具,可用于确定数据包在网络中传输时的路径。
它通过向目标服务器发送一系列的网络请求,并记录每个请求的路径和延迟时间,从而帮助我们分析网络连接的可用性和瓶颈。
tracert 命令基于ICMP(Internet Control Message Protocol)协议实现,使用“时间超时”(Time Exceeded)错误消息作为数据包的返回信息。
当一个数据包在网络中的TTL(Time to Live)字段减为零时,它将被路由器丢弃,并发送一个时间超时错误消息给源主机。
第二步:打开命令提示符窗口要使用tracert 命令,首先需要打开命令提示符窗口。
在Windows 操作系统中,可以按下Win+R 组合键打开“运行”窗口,输入“cmd”并点击“确定”来打开命令提示符窗口。
第三步:输入tracert 命令在命令提示符窗口中,可以输入“tracert [目标地址]”命令来执行tracert 操作。
目标地址可以是一个IP 地址或域名。
例如,要追踪到谷歌的服务器,可以输入“tracert第四步:观察和分析结果tracert 命令执行之后,会显示每个网络节点的IP 地址、主机名(如果可用)、延迟时间等信息。
每一行表示数据包从源主机到目标主机经过的一个网络节点。
通过观察tracert 结果,可以找到网络连接的瓶颈和问题所在。
traceroute流程
traceroute流程一、什么是traceroute?traceroute是一种网络诊断工具,用于确定数据包在通过Internet 传输时所经过的路由路径。
它通过发送一系列的数据包,每个数据包在传输过程中的路由节点上会返回一个回应,从而得知数据包经过的路径。
二、traceroute的工作原理1. 首先,traceroute会向目标主机发送一个TTL(Time To Live)为1的数据包。
2. 当数据包到达第一个路由节点时,该节点会将数据包的TTL减1,然后将其转发给下一个路由节点。
3. 如果TTL减为0,路由节点将不会转发该数据包,并向源主机发送一个“Time Exceeded”错误回应。
4. 源主机会收到该回应,并记录下该路由节点的IP地址。
5. 然后,traceroute会发送一个TTL为2的数据包,重复上述过程,直到到达目标主机。
6. 最后,traceroute会根据记录下的路由节点IP地址,计算出数据包的传输时间,并将结果显示出来。
三、traceroute的使用方法1. 打开命令行窗口(Windows系统使用cmd命令,Linux和Mac系统使用Terminal命令)。
2. 输入“traceroute”命令,后面跟上目标主机的IP地址或域名。
3. 按下回车键,即可开始运行traceroute。
4. 程序会逐个显示数据包经过的路由节点的IP地址和传输时间。
四、traceroute的结果解读1. 每一行显示一个路由节点的IP地址和传输时间。
2. IP地址用于标识路由节点的位置。
3. 传输时间表示数据包从源主机到达该路由节点的时间,单位为毫秒(ms)。
4. 传输时间通常会随着距离的增加而增加,但也可能受到网络拥塞等因素的影响。
5. 如果某个路由节点的传输时间过高,可能表明该节点处于拥塞状态或存在其他问题。
五、traceroute的应用场景1. 网络故障排除:当无法访问某个网站或连接某个服务器时,可以使用traceroute来确定网络中的瓶颈或故障点。
traceroute的工作原理
traceroute的工作原理traceroute是一种网络诊断工具,用于确定数据包从源地址到目标地址经过的路由路径。
它能够显示出数据包在互联网中的传输路径,并提供了每个跃点的延迟。
下面将介绍traceroute的工作原理。
traceroute的工作原理可以简单概括为发送一系列的UDP数据包,并根据接收到的ICMP错误消息确定数据包的路径。
具体步骤如下:1. 首先,traceroute选择一个目标地址,比如一个IP地址。
然后它会使用一个TTL(Time to Live)的字段值为1的UDP数据包向目标地址发送请求。
2. 当网络上的路由器接收到这个UDP数据包时,它会检查TTL字段的值。
如果TTL的值为1,该路由器会将数据包抛弃,并向源主机发送一个ICMP错误消息(TTL超时)。
3. 源主机收到ICMP错误消息后,就能确定这是第一个跃点的路由器,并记录下该路由器的IP地址和延迟时间。
然后,traceroute 将TTL的值加1,重复第1和第2步,直到达到一个设定的最大跃点数或目标地址。
4. 最终,traceroute将得到一个包含所有跃点IP地址和延迟时间的列表,这就是数据包从源地址到目标地址的路由路径。
在traceroute的工作过程中,还有一些需要注意的细节:- 为了准确测量延迟时间,traceroute发送的UDP数据包的目标端口号会递增。
这样可以避免中间路由器对数据包进行缓存,从而得到更准确的延迟时间。
- 如果某个跃点的路由器配置了防火墙,它可能会将ICMP错误消息过滤掉,这样traceroute将无法获取到该跃点的信息。
在这种情况下,traceroute会显示星号(*)来表示无法获取到信息。
- traceroute还可以通过设置参数来进行更详细的诊断。
比如,可以设置发送数据包的个数、发送数据包的时间间隔等,以便更准确地测量网络路径和延迟时间。
总结起来,traceroute通过发送一系列的UDP数据包,并根据接收到的ICMP错误消息确定数据包的路径,从而能够显示出数据包在互联网中的传输路径和每个跃点的延迟时间。
扩展PING命令与traceroute命令
扩展PING命令与traceroute命令我们在使用路由器或者交换机,不论是做实验还是在实际工程中,我们都必须使用到的两个命令,那么一个就是我们的PING命令与traceroute命令。
使用这两个命令来测试我们的网络配置是否正常,那么你到底对这两个命令又了解多少呢?那么我们这一节就来看看这两个命令的一些扩展用法。
Ping命令ping(信息包互联网探索程序)命令是排除设备的可及性的一个非常普通的方法故障。
它使用两个互联网控制信息协议(ICMP)查询消息,ICMP响应请求和ICMP回应应答,确定一台远端主机是否是活跃的。
ping命令也测量用收到ECHO回复的时间。
ping命令首先发起一个响应请求包到目的地址,然后等待回复。
ping是成功的仅当ECHO请求达到对端目的地,并且目的地能得到ECHO回复回到ping的来源在一个预定义的时间间隔之内。
那么我们现在先来看看如何来使用这个ping命令呢?拓扑图如下:首先把最基本IP地址/路由协议配通。
现在在R4上面查看一下路由表:R4#sh ip route 1.0.0.0/24 is subnetted,1 subnets C1.1.1.0 is directly connected,Loopback0 2.0.0.0/24 is subnetted,1 subnetsD2.2.2.0[90/3321856]via 24.0.0.2,00:00:18,Serial1/0 24.0.0.0/24 is subnetted,1 subnets C24.0.0.0 is directly connected,Serial1/012.0.0.0/24 is subnetted,1 subnets D12.0.0.0[90/2681856]via24.0.0.2,00:00:50,Serial1/0 13.0.0.0/24 is subnetted,1 subnetsD13.0.0.0[90/3193856]via 24.0.0.2,00:00:50,Serial1/0 R4#现在我们使用ping命令来测试到达2.2.2.2 R4#ping 2.2.2.2 Type escape sequence to abort.Sending 5,100-byte ICMP Echos to 2.2.2.2,timeout is 2seconds:!Success rate is 100 percent(5/5),round-tripmin/avg/max=88/120/156 ms R4#我们可以看到在中间!表示我们R4发送给2.2.2.2的icmp请求包,2.2.2.2通过icmp的echo给发一个回应包给我们R4表示正常通信了。
PING和TRACEROUTE命令详解
4 = fragmentation needed and DF set
需要分段但设置了DF
5 = source route failed源路由失败
4source-quench
源抑制
5Redirect重定向
code 0 = redirect datagrams for the network
16information-reply
信息应答
17mask-request
掩码请求
18mask-reply
掩码应答
31conversion-error
转换错误
32mobile-redirect
移动主机重定向
下表列出了从ping设备中可能的各种输出特征: Character
Description描述
!Each exclamation point indicates receipt of a reply.
为网络重定向数据报
1 = redirect datagrams for the host
为主机重定向数据报
2 = redirect datagrams for the type of service and network
为网络和服务类型重定向数据报
3 = redirect datagrams for the type of service and host
Router1#debug ip packet detail IP packet debugging is on (detailed)Router1#ping 12.0.0.2 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 12.0.0.2, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 4/6/8 ms Router1# Jan 20 15:54:47.487: IP: s=12.0.0.1 (local), d=12.0.0.2 (Serial0), len 100,
Traceroute命令原理
Traceroute命令原理1、前⾔在⽇常⽹络维护⼯作中,Traceroute命令是⼀个强⼤⽽⽅便的⽹络测试⼯具;了解Traceroute命令的原理能够更好的使⽤这个⼯具,本⽂详细介绍了Traceroute命令的基本原理和功能。
2、Traceroute命令基本功能该命令⽤于测试两个TCP/IP系统之间的⽹络层连通性和显⽰传输路径中每⼀跳地址,⼜称为路径跟踪,如果Traceroute命令测试成功,我们能够观察到从源主机到⽬的主机之间的⼀条完整的通信路径,能够明确的观察到路径的每⼀跳信息;该命令还能准确输出测试包到每⼀跳的通信延迟时间。
如果测试失败,也能够明确定位是哪⼀跳设备不能正常转发,该⼯具还能够测试路由是否选择最佳路径,是否存在⾮对称路径等问题,在复杂拓扑下具有更强⼤的测试能⼒。
3、Traceroute命令基本原理当路由器收到⼀份I P数据报,如果其T T L字段是0或1,则路由器不转发该数据报(接收到这种数据报的⽬的主机可以将它交给应⽤程序,这是因为不需要转发该数据报。
但是在通常情况下,系统不应该接收T T L字段为0的数据报)。
相反,路由器将该数据报丢弃,并给信源机发⼀份I C M P“超时”信息。
Traceroute的操作过程:它发送⼀份T T L字段为1的I P数据报给⽬的主机。
处理这份数据报的第⼀个路由器将T T L值减1,丢弃该数据报,并发回⼀份超时I C M P报⽂。
这样就得到了该路径中的第⼀个路由器的地址。
然后Traceroute程序发送⼀份T T L值为2的数据报,这样我们就可以得到第⼆个路由器的地址。
继续这个过程直⾄该数据报到达⽬的主机。
但是⽬的主机哪怕接收到T T L值为1的I P数据报,也不会丢弃该数据报并产⽣⼀份超时I C M P报⽂,这是因为数据报已经到达其最终⽬的地。
Traceroute程序发送⼀份U D P数据报给⽬的主机,但它选择⼀个不可能的值作为U D P端⼝号(⼤于30 000),使⽬的主机的任何⼀个应⽤程序都不可能使⽤该端⼝。
traceroute
程序原理:
Traceroute程序使用ICMP报文和和IP首部中的TTL字段(生存 周期)。每个处理数据报的路由器都要把TTL的值减去1或者减 去数据报在路由器中停留的秒数。由于大多数的路由器转发数据 报的延时都小于1秒钟,因此TTL最终成为一个跳站的计数器, 所经过的每个路由器都将其值减1。
Traceroute就通过发送一份TTL字段为1的IP数据报给目的主机。 处理这份数据报的第一个路由器将TTL值减去1,丢弃该数据报, 并回发一份超时ICMP报文。这样就得到了该路径中的第一个路 由器的IP地址。然后Tracerouter发送一份TTL为2的数据报,这 样就得到了第二个路由器的IP地址。那么,继续这个过程,直到 达到目的主机。即使目的主机接收到一份TTL值为1的数据报也 不会丢弃该数据报并产生一份ICMP报文,因为已经到达最终目 的地。
怎么去判断是否到达目的主机呢?
对于Tracerouter程序发送一份UDP数据报给目的主机,但选 择一个不可能的值作为目的端口号(大于30000),使得目的主 机的任何一个程序都不可能使用该端口。因为,当该数据报到达 时,将使目的主机的UDP模块产生一份“端口不可达”错误的 ICMP报文,这样Tracerouter程序要做的就是区分搜到的ICMP 报文是是超时还是端口不可达,以判断什么时候结束。同时目的 端 口从33434开始,每一个报文会把目的端口增加1,直到 33534,目的是为了区分返回的报文对应哪个发出的报文。
对于tracert来说,如果TTL大到可以到达目的地,那么目的地 会返回一个ICMP Echo Reply(ICMP报文类型0),就像ping一 样。这时,tracert就可以结束了。
traceroute实现思想举例:
Traceroute网关—— Traceroute Gateway
traceroute -p原理
一、traceroute -p原理概述traceroute -p是一种网络诊断工具,可以用来确定数据包在从源到目的地的传输路径上所经过的路由器。
traceroute -p能够揭示网络中的延迟和路由问题,对网络故障排查和性能优化有着重要的作用。
二、traceroute -p的工作原理1.发送TTL逐跳增加的ICMP报文traceroute -p工作的基本原理是利用增加TTL字段的IP数据包来实现。
TTL(Time to Live)字段是IP数据包头部的一个8位字段,它规定了IP数据包在经过路由器时最多可经过的跳数。
当数据包经过一个路由器时,TTL值会递减1,直到TTL值为0,数据包将被丢弃并会返回一个ICMP报文给发送者。
2.记录路由器的IP位置区域和延迟时间traceroute -p发送一系列的UDP数据包,每个数据包的TTL从1开始逐渐增加。
当某个数据包到达一个新的路由器时,该路由器会将报文丢弃并发送一个ICMP“TTL超时”报文给源主机。
源主机收到该报文后,就知道了中间经过的路由器的IP位置区域,并可以计算出到达路由器的时间。
3.重复此过程直到到达目的地traceroute -p将重复发送增加TTL后的UDP数据包,直到到达目的地为止。
通过记录每个路由器的IP位置区域和延迟时间,traceroute-p就可以得到源主机到目的主机的传输路径。
三、traceroute -p的使用方法1.基本命令格式```traceroute -p <目标主机>```2.常用选项- -I 使用ICMP Echo Request报文进行traceroute- -T 使用TCP SYN报文进行traceroute- -n 直接使用IP位置区域进行显示,不进行域名解析- -q 设置每个TTL发送的数据包数量3.示例```$ traceroute -p example```运行上面的命令后,将显示源主机到example的传输路径。
