traceroute原理

traceroute原理

ICMP

ICMP全称为Internet Control Message Protocol,即,网络控制报文协议。

当一个IP数据报发送失败时,最后一个路由器会向发送发传递一条ICMP报文以报告错误。

traceroute利用此特性来探测路由。

原理如下,构造一份非法的数据,通过IP协议发送。第一份报文设置TTL为1,这样,第一个路由收到之后,就会给发送主机报告一个错误,这样,发送主机就知道此路由的第一跳。接着,设置TTL为2再次发送,第二个路由器也会报告错误。以此类推。

traceroute在windows上的名称为tracert。

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

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

1     1 ms     1 ms     1 ms  192.168.1.1
2    14 ms    22 ms    13 ms  100.64.0.1
3     5 ms     6 ms     8 ms  218.2.131.217
4     5 ms     7 ms     6 ms  202.102.69.26
5     *        *        *     请求超时。
6    10 ms     6 ms     5 ms  180.97.32.86
7     5 ms     5 ms     3 ms  10.203.195.2
8     6 ms     3 ms     3 ms  180.97.33.108

*:first-child {
margin-top: 0 !important;
}

body>*:last-child {
margin-bottom: 0 !important;
}

/* BLOCKS
=============================================================================*/

p, blockquote, ul, ol, dl, table, pre {
margin: 15px 0;
}

/* HEADERS
=============================================================================*/

h1, h2, h3, h4, h5, h6 {
margin: 20px 0 10px;
padding: 0;
font-weight: bold;
-webkit-font-smoothing: antialiased;
}

h1 tt, h1 code, h2 tt, h2 code, h3 tt, h3 code, h4 tt, h4 code, h5 tt, h5 code, h6 tt, h6 code {
font-size: inherit;
}

h1 {
font-size: 28px;
color: #000;
}

h2 {
font-size: 24px;
border-bottom: 1px solid #ccc;
color: #000;
}

h3 {
font-size: 18px;
}

h4 {
font-size: 16px;
}

h5 {
font-size: 14px;
}

h6 {
color: #777;
font-size: 14px;
}

body>h2:first-child, body>h1:first-child, body>h1:first-child+h2, body>h3:first-child, body>h4:first-child, body>h5:first-child, body>h6:first-child {
margin-top: 0;
padding-top: 0;
}

a:first-child h1, a:first-child h2, a:first-child h3, a:first-child h4, a:first-child h5, a:first-child h6 {
margin-top: 0;
padding-top: 0;
}

h1+p, h2+p, h3+p, h4+p, h5+p, h6+p {
margin-top: 10px;
}

/* LINKS
=============================================================================*/

a {
color: #4183C4;
text-decoration: none;
}

a:hover {
text-decoration: underline;
}

/* LISTS
=============================================================================*/

ul, ol {
padding-left: 30px;
}

ul li > :first-child,
ol li > :first-child,
ul li ul:first-of-type,
ol li ol:first-of-type,
ul li ol:first-of-type,
ol li ul:first-of-type {
margin-top: 0px;
}

ul ul, ul ol, ol ol, ol ul {
margin-bottom: 0;
}

dl {
padding: 0;
}

dl dt {
font-size: 14px;
font-weight: bold;
font-style: italic;
padding: 0;
margin: 15px 0 5px;
}

dl dt:first-child {
padding: 0;
}

dl dt>:first-child {
margin-top: 0px;
}

dl dt>:last-child {
margin-bottom: 0px;
}

dl dd {
margin: 0 0 15px;
padding: 0 15px;
}

dl dd>:first-child {
margin-top: 0px;
}

dl dd>:last-child {
margin-bottom: 0px;
}

/* CODE
=============================================================================*/

pre, code, tt {
font-size: 12px;
font-family: Consolas, "Liberation Mono", Courier, monospace;
}

code, tt {
margin: 0 0px;
padding: 0px 0px;
white-space: nowrap;
border: 1px solid #eaeaea;
background-color: #f8f8f8;
border-radius: 3px;
}

pre>code {
margin: 0;
padding: 0;
white-space: pre;
border: none;
background: transparent;
}

pre {
background-color: #f8f8f8;
border: 1px solid #ccc;
font-size: 13px;
line-height: 19px;
overflow: auto;
padding: 6px 10px;
border-radius: 3px;
}

pre code, pre tt {
background-color: transparent;
border: none;
}

