我想知道是否有一个通常用于 traceroute 命令中使用的目标端口的范围。就像目标端口的起始地址是 33434。但是是否有一些标准范围是 traceroute 首选的?
小智 6
使用 UDP 进行跟踪路由被认为是一些不好的做法,因为 UDP 应该是一个数据承载应用程序协议。ICMPECHO_REQUEST
是首选方法,尽管没有标准的. 使用 ICMP 的主要原因是 UDP 可以携带有效载荷,因此允许它通过防火墙具有更大的安全隐患;对于最终用户来说,它更有可能被阻止。应用程序也有可能使用 UDP 端口,从而导致潜在的不需要的副作用。尽管偏爱 ICMP,但经典traceroute(1)
及其后继者都使用 UDP,包括 Mac OS X、大多数 Linux 发行版、BSD 和 Cisco IOS 附带的实现。
对于这些 UDP 实现,每个探测的端口号增加 1,因此任何给定运行的最高端口号等于33434 + (max-ttl * probes-per-hop - 1)。max-ttl的默认设置通常为 32 或 64,具体取决于实现。默认的每跳探测数通常是 1 或 3。使用更自由的默认值 64 和 3,范围将是33434-33625。在实践中,max-ttl 为 32 通常绰绰有余,在这种情况下,范围将是33434-33529。
另请注意,IANA仅将端口 33434分配给 traceroute,但未分配 33435-33655。
有关 ICMP 与 UDP 的信息,请参阅:为什么一些常见的跟踪路由实现默认使用 UDP 探测?
小智 3
Traceroute通过发送 ICMP数据包来工作,这些数据包完全是它们自己的协议。没有端口。
更详细地说,traceroute 发送以 TTL 1 开头的 ICMP 回显数据包。这会导致数据包在第一个路由器处返回故障。然后 TTL 为 2 - 将其带到第二个路由器。TTL 不断增加,直至到达目的地。沿途找到的一组路由器就是跟踪的路由。
归档时间: |
|
查看次数: |
37326 次 |
最近记录: |