引言
在调试跨境网络或访问海外服务时,很多人都会遇到类似的问题:
延迟高、抖动大、Traceroute 路径绕行严重,甚至连最基础的 ICMP ping 都会出现明显丢包。
起初我也认为这是「物理距离远」「国际带宽不足」导致的自然结果。但在不断查资料和思考之后,我逐渐意识到:
问题并不单纯出在带宽大小,而在于跨境网络的整体架构。
这篇文章记录了我从一个非常具体的现象 —— ICMP 丢包 —— 出发,一步步推导到跨境互联网结构层面的思考过程。
本文收录于专题 「对话之外」。
从一个现象开始:为什么 ICMP 丢包这么严重?
在中国大陆访问海外网络时,一个非常典型的现象是:
- TCP 业务还能勉强使用
- UDP 和 ICMP 经常出现明显丢包
- 高峰期延迟和抖动大幅波动
这并不是因为 ICMP 本身「不重要」,而是因为在网络拥塞时,它往往被视为最低优先级流量,最先被丢弃。
但问题在于:
为什么跨境链路会长期处于这种“必须丢包才能维持业务”的状态?
一个常见但不完整的理解:本地化就够了吗?
我最初对「流量在本地消化」的理解,其实非常直观:
- 把数据中心建在本地
- 使用 CDN、边缘节点
- 让用户尽量不跨境访问
这种做法当然是正确的,而且在内容分发层面也非常有效。
但它并不能解释这样一个事实:
即便访问的是必须跨境的服务,
为什么海外的网络体验仍然可以长期稳定,而中国大陆却始终处于“紧绷”状态?
显然,问题不只在于内容是否本地化,而在于跨境流量是如何被组织和转发的。
国际出口:真正的瓶颈在哪里?
在中国大陆的网络架构中,几乎所有跨境流量都遵循同一个模式:
|
|
这里的关键不是某一条具体的链路,而是一个逻辑边界:
所有跨境流量,必须经过运营商的国际出口转发与控制。
这意味着:
- 全国的跨境流量被集中汇聚
- 拥塞发生在少数几个固定节点
- 高峰期必须依靠 QoS 丢弃低优先级流量维持可用性
ICMP 丢包,其实只是这个结构性拥塞的一个外在表现。
为什么海外的跨境体验反而更好?
对比海外网络,会发现一个很反直觉的现象:
很多国家运营商公布的「国际出口带宽」数值并不大,
但跨境网络体验却明显更稳定。
原因在于:
大量跨境流量,根本不经过运营商的“国际出口”。
国际 IX:被忽略的关键角色
在许多国家和地区,跨境流量并不完全依赖运营商提供的国际转发服务,而是通过:
- 国际 Internet Exchange(IX)
- 私有 Peering
- 云厂商与内容提供商的直连
在这些场景中:
- AS 与 AS 之间可以直接交换路由
- 流量在本地或区域层面完成分流
- 运营商只承担 transit 或兜底角色
注:本文所说的“国际 IX”,指的是开放式、自治的 Internet Exchange,
不等同于运营商内部或封闭环境中的交换节点。
这类流量在工程和统计意义上,通常被视为 peering traffic,而不是 international transit traffic。
也正因如此:
海外运营商的“国际出口”只承载一部分流量,
而不是全国跨境流量的唯一通道。
结构性的差异,而不是带宽的差异
将两种模式对比,可以发现根本区别在于:
| 模式 | 跨境流量路径 |
|---|---|
| 集中式出口 | 所有流量汇聚到少数出口 |
| IX / Peering | 流量在多点自治分流 |
前者的问题不是「不扩容」,而是:
无论扩多少带宽,队列始终集中在同一个逻辑位置。
而后者的优势在于:
- 拆分队列
- 分散拥塞
- 避免单点过载
这是一种架构层面的差异,而不是单纯的资源规模问题。
为什么中国大陆难以采用 IX 模式?
国际 IX 的本质,并不仅仅是“更快的出口”,而是:
- AS 之间的自治互联
- 路由路径由通信双方协商决定
- 流量不必经过统一的运营商骨干
这意味着跨境流量不再必然经过同一个 C-I 段逻辑边界。
在以集中转发、统一控制为目标的网络体系下,这种模式与既有设计并不兼容,因此难以直接引入。
总结
中国大陆国际出口“永远不够用”,并不是因为技术能力不足或建设投入不够,而是因为:
几乎所有跨境流量,都被集中送入了同一个逻辑出口队列。
在这种架构下:
- 拥塞是常态
- ICMP 丢包是必然现象
- 单纯扩容无法从根本上解决体验问题
理解这一点,有助于区分哪些问题属于工程优化范畴,哪些已经是架构层面的选择。
后记
本文并非试图给出解决方案,而是对一个常见网络现象进行结构层面的拆解。
当把问题从“带宽是否足够”上移到“流量如何被组织和转发”,很多现象本身就已经给出了答案。