traceroute

      traceroute解决了ping记录路由的缺点

      traceroute使用icmp报文和ip首部中的TTL字段。每个处理数据报的路由都把TTL的值减1,由于大多数的路由转发数据的延时都小于1秒。因此TTL变成跳转计数器。 
      举例,发送一个TTL为1的ip数据报,经第一个路由减1,丢弃数据报,发送一个超时icmp报文。TTL为2就得到第二个路由的地址。

      到什么时候终止呢?traceroute发送一份udp数据报给目的主机,但选择一个不可能的udp端口值,使目的主机产生一份 端口不可达报文,以判断结束。



      icmp报文在TTL值等于0产生的,code字段为0

      主机组装分片时发生超时将发送一份“组装超时”icmp报文,code字段为1


      注意事项:

      1,并不能保证现在的路由就是将来要使用的路由,甚至两份连续的ip报文都可能采用不同的路由。

      2,不能保证udp数据报采用同一路由。路由不对称性。

      3,返回的icmp报文的信源得知是udp数据包的路由接口的ip地址。




ip源站选路选项(即指定数据报传输的路径)

1.严格的源路由选择。源路由指定的下一站路由不在直接连接的网络上,就返回一个“源站路由失败”的icmp报文。code字段0x89

2.宽松的源路由选择。发送端指明了ip地址清单。中间可以插入其他路由。code字段0x85



你可能感兴趣的:(协议)