跟踪路由探针

网络工程 路由器 国际会议 跟踪路由
2021-07-13 12:27:58

在 traceroute 中,当收到 * 时,可能意味着路由器由于各种原因没有回复 - 路由器正忙于处理其他数据包或 ICMP 被阻止。我认为很少有 ISP 在 Internet 上配置某些路由器来过滤 ICMP,因为 ICMP 流量是所有 Internet 流量中优先级最低的。

但最终一段时间后,我能够到达下一跳和目的地——当中间路由器很忙时,这怎么可能?这是否意味着当源接收到 * 时,源将 TTL 增加 1 并发送跟踪探测数据包,而忙碌的中间路由器只是减少该数据包的 TTL 并将数据包转发到下一跳路由器?

2个回答

但最终一段时间后,我能够到达下一跳和目的地——当中间路由器很忙时,这怎么可能?

中间路由器忙于转发数据包,而来自不同路由器的数据包只是发送给它的数据包,因此它会被转发。路由器的主要工作是尽可能快地转发数据包。其优先级列表中的低级正在生成 ICMP 消息,它会在有时间时这样做,但是如果它忙于转发数据包,它可能会推迟它,直到该路由器的 traceroute 超时。

当路由器是中间路由器时,它不会生成 ICMP 错误消息,它只是转发包含由不同路由器生成的 ICMP 错误消息的数据包。中间路由器只知道它正在转发一个数据包(它的主要工作),而不知道数据包包含什么。

现代路由器在硬件中处理数据包转发(以获得最大速度和效率)。在处理控制流量时,即在 CPU(软件)中发往路由器本身的流量。路由器不响应 ICMP 消息的原因很少(也许还有更多)。ICMP 处理被禁用(对于 sequrity porpuses) - 这使得某人更难对该路由器发起 DDOS 攻击。ICMP 具有低处理优先级 - 路由器宁愿首先处理 OSPF/BGP 以保持连接,而不是此低优先级任务。