traceroute用法与原理分析

traceroute是用于分析网络路由路径的工具,本文介绍了其基本用法和工作原理。通过发送不同TTL值的ICMP请求,traceroute能显示到达目标IP的全部路由节点及时延。每个节点通常显示3个时延,若出现请求超时可能是某些节点不允许发送TTL超时报文。
部署运行你感兴趣的模型镜像

traceroute是linux/unix系统中用于分析本地到目标网络地址间的路由转发路径的工具,也常用于诊断网络链路不通或异常的发生位置。在windows中也有类似功能的工具,名为tracert。

本文将介绍traceroute的用法并分析其原理。

用法

traceroute的使用方式很简单,只需要提供目标IP作为参数即可。工具也提供一些参数来设置探测的最大跳数、每跳的探测次数等,不过一般较少使用,可以参考--help输出的帮助信息。

上图是在windows下使用tracert追踪baidu.com对应的服务器IP 220.181.38.148所产生的结果。输出的第一行和探测结果无关,只是表示tracert最多探测30跳,如果30跳仍未到达目标则不再探测。

之后每行输出的是路由链路上每一跳的路由节点IP以及到这个节点的时延情况。可以看到第1跳是本地路由器,第2跳是本地运营商接入网关,之后每一跳都是网络转发路径上的一个节点。每增加一跳,时延一般都会增加一点,因为传输路径变长了。最终经过17跳,报文到达目标服务器。

对于这个结果,我们会产生一些疑问:

  1. 每一跳的IP和时延信息是怎么得到的?
  2. 为什么每一跳有3个时延信息,有时还会显示2个或者3个IP地址?
  3. 为什么有些跳数显示的结果是请求超时?为什么有节点请求超时了还能到达后续的节点?

要回答这些问题,就需要分析traceroute的原理。

原理

traceroute的原理其实非常简单,步骤如下:

1. 向目标IP发送3个TTL=n(n起始值为1)的ICMP ping request报文,等待回应

2. 如果收到ICMP ping response报文,则说明路由成功,通过n跳可以到达目标IP,traceroute工作完成。request和response的时间间隔就是时延,由于发送了3个request,因此有3个时延信息。

 3.  如果收到ICMP TTL exceeded报文,则说明第n跳路由到达了这个报文的发送节点。IP报文的TTL字段每经过一次路由转发就会减1,当减到0时当前的转发节点就会向报文的源IP发送一个ICMP TTL exceeded报文,因此发送了这个报文的节点就是第n跳的路由节点。由于发送了3个request,因此会返回3个报文和对应的时延信息。由于到目标IP的路由路径不一定是唯一的,因此报文在第n跳时到达的节点不一定是同一个,就有可能会输出多个第n跳节点地址。

 4. 如果在request发出3秒(默认超时时间)后仍然没有收到任何回应,则这轮检测超时。但这并不意味着目标IP不可达,而很可能是因为第n跳到达的节点不允许发送TTL exceeded报文。因此traceroute会继续后面的探测过程。

5. 将TTL加1,回到第1步继续探测。

通过上述步骤,traceroute根据发出的ICMP request和收到的响应情况,就可以获得路由路径上所有(允许发送TTL exceeded报文)的路由节点IP和时延了。由于每一跳的探测报文会发送3次,因此会有3个响应时延和3个路由节点IP(可能重合)。由于部分路由节点不允许发送TTL exceeded报文,因此在这些节点上TTL耗尽的探测包不会收到响应,也就无法获得这一跳的节点信息,但这个节点可以继续转发报文,因此路由过程和探测过程都可以继续。

您可能感兴趣的与本文相关的镜像

ACE-Step

ACE-Step

音乐合成
ACE-Step

ACE-Step是由中国团队阶跃星辰(StepFun)与ACE Studio联手打造的开源音乐生成模型。 它拥有3.5B参数量,支持快速高质量生成、强可控性和易于拓展的特点。 最厉害的是,它可以生成多种语言的歌曲,包括但不限于中文、英文、日文等19种语言

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值