美文网首页
traceroute的实现

traceroute的实现

作者: 0X7C00 | 来源:发表于2018-07-29 22:45 被阅读0次

    背景知识:
    当路由器收到一份IP数据报时,如果其TTL是0或者1,则路由器丢弃该数据包,并给源IP发送一条ICMP超时消息。traceroute程序的关键在于这条ICMP消息中包含该路由器的IP

    traceroute的操作过程:
    发送一份TTL为1的消息给目的主机,处理这个消息的第一个路由器将TTL减1,丢弃该数据包,发给源IP一份超时ICMP报文,这样就得到了第一个路由器的地址,以此类推可以获取第二个,第三个路由器的地址,继续这个过程直到该消息到达目的主机,如果判断消息到达目的主机呢?traceroute使用UDP发送数据报给目的主机,但它选择一个不可能的值作为目的主机的端口号,使目的主机的任何应用程序都不使用该端口,使目的主机的UDP模块产生一个端口不可达错误的ICMP报文。这样ICMP可以通过收到的消息是超时还是端口不可达来判断何时结束。

    相关文章

      网友评论

          本文标题:traceroute的实现

          本文链接:https://www.haomeiwen.com/subject/kmltvftx.html