路由追踪——traceroute与tracert

一、路由追踪  
(一)路由跟踪,就是获取从主机A到达目标主机B这个过程中所有需要经过的路由设备的转发接口IP。
(二)ICMP协议
  Internet控制报文协议(internet control message protocol),它是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。
  日常生活中,邮寄包裹会经过多个传递环节,任意一环如果无法传下去,都会返回寄件人,并附上无法邮寄的原因。同理,当路由器收到一个无法传递下去的IP报文时,会发送ICMP目的不可达报文(Type为3)给IP报文的源发送方。报文中的Code就表示发送失败的原因。
(三)TCP协议的三次握手
A. TCP建立连接的三次握手机制
在这里插入图片描述  
  
(1)第一次握手:Client将标志位SYN置为1,随机产生一个值seq=J,并将该数据包发送给Server。
(2)第二次握手:Server收到数据包后由标志位SYN=1知道Client请求建立连接,Server将标志位SYN和ACK都置为1,ack=J+1,随机产生一个值seq=K,并将该数据包发送给Client以确认连接请求。
(3)第三次握手:Client收到确认后,检查ack是否为J+1,ACK是否为1,如果正确则将标志位ACK置为1,ack=K+1,并将该数据包发送给Server,Server检查ack是否为K+1,ACK是否为1,如果正确则连接建立成功,完成三次握手,随后Client与Server之间可以开始传输数据了。
B.TCP的相关报文解释
在这里插入图片描述
  上图中我们重点来介绍一下Flags(标志位-8位):
    ACK:确认序号有效;
    PSH:接收方应该尽快将这个报文交给应用层
    RST:重置连接
    SYN:发起一个新连接
    FIN: 释放一个连接

(四)各协议探测原理 
  1. 基于TCP协议:
    端口存在:返回第二次握手包。
    否则:
      Unix/Linux:返回RST包,重置连接。
      Windows: 无响应……
  2.基于UDP协议:
    端口存在:直接丢给对应进程,无返回。
    端口不存在:返回端口不可达的ICMP报文。
    (因此UDP探测时,一般选择没人用的大端口)。
  3.基于ICMP协议:
    返回回显应答报文。

二、traceroute
(一)traceroute原理介绍
在这里插入图片描述
  过程描述:
    通过向目标发送不同IP生存时间 (TTL) 值的数据包,路径上的每个路由器在转发数据包之前至少将数据包上的 TTL 减 1。数据包上的 TTL 减为 0 时,路由器应该将“超时”的消息发回源系统。
    先发送 TTL 为 1 的数据包,并在随后的每次发送过程将TTL递增 1,直到目标响应或 TTL 达到最大值,从而确定路由。
   在这里插入图片描述 
(二)traceroute命令详解
1、语法
traceroute [-dFlnrvx][-f<存活数值>][-g<网关>…][-i<网络界面>][-m<存活数值>][-p<通信端口>][-s<来源地址>][-t<服务类型>][-w<超时秒数>][主机名称或IP地址][数据包大小]

2、参数说明:
-d 使用Socket层级的排错功能。
-f<存活数值> 设置第一个检测数据包的存活数值TTL的大小。
-F 设置勿离断位。
-g<网关> 设置来源路由网关,最多可设置8个。
-i<网络界面> 使用指定的网络界面送出数据包。
-I 使用ICMP回应取代UDP资料信息。
-m<存活数值> 设置检测数据包的最大存活数值TTL的大小。
-n 直接使用IP地址而非主机名称。
-p<通信端口> 设置UDP传输协议的通信端口。
-r 忽略普通的Routing Table,直接将数据包送到远端主机上。
-s<来源地址> 设置本地主机送出数据包的IP地址。
-t<服务类型> 设置检测数据包的TOS数值。
-v 详细显示指令的执行过程。
-w<超时秒数> 设置等待远端主机回报的时间。
-x 开启或关闭数据包的正确性检验。

