🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
在一个TCP/IP网络中,traceroute程序是不可缺少的工具。其操作很简单:开始时发送一个TTL字段为1的UDP数据报,然后将TTL字段每次加1,以确定路径中的每个路由器。 每个路由器在丢弃UDP数据报时都返回一个ICMP超时报文2,而最终目的主机则产生一个ICMP端口不可达的报文。 我们给出了在LAN和WAN上运行traceroute程序的例子,并用它来考察IP源站选路。 我们用宽松的源站选路来检测发往目的主机的路由是否与从目的主机返回的路由一样。 ####**习题** 8.1 当IP将接收到的TTL字段减1,发现它为0时,将会发生什么结果? 8.2 traceroute程序是如何计算RTT的?将这种计算RTT的方法与ping相比较。 8.3 (本习题与下一道习题是基于开发traceroute程序过程中遇到的实际问题,它们来自于traceroute程序源代码注释)。假设源主机和目的主机之间有三个路由器(R1、R2和R3),而中间的路由器(R2)在进入TTL字段为1时,将TTL字段减1,但却错误地将该IP数据报发往下一个路由器。请描述会发生什么结果。在运行traceroute程序时会看到什么样的现象? 8.4 同样,假设源主机和目的主机之间有三个路由器。由于目的主机上存在错误,因此,它总是将进入TTL值作为外出ICMP报文的TTL值。请描述这将发生什么结果,你会看到什么现象。 8.5 在图8-8运行例子中,我们可以在sun和netb之间的SLIP链路上运行tcpdump程序。如果指定-v选项,就可以看到返回ICMP报文的TTL值。这样,我们可以看到进入netb、butch、Gabby和enss142.UT.westnet.net的TTL值分别为255、253、252和249。这是否为我们判断是否存在丢失路由器提供了额外的信息? 8.6 SunOS和SVR4都提供了带-l选项的ping版本,以提供松源选路。手册上说明,该选项可以与-R选项(指定记录路由选项)一起使用。如果已经进入到这些系统中,请尝试同时用这两个选项。其结果是什么?如果采用tcpdump来观测数据报,请描述其过程。 8.7 比较ping和traceroute程序在处理同一台主机上客户的多个实例的不同点。 8.8 比较ping和traceroute程序在计算往返时间上的不同点。 8.9 我们已经说过, traceroute程序选取开始UDP目的主机端口号为33453,每发送一个数据报将此数加1。在1.9节中,我们说过暂时端口号通常是1024 ~ 5000之间的值,因此traceroute程序的目的主机端口号不可能是目的主机上所使用的端口号。在Solaris2.2系统中的情况也是如此吗?(提示:查看E.4节) 8.10 RFC 1393 [Malkin 1993b]提出了另一种判断到目的主机路径的方法。请问其优缺点是什么?