gpt4 book ai didi

networking - 为什么traceroute发送UDP数据包而不是ICMP数据包?

转载 作者:行者123 更新时间:2023-12-02 22:56:24 25 4
gpt4 key购买 nike

根据 Stevens(TCP/IP 说明),traceroute 程序将 UDP 数据包发送到具有增量 TTL(1、2、3 等)的目标主机,以从中获取中间跃点信息ICMP TTL EXPIRED 消息。
到达目的地”条件是一个ICMP 端口无法到达消息,因为跟踪路由会寻址一个具有高编号的随机端口(即:不太可能有人正在监听该端口)
所以我的问题是:是否存在技术原因(缺点、RFC 等)来使用 UDP 数据包而不是使用例如 ICMP 回显请求 消息(随着 TTL 的增加)并使用 >回显回复回答作为结束条件?
我知道 ICMP 回显回复可能会被中间的防火墙或其他网络设备过滤掉,但我想这也可能发生在 UDP 数据包上;)

非常感谢
塞尔吉奥

最佳答案

这实际上是进行路由跟踪的“旧”方法。我猜主要动机是发送普通 UDP 数据包不需要特殊权限,而发送 ICMP 数据包则需要特殊权限(原始套接字或等效项)。这就是为什么例如ping 通常将 uid 设置为 root,这在安全方面存在很大的风险。

现在 traceroute 也支持 ICMP 和 TCP 探测数据包,因此您更有可能潜入防火墙,而防火墙很可能在不考虑的情况下部署。这也意味着 traceroute 也可能是您系统上的 setuid root。请参阅其手册页,特别是有关可用方法的部分:http://linux.die.net/man/8/traceroute

关于networking - 为什么traceroute发送UDP数据包而不是ICMP数据包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10312344/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com