Traceroute程序

Tr a c e r o u t e程序是一个能更深入探索 T C P / I P协议的方便可用的工具。尽管不能保证从源端发往目的端的两份连续的 I P数据报具有相同的路由,但是大多数情况下是这样的.Tr a c e r o u t e程序可以让我们看到 I P数据报从一台主机传到另一台主机所经过的路由。Tr a c e r o u t e程序还可以让我们使用 I P源路由选项。
Tr a c e r o u t e程序使用I C M P报文和I P首部中的T T L字段(生存周期)。 T T L字段是由发送端初始设置一个 8 bit字段.
每个处理数据报的路由器都需要把 T T L的值减1或减去数据报在路由器中停留的秒数。由于大多数的路由器转发数据报的时延都小于 1秒钟,因此T T L最终成为一个跳站的计数器,所经过的每个路由器都将其值减 1
T T L字段的目的是防止数据报在选路时无休止地在网络中流动。
当路由器收到一份I P数据报,如果其T T L字段是0或1,则路由器不转发该数据报(接收到这种数据报的目的主机可以将它交给应用程序,这是因为不需要转发该数据报。在通常情况下,系统不应该接收 T T L字段为 0的数据报)。相反,路由器将该数据报弃,并给信源机发一份I C M P“超时”信息。 Tr a c e r o u t e程序的关键在于包含这份 I C M P信息的I P报文的信源地址是该路由器的I P地址.
Tr a c e r o u t e程序发送一份 U D P数据报给目的主机,但它选择一个不可能的值作为 U D P端口号(大于 30 000),使目的主机的任何一个应用程序都不可能使用该端口。因为,当该数据报到达时,将使目的主机的 U D P模块产生一份“端口不可达”错误的I C M P报文。

Tr a c e r o u t e程序所要做的就是区分接收到的 I C M P报文是超时还是端口不可达,以判断什么时候结束
Tr a c e r o u t e程序必须可以为发送的数据报设置T T L字段。并非所有与T C P / I P接口的程序都支持这项功能,同时并非所有的实现都支持这项能力
局域网输出


有两种不同的I C M P“超时”报文(见 6 . 2节的图6 - 3),它们的I C M P报文中c o d e字段不同。图8 - 2给出了这种I C M P差错报文的格式。
主机在组装分片时可能发生超时,这时,它将发送一份“组装报文超时”的 I C M P报文
如果在 5秒种内仍未收到3份数据报的任意一份的响应,则打印一个星号,并发送下一份数据报。

广域网输出

t r a c e r o u t e程序的输出是可读的域名形式,而不是 I P地址形式,那么会更好理解一些。但是由于 t r a c e r o u t e程序接收到I C M P报文时,它所获得的唯一信息就是 I P地址,因此,在给定 I P地址的情况下,它做一个“反向域名查看”工作来获得域名。
IP源站选路选项

通常I P路由是动态的,即每个路由器都要判断数据报下面该转发到哪个路由器。
源站选路(source routing)的思想是由发送者指定路由。它可以采用以下两种形式:
严格的源路由选择。发送端指明 I P数据报所必须采用的确切路由。如果一个路由器发现源路由所指定的下一个路由器不在其直接连接的网络上,那么它就返回一个“源站路由失败”的I C M P差错报文。
宽松的源站选路。发送端指明了一个数据报经过的 I P地址清单,但是数据报在清单上指明的任意两个地址之间可以通过其他路由器。

在一个T C P / I P网络中, t r a c e r o u t e程序是不可缺少的工具。其操作很简单:开始时发送一个 T T L字段为 1的U D P数据报,然后将 T T L字段每次加 1,以确定路径中的每个路由器。每个路由器在丢弃 U D P数据报时都返回一个 I C M P超时报文 2,而最终目的主机则产生一个I C M P端口不可达的报文。
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值