Traceroute原理学习

Traceroute原理学习Traceroute可以让我们看到IP数据报从一台主机传到另一台主机所经过的路由。曾经介绍过IP记录路由的选项RR,为什么不使用这个选项而另外开发一个新的应用程序Traceroute呢?原因有三:其一,并不是所有的路由器都支持记录路由这个选项;其二,记录路由一般是单向的选项,发送端设置了该选项,接收端不得不从收到的IP首部中提取出所有的信息,然后全部返回给发送端。大多数的ping服

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

Traceroute可以让我们看到IP数据报从一台主机传到另一台主机所经过的路由。

曾经介绍过IP记录路由的选项RR,为什么不使用这个选项而另外开发一个新的应用程序Traceroute呢?

原因有三:

其一,并不是所有的路由器都支持记录路由这个选项;

其二,记录路由一般是单向的选项,发送端设置了该选项,接收端不得不从收到的IP首部中提取出所有的信息,然后全部返回给发送端。大多数的ping服务器把接收到的RR清单返回(存于ICMP中),这样使得记录的IP地址翻了一番。

其三,IP首部的空间有限,不能存放当前大多数的路径。只能存放9IP地址。

 

Traceroute使用ICMP报文和IP首部中的TTL字段。TTL字段是由发送端初始设置的一个8bit的字段,推荐值为64,。每个处理数据包的路由都需要把TTL的值减1或者减去在路由器中停留的秒数,由于大多数路由器的转发数据包的时延都小于1秒,因此TTL最终成为一个跳站的计数器,所经过的每个路由器都将其值减1

 

当路由器收到一个IP数据包时,如果其TTL字段是0或者1,则路由器不转发该数据报,而是将该数据包丢弃,并给信源机发送一份ICMP超时信息,Traceroute程序的关键在于包含这份ICMP信息的IP报文的信源地址是该路由器的IP地址。

 

Traceroute程序的操作过程:它发送一份TTL字段为1IP数据报给目的主机。处理这份数据报的第一个路由器将T TL值减1,丢弃该数据报,并发回一份超时ICMP报文。这样就得到了该路径中的第一个路由器的地址。然后Traceroute程序发送一份TTL值为2的数据报,这样我们就可以得到第二个路由器的地址。继续这个过程直至该数据报到达目的主机。但是目的主机哪怕接收到TTL值为1I P数据报,也不会丢弃该数据报并产生一份超时ICMP报文,这是因为数据报已经到达其最终目的地。那么我们该如何判断是否已经到达目的主机了呢?

Traceroute程序发送一份U DP数据报给目的主机,但它选择一个不可能的值作为UDP端口号(大于30 000),使目的主机的任何一个应用程序都不可能使用该端口。因为,当该数据报到达时,将使目的主机的U DP模块产生一份端口不可达错误的I CMP报文。这样,Traceroute程序所要做的就是区分接收到的ICMP报文是超时还是端口不可达,以判断什么时候结束。

Traceroute出到百度主机的过程:

Traceroute原理学习

查看本机路由:

Traceroute原理学习

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/162541.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • JDK1.8下载安装(Windows版)

    JDK1.8下载安装(Windows版)官网下载JDK在oracle上的下载地址:https://www.oracle.com/technetwork/java/javase/downloads/index.html,根据自己的需要,我这儿选择的是“JavaSE8u201/JavaSE8u202”,点击【JDK-DOWNLOAD】,打开第二张截图,如图选择接受,然后下载“JavaSEDevelopmentKit…

  • wenstorm 激活码(最新序列号破解)

    wenstorm 激活码(最新序列号破解),https://javaforall.cn/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

  • 数据库系统的三大范式以及BCNF范式详细讲解 (很详细,很详细,很详细)

    首先要明白”范式(NF)”是什么意思。按照教材中的定义,范式是“符合某一种级别的关系模式的集合,表示一个关系内部各属性之间的联系的合理化程度”。很晦涩吧?实际上你可以把它粗略地理解为一张数据表的表结构所符合的某种设计标准的级别。就像家里装修买建材,最环保的是E0级,其次是E1级,还有E2级等等。数据库范式也分为1NF,2NF,3NF,BCNF,4NF,5NF。一般在我们设计关系型数据库的时候,最多…

  • bot抢鞋软件推荐_国内bot抢鞋软件

    bot抢鞋软件推荐_国内bot抢鞋软件自动抢鞋软件bot是一款超级易于使用的抢鞋工具软件。您可以在这里关注最新最时尚鞋。时尚潮流爱好者都可以关注它。您可以轻松地发现更多时尚的新鞋。如果您要寻找的鞋子,可以直接在线下订单。在这个时候,软件会自动帮你争取速度了。您可以及时关注有关时尚鞋预售的信息。抢鞋机器人bot特色1、抢鞋机器人bot软件是一款超级好用的掌上抢鞋神器,一键快速抢鞋;2、自己拼不过大家的手速,现在就可以靠机器人为你解决,各…

  • idea2019.3.3激活码获取[最新免费获取]

    (idea2019.3.3激活码获取)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.cn/100143.html23EQQJJI0G-eyJsa…

  • 一小时人生怎么选服务器(服务器一般多少瓦)

    上周末扑克之星的服务器发生了罕见的崩溃,几千名玩家掉线被洗盲注,而少数几个国家并没有影响,此事让扑克之星的用户纷纷谴责他们的服务提供商。祝贺罗马尼亚、捷克、保加利亚的玩家,你们从这次服务器崩溃事件中获利了。—DramaticDegen(@TJDarroch)2018年8月12日在你中止比赛之前,你按照被洗盲一个小时的筹码量分配奖金,你真的不能那么做。我们需要知道比赛中其他玩家获得的奖金。—…

发表回复

您的电子邮箱地址不会被公开。

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