(三)实例
在这里插入图片描述
在我的Ubuntu18.04 Linux系统下traceroute 一台主机时,会看到有一些行是以星号表示的。如出现上面情况,可能是防火墙封掉了ICMP的返回信息,所以我们得不到什么相关的数据包返回数据。
有时我们在某一网关处延时比较长,有可能是某台网关比较阻塞,也可能是物理设备本身的原因。当然如果某台DNS出现问题时,不能解析主机名、域名时,也会 有延时长的现象;可以加-n 参数来避免DNS解析,以IP格式输出数据。

由于在虚拟机下路由追踪效果不好我在Windows环境下进行路由追踪
三、tracert
在这里插入图片描述
(一)tracert命令详解
C:\Users\Administrator>tracert
用法: tracert [-d] [-h maximum_hops] [-j host-list] [-w timeout]
[-R] [-S srcaddr] [-4] [-6] target_name
选项:
-d 不将地址解析成主机名。
-h maximum_hops 搜索目标的最大跃点数。
-j host-list 与主机列表一起的松散源路由(仅适用于 IPv4)。
-w timeout 等待每个回复的超时时间(以毫秒为单位)。
-R 跟踪往返行程路径(仅适用于 IPv6)。
-S srcaddr 要使用的源地址(仅适用于 IPv6)。
-4 强制使用 IPv4。
-6 强制使用 IPv6。

(二)实例
1、下面是在三个不同时间段对www.traceroute.org的路由追踪
1)C:\Users\Administrator>tracert www.traceroute.org
通过最多 30 个跃点跟踪
到 www.traceroute.org [193.141.43.158] 的路由:

1 2 ms 1 ms <1 毫秒 172.26.0.1
2 1 ms 1 ms 1 ms 115.26.63.90
3 1 ms 1 ms 1 ms 202.113.14.153
4 2 ms 2 ms 2 ms 202.113.14.157
5 12 ms 6 ms 19 ms 101.4.117.197
6 3 ms 3 ms 3 ms 101.4.112.69
7 6 ms 5 ms 5 ms 101.4.114.222
8 6 ms 6 ms 6 ms 101.4.117.254
9 6 ms 8 ms 5 ms 101.4.118.122
10 54 ms 55 ms 56 ms 101.4.117.150
11 276 ms 275 ms 240 ms 61.8.59.37
12 262 ms 277 ms 276 ms i-91.hkth-core02.telstraglobal.net [202.84.153.25]
13 186 ms 189 ms 200 ms i-10852.eqnx-core02.telstraglobal.net [202.84.140.2]
14 211 ms 219 ms 212 ms i-92.eqnx03.telstraglobal.net [202.84.247.17]
15 314 ms 293 ms 329 ms sjca-s1-rou-1001.us.eurorings.net [206.223.116.99]
16 * * * 请求超时。
17 * * * 请求超时。
18 356 ms 364 ms 351 ms dssd-s2-rou-1102.DE.eurorings.net [134.222.48.179]
19 364 ms 347 ms 333 ms traceroute.org [193.141.43.158]

2)C:\Users\Administrator>tracert www.traceroute.org
通过最多 30 个跃点跟踪
到 www.traceroute.org [193.141.43.158] 的路由:

1 <1 毫秒 <1 毫秒 <1 毫秒 172.26.0.1
2 1 ms 1 ms 1 ms 115.26.63.90
3 14 ms 31 ms 1 ms 202.113.14.153
4 2 ms 2 ms 2 ms 202.113.14.157
5 3 ms 4 ms 3 ms 101.4.115.25
6 5 ms 3 ms 4 ms 101.4.112.69
7 5 ms 5 ms 8 ms 101.4.115.253
8 8 ms 4 ms 5 ms 101.4.117.254
9 4 ms 4 ms 7 ms 101.4.118.122
10 58 ms 60 ms 61 ms 101.4.117.150
11 256 ms 278 ms 278 ms 61.8.59.37
12 270 ms 254 ms 273 ms i-91.hkth-core02.telstraglobal.net [202.84.153.25]
13 196 ms 189 ms 189 ms i-10852.eqnx-core02.telstraglobal.net [202.84.140.2]
14 210 ms 219 ms 222 ms i-92.eqnx03.telstraglobal.net [202.84.247.17]
15 375 ms 376 ms 352 ms sjca-s1-rou-1001.us.eurorings.net [206.223.116.99]
16 * * * 请求超时。
17 * * * 请求超时。
18 396 ms 375 ms 358 ms dssd-s2-rou-1102.DE.eurorings.net [134.222.48.179]
19 390 ms 380 ms 383 ms traceroute.org [193.141.43.158]

