2.7 对请求进行“动态加速”
动态加速是一种通过实时监测网络状态,并根据流量、延迟、丢包率等关键指标动态调整传输策略的优化技术。
主流技术服务商(如 Akamai、Fastly、Amazon CloudFront 和 Microsoft Azure)在全球各地部署了大量边缘服务器,构建了覆盖广泛的全球加速网络。使用这些服务商的“动态加速”服务非常简单,只需将域名 CNAME 到服务商提供的地址,即可自动实现加速。
操作流程大致如下:
- “源站”(Origin)将域名 CNAME 到 CDN 服务商提供的域名。例如,将 www.thebyte.com.cn CNAME 到 thebyte.akamai.com。
- 源站提供一个约 20KB 的文件资源,用于探测网络质量。
- CDN 服务商在源站附近选择一批“转发节点”(Relay Nodes)。
- 转发节点对测试资源执行下载测试,根据丢包率、RTT、路由的 hops 数等,选定“客户端”(End Users)到源站的最佳路径。
:::center
图 2-23 动态加速原理 图片来源
:::
笔者使用过 Akamai 的加速服务,根据表 2-4 所示的实践结果来看,HTTPS 请求延迟降低了 30% 左右。
:::center 表 2-4 网络直连与使用动态加速的效果对比 ::: 客户端| 源站| 客户端直接访问源站的延迟| 客户端使用 Akamai 加速后的延迟| 效果提升 :—-|:—:|:—:|:—:|:— 泰国,曼谷|香港|0.58s|0.44s|31% 印尼,雅加达|香港|0.57s|0.44s|31% 马来西亚,吉隆坡|香港|0.52s|0.38|36% 台北|香港|0.51s|0.40s|37% 越南,河内|香港|0.54s|0.41s|30% 新加坡|香港|0.58s|0.39s|48% 香港|香港|0.38s|0.24s|58% 日本,东京|香港|0.60s|0.45s|32% 印尼,泗水|香港|0.67s|0.52s|29% 菲律宾,马尼拉|香港|0.46s|0.34s|36%
利用边缘节点加速请求是一种典型的“网络边缘代理”技术。有关各类代理技术的原理,笔者将在本书第六章详细介绍。
[^1]: AS(Autonomous System,自治系统)具有统一路由策略的巨型网络或网络群组,每个自治系统被分配一个唯一的 AS 号,各个 AS 之间使用 BGP 协议进行识别和通告路由,全世界最大规模的 AS 网络就是互联网。 [^2]: 笔者曾在上海使用 mtr 工具测试一个新加坡节点路由状态,数据包先到香港 AS,香港转到美国 AS,再从美国转到新加坡 AS。