traceroute命令(unix)/tracert命令(windows)的工作原理

本文详细解释了Traceroute(Unix)和Tracert(Windows)命令的工作原理,这两个命令通过发送一系列带有逐渐增加的TTL值的数据包来追踪从源主机到目标主机的路径。通过分析返回的ICMP超时报文,可以确定数据包经过的路由器及往返时间。

traceroute命令(unix)/tracert命令(windows)的工作原理


    traceroute命令和tracert命令的工作原理是一样的,只是前者用于unix和linux系统中,而后者用于windows系统中。

    先来看一个例子,在windows的CMD下,输入tracert www.baidu.com,结果如下图所示:



    从上图中可以看出,这个命令得出了一些往返时间和路由器的IP地址。那么它具体是如何工作的呢?其实,这个命令是用来跟踪一个分组从源点到终点的路径,也是ICMP(Internet Control Message Protocol,网际控制协议)的一个应用。其从源主机向目的主机发送一连串的IP数据报,数据报中封装的是无法交付的UDP用户数据报。第一个数据报P1的生存时间TTL设置为1,当P1到达路径上的第一个路由器R1时,路由器R1先收下它,接着把TTL的值减1。由于TTL等于0,R1就把P1丢弃了,并向源主机发送一个ICMP时间超过差错报告报文。源主机接着发送第二个数据报P2,并把TTL设置为2。P2先到达路由器R1,R1收下后把TTL减1再转发给路由器R2。R2收到P2时,TTL为1,但减1后TTL变为了0。R2就丢弃P2,并向源主机发送一个ICMP时间超过差错报告报文。这样一直继续下去。当最后一个数据报刚刚到达目的主机时,数据报的TTL是1,。主机不转发数据报,也不把TTL的值减1。但是因为IP数据报中封装的数据是不可达的,所以目的主机就向源主机发送一个ICMP终点不可达差错报告报文。

    经过上述的过程后,大家可以看到,就像上图一样,本地主机通过各个路由器以及远程主机返回的这些ICMP报文,知道了这些路由信息,即目的主机所经过的路由器的IP地址,以及到达其中每一个路由器的往返时间。从而实现了跟踪的功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值