tracert原理(traceroute工作原理)

Tracert,是路由跟踪程序,主要用于确定数据包在传输过程中经过的路由节点。在Linux操作系统中,对应的命令为Traceroute,Tracert为windows系统下的命令。

Windows下:源端发的是ICMP报文,echo request(8 0),中间节点和目的返回的都是TTL超时报文(11 0)。

Linux/Unix下:源端发的是UDP报文,中间节点返回的是TTL超时报文(11 0),目的端返回的是ICMP端口不可达(3 3)。

Tracert是利用ICMP数据报和IP数据报头部中的TTL机制和原始套接字接口来跟踪数据包传输中经过的路由器。

Tracert的工作原理:

Tracert 先发送 TTL 为 1 的回应数据包,并在随后的每次发送过程将 TTL 递增 1, 直到目标响应或 TTL 达到最大值,从而确定路由。TTL域每经过一个路由器转发后减1, TTL 减为 0 时,该路由器会将此数据报丢弃,并将超时回应数据报(包括数据报的源地址、内容和路由器的IP地址)发回源系统。

 

Tracert的工作过程:

1. 首先发送一个TTL为1的报文,当到达第一个路由器时TTL减1变为0,路由器就不再转发这个数据了,而直接丢弃,并且发送一个ICMP“超时”信息给源主机,并告知自己的IP地址;

2. 之后再发送一个TTL为2的报文,在第二跳返回TTL超时,这个过程不断进行,直至到达目的地;

3. 在目的地,由于数据报中使用了无效的端口号(缺省为33434),目的主机会返回一个ICMP目的地不可达消息,该tracert操作结束。

在上述过程中,tracert记录下每一个ICMP TTL超时消息的源地址,从而获得报文到达目的地所经过的网关的IP地址。

 

 

posted @ 2023-08-03 17:50  dachenyi  阅读(2256)  评论(0编辑  收藏  举报