traceroute、tracert服务的工作原理
目录
1、Traceroute
2、Tracert
3、小结
1、Traceroute
traceroute 命令用 IP 生存时间 (TTL) 字段和 ICMP 错误消息来确定从一个主机到网络上其他主机的路由。路由器收到TTL为1的包文减1后直接丢弃,然后回复 ICMP(type=11,code=0,TTL equals 0 during transit——传输期间生存时间为0),目标主机收到traceroute 的UDP探测包回复ICMP(type=3,code = 3,端口不可达)。Linux上称之为 traceroute,Windos类似的功能为tracert。
linux 上 traceroute 运行过程是:traceroute 连续发送TTL从1开始递增的UDP包,目标端口 30000+,目标地址为探测地址 dst_addr,每个TTL相同的UDP包默认发送三次,端口依次递增。当收到目标地址 dst_addr 回的 ICMP包(端口不可达),traceroute 停止发包,否则继续发送,默认最多发送 30 个,每个包大小 60Byte(IP+UDP+Data)。
具体报文分析如下:
1、从10.43.85.162 到 10.43.2.170 经过 4 跳,第 5 跳到达目标主机。
2、连续发送 UDP 包,当收到来自路由器10.43.66.125 第一个探测包(frame881)的回复的ICMP包(frame892,0.979ms)时还是会继续发送UDP包文。当时当收到来自目标机器 10.43.2.170 回复的ICMP报文时(frame = 895),表示探测成功traceroute 停止发送UDP报文。
2.1、发送的第一个TTL = 3 的UDP包文 Frame=881
2.2、收到来自路由器10.43.66.125的回复信息ICMP包,Frame = 892
3、UDP报文的目标端口依次递增
4、收到路由器回复的 892号报文后,继续发送UDP包,此时TTL=6
5、普通路由器回复的ICMP为TTL= 0丢去,目标主机回复的ICMP则是端口不可达,因为此时的TTL != 0,只是目标主机没有监听相应的端口而已。
6、traceroute总共发送了17个UDP包,(TTL = 1~5) * 3,(TLL=6) * 2,因此源主机收到了17个ICMP回复,其中的5个均来自目标主机10.43.2.170。
2、Tracert
通过向目标发送不同 IP 生存时间 (TTL) 值的“Internet 控制消息协议 (ICMP)”回应数据包,Tracert诊断程序确定到目标所采取的路由。要求路径上的每个路由器在转发数据包之前至少将数据包上的 TTL 递减 1。数据包上的 TTL 减为 0 时,路由器应该将“ICMP 已超时”的消息发回源系统。
Tracert 先发送 TTL 为 1 的回应数据包,并随后的每次发送过程将 TTL 递增 1,直到目标响应或 TTL 达到最大值,从而确定路由。通过检查中间路由器发回的“ICMP 已超时”的消息确定路由。某些路由器不经询问直接丢弃 TTL 过期的数据包,这在 Tracert 实用程序中看不到。
Tracert 有一个固定的时间等待响应(ICMP TTL到期消息)。如果这个时间过了,它将打印出一系列的*号表明:在这个路径上,这个设备不能在给定的时间内发出ICMP TTL到期消息的响应。然后,traceroute 给TTL记数器加1,继续进行。
报文监测如下:
1、从10.40.140.97 到 10.43.85.162 经过 3 跳,第 4 跳到达目标主机。
2、PC机依次发送ICMP请求信息(Type=8,Echo request——回显请求[Ping请求]),收到目标主机的ICMP回的应答信息(type=0,Echo Reply——回显应答[Ping应答])后,停止发送请求信息,注意是三个应答信息都收到之后,才停止发送
3、当超出设定的跳数,源主机也会停止发送ICMP请求,如下所示设置跳数为3
3、小结
tracert 和 traceroute虽然都是路由跟踪,但是两者探测方法及探测的数据类型不同。默认情况下,traceroute是向目的地址的某个端口(大于30000)发送UDP数据报,tracert是向目的地址发出ICMP请求回显数据包。
当出现了tracert可达,但是traceroute不可达时,需要考虑路径的路由器是否对UDP进行了过滤,或者端口限制。
traceroute、tracert服务的工作原理相关推荐
- ftp服务器工作原理示意图,3.1.3 FTP服务的工作原理
3.1.3 FTP服务的工作原理 FTP服务是一种有连接的文件传输服务,采用的传输层协议是TCP协议.FTP服务的基本过程是:建立连接.传输数据与释放连接.由于FTP服务的特点是数据量大.控制信息 ...
- RSF 分布式服务框架-服务端工作原理
为什么80%的码农都做不了架构师?>>> 这是接上一篇文章<RSF 分布式服务框架设计>之后的续作,主要是 Hasor-RSF 的请求响应工作原理以及设计思路. 非 ...
- traceroute命令(unix)/tracert命令(windows)的工作原理
traceroute命令(unix)/tracert命令(windows)的工作原理 traceroute命令和tracert命令的工作原理是一样的,只是前者用于unix和linux系统中,而 ...
- 使用 mock 数据在本地运行 SAP Fiori Elements 应用的工作原理
本系列的前两篇文章: 在没有任何前端开发经验的基础上, 创建第一个 SAP Fiori Elements 应用 如何使用 mock 数据在本地运行 SAP Fiori Elements 本文研究 Fi ...
- Android系统Recovery工作原理之使用update.zip升级过程分析(一)
这篇及以后的篇幅将通过分析update.zip包在具体Android系统升级的过程,来理解Android系统中Recovery模式服务的工作原理.我们先从update.zip包的制作开始,然后是And ...
- Android系统Recovery工作原理之使用update.zip升级过程分析(一)---update.zip包的制作【转】...
本文转载自:http://blog.csdn.net/mu0206mu/article/details/7399822 这篇及以后的篇幅将通过分析update.zip包在具体Android系统升级的过 ...
- WebRTC源码研究(4)web服务器工作原理和常用协议基础
文章目录 WebRTC源码研究(4)web服务器工作原理和常用协议基础 前言 做WebRTC 开发为啥要懂服务器开发知识 1. Web 服务器简介 2. Web 服务器的类型 3. Web 服务器的工 ...
- Linux系统运维之keepalived的工作原理和裂脑
目录 一.keepalived的工作原理 1.Keepalived高可用对之间的通信原理 2.Keepalived服务的工作原理 二.裂脑 1.什么是"裂脑" 2.导致裂脑的原因及 ...
- WebRTC源码研究(4)web服务器工作原理和常用协议基础(转载)
前言 前面3篇博客分别对WebRTC框架的介绍,WebRTC源码目录,WebRTC的运行机制进行了介绍,接下来讲解一点关于服务器原理的知识.后面博客会写关于WebRTC服务器相关的开发,目前git上面 ...
- ajax简介跟优点讲解,简要总结ajax工作原理及优缺点
虽然在实际的项目中使用多种ajax请求,但就其工作原理,优缺点尚未深入总结, 参考:http://www.cnblogs.com/SanMaoSpace/archive/2013/06/15/3137 ...
最新文章
- 大学计算机基础python-大学计算机基础最新章节_曾一著_掌阅小说网
- 梯度下降 最小二乘法 matlab,最小二乘法和梯度下降法的理解
- VTK修炼之道79:交互与拾取_单位拾取
- Python调用C的方法
- Java Web学习总结(7)——HttpServletRequest对象
- BZOJ4197: [Noi2015]寿司晚宴
- 数据结构和算法详解(四)——五大基本算法思想
- aws ebs分类_AWS EBS – Amazon Elastic Block Storage
- java resource放入的文件没有生成在classes中_Java的classpath到底指什么
- 酷应用背后,低代码正在被重估
- redis1.2.6 sds.c
- win10获得system权限(超级管理员)
- Overlay网络与物理网络的关系
- re学习笔记(37)BUUCTF-re-[GUET-CTF2019]re Z3约束求解器
- JS操作word文档
- 使用Aptana Studio 3开发python教程
- 西门子ET200SP基座单元的区别与分类以及注意事项
- 微服务多网卡部署(eureka显示IP不为服务IP的地址)解决办法
- 用blender和MakeHuman生成人体动画
- 电脑中病毒自动安装软件怎么解决