Traceroute命令学习理解
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Tarcerout程序
作用
可以让我们看到IP数据报从一台主机传到另一台主机所经过的路由。而且它还可以让我们使用IP源路由选项
为什么不是使用IP首部中的IP记录路由选项而另外开发一个应用程序
1.并不是所有的路由器都支持记录路由选项,因此该选项在某些路径上不能使用而Traceroute程序不需要中间路由器具备任何特殊的或不可选的功能。
2.记录路由一般是单向的选项,如果发送端设置了该选项,那么接收端不得不从收到的IP首部中提取所有的信息,然后全部返回给客户端。而Traceroute程序只需要目的端运行一个UDP模块——其他不需要任何特殊的服务器应用程序。
3.最重要的原因是,IP首部中留给选项的空间有限,不能存放当前大多数的路径。Traceroute程序使用ICMP报文中IP首部中的TTL字段。TTL 字段是由发送端初始设置一个8bit的字段。发送ICMP回显应答时经常把TTL设为最大值255。
TTL的概念及作用
1.它是指数据报的生存时间,每个处理数据报的路由器都需要把TTL 的值减去数据报在路由器中停留的秒数,由于大多数的路由器转发数
据报的时延都小于1秒,所以现在大多数厂商在设置路由器的时候都
把经过的数据报的TTL值减1——————————成为一个跳站的
计数器。
2.TTL字段的目的是防止数据报在选路时无休止地在网络中流动————既防止路由环路
3.当TTL字段是0或1的时候,则路由器不转发该数据报,而是将该包丢弃,并给信源机发一份ICMP“超时”信息。Traceroute就是利用
了包含这份ICMP信息的IP报文,因为里面有发送该信息的路由器
的IP地址。
4.接收到这种数据报的目的主机可以将它交给应用程序,这是因为不需要转发该数据报。但是在通常情况下,系统不应该接收TTL字段为0
的数据报。
Traceroute的工作原理
1.Traceroute程序发送一份UDP数据报给目的主机,但它选择了一个不可能的值作为UDP端口号(大于30000),该UDP数据报中的TTL字段为1。
2.处理这份数据报的第一个路由器将TTL值减1,丢弃该数据报,并发回一份超时ICMP报文。这样就得到了该路径第一个路由器的地址。
3.然后,Tarceroute程序发送一份TTL值为2的数据报,这样就得到了该路径第二个路由器的地址。
4.继续该过程直到数据报到达目的主机。
5.目的主机接收到该数据报后,将使它的UDP模块产生一份“端口不可达”
错误的ICMP报文。
Traceroute程序所要做的就是区分接收到的ICMP报文是超时还是端口不可达,以判断什么时候结束。
运行机制
1.当使用Traceroute程序时,会发出40字节的UDP数据报,它包括20字节IP首部,8字节的UDP首部和12字节的用户数据(用户数据
包含每发送一个数据报就加1的序列号,送出TTL的副本以及发送数
据报的时间)。
2.T raceroute程序会对每一个TTL值发送3个数据报,每接收一份ICMP 报文,就计算并打印出往返时间,如果5秒内仍未收到3份数据报的
任意一份响应,则打印一个星号。
3.对于返回来的ICMP回显报文,Traceroute程序要判断它是传送超时报文还是端口不可达报文,以判定有没有到达目的地。
IP源站路由选项
是IP首部选项(operating)中的其中之一,源站选项的思想就是由发送者指定路由。
可以采用以下两种形式。
宽松的源站选项
发送端指明一个数据报经过的IP地址清单,但是数据报在清单上指明的任意两个地址之间可以通过其他的路由器。
严格的的源路由选项
发送端指明IP数据报所必须采用的正确路径,如果一个路由器发现源路由所指定的下一个路由器不在其直接连接的网络上,那么它就返回一个“源站路由
失败”的ICMP 错误保文。
ICMP 超时报文
0 7 8
15 16
31
传送超时报文是在ICMP 的TTL 值等于0时产生的,其code 字段为0。另外还有一种与本节无关的超时报文,它是主机在组装分片时发生超时产生的,这时,它将发送一份“组装报文超时”的ICMP 数据报,这种差错报文将code 字段置1
Traceroute 程序的注意事项
1.
不能保证现在的路由也是将来所要采用的路由,甚至两份连续的IP 数据报都可能采用不同的路由。 2. 不能保证ICMP 报文的路由与traceroute 程序发送的UDP 数据报采用
同一路由。这表明所打印出来的往返时间可能并不能真正体现数据报
发出和返回的时间差(如果UDP 数据报从信源到路由器的时间是一
秒,而ICMP 报文用另一条路由返回信源用了3秒钟,则打印出来的
往返时间是4秒)
3. 返回的ICMP 报文中的信源IP 地址是UDP 数据报到达路由器接口的
IP 地址。而IP 路由选项记录的IP 地址是接口的IP 地址。 类型(11 ) 代码(0~1)
检验和
未用(必须为0)
IP 首部(包括选项)+原始IP 数据中数据的前8字节