首页 > 编程知识 正文

traceroute工作原理,tracert不是内部命令

时间:2023-05-06 07:47:33 阅读:58945 作者:863

相反,跟踪跟踪命令使用IP生存时间(TTL )字段和ICMP错误消息来确定从一个主机到网络上的另一个主机的路由。

路由器在TTL收到第一个包并减去1后直接丢弃它,并响应icmp(type=11,code=0,TTL equals 0持续传输中的生存时间为0 )。

目标主机从跟踪UDP探测包接收到icmp (类型=3、代码=3、端口不可达)。 在Linux中被称为traceroute,Windos的类似功能被称为tracert。

在linux上运行跟踪的过程:

traceroute连续发送TTL从1开始增加的UDP分组、目的地端口30000和相同的目的地地址,默认情况下发送3个每个TTL的相同UDP分组,并且端口依次增加。 收到目标地址返回的ICMP包后,traceroute将停止包,否则继续发送,默认情况下最多发送30个,每个包发送60字节(ipudpdata )。

[根@ localhost SBC ] # traceroute 10.228.90.70 traceroute to 10.228.90.70 (10.228.90.70 )、30 hops max, 60字节包110.228.113.1 (10.228.113.1 ) 1.513 ms 2.367 ms 3.182 ms 210.228.2.173 ) 10.228.2.2.173 1.870 ms 2.652 ms 3.477 ms 510.228.3.162 (10.228.3.162 ) 1.909 ms 2.728 ms 3.756 ms 3.228.90.70 ) 10.228.90

流程分析:

1 .连续发送UDP分组,从seq69到seq83连续发送15条消息,每3个分组TTL递增1,发送总计5跳的网元探测消息。 从上面的屏幕截图中可以看到端口一次增加一个。

发送seq84数据包时,TTL为6,立即收到ICMP seq85数据包,端口无法响应。 然后,TTL继续发送2个6的数据包,收到ICMP的响应。

3 .之前发送的15个探测分组均收到ICMP响应分组,TTL已过期。

二、Tracert诊断程序通过向目标发送具有不同IP生存时间(TTL )值的“互联网控制消息协议(ICMP )”响应分组来确定到目标的路由。 路径上的每个路由器在转发分组之前需要减少分组上的至少一个TTL。 如果包上的TTL减少到0,路由器必须向源系统发送回消息“ICMP超时”。

Tracert首先发送TTL为1的响应包,然后在每个后续发送过程中将TTL递增1,以确定路由,直到目标响应或TTL达到最大值。 检查来自中间路由器的消息“ICMP超时”以确定路由。 也有路由器直接丢弃TTL过期的数据包。 这不会显示在Tracert实用程序中。

跟踪有一定的时间等待响应(ICMP TTL过期消息)。 经过此时间后,将打印一系列*号。 在此路径中,此设备无法在指定时间内发出ICMP TTL过期消息的响应。 然后,traceroute将TTL标记加1并继续。

信息的监视如下。

1、从10.40.140.97到10.43.85.162经过三跳,第四跳到达目标主机。

2、PC依次发送ICMP请求消息(Type=8,Echo request——回声请求(ping请求) ),目标主机发送ICMP响应消息(type=0,Echo Reply——回声响应)

3、如果超过设置的跳数,源主机也将停止发送ICMP请求,并将跳数设置为3,如下所示

3、总结

跟踪和跟踪都是根跟踪,但探测方法和探测的数据类型不同。 默认情况下,traceroute将UDP数据报发送到目标地址端口(大于30000的端口),tracert将ICMP请求颜色背景发送到目标地址。

如果tracert可以到达,但traceroute不能到达,则必须考虑路径路由器是否过滤了UDP,或者端口限制。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。