V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
LLaMA
V2EX  ›  宽带症候群

为什么不管 traceroute 哪里,倒数几跳的延迟经常比最后一跳还高?

  •  
  •   LLaMA · 2023-03-20 12:57:40 +08:00 · 1428 次点击
    这是一个创建于 375 天前的主题,其中的信息可能已经有所发展或是发生改变。
    5 条回复    2023-03-21 12:14:45 +08:00
    fastcache
        1
    fastcache  
       2023-03-20 13:12:58 +08:00
    中低端网络设备,例如接入交换机,icmp 之类是 cpu 集中处理,优先级低,会比服务器慢
    miyuki
        2
    miyuki  
       2023-03-20 13:19:50 +08:00
    我理解的:traceroute 的延迟就是单独去 ping 每个节点,icmp 处理优先级比路由包低
    wuvvu
        3
    wuvvu  
       2023-03-20 17:09:47 +08:00
    倒数几跳的节点到源 ip 的线路不一定和回程线路相同
    yyzh
        4
    yyzh  
       2023-03-20 19:55:10 +08:00
    对的,例如下面这个中间那些 NTT 的节点回源就是走了其他线路(新加坡 /日本 /美国)但是你到目标以及目标到你都是 CN2 直连的.
    joshu
        5
    joshu  
       2023-03-21 12:14:45 +08:00
    1 、去程路由和回程路由不是对称的,这在互联网上极为常见
    2 、traceroute 提供的是去程路径信息,对应去程路径上的每个节点,但如果中间设备配置有多个地址,你所看到的路径上的 IP 地址<很可能是>该设备到源 IP (也就是发起 traceroute 机器的外网 IP )时所使用路由出口的接口的 IP 地址
    亦即想表达的意思是,假设你的机器 A 访问机器 B 时通过<路径 1>时经过 C 节点,此时你的去程流量是从 C 节点网卡 C1 进入的流量,C 此时把 TTL=0 的包返给机器 A 时查询自己的路由表,发现应该从网卡 C2 出去,此时 C 走的可能是<路径 2>,假设 C 在出口网卡 C2 配置了 IP 地址,你在 traceroute 上看到的地址其实是 C2 网卡的地址而不是 C1 ,如果 C2 没配置问题就复杂一些。
    对应的,你下一跳、上一跳以及任意链路上中间设备,在返包给机器 A 时,都是根据自己的路由表得出应往哪个出口网卡发送,对应的可能就不是<路径 1>、<路径 2>,而是<路径 3>、<路径 N>之类的了
    你所看到的延迟,是<路径 1>上 A 到中间设备 C 的时延+<路径 N>的时延,不对称,所以可能中间延迟就高很多
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5577 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 40ms · UTC 06:36 · PVG 14:36 · LAX 23:36 · JFK 02:36
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.