跟踪完成。

3)C:\Users\Administrator>tracert www.traceroute.org
通过最多 30 个跃点跟踪
到 www.traceroute.org [193.141.43.158] 的路由:

1 <1 毫秒 <1 毫秒 <1 毫秒 172.26.0.1
2 1 ms <1 毫秒 <1 毫秒 115.26.63.90
3 1 ms 1 ms 1 ms 202.113.14.153
4 3 ms 2 ms 2 ms 202.113.14.157
5 2 ms 4 ms 6 ms 101.4.115.25
6 4 ms 12 ms 23 ms 101.4.112.69
7 4 ms 5 ms 7 ms 101.4.115.253
8 5 ms 4 ms 4 ms 101.4.117.254
9 5 ms 4 ms 5 ms 101.4.118.122
10 52 ms 53 ms 54 ms 101.4.117.150
11 281 ms 255 ms 280 ms 61.8.59.37
12 256 ms 259 ms 278 ms i-91.hkth-core02.telstraglobal.net [202.84.153.25]
13 202 ms 208 ms 211 ms i-10852.eqnx-core02.telstraglobal.net [202.84.140.2]
14 212 ms 213 ms 214 ms i-92.eqnx03.telstraglobal.net [202.84.247.17]
15 366 ms 358 ms 367 ms sjca-s1-rou-1001.us.eurorings.net [206.223.116.99]
16 * * * 请求超时。
17 * * * 请求超时。
18 374 ms 380 ms 384 ms dssd-s2-rou-1102.DE.eurorings.net [134.222.48.179]
19 409 ms 390 ms 363 ms traceroute.org [193.141.43.158]

跟踪完成。
分析
a)三小时中每一小时的往返延迟的平均值(平均值)分别为384.3毫秒,387.3毫秒和348毫秒。 标准偏差分别为0.75 ms,0.21 ms,0.5 ms。
b)在这个例子中,tracert在三小时的每一小时都有18个路由器,路径在任何时间都没有变化。
c)在这个实验中,最大的延迟发生在相邻ISP之间的对等接口上。

2、命令执行结果的说明:
1)tracert命令用于确定 IP数据包访问目标所采取的路径,显示从本地到目标网站所在网络服务器的一系列网络节点的访问速度,最多支持显示30个网络节点。

2)最左侧的,1,2,3,4~8,表明在我使用的宽带上,经过18(不算自己本地的)个路由节点,可以到达traceroute官网的服务;如果是电信可能有不同;其他的IP,也有可能不同;

3)中间的三列,单位是ms,表示我们连接到每个路由节点的速度,返回速度和多次链接反馈的平均值;

4)后面的IP,就是每个路由节点对应的IP,每个IP代表什么,各位可以通过 3(推荐的站长工具)去了解

5)如果返回消息是超时,则表示这个路由节点和当前我们使用的宽带,是无法联通的,至于原因,就有很多种了,比如:特意在路由上做了过滤限制,或者确实是路由的问题等,需要具体问题具体分析;

6)如果在测试的时候,大量的都是*和返回超时,则就说明这个IP,在各个路由节点都有问题

7)一般10个节点以内可以完成跟踪的网站,访问速度都是不错的;10到15个节点之内才完成跟踪的网站,访问速度则比较差,如果超过30个节点都没有完成跟踪的网站,则可以认为目标网站是无法访问的。

