TCP/IP协议详解 卷1 Traceroute程序[通俗易懂]

TCP/IP协议详解 卷1 Traceroute程序[通俗易懂]作用可以让我们看到IP数据报从1台主机传到另一台主机所经过的路由。比Ping程序看到更多东西优势不是所有路由器都支持RR选项。所以有些路由器上会出现不记录IP的现象。Traceroute不需要路由器具备任何特殊的功能RR选项的数据报的目的Ping服务器(主机)会将接受到的RR清单Copy回去。然后再加上回去的IP清单。这样就是X2。这会收到一些限制IP首部的空间有限,不能存放太多的IP…

大家好,又见面了,我是你们的朋友全栈君。

作用

可以让我们看到IP数据报从1台主机传到另一台主机所经过的路由。比Ping程序看到更多东西

优势

  1. 不是所有路由器都支持RR选项。所以有些路由器上会出现不记录IP的现象。Traceroute不需要路由器具备任何特殊的功能
  2. RR选项的数据报的目的Ping服务器(主机)会将接受到的RR清单Copy回去。然后再加上回去的IP清单。这样就是X2。这会收到一些限制
  3. IP首部的空间有限,不能存放太多的IP(最多9个)
  4. 将TTL字段改成跳站的计数器

TTL

如果TTL的值为1或0时,路由器丢弃该数据报。并且给源主机发送一份ICMP超时信息。Traceroute程序将该路由器的IP地址包含在这份ICMP数据报中

如果是主机返回的ICMP是端口不可达的ICMP数据报。以此来区分路由器发送回来的还是主机发送回来的

ICMP超时报文

在这里插入图片描述

如果是TTL值等于0的时候产生的那code字段的值为0
如果是组装分片的时候发生超时,则code字段的值为1

Traceroute注意事项

不能保证ICMP报文的路由与Traceoute程序发送的UDP数据报采用同一路由
返回的ICMP数据报中包含的信源地址是路由器地址。但是IP记录路由选项(RR)是记录发送接口的地址。由于路由器有多个接口因此 A-B和B-A上运行Traceroute的返回结果可能会有所不同

IP源站选路选项

路由器发现下一站需要转发的路由器通常是采用Traceroute这样的程序完成。由发送者指定路由
规则有两种,严格的源路由选择(SSRR)和宽松的源路由选择(LSRR)
严格的源路由选择: 发送端指明IP数据报所要经过的确切路由,如果该IP不在其直接相连的网络上,则返回一个“源站路由失败”的ICMP差错报文
宽松的源路由选择:发送端指名IP数据报所要经过的IP清单,清单上的任意两个IP地址之间可以通过其他路由器

IP首部路由选项通用格式
在这里插入图片描述
跟IP路由选项的格式一样,不同的是源站选路一开始就要把清单填入。并且只需要分配足够的空间即可(IP地址清单通长会少于9个)
宽松的源站选路的code是0x83,严格的是0x89

源站路由选项运行过程:

  1. 发送主机收到源站路由清单,将第1个表项去掉(数据报的最终目的地),将剩下的项往前移动,然后将目的地址作为清单最后一项,类似把原本第一行的数据丢到最后一行去
  2. 每个处理数据报的路由都会检查自己的IP是否是清单中的最终地址。如果不是则转发(宽松的源站选路才可以)
  3. 如果路由是最终地址了那就将路由器的外出接口相对应的IP设为源地址,指针+4
    在这里插入图片描述
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/151535.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Scapy的介绍(一)「建议收藏」

    Scapy的介绍(一)「建议收藏」介绍关于Scapy的Scapy是一个Python程序,使用户能够发送,嗅探和剖析并伪造网络数据包。此功能允许构建可以探测,扫描或攻击网络的工具。换句话说,Scapy是一个功能强大的交互式数据包操作程序。它能够伪造或解码大量协议的数据包,通过线路发送,捕获它们,匹配请求和回复等等。Scapy可以轻松处理大多数经典任务,如扫描,跟踪路由,探测,单元测试,攻击或网络发现。它可以取代hping…

    2022年4月19日
    31
  • element ui select 踩坑

    element ui select 踩坑

    2021年6月9日
    171
  • 192.168.和10.0.开头的IP、内网IP段、IP简介、分类——(IP观止)

    192.168.和10.0.开头的IP、内网IP段、IP简介、分类——(IP观止)在这三类地址中,绝大多数的IP地址都是公有地址,需要向国际互联网信息中心申请注册。但是在IPv4地址协议中预留了3个IP地址段,作为私有地址,供组织机构内部使用。这三个地址段分别位于A、B、C三类地址内:A类地址:10.0.0.0–10.255.255.255B类地址:172.16.0.0–172.31.255.255C类地址:192.168.0.0–192.168….

    2022年5月7日
    119
  • CubieBoard2串口

    CubieBoard2串口CubieBoard2串口

    2022年7月22日
    6
  • 弧度和角度的转换_角度与弧度的换算表格

    弧度和角度的转换_角度与弧度的换算表格这两天在看同事写的四叉树代码,当中用到了孤度和角度之间的转换,所以转载此文章进行了学习2009-12-01弧度与角度的关系一、角的两种单位“弧度”和“度”是度量角大小的两种不同的单位。就像“米”和

    2022年8月4日
    6
  • matlab的imread怎么用_imread函数参数的含义

    matlab的imread怎么用_imread函数参数的含义imread(matlab)                                            函数语法 A = imread(filename, fmt)[X, map] = imread(…)[…] = imread(filename)[…] = imread(URL,…)[…] = imread(

    2022年10月14日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号