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)


相关推荐

  • ios-anchorPoint、position理解[通俗易懂]

    ios-anchorPoint、position理解[通俗易懂]anchorPoint(锚点)是layer的一个属性,下面我们来看看其对view的影响,本文主要通过图片方式展现:锚点用单位坐标来描述也就是图层的相对坐标。在苹果文档中说明左下是(0,0),右上是(1,1),经过试验这个是错的,实际上:图层左上角是{0,0},右下角是{1,1},取值范围不限。单位坐标的意思是指以视图长款为单位来计算,坐标系展示如下:默认一个视图的锚

  • 记笔记最好用的超高颜值软件之一!Typora 你值得拥有!「建议收藏」

    记笔记最好用的超高颜值软件之一!Typora 你值得拥有!「建议收藏」之前一直在寻找一款比较好用的记笔记软件,OneNote很强大,但是有时总是出现同步失败的问题,而且对代码类型的笔记不太友好。之后意外了解到markdown(一种富文本的记笔记形式),类似CSDN,于是就了解到Typora这款颜值超高还免费的软件!它支持多种好看的主题,支持代码高亮,文字注释…

  • qmake介绍

    qmake介绍文章目录简单介绍下qmake简要介绍关于pro文件构建一个项目使用第三方库预编译头文件让我们开始试试吧从一个简单的例子开始允许程序可以Debug添加特定平台的源文件设置当文件不存在的时候就停止qmake检查多个条件qmake可以帮助我们在跨平台构建应用程序的时候变得更简单,我们可以通过写简单的几行必要的信息来生成构建文件,我们可以在任何的软件项目中使用qmakeqmake基于pro文件生产构建…

  • 如何查看GCC编译器版本

    如何查看GCC编译器版本查看GCC编译器版本

  • QTP10激活成功教程时,运行mgn-mqt82.exe 就提示已停止工作[通俗易懂]

    QTP10激活成功教程时,运行mgn-mqt82.exe 就提示已停止工作[通俗易懂]将mgn-mqt82.exe软件下载到这个目录,没有目录自己创建C:\Program Files (x86)\Common Files\Mercury Interactive\License Manager

  • nohup命令详解[通俗易懂]

    nohup命令详解[通俗易懂]nohup命令详解

发表回复

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

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