traceroute 工作原理

traceroute 工作原理文章目录PINGTracerouteTraceroute的工作原理举个“栗子”PINGICMP的一个重要应用就是分组网间探测PING(PacketInterNetGroper),用来测试两台主机之间的连通性。PING使用了ICMP回送请求与回送回答报文。PING是应用层直接使用网络层ICMP的一个例子。他没有通过传输层的TCP或UDP。TracerouteICMP的另一个非常有用的应用是traceroute(这是UNIX操作系统中名字),它用来跟踪一个分组从源点到

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

PING

ICMP 的一个重要应用就是分组网间探测 PING(Packet InterNet Groper),用来测试两台主机之间的连通性。PING 使用了 ICMP 回送请求与回送回答报文。PING 是应用层直接使用网络层 ICMP 的一个例子。他没有通过传输层的 TCP 或 UDP。

Traceroute

ICMP 的另一个非常有用的应用是 traceroute(这是 UNIX 操作系统中名字),它用来跟踪一个分组从源点到终点的路径。在 Windows 操作系统中这个命令是 tracert。下面简单介绍下这个程序的工作原理。

Traceroute 的工作原理

Traceroute 从源主机向目的主机发送一连串的IP数据报,数据报中封装的是无法交付的 UDP 用户数据报。第一个数据报 P1 的生存时间 TTL 设置为1。当 P1 到达路径上的第一个路由器 R1 时,路由器 R1 先收下它,接着把 TTL 的值减 1。由于 TTL 等于零了,R1 就把 P1 丢弃了,并向源主机发送一个 ICMP 时间超过 差错报给报文。
源主机接着发送第二个数据报 P2,并把 TTL 设置为 2。P2 先到达路由器 R1 收下后把 TTL 减 1 再转发给路由器 R2。R2 收到 P2 时 TTL 为 1,但减 1 后 TTL 变为零了。R2 就丢弃 P2,并向源主机发送一个 ICMP 时间超过差错报给报文。这样一直继续下去。当最后一个数据报刚刚到达目的主机时,数据报的 TTL 是 1。主机不转发数据报,也不把 TTL 值减 1。但因 IP 数据报中封装的是无法交付的传输层的 UDP 用户数据报,因此目的主机要向源主机发送 ICMP 终点不可达差错报告报文。
这样,源主机达到了自己的目的,因为这些路由器和最后目的主机发来的 ICMP 报文正好给出了源主机想知道的路由信息——到达目的主机所经过的路由器的 IP 地址,以及到达其中的每一个路由器的往返时间。

举个“栗子”

C:\Users\liyongjun>tracert www.baidu.com

通过最多 30 个跃点跟踪
到 www.a.shifen.com [180.101.49.11] 的路由:

  1     5 ms     2 ms     6 ms  10.10.68.1 [10.10.68.1]
  2     *        *        *     请求超时。
  3     3 ms     3 ms     3 ms  49.76.124.1
  4     3 ms     1 ms     3 ms  58.215.68.201
  5     5 ms     6 ms     4 ms  58.215.152.181
  6     5 ms     6 ms     6 ms  58.213.94.106
  7     *        *        6 ms  58.213.94.86
  8     7 ms    45 ms     9 ms  58.213.96.102
  9    11 ms    10 ms    10 ms  10.166.50.6 [10.166.50.6]
 10    10 ms    11 ms    10 ms  10.166.50.8 [10.166.50.8]
 11     *       60 ms    11 ms  10.166.96.4 [10.166.96.4]
 12    11 ms     *        *     10.165.1.17 [10.165.1.17]
 13     5 ms     5 ms     6 ms  180.101.49.11

上面是从一台 Windows PC 向百度服务器 www.baidu.com 发出的 tracert 命令后获得的结果。图中每一行有三个时间出现,是因为对应于每一个 TTL 值,源主机要发送三次同样的 IP 数据报。出现 * 号,可能是该路由器防火墙屏蔽掉了 ICMP 消息,所以我们得不到相关数据包的返回数据。上图说明从 PC 到百度服务器,中间共经历了 12 台路由器,并且能够看到每台路由器的 IP 地址,最终抵达目的IP 180.101.49.11
我们还应该注意到,从原则上讲,IP 数据报经过的路由器越多,所花费的时间也就越多。但从上面示例可以看出,有时正好相反。这是因为互联网的拥塞程度随时都在变化,也很难预料到。因此,完全有这样的可能:经过更多的路由器反而花费更少的时间。

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

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

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


相关推荐

  • Zigbee协议栈中文说明

    Zigbee协议栈中文说明1.概述 1.1解析ZigBee堆栈架构ZigBee堆栈是在IEEE802.15.4标准基础上建立的,定义了协议的MAC和PHY层。ZigBee设备应该包括IEEE802.15.4(该标准定义了RF射频以及与相邻设备之间的通信)的PHY和MAC层,以及ZigBee堆栈层:网络层(NWK)、应用层和安全服务提供层。图1-1给出了这些组件的概况。1.1.1ZigBee堆栈层每个Z

    2022年5月8日
    36
  • 4个基本不等式的公式高中_基本不等式公式四个[通俗易懂]

    4个基本不等式的公式高中_基本不等式公式四个[通俗易懂]课题:基本不等式第2课时时间:2010.10.29地点:阳春四中年级:高二【教学目标】1.知识与技能:进一步掌握基本不等式;会应用此不等式求某些函数的最值;能够解决一些简单的实际问题2.过程与方法:通过两个例题的研究,进一步掌握基本不等式,并会用此定理求某些函数的最大、…均值不等式【使用说明】1.自学课本P69—P71,仔细阅读课本,课前完成预习学案,牢记基础知识,掌握基本…

    2022年4月28日
    95
  • CString和char*转换的理解

    CString和char*转换的理解

    2021年8月26日
    112
  • 美元共有几种面值_日元的面值有哪几种

    美元共有几种面值_日元的面值有哪几种美元面值纸币有1美元、2美元、5美元、10美元、20美元、50美元、100美元。以前曾发行过500和1000元面额的大面额钞票,现在已不再流通。美元是美利坚合众国的官方货币。目前流通的美元纸币是自19

    2022年8月4日
    4
  • iframe属性与用法

    iframe标签有人说,iframe是能耗最高的一个元素,尽量减少使用。也有人说,iframe的安全性太差,尽量减少使用。虽然他们说的是真的,但是iframe的强大功能是不容忽视的,而且现在不乏公司正在使用它。标签规定一个内联框架。一个内联框架被用来在当前HTML文档中嵌入另一个文档。所有的主流浏览器都支持标签。你可以把提示的文字放到和里面,这样不支持的浏览器就会出现提示…

    2022年4月6日
    57
  • vscode怎样新建项目和文件

    vscode怎样新建项目和文件vscode跟其他编辑器不太一样,今天咪咪我就来给大家分享一下vscode新建项目和文件的方法。需要用品:电脑vscode01、首先是新建文件,如果只是单一的文件,可以直接点击欢迎界面的“新建文件”,这样即可得到一个新的文件。02、而如果欢迎界面被你关闭掉了,则可以在文件菜单中来新建一个文件。当然,这两个方法都只是新建单一文件,并不是一个完整的项目哦。03、接着我们开始创建一个项目,首先…

    2022年6月29日
    65

发表回复

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

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