traceroute和tracert的区别
发布网友
发布时间:2022-04-22 12:28
我来回答
共3个回答
热心网友
时间:2022-05-14 16:34
展开1全部您好,很高兴为您解答。
一、应用环境不同
tracert是应用在windows下。
traceroute则是应用在linux/BSD/router/UNIX下。
tracert是Windows下常用的命令行工具,UNIX下的是traceroute。都是基于UDP协议的路由探测。
Tracert(跟踪路由)是路由跟踪实用程序,用于确定
IP 数据报访问目标所采取的路径。Tracert 命令用 IP 生存时间 (TTL) 字段和 ICMP 错误消息来确定从一个主机到网络上其他主机的路由。
工作原理和过程:
通过向目标发送不同
IP 生存时间 (TTL) 值的“Internet 控制消息协议 (ICMP)”回应数据包,Tracert
诊断程序确定到目标所采取的路由。要求路径上的每个路由器在转发数据包之前至少将数据包上的 TTL 递减 1。数据包上的 TTL 减为 0
时,路由器应该将“ICMP 已超时”的消息发回源系统。
Tracert
先发送 TTL 为 1 的回应数据包,并在随后的每次发送过程将 TTL 递增 1,直到目标响应或 TTL
达到最大值,从而确定路由。通过检查中间路由器发回的“ICMP 已超时”的消息确定路由。某些路由器不经询问直接丢弃 TTL 过期的数据包,这在 Tracert
实用程序中看不到。
Tracert
命令按顺序打印出返回“ICMP 已超时”消息的路径中的近端路由器接口列表。如果使用 -d 选项,则 Tracert 实用程序不在每个 IP 地址上查询
DNS。
Traceroute程序的设计是利用ICMP及IP
header的TTL(Time To Live)栏位(field)。首先,traceroute送出一个TTL是1的IP
datagram(其实,每次送出的为3个40字节的包,包括源地址,目的地址和包发出的时间标签)到目的地,当路径上的第一个路由器(router)收到这个datagram时,它将TTL减1。此时,TTL变为0了,所以该路由器会将此datagram丢掉,并送回一个「ICMP
time exceeded」消息(包括发IP包的源地址,IP包的所有内容及路由器的IP地址),traceroute
收到这个消息后,便知道这个路由器存在于这个路径上,接着traceroute 再送出另一个TTL是2 的datagram,发现第2 个路由器......
traceroute 每次将送出的datagram的TTL 加1来发现另一个路由器,这个重复的动作一直持续到某个datagram
抵达目的地。当datagram到达目的地后,该主机并不会送回ICMP time
exceeded消息,因为它已是目的地了,那么traceroute如何得知目的地到达了呢?
Traceroute在送出UDP
datagrams到目的地时,它所选择送达的port number 是一个一般应用程序都不会用的号码(30000 以上),所以当此UDP datagram
到达目的地后该主机会送回一个「ICMP port unreachable」的消息,而当traceroute
收到这个消息时,便知道目的地已经到达了。所以traceroute 在Server端也是没有所谓的Daemon 程式。
Traceroute提取发
ICMP TTL到期消息设备的IP地址并作域名解析。每次,Traceroute都打印出一系列数据,包括所经过的路由设备的域名及
IP地址,三个包每次来回所花时间。
Traceroute
有一个固定的时间等待响应(ICMP TTL到期消息)。如果这个时间过了,它将打印出一系列的*号表明:在这个路径上,这个设备不能在给定的时间内发出ICMP
TTL到期消息的响应。然后,Traceroute给TTL记数器加1,继续进行。
二、探测方法及探测的数据类型不同
默认情况下,tracert是向目的地址发出ICMP请求回显数据包,而traceroute是向目的地址的某个端口(大于30000)发送UDP数据报。
如若满意,请点击右侧【采纳答案】,如若还有问题,请点击【追问】
希望我的回答对您有所帮助,望采纳!
~ O(∩_∩)O~
热心网友
时间:2022-05-14 17:52
很高兴为您解答。
一、应用环境不同
tracert是应用在windows下。
traceroute则是应用在linux/BSD/router/UNIX下。
tracert是Windows下常用的命令行工具,UNIX下的是traceroute。都是基于UDP协议的路由探测。
Tracert(跟踪路由)是路由跟踪实用程序,用于确定
IP 数据报访问目标所采取的路径。Tracert 命令用 IP 生存时间 (TTL) 字段和 ICMP 错误消息来确定从一个主机到网络上其他主机的路由。
工作原理和过程:
通过向目标发送不同
IP 生存时间 (TTL) 值的“Internet 控制消息协议 (ICMP)”回应数据包,Tracert
诊断程序确定到目标所采取的路由。要求路径上的每个路由器在转发数据包之前至少将数据包上的 TTL 递减 1。数据包上的 TTL 减为 0
时,路由器应该将“ICMP 已超时”的消息发回源系统。
Tracert
先发送 TTL 为 1 的回应数据包,并在随后的每次发送过程将 TTL 递增 1,直到目标响应或 TTL
达到最大值,从而确定路由。通过检查中间路由器发回的“ICMP 已超时”的消息确定路由。某些路由器不经询问直接丢弃 TTL 过期的数据包,这在 Tracert
实用程序中看不到。
Tracert
命令按顺序打印出返回“ICMP 已超时”消息的路径中的近端路由器接口列表。如果使用 -d 选项,则 Tracert 实用程序不在每个 IP 地址上查询
DNS。
Traceroute程序的设计是利用ICMP及IP
header的TTL(Time To Live)栏位(field)。首先,traceroute送出一个TTL是1的IP
datagram(其实,每次送出的为3个40字节的包,包括源地址,目的地址和包发出的时间标签)到目的地,当路径上的第一个路由器(router)收到这个datagram时,它将TTL减1。此时,TTL变为0了,所以该路由器会将此datagram丢掉,并送回一个「ICMP
time exceeded」消息(包括发IP包的源地址,IP包的所有内容及路由器的IP地址),traceroute
收到这个消息后,便知道这个路由器存在于这个路径上,接着traceroute 再送出另一个TTL是2 的datagram,发现第2 个路由器......
traceroute 每次将送出的datagram的TTL 加1来发现另一个路由器,这个重复的动作一直持续到某个datagram
抵达目的地。当datagram到达目的地后,该主机并不会送回ICMP time
exceeded消息,因为它已是目的地了,那么traceroute如何得知目的地到达了呢?
Traceroute在送出UDP
datagrams到目的地时,它所选择送达的port number 是一个一般应用程序都不会用的号码(30000 以上),所以当此UDP datagram
到达目的地后该主机会送回一个「ICMP port unreachable」的消息,而当traceroute
收到这个消息时,便知道目的地已经到达了。所以traceroute 在Server端也是没有所谓的Daemon 程式。
Traceroute提取发
ICMP TTL到期消息设备的IP地址并作域名解析。每次,Traceroute都打印出一系列数据,包括所经过的路由设备的域名及
IP地址,三个包每次来回所花时间。
Traceroute
有一个固定的时间等待响应(ICMP TTL到期消息)。如果这个时间过了,它将打印出一系列的*号表明:在这个路径上,这个设备不能在给定的时间内发出ICMP
TTL到期消息的响应。然后,Traceroute给TTL记数器加1,继续进行。
二、探测方法及探测的数据类型不同
默认情况下,tracert是向目的地址发出ICMP请求回显数据包,而traceroute是向目的地址的某个端口(大于30000)发送UDP数据报。
如若满意,请点击右侧【采纳答案】,如若还有问题,请点击【追问】
。
热心网友
时间:2022-05-14 19:26
windows下的tracert和linux/BSD/router下的traceroute都用于探测数据包从源到目的经过路由的IP,但两者探测的方法却有差别。
默认情况下,tracert是向目的地址发出ICMP请求回显数据包,而traceroute是向目的地址的某个端口(大于30000)发送UDP数据报。两者用于探测的数据类型不同。但他们也有一个共同点:都是通过设置发送包的TTL的值从1开始、逐次增1的方法来探测。