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 服务商提供的域名后,整个加速过程就能自动实现。操作的流程大致如下:
- 源站(Origin)将域名 CNAME 到 CDN 服务商提供的域名,例如将 www.thebyte.com.cn CNAME 到 thebyte.akamai.com。
- 源站提供一个 20KB 左右的用于探测网络质量的文件资源。
- 服务商在源站周边选择一批候选的转发节点(Relay Node)。
- 转发节点对测试资源进行下载测试,多个转发节点多路探索后,根据丢包率、RTT、路由的 hops 数等,选择出一条客户端(End Users)到源站之间的最佳的路由线路。
图 2-24 DSA 服务网络加速原理 图片来源
根据笔者使用 Akamai 加速服务后的效果数据看,HTTP 请求的延迟降低了 30% 右,如表 2-4 所示。
表 2-4 网络直连与使用动态加速的效果对比
客户端区域 | 客户端与服务端直连 | 客户端使用 Akamai 加速 | 加速后的网络效率提升 |
---|---|---|---|
Bangkok | 0.58s | 0.44s | 31% |
jakarta | 0.57s | 0.44s | 31% |
Kuala Lumpur | 0.52s | 0.38 | 36% |
Taibei | 0.51s | 0.40s | 37% |
Hanoi Bac Mai | 0.54s | 0.41s | 30% |
Singapore | 0.58s | 0.39s | 48% |
Hong Kong | 0.38s | 0.24s | 58% |
Tokyo | 0.60s | 0.45s | 32% |
Surabaya | 0.67s | 0.52s | 29% |
Manila | 0.46s | 0.34s | 36% |
笔者曾在上海使用 mtr 工具测试一个新加坡节点路由状态,数据包先到香港 AS,香港转到美国 AS,再从美国转到新加坡 AS。 ↩︎
![](/assets/qrcode-v2-Dm-ghQau.png)