Traceroute和tracert的原理分析实验
tracert路由追踪原理

tracert路由追踪原理摘要:一、引言二、tracert 路由追踪原理介绍1.路由追踪的基本概念2.tracert 的工作原理3.tracert 的实现方式三、tracert 路由追踪的实际应用1.故障诊断2.网络优化4.网络安全四、tracert 路由追踪的发展趋势1.技术的不断进步2.应用领域的拓展3.tracert 的未来展望正文:一、引言随着互联网的飞速发展,网络已经成为现代人生活、工作、学习的重要组成部分。
然而,网络的复杂性使得人们在享受便利的同时,也面临着诸多挑战。
tracert 路由追踪作为一种常用的网络诊断工具,可以帮助我们了解网络的运行状况,解决潜在问题,提升网络性能。
二、tracert 路由追踪原理介绍1.路由追踪的基本概念路由追踪,顾名思义,就是跟踪数据包在网络中的传输路径。
通过记录数据包经过的各个路由器,我们可以了解网络的拓扑结构,找出可能存在的问题。
2.tracert 的工作原理tracert(Windows 系统下称为“tracert”)是一种基于ICMP 协议的网络诊断工具。
它通过发送一系列的ICMP echo 请求数据包,并记录这些数据包经过的路由器,最终返回给用户一个详细的报告。
报告中包含了数据包的发送时间、接收时间、延迟时间以及经过的路由器等信息。
3.tracert 的实现方式tracert 的实现方式主要有两种:一种是基于ICMP 协议的,如上面所述;另一种是基于UDP 协议的,也称为“ping”。
虽然它们的工作原理不同,但目的都是相同的,即获取网络中各个节点的响应时间,从而了解网络的状况。
三、tracert 路由追踪的实际应用1.故障诊断当网络出现问题时,我们可以利用tracert 工具来定位故障点。
通过分析tracert 报告,我们可以发现数据包在网络中的传输路径,找出可能存在问题的路由器或链路。
2.网络优化tracert 可以帮助我们了解网络的性能瓶颈,从而有针对性地进行优化。
实验五-IP协议分析

实验五IP协议分析在这个实验里,我们将研究IP协议,通过执行traceroute程序来分析IP数据包发送和接收的过程。
我们将研究IP数据包的各个字段,详细学习IP数据包的分片。
一、捕获traceroute为了产生一个IP数据包,我们将使用traceroute程序来向一些目的地发送不同大小的数据包,这个软件我们在第一个实验已作过简单的尝试了。
但我们试图在IP头部首先发送一个或者更多的具有TTL的数据包,并把TTL的值设置为1;然后向同一个目的地发送一系列具有TTL值为2的数据包;接着向同一个目的地发送一系列具有TTL值为3的数据包等等。
路由器在每次接收数据包时消耗掉一个TTL,当TTL达到0时,路由器将会向源主机返回一个ICMP的消息(类型为11的TTL溢出),这样一个TTL值为1的数据包将会引起路由器从发送者发回一个ICMP的TTL溢出消息产生一跳,TTL值为2的数据包发送时会引起路由器产生两跳,TTL值为3的数据包则会引起路由器产生3跳。
基于这种方式,主机可以执行traceroute观察ICMP的TTL溢出消息,记录每个路由器的ICMP的溢出消息的源IP地址,即可标识出主机和目的地之间的所有路由器。
我们要运行traceroute让它发送多种长度的数据包,由Windows提供的tracert程序不允许改变由tracert程序发送的ICMP的回复请求消息的大小,在Windows下比较好的一个是pingplotter,它可以在以下网站下载共享版本(现在已下载好存在共享文件夹的压缩包中):安装pingplotter标准版(你有一个30天的试用期),通过对你所喜欢的站点执行一些traceroute来熟悉这个工具。
ICMP回复请求消息的大小可以在pingplotter中设置:Edit-> Options->Default Setting->enginet,在packet size字段中默认包的大小是56字节。
traceroute实验报告

