出于什么目的,人们希望通过 TCP 而不是 UDP 发送跟踪路由?这样做有什么优点/缺点?我知道 traceroute 通常使用 UDP ICMP“echo”数据包,而带有 TCP 的 traceroute 使用来自其 3 次握手的“SYN”数据包,但我很好奇为什么一个可能比另一个更好。如果这取决于情况,那么那些情况是什么?
TCP 与 UDP 上的跟踪路由
网络工程
通讯协议
国际会议
跟踪路由
UDP
2021-07-13 19:55:32
3个回答
没有“ UDP ICMP”回声“ ”这样的东西。traceroute 发送一个TTL 增加的 UDP探测。该探测是一个单一的数据报,目的地是一个高端口,它不太可能是一个侦听服务。当数据报通过网络流出时,TTL 递减,直到达到零,此时会生成 ICMP 错误(“超时”)。该 ICMP 消息标识了一个“跳跃”。当 TTL 足以到达目标时,由于该端口上没有侦听器,会生成 ICMP“端口无法访问”错误,从而结束跟踪。
的目的tcptraceroute
是对 TCP 连接进行相同类型的路径检查。它在诊断特定服务的连接问题时最有用。(例如,网络服务器)由于探测看起来像一个普通的 TCP 连接尝试,它们将通过 NAT、防火墙、ACL、速率限制等,完全作为来自预期应用程序的连接。
Tcp traceroutes 可用于测试阻止路由器、防火墙或入侵防御系统上的给定协议的访问列表。好人和坏人都对这些知识感兴趣。tcptraceroute 等工具在渗透测试人员工具箱中很常见,并且可以在精明的网络管理员系统中找到。
Traceroute 依赖于发送具有受控 TTL 的探测并监视返回的 ICMP 时间超出错误。
探针可以是任何协议。默认情况下,Windows 使用 ICMP 回显数据包。大多数类 Unix 系统默认使用 UDP 数据包。
如果我们的网络像互联网设计者所设想的那样简单,那么就不需要有更改跟踪路由中使用的协议的选项,但实际上我们有防火墙、NAT、流量优先级系统等。使用相同的协议(可能还有相同的端口号)作为应用程序实际使用的协议的跟踪,增加了跟踪路由结果代表应用程序将看到的网络的机会。