游戏卡顿白皮书 › L4 公网链路
BGP 路由变更/收敛 Route change / BGP convergence
原因 ID isp-bgp · 主责 运维团队·网络运维 · 配合 研发团队·服务器开发, 外部·外部
在含图示和实验的完整版中打开此卡片 →
互联网的路由信息发生变化后需要重新收敛,在这几秒到几十秒(少数情况下几分钟)里会丢包。
起因 某个运营商段的路由信息发生变化 → 结果 几秒到几十秒内数据包丢失,或切换到新路径 → 画面表现 突然卡住几秒,之后 ping 值变了(例如 40 → 70 ms)
- 症状
- 卡住, 瞬移
- 因素
- 丢包, 延迟
- 谁会遇到
- 特定地区/运营商
- 何时出现
- 偶尔随机
- 负责方
- 主责 运维团队·网络运维 · 配合 研发团队·服务器开发, 外部·外部
- 研发团队要做的事
- 超时要扛得住短暂中断(连接停顿几秒不要马上断开)。
- 运维团队要做的事
- 路由监控(监视我方 IP 段的路由和 ping 变化);我方线路故障用 BFD 在 1 秒内检测并切换(BGP 默认保持时间为 90~180 秒);路由切到远路后一直不恢复,就把流量转到其他线路。
- 外部要做的事
- 路由频繁变化的运营商段,请该运营商查明原因。
- 监控图上
- 某一时刻起台阶式上升 · RTT、traceroute 路径
- 查看位置
- 比较 RTT 变化前后的 traceroute、mtr 路径,用 RIPEstat BGPlay 查看我方地址段(prefix)的 BGP 路由变更记录
- 确认依据
- 伴随几秒的卡住,RTT 移到另一个水平,同一时刻有 BGP 更新和 AS 路径变更
- 排除依据
- 没有路由变更记录而只在晚上升高,看“高峰时段对等互联链路拥塞”;只有部分连接差,看“ECMP 单条路径故障”
- 确认手段
- 运维工具即可确认(无需游戏代码)
- 真实案例
- Cloudflare 2020: Cloudflare 骨干网配置错误导致部分城市流量丢失
Meta 2021: 一条骨干网命令让 Facebook 连 DNS 都消失的故障
Cloudflare 2025: Cloudflare 公共 DNS 1.1.1.1 故障
出处
- RFC 4271: A Border Gateway Protocol 4 (BGP-4) IETF
BGP 保持时间(hold time)建议默认值 90 秒(这段时间内收不到对端消息就断开会话) - BGP updates in 2024 APNIC
变得不稳定的路由重新稳定下来,日均需要 25~35 秒(IPv4)、40~50 秒(IPv6) - Delayed Internet Routing Convergence (SIGCOMM 2000) ACM
路由故障后收敛最长要几分钟,期间丢包和延迟增加(2000 年的测量) - BGPlay (RIPEstat Data API) RIPE NCC
显示地址段(prefix)在起始时刻的 BGP 路由、该期间观测到的 BGP 更新,以及路径上的 AS 信息
相关原因
同一层:L4 公网链路
其他层中同样导致“卡住”的原因
查看含图示和实验的原卡片