信息工程学院盐城师范学院毕业论文(设计)基于ICMP的MyTraceRoute探测程序及其应用学生姓名沈晓玲学院信息科学与技术学院专业网络工程班级网络工程13(2)学号 13263408指导教师曹莹莹2016年 6月30日基于ICMP的MyTraceRoute探测程序及其应用摘要traceroute程序是进行网络测量的常用工具之一,通过用于异构网络的TCP/IP协议进行网间通信。
程序利用增加存活时间(TTL)值来实现其功能的。
每当数据包经过一个路由器,其存活时间就会减1。
当其存活时间是0时,主机便取消数据包,并传送一个ICMP TTL数据包给原数据包的发出者。
原始套接字可以读写内核没有处理的IP数据包,而流套接字只能读取TCP协议的数据,数据包套接字只能读取UDP协议的数据。
因此,如果要访问其他协议发送数据必须使用原始套接字。
原始套接字是,它实现于系统核心,普通的套接字无法处理icmp,igmp等网络报文,而原始套接字可以。
Traceroute程序是进行测量的常用工具之一,Traceroute功能可以通过很多协议实现,其原理是借助ICMP的超时差错报文来反馈路径信息。
【关键词】traceroute 网络通信原始套接字 ICMP的超市差错报文MyTraceRoute detection program based on ICMPand its applicationabstractTraceroute program is one of the commonly used tools for network measurement, through the TCP/IP protocol for heterogeneous network network communication.The program uses an increased survival time (TTL) value to achieve its function. When the packet passes through a router, its survival time will be reduced by 1. When the survival time is 0, the host will cancel the packet, and send a TTL ICMP packet to the sender of the original data packets. The original socket can read and write the kernel without processing the IP packet, and the stream socket can only read the data of the TCP protocol, the data packet socket can only read the data of UDP protocol. Therefore, if you want to access other protocols to send data must use the original socket. Original socket is, it is realized in the system core, ordinary sockets can not handle ICMP, IGMP and other network packets, and the original socket can be.Traceroute program is one of the commonly used tools for measurement, Traceroute function can be achieved through a lot of protocols, the principle is to use the ICMP timeout error messages to feedback path information.【Key words】traceroute network communication original socket ICMP supermarket error message目录1traceroute的概念原理以及软件环境 (4)1.1traceroute的概念 (4)1.2traceroute的概念及原理 (4)1.3设计的软件环境 (4)2设计过程和内容 (4)2.1实现原理 (4)2.2实验要求 (4)2.3实验内容 (5)3实验分析 (5)4实验中用到的函数总结 (6)4.1原始网络套接字网络功能框架 (6)4.2本试验中用到的函数,及函数的功能 (6)5在实验中用到的函数代码 (7)6实验结果截图 (11)7实验遇到的问题 (14)总结 (18)收获 (18)题目:基于ICMP的MyTraceRoute探测程序及其应用1traceroute的概念原理以及软件环境1.1traceroute的概念traceroute程序是进行网络测量的常用工具之一,通过用于异构网络的TCP/IP 协议进行网间通信。
tracert和traceroute介绍

tracert和traceroute介绍⼀、tracert和traceroute简介相同点:都是⽤来跟踪路由,帮助排查问题,关注的是过程,⽽ping关注的是结果不同点:tracert请求是icmp echo报⽂ traceroute请求是UDP的报⽂,⽬标端⼝是30000以上随机端⼝⼆、tracert使⽤到三种报⽂icmp echo request #icmp Type0,客户端发起报⽂,traceroute使⽤udp报⽂发起icmp echo replay #icmp Type 8到了⽬标地址,未禁ping,回复此报⽂icmp time-exceeded #icmp Type11,经过的路由回复报⽂(到此路由ttl=1或0回复给客户端)三、traceroute使⽤的三种报⽂UDP随机端⼝发起请求#icmp Type0,客户端发起报⽂,traceroute使⽤udp报⽂发起icmp time-exceeded #icmp Type11,经过的路由回复报⽂(到此路由ttl=1或0回复给客户端)icmp unreachable #icmp Type3(Destination unreachable),到了⽬标地址,未禁ping,回复此报⽂四、tracert原理1.tracert送出⼀个TTL是1的ICMP echo request数据包a到⽬的地2.当路径上的第⼀个路由器收到这个数据包a时,它将TTL减13.TTL变为0,该路由器会将此数据包丢掉,并送回⼀个「ICMP time exceeded」消息4.tracert 收到这个消息后,再送出另⼀个TTL是2 的数据包,发现第2 个路由器5.当数据包到达⽬的地后,⽬标会送回⼀个icmp echo reply(前提是⽬标未禁ping)ps:tracert 有⼀个固定的时间等待响应(ICMP TTL到期消息)。
如果这个时间过了,它将打印出⼀系列的*号,表明在这个路径上,这个设备不能在给定的时间内发出ICMP TTL到期消息的响应。
路由追踪程序traceroutetracert分析与科普

