traceroute、tracert是基于何种协议,还是本身就是一个独立的协议?

为什么有的IP可以PING通,但是不能跟踪……比如119.75.218.45... 为什么有的IP可以PING通,但是不能跟踪……比如119.75.218.45 展开
 我来答
oufuji
推荐于2018-04-19
知道答主
回答量:17
采纳率:50%
帮助的人:4.8万
展开全部
就是基于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开始端口都是可以调整的。
晓网科技
2024-10-17 广告
ZigBee协议适应无线传感器的低花费、低能量、高容错性等的要求。ZigBee是基于IEEE802.15.4标准的低功耗局域网协议。但IEEE仅处理低级MAC层和物理层协议,因此Zigbee联盟扩展了IEEE,对其网络层协议和API进行了标... 点击进入详情页
本回答由晓网科技提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式