TCP/IP协议卷学习---基础部分(八 Traceroute程序)

1 为什么会有Traceroute
①一些TCP/IP实现不会处理IP包中的选项,或者不试别选项中的RR,所以不会记录中间的路由地址。
②记录器一般是单向的,下一个路由需要解析上一个路由的IP报并把出口地址加入进去。
③IP数据报首部最大长度为60字节,导致记录的IP有限。

2 traceroute实现
traceroute程序使用ICMP报文和IP首部中的TTL字段(生存周期)。先发送一个TTL为1的,然后逐次增加。TTL字段是由发送端初始设置一个 8 bit字段。每次经过一个路由TTL就会减一,这样变作成了一个跳站计数器。当收到一份TTL为0的数据包,会丢弃数据并给源端返回一个ICMP超时错误。这时源主机就会在ICMP这个错误包内得到最终路由的IP。
但是如果目的主机收到数据包时即使TTL不为0也会终止,这个时候正常能处理的情况不会返回ICMP错误包,为了避免这种TTL不为0时的正常终止,源主机会发送一份UDP数据包,并通常选择端口>30000,这样即使到达目的主机,由于端口不可达,依然会返回一个端口不可达的ICMP错误,这样终端判断是否时超时还是正确到达只需要看ICMP包的具体描述即可。

3 源站选路
一般路由选路都是自动进行的,应用程序并不关心数据的中转流程。源站选路则是由源主机指定通往目的主机的路由路径。
①严格的源路选择,如果一个路由器发现源路由所指定的下一个路由器不在其直接连接的网络上,那么它就返回一个“源站路由失败”的ICMP差错报文。(traceroute -G ... -G*...)
②宽松的源路选择,发送端指明了一个数据报经过的 I P地址清单,但是数据报在清单上指明的任意两个地址之间可以通过其他路由器。(traceroute -g ..
.* -g ...)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值