路由追踪程序traceroutetracert分析与科普⼀、路由追踪程序traceroute/tracertTraceroute是Linux和Mac OS等系统默认提供的路由追踪⼩程序,Tracert是Windows系统默认提供的路由追踪⼩程序。
⼆者的功能相同,都能探测数据包从源地址到⽬的地址经过的路由器的IP地址。
Traceroute/Tracert的实现都借助了TTL:通过向⽬的地址发送⼀系列的探测包,设置探测包的TTL 初始值分别为1,2,3…,根据返回的超时通知(ICMP Time Exceeded Message)得到源地址与⽬的地址之间的每⼀跳路由信息。
虽然两者输出结果⼀致,但在实现原理上还有着显著的差别。
⼆、Traceroute实现原理1. 从源地址发出⼀个UDP探测包到⽬的地址,并将TTL设置为1;2. 到达路由器时,将TTL减1;3. 当TTL变为0时,包被丢弃,路由器向源地址发回⼀个ICMP超时通知(ICMP Time Exceeded Message),内含发送IP包的源地址,IP包的所有内容及路由器的IP地址;4. 当源地址收到该ICMP包时,显⽰这⼀跳路由信息;5. 重复1~5,并每次设置TTL加1;6. 直⾄⽬标地址收到探测数据包,并返回端⼝不可达通知(ICMP Port Unreachable);7. 当源地址收到ICMP Port Unreachable包时停⽌traceroute。
注:1. Linux和Mac OS等系统使⽤UDP包进⾏探测,⽬标端⼝号默认为33434,每次探测⽬标端⼝号加1。
Traceroute故意使⽤了⼀个⼤于30000 的⽬标端⼝号,以保证⽬标地址收到数据包后能够返回⼀个“端⼝不可达”的 ICMP 报⽂,于是源地址就可将端⼝不可达报⽂当作跟踪结束的标志。
2.Traceroute每跳默认发送3个探测包(发包的数量可通过-q进⾏设置),探测包的返回会受到⽹络情况的影响。
网络命令实验报告结论(3篇)

第1篇一、实验目的本次实验旨在通过实际操作,使学生掌握基本的网络命令,提高网络操作能力,为今后网络管理、维护及网络安全打下基础。
二、实验内容1. IP地址与子网掩码的计算2. ping命令的使用3. tracert命令的使用4. nslookup命令的使用5. netstat命令的使用6. route命令的使用7. ipconfig命令的使用三、实验过程1. IP地址与子网掩码的计算在实验过程中,我们学习了如何根据IP地址和子网掩码计算出网络地址、广播地址和可用主机地址。
通过实际操作,我们掌握了IP地址与子网掩码的计算方法,为后续网络配置奠定了基础。
2. ping命令的使用ping命令用于测试网络连接是否正常。
在实验中,我们通过ping本机IP地址、局域网内其他设备IP地址以及公网IP地址,验证了网络连接的稳定性。
3. tracert命令的使用tracert命令用于追踪数据包在网络中的传输路径。
通过实验,我们了解了tracert命令的使用方法,并能够分析网络延迟和丢包情况。
4. nslookup命令的使用nslookup命令用于查询域名对应的IP地址。
在实验中,我们学会了如何使用nslookup命令查询域名和IP地址,为后续DNS解析问题提供了解决思路。
5. netstat命令的使用netstat命令用于显示网络连接、路由表、接口统计等信息。
通过实验,我们掌握了netstat命令的使用方法,能够分析网络连接状态,排查网络故障。
6. route命令的使用route命令用于配置和显示路由信息。
在实验中,我们学习了如何使用route命令添加、删除和修改路由,为网络通信提供保障。
7. ipconfig命令的使用ipconfig命令用于显示和修改网络接口配置。
通过实验,我们了解了ipconfig命令的使用方法,能够快速查看和修改网络配置。
四、实验结论1. 通过本次实验,我们掌握了基本的网络命令,提高了网络操作能力。
Traceroute和tracert的原理分析实验

