traceroute、tracert是基于何种协议?
就是基于ICMP的。TCP/IP协议详解卷1的8.2节中曾经说过,路由追踪时发送UDP数据报给目标主机,而且设置的端口值很高,一般大于30000,以避免端口号被使用。原文如下: “Traceroute程序发送一份UDP数据报给目的主机,但它选择一个不可能的值作为UDP端口 号(大于30 000),使目的主机的任何一个应用程序都不可能使用该端口。因为,当该数据报 到达时,将使目的主机的UDP模块产生一份“端口不可达”错误(见 6 . 5节)的ICMP报文。 这样,Traceroute程序所要做的就是区分接收到的ICMP报文是超时还是端口不可达,以判断 什么时候结束。” 中间的路由器是因为TTL=0以后返回ICMP 类型11,代码0的超时消息。目的IP到了以后,拆包分析UDP内容,发现端口不可达,返回ICMP类型3,代码3(目标端口不可达)实现。 在windws主机里面的tracert和TCP/IP详解的表述有点出入。windows主机的tracert是直接是用ping来实现的,但是这个ping的TTL值在3个包后增大1,不可达或者超时后返回星号,继续下一个TTL的包的发送,一直到达默认设置的30跳。一般在路由器和交换机上的traceroute都是UDP的方式,每个TTL发的包的个数和最大跳数、UDP开始端口都是可以调整的。
你想发现到达目标网络需要经过哪些路由器,你应该使用什么命令?
Tracert命令,使用tracert命令不仅可以快速显示数据包到达目标主机所经过的路径(路由器),并显示到达每个节点(路由器)的时间,详细步骤:1、点击电脑左下角任务栏上的搜索框,输入”cmd“。2、点击【以管理员身份运行】。3、打开cmd命令提示符。4、在命令行中输入“tracert+ip地址”。例如在命令提示符中输入”tracert192.168.185.1“,回车。5、例如光猫的ip地址为192.168.1.1,那么使用”tracert192.168.1.1“命令就可以可以查询从本机到光猫所要经过的路由器的IP地址。
traceroute、tracert是基于何种协议,还是本身就是一个独立的协议?
就是基于ICMP的。
TCP/IP协议详解卷1的8.2节中曾经说过,路由追踪时发送UDP数据报给目标主机,而且设置的端口值很高,一般大于30000,以避免端口号被使用。原文如下:
“Traceroute程序发送一份UDP数据报给目的主机,但它选择一个不可能的值作为UDP端口
号(大于30 000),使目的主机的任何一个应用程序都不可能使用该端口。因为,当该数据报
到达时,将使目的主机的UDP模块产生一份“端口不可达”错误(见 6 . 5节)的ICMP报文。
这样,Traceroute程序所要做的就是区分接收到的ICMP报文是超时还是端口不可达,以判断
什么时候结束。”
中间的路由器是因为TTL=0以后返回ICMP 类型11,代码0的超时消息。
目的IP到了以后,拆包分析UDP内容,发现端口不可达,返回ICMP类型3,代码3(目标端口不可达)实现。
在windws主机里面的tracert和TCP/IP详解的表述有点出入。windows主机的tracert是直接是用ping来实现的,但是这个ping的TTL值在3个包后增大1,不可达或者超时后返回星号,继续下一个TTL的包的发送,一直到达默认设置的30跳。一般在路由器和交换机上的traceroute都是UDP的方式,每个TTL发的包的个数和最大跳数、UDP开始端口都是可以调整的。