kbd {
-moz-border-bottom-colors: none;
-moz-border-left-colors: none;
-moz-border-right-colors: none;
-moz-border-top-colors: none;
background-color: #DDDDDD;
background-image: linear-gradient(#F1F1F1, #DDDDDD);
background-repeat: repeat-x;
border-color: #DDDDDD #CCCCCC #CCCCCC #DDDDDD;
border-image: none;
border-radius: 2px 2px 2px 2px;
border-style: solid;
border-width: 1px;
font-family: "Helvetica Neue",Helvetica,Arial,sans-serif;
line-height: 10px;
padding: 1px 4px;
}

/* QUOTES
=============================================================================*/

blockquote {
border-left: 4px solid #DDD;
padding: 0 15px;
color: #777;
}

blockquote>:first-child {
margin-top: 0px;
}

blockquote>:last-child {
margin-bottom: 0px;
}

/* HORIZONTAL RULES
=============================================================================*/

hr {
clear: both;
margin: 15px 0;
height: 0px;
overflow: hidden;
border: none;
background: transparent;
border-bottom: 4px solid #ddd;
padding: 0;
}

/* TABLES
=============================================================================*/

table th {
font-weight: bold;
}

table th, table td {
border: 1px solid #ccc;
padding: 6px 13px;
}

table tr {
border-top: 1px solid #ccc;
background-color: #fff;
}

table tr:nth-child(2n) {
background-color: #f8f8f8;
}

/* IMAGES
=============================================================================*/

img {
max-width: 100%
}
-->

时间: 2024-10-10 06:33:45

traceroute原理的相关文章

Traceroute原理介绍

一.路由追踪 路由跟踪,就是获取从主机A到达目标主机B这个过程中所有需要经过的路由设备的转发接口IP. 二.ICMP协议 Internet控制报文协议(internet control message protocol),它是TCP/IP协议族的一个子协议,用于在IP主机.路由器之间传递控制消息.控制消息是指网络通不通.主机是否可达.路由是否可用等网络本身的消息.这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用. 日常生活中,邮寄包裹会经过多个传递环节,任意一环如果无法传下

Ping程序与Traceroute程序的原理(五)

(参考文献)TCP/IP详解,卷1:协议 "ping"这个名字来源于声呐定位操作.目的是为了测试另外一台主机是否可以到达.该程序发送一份ICMP回显请求报文给主机,并等待返回ICMP回显应答. 一般来说,如果不能ping到某台主机那么就不能Telnet或者FTP到那台主机.反过来,如果不能Telnet到某台主机,那么通常可以用ping程序来确定问题出在哪里.Ping程序还能测出到这台主机的往返时间,以表明该主机离我们有"多远". Ping程序 我们称发送回显请求的p

traceroute小结 come from CSDN author:houdong

traceroute程序可以使我们看到IP数据报从一台主机传到另一台主机的所经过的路由,并且可以使用IP源站路由选项. traceroute取代IP RR的原因 1 不是所有的路由器都支持IP RR选项,而traceroute程序不需要中间路由器具备任何特殊的或可选的功能. 2 记录路由一般是单向选项.发送端设置该选项,接收端不得不从收到的IP首部中提取出所有的信息,然后全部返回给发送端.这样使记录下来的IP地址多了一倍(一来一回). traceroute程序只需要目的端运行一个UDP模块,其他

[svc]traceroute

参考 项 traceroute tracert 使用协议 udp+2种icmp(ttl+端口不可达) 仅2种icmp(ttl+icmp reply) 最终判别 端口不可达 ICMP Echo Reply 探测包都有唯一的标识号 UDP数据包使用递增的目标端口号(33434) ICMP使用seq识别 traceroute原理:UDP+icmp(icmp ttl超时/icmp端口不可达) 1. 从源地址发出一个UDP探测包到目的地址,并将TTL设置为1: 2. 到达路由器时,将TTL减1: 3. 当

TCP/IP入门(2) --网络层

/** 本篇博客由汗青ZJF整理并发布, 转载请注明出处: http://blog.csdn.net/zjf280441589/article/category/1854365 */ 什么是虚拟网络互连? 所谓虚拟互连网络也就是逻辑互连网络,它的意思就是互连起来的各种物理网络的异构性本来是客观存在的(比如局域网有的采用的是以太网, 有的采用令牌环网),但是我们利用 IP 协议就可以使这些性能各异的网络从用户角度来看好像是一个统一的网络(在网络的上层, 我们看不到各网络具体的异构网络细节).使用I

Linux扫描技术笔记

Linux扫描技术笔记 题记: 主机节点的存活的探测方法,我们日常用的最多的是ping,除此之外还有没有其他方法?本文介绍了fping,hping相关操作以探测节点存活. 服务的存活,我们日常用的最多的是telnet,除此之外还有没有其他方法?本文介绍了nmap,ncat对于服务存活的探测. 此外,本文还介绍了批量主机节点扫描,批量服务端口存活扫描,以及路由扫描以及安全防范措施. 0.网络安全技术 1)数据真实.可靠.完整.可控(安全角度). 举例:获取公用设备的弱口令 获取常用命令: trac

traceroute和tracert的原理

traceroute的原理: 1.traceroute主机向被trace主机发送UDP的数据包,目的端口是编号较大的端口(比如33434端口) 2.首包TTL=1,Dport=33434:以后的数据包TTL值和端口号以此加1 3.如何判断已经到达目的地, 一般目的地不会在UDP33434这么大的端口开启什么服务,那么数据包到达目的地之后,目的发现本地主机没有开启相应端口,会回复端口不可达消息.当然这个限于UDP. 如果是TCP服务的情况下,本地主机如果没有开启相应的TCP服务,会回复resert

traceroute工作原理

traceroute, 也就是 trace route,跟踪路由.这个程序最早是Van Jacobson实现的.源代码在网上能够找到,只是我还没有去找.基本的原理是IP路由过程中对数据包TTL(Time to Live,存活时间)的处理.当路由器收到一个IP包时,会改动IP包的TTL(及由此造成的头部检验和checksum变化).每收到一个包,检查这个 的TTL是否是0或1.假设是,表明这个包还没有到达目的地,并且剩余时间不多了,肯定是到不了目的地了.这样路由器就简单地丢弃这个包,并给源主机发送

Traceroute命令原理(转)

Traceroute命令基本功能 该命令用于测试两个TCP/IP系统之间的网络层连通性和显示传输路径中每一跳地址,又称为路径跟踪,如果Traceroute命令测试成功,我们能够观察到从源主机到目的主机之间的一条完整的通信路径,能够明确的观察到路径的每一跳信息:该命令还能准确输出测试包到每一跳的通信延迟时间. 如果测试失败,也能够明确定位是哪一跳设备不能正常转发,该工具还能够测试路由是否选择最佳路径,是否存在非对称路径等问题,在复杂拓扑下具有更强大的测试能力. Traceroute命令基本原理 当