Traceroute和tracert的原理分析实验Traceroute和tracert的原理分析实验作者:王富霖1、拓扑图图1 实验拓扑图2、原理Tracert跟踪路由:通过向目标发送不同IP 生存时间(TTL) 值的“Internet 控制消息协议(ICMP)”回应数据包,Tracert 诊断程序确定到目标所采取的路由。
要求路径上的每个路由器在转发数据包之前至少将数据包上的 TTL 递减 1。
数据包上的 TTL 减为 0 时,路由器应该将“ICMP 已超时”的消息发回源系统。
Tracert 先发送 TTL 为 1 的回应数据包,并在随后的每次发送过程将TTL 递增 1,直到目标响应或 TTL 达到最大值,从而确定路由。
通过检查中间路由器发回的“ICMP 已超时”的消息确定路由。
可以得知,基本原理就是利用TTL=0时,ICMP返回超时来达到跟踪路由的目的。
但在具体的实现上有不同的做法。
目前主流设备都提供一个traceroute和tracert的指令。
下面将针对这两条指令展开分析。
3、思科路由器、SUN主机执行traceroute指令,抓包分析。
翻阅《TCP/IP协议详解卷1》的描述:8.2节中原文如下:“Traceroute程序发送一份UDP数据报给目的主机,但它选择一个不可能的值作为UDP端口号(大于30000),使目的主机的任何一个应用程序都不可能使用该端口。
因为,当该数据报到达时,将使目的主机的UDP模块产生一份“端口不可达”错误(见6.5节)的ICMP 报文。
这样,Traceroute程序所要做的就是区分接收到的ICMP报文是超时还是端口不可达,以判断什么时候结束。
”从以上结果来看路由器Traceroute命令默认发出的包发到目的地址UDP端口从33434开始,每个包递增1,TTL从1开始,每三个包(可以参数设置)后TTL加1。
如果跟踪路由的跳数在30跳以内,到达目的地址后,因为目标IP 就是当前设备,所以解开上层UDP分析,发现端口不可达(本来就是为了不可达返回错误),以上抓包明显发现是“ICMP类型 3 代码3的Destination unreachable(port un reachable)”。
实验一 Traceroute诊断程序的使用