3、推荐一个查询IP或者域名信息的工具(http://tool.chinaz.com)
在这里插入图片描述

四、参考资料
【1】http://www.mamicode.com/info-detail-1644999.html
【2】https://www.cnblogs.com/godtrue/p/5882541.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/256645.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

利用路由追踪工具收集路由信息

预备知识 了解traceroute、Dmitry、Itrace、Tcptraceroute、tctrace等工具的使用方法。 实验 1、此环境用bt5、Linux&#xff08;可能需要装Java&#xff09; 2、打开目标主机linux&#xff0c;输入用户名&#xff1a;root&#xff0c;密码&#xff1a;123456.如图&#xff1…

【Linux】关于路由跟踪指令traceroute

本文所有命令实施的大前提是&#xff1a;你现在能够上网。 稍有计算机常识的人都知道ping命令&#xff0c;是用来检查自己的主机是否与目标地址接通&#xff0c;自己的主机与目标地址的通讯包通讯速率&#xff0c;所谓的通讯包也就是那些什么TCP/IP&#xff0c;UDP包&#xff…

Linux Command traceroute 路由追踪

Linux Command traceroute 路由追踪 tags: 网络, 分析 文章目录 Linux Command traceroute 路由追踪1. 介绍2. 工作原理&#xff1a;3. 命令格式&#xff1a;4. 命令功能&#xff1a;5. 用法5.1 最常用的用法5.2 跳数设置5.3 显示IP地址&#xff0c;不查主机名5.4 探测包使用的…

路由跟踪Tracert

路由跟踪Tracert 指令&#xff1a;tracert“address” 作用&#xff1a;是查看数据包从你的电脑出发后&#xff0c;经过了哪些设备最终到达目的地址&#xff1b; 原理&#xff1a; 通过向目标发送不同 IP 生存时间 (TTL) 值的“Internet 控制消息协议 (ICMP)”回应数据包&am…

路由追踪的实现

今天小编将给大家分享我在东北大学上研究生的时候学到的关于路由追踪的实现&#xff0c;希望大家看完小编的这篇博文后能够对windows 下的tracert命令有一定的了解。 1&#xff0e; 实验目的 Tracert&#xff08;跟踪路由&#xff09;是路由跟踪实用程序&#xff0c;用于确定 I…

31.traceroute命令进行路由跟踪

路由跟踪功能是用来识别一个设备到另一个设备的网络路径。在一个简单的网络上&#xff0c;这个网络路径可能只经过一个路由器&#xff0c;甚至一个都不经过。但是在复杂的网络中&#xff0c;数据包可能要经过数十个路由器才会到达最终目的地。在通信过程中&#xff0c;可以通过…

路由追踪traceroute分析

原文 &#xff1a; http://www.freebuf.com/articles/network/118221.html 一、路由追踪程序traceroute/tracert Traceroute是Linux和Mac OS等系统默认提供的路由追踪小程序&#xff0c;Tracert是Windows系统默认提供的路由追踪小程序。二者的功能相同&#xff0c;都能探测数据…

路由跟踪(tracert、traceroute)简析

WINDOWS平台命令&#xff1a; tracert LINUX平台命令&#xff1a; traceroute 简介&#xff1a; Tracert&#xff08;traceroute&#xff09; 命令用 IP 生存时间 (TTL) 字段和 ICMP 错误消息来确定从一个主机到网络上其他主机的路由。用来跟踪到目的IP所经过路径 原理简…

【Rust 日报】2023-05-28 一个构建在TCP上的聊天工具

tcp-chat&#xff1a;构建在TCP上的简单快速轻量的聊天工具 tcp-chat通过TCP进行通信&#xff0c;该项目的目的是了解并行性和底层网络通信。 前端工具&#xff1a;Solid、Tauri、Vite 后端工具&#xff1a;Rust、Tokio、Serde GitHub: https://github.com/gatomod/tcp-chat ez…

设计模式之~命令模式

定义&#xff1a; 命令模式&#xff08;Command&#xff09;&#xff0c;将一个请求封装为一个对象&#xff0c;从而使你可用不同的请求对客户进行参数化&#xff1b;对请求排队或记录请求日志&#xff0c;以及支持可撤销的操作。 为什么需要命令模式? 在我们的软件开发系统中…

c++ 11标准模板(STL) std::map(九)

定义于头文件<map> template< class Key, class T, class Compare std::less<Key>, class Allocator std::allocator<std::pair<const Key, T> > > class map;(1)namespace pmr { template <class Key, class T, clas…

Linux常用命令——gzexe命令

在线Linux命令查询工具 gzexe 用来压缩可执行文件 补充说明 gzexe命令用来压缩可执行文件&#xff0c;压缩后的文件仍然为可执行文件&#xff0c;在执行时进行自动解压缩。当您去执行被压缩过的执行文件时&#xff0c;该文件会自动解压然后继续执行&#xff0c;和使用一般的…

设计模式之~组合模式

组合模式&#xff1a; 将对象组合成树形结构以表示‘部分-整体’的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。 结构图&#xff1a; 实例&#xff1a; 透明方式&#xff1a; leaf中也有add和remove叫做透明方式&#xff0c;在component中声明所有用来管…

玩具租借小程序

玩具是儿童的必需品&#xff0c;家长每年都会给孩子购买少则几百多则几千的玩具&#xff0c;但是由于孩子对玩具喜新 厌旧&#xff0c;一个几百元的玩具几天就不感兴趣了&#xff0c;而市场上层出不穷的高价玩具及孩子对玩具永不满足的渴求&#xff0c;都在促使家长对"玩具…

租号网程序源码 无错版本完整无缺

介绍&#xff1a; 注意事项&#xff1a; 安装租号程序 需要WIN08服务器 iis7.0 sq2012 NET4.6 程序直接放入设置好的 网站根目录即可 (SA密码设置yixiaoka888) 网盘下载地址&#xff1a; http://kekewl.cc/tJoeIk6qPlJ 图片&#xff1a;

在线游戏租号声优陪玩网站源码+威客平台源码/亲测

正文: 由于标题太长了&#xff0c;所以本文标题简略写了&#xff0c;下方图片才是程序完整标题: 这系统界面美观&#xff0c;功能非常齐全&#xff0c;已对接支付&#xff0c;亲测可用&#xff0c;有详细的安装教程&#xff0c;全部放压缩包里了&#xff0c;有兴趣自己去看。 …

麒麟子出了一款免费3D角色虚拟摇杆控制器!这也太好用了

不需要编写代码&#xff0c;通过简单的拖拽和配置&#xff0c;就可以使你在手机上控制摄像机旋转和操作角色。 EasyJoystick EasyCamera EasyTouch 以上效果就 麒麟子 最近在 Cocos Store 分享的 KylinsEasyController 组件源码&#xff0c;它包含以下主要特性&#xff1a; 虚拟…

租赁小程序源码芝麻免押租机平台手机租赁代运营

租赁小程序 手机租赁 小程序代运营 租赁 免押租 代运营 上征信 银行风控 芝麻免押 支付宝服务商 支付宝租赁服务商 租赁平台源码 租赁小程序源码 租机平台源码 手机租赁源码 租赁小程序源码 芝麻免押租 租赁平台 小程序源码

如何在雷电模拟器里使用YiLu代理的动态ip?

1在易路“程序”页面里随意添加一个应用&#xff0c;请不要添加“雷电”到YiLu程序里&#xff1b; 2.YiLu设置&#xff1a; ① 点击YiLu“设置”页面&#xff1b; ② 选择“YiLu便携代理引擎”&#xff1b; ③ 选择“仅代理YiLu程序选项卡中的应用程序&#xff0c;其他通过您…

原神抢码,米游社抢码-首发

本文章仅供学习使用-侵权请联系删除_2023年3月14日08:17:06 本来在深渊12层打不过的我偶然在刷到了一个dy的直播间&#xff0c;看到主播在抢码上号帮忙打深渊还号称痛苦号打不满不送原石的旗号我就决定扫码试试&#xff0c;在直播间内使用了两部手机互相扫码在扫了一下午的码后…