TRACEROUTE
:ICMP
或UDP
或使用的任何协议IP ?
或者全部使用它们:封装?
答案1
这个问题已由拉哒哒哒哒这里 : traceroute 使用 UDP 还是 ICMP 还是两者兼而有之?
发送的数据包类型因实现方式而异。默认情况下,Windows tracert 使用 ICMP,而 Mac OS X 和 Linux traceroute 都使用 UDP。我手头没有 BSD 或 Solaris 机器或任何其他操作系统可供检查,但 Mac OS X 版本的手册页提到其出处是 BSD 4.3。
我拥有的 Mac 和 Linux 版本提供了选择各种不同协议的功能,包括 ICMP、TCP、UDP 和 GRE 数据包。其他协议可以通过其名称或编号指定,但 traceroute 对其他协议的工作原理一无所知。它只是盲目地发送它们。
对于 traceroute(在 GNU/Linux 下),手册页这里指示您使用参数来指定除 UDP 之外的其他协议:
-I Use ICMP ECHO for probes
-T Use TCP SYN for probes
...
ICMP 和 UDP 都封装在 IP 数据包中。希望对您有所帮助 :)
答案2
默认情况下,Traceroute 使用 UDP,也可以使用 ICMP 回显请求或 TCP SYN 数据包。如果您使用 tracroute -T,您将使用 TCP SYN 进行探测,而如果您使用 traceroute -I,您将使用 icmp 回显数据包进行探测。