2.7 使用“DSA 服务”优化全球网络

网络链路越长,两个节点之间的延迟越大,如果是一个全球化的网络服务,受跨国、跨海等国际链路影响,降低延迟的难度也大幅增加。

更重要的是,互联网的连接还有个不能忽略的现实:“两个节点之间的通信并不总是遵循最短路径原则,而是会受到自治系统(AS)之间的连接成本和策略的影响”。这意味着,网络路由往往是基于成本效益后的结果,而非单纯根据地理或拓扑距离的最优解[1]

什么是 AS

AS(Autonomous System,自治系统)具有统一路由策略的巨型网络或网络群组,每个自治系统被分配一个唯一的 AS 号,各个 AS 之间使用 BGP 协议进行识别和通告路由,全世界最大规模的 AS 网络就是互联网。

为了改善长距离链路中的网络服务质量,不妨换个思路,使用商业性质(花钱)来避免互联网链路的局限性。

目前,主流的技术服务商,如 Akamai、Fastly、Amazon CloudFront 和 Microsoft Azure 等,都提供全球性的 DSA 服务(Dynamic Site Accelerator,动态加速网络)。这些服务商在全球多个地区部署了数量庞大的边缘服务器,构建了一个庞大的全球性加速网络。利用这些服务商的网络基础设施,可以显著降低因跨不同运营商和跨国界传输而产生的网络延迟、丢包和连接不稳定等问题。

使用 DSA 服务也比较简单,一般将域名的解析记录 CNAME 到 CDN 服务商提供的域名后,整个加速过程就能自动实现。操作的流程大致如下:

  1. 源站(Origin)将域名 CNAME 到 CDN 服务商提供的域名,例如将 www.thebyte.com.cn CNAME 到 thebyte.akamai.com。
  2. 源站提供一个 20KB 左右的用于探测网络质量的文件资源。
  3. 服务商在源站周边选择一批候选的转发节点(Relay Node)。
  4. 转发节点对测试资源进行下载测试,多个转发节点多路探索后,根据丢包率、RTT、路由的 hops 数等,选择出一条客户端(End Users)到源站之间的最佳的路由线路。


图 2-24 DSA 服务网络加速原理 图片来源open in new window

根据笔者使用 Akamai 加速服务后的效果数据看,HTTP 请求的延迟降低了 30% 右,如表 2-4 所示。

表 2-4 网络直连与使用动态加速的效果对比

客户端区域客户端与服务端直连客户端使用 Akamai 加速加速后的网络效率提升
Bangkok0.58s0.44s31%
jakarta0.57s0.44s31%
Kuala Lumpur0.52s0.3836%
Taibei0.51s0.40s37%
Hanoi Bac Mai0.54s0.41s30%
Singapore0.58s0.39s48%
Hong Kong0.38s0.24s58%
Tokyo0.60s0.45s32%
Surabaya0.67s0.52s29%
Manila0.46s0.34s36%

  1. 笔者曾在上海使用 mtr 工具测试一个新加坡节点路由状态,数据包先到香港 AS,香港转到美国 AS,再从美国转到新加坡 AS。 ↩︎

总字数:815
Last Updated:
Contributors: isno