实验一使用Traceroute诊断程序的测量端到端时延一、实验目的1.了解Traceroute程序的语法。
2.了解Traceroute程序的工作原理。
3.了解Traceroute程序的作用。
4.掌握Traceroute程序的使用。
5.使用Traceroute程序测量端到端时延。
二、实验环境实验室(或机房)中的计算机是要求能连接互联网。
实验室中的计算机安装的操作系统可以是Windows也可以Unix等。
三、实验原理(1)Traceroute程序可追踪源和目的之间经过的路由。
(2)当用户指定一个目的主机时,源主机中的该程序朝目的地发送多个特殊的分组,中间通过一系列路由器。
(3)对所经过的这条路径上的每个路由器,源主机都发送3个分组,每个路由器都向源主机返回3个相应的应答分组。
发送方可据此测量传输可响应间的时间间隔。
因此,根据这个时间间隔就可度量出端到端的时延。
(4)Traceroute命令格式介绍在UNIX主机系统下,直接执行命令名“Traceroute”,而在Windows系统下是执行命令名为“Tracert”。
在本实验中,我们采用在Windows系统下的执行命令。
命令格式语法为:tracert [-d] [-h maximum_hops] [-j computer-list] [-w timeout] target_name选项说明:-d 不将地址解析成主机名。
-h maximum_hops搜索目标的最大跃点数。
-j host-list 与主机列表一起的松散源路由(仅适用于IPv4)。
-w timeout 等待每个回复的超时时间(以毫秒为单位)。
-R 跟踪往返行程路径(仅适用于IPv6)。
-S srcaddr要使用的源地址(仅适用于IPv6)。
-4 强制使用IPv4。
-6 强制使用IPv6。
(5)Traceroute命令运行结果说明比如运行此条命令:tracert: to www.eurecom.fr ,则运行结果如图所示:图1:Traceroute运行结果四、实验内容(一)使用不带Traceroute命令,测量到的时延操作步骤如下:(1)“开始”->“所有程序”->“附件”->“命令提示符”,打开命令窗口。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Traceroute和tracert的原理分析实验
作者:王富霖
1、拓扑图
图1 实验拓扑图
2、原理
Tracert跟踪路由:通过向目标发送不同 IP 生存时间 (TTL) 值的“Internet 控制消息协议(ICMP)”回应数据包,Tracert 诊断程序确定到目标所采取的路由。
要求路径上的每个路由器在转发数据包之前至少将数据包上的 TTL 递减 1。
数据包上的 TTL 减为 0 时,路由器应该将“ICMP 已超时”的消息发回源系统。
Tracert 先发送 TTL 为 1 的回应数据包,并在随后的每次发送过程将TTL 递增 1,直到目标响应或 TTL 达到最大值,从而确定路由。
通过检查中间路由器发回的“ICMP 已超时”的消息确定路由。
可以得知,基本原理就是利用TTL=0时,ICMP返回超时来达到跟踪路由的目的。
但在具体的实现上有不同的做法。
目前主流设备都提供一个traceroute和tracert的指令。
下面将针对这两条指令展开分析。
3、思科路由器、SUN主机执行traceroute指令,抓包分析。
翻阅《TCP/IP协议详解卷1》的描述:8.2节中原文如下:
“Traceroute程序发送一份UDP数据报给目的主机,但它选择一个不可能的值作为UDP端口号(大于30000),使目的主机的任何一个应用程序都不可能使用该端口。
因为,当该数据报到达时,将使目的主机的UDP模块产生一份“端口不可达”错误(见6.5节)的ICMP报文。
这样,Traceroute程序所要做的就是区分接收到的ICMP报文是超时还是端口不可达,以判断什么时候结束。
”
从以上结果来看路由器Traceroute命令默认发出的包发到目的地址UDP端口从33434开始,每个包递增1,TTL从1开始,每三个包(可以参数设置)后TTL加1。
如果跟踪路由的跳数在30跳以内,到达目的地址后,因为目标IP 就是当前设备,所以解开上层UDP分析,发现端口不可达(本来就是为了不可达返回错误),以上抓包明显发现是“ICMP类型3 代码3的Destination unreachable(port unreachable)”。
如果超时,直接显示星号,继续下一个包的发送。
直到默认的30跳停止。
4、普通windows主机执行tracert指令,抓包分析。
在windws主机里面的tracert:
明显的和TCP/IP详解的Traceroute命令表述有点出入。
windows主机的tracert是直接是用ping来实现的,但是这个ping的TTL值在3个包后增大1,如果目标在30跳之内,目的地址直接回应“ping回显ICMP类型0 代码0”不可达或者超时后返回星号,继续下一个TTL的包的发送,一直到达默认设置的30跳。
以上返回结果结果。
这里仔细讲解一下每个输出结果的含义。
第一列:ttl 的值,勉强可以理解为第几跳(如果网络中有ttl修改的话就不一定了)。
一行中中连续2-4共三列一般都能看到3个连续的数字。
比如:1ms 1ms 1ms,这三个分别是TTL相同但是顺序不同的的三个IP包到达同一个发送到从设备返回的时间差。
如果显示星号说明返回超时,不再等待,直接下一个包的发送。
最后一列是ttl超时返回ICMP错误的设备的接口IP地址。
(注意:前面tracert 带了-d 参数,说明不用域名解析,时间较快;如果不带-d就需要做域名解析,较长时间)。
结论:traceroute和tracert返回结果显示一样,实现方式表面不一样,实
质原理一样,都是ttl递增的方式,利用icmp返回错误代码来跟踪路由。