使用边缘节点加速
由于网络传输中间会有大量的BGP路由选路、丢包重传、链路的拥塞控制等等问题影响,提升用户访问网络质量最有效的办法就是让服务与用户的物理距离越近越好。
如果您的服务面向全球用户,为了提升用户访问质量,除了在当地建设数据中心外,还可以使用动态加速的方案,基于边缘节点进行服务动态加速,对跨国、跨运营商此类较差的网络环境下有较好的表现。
动态加速区别于静态加速是内容不可被缓存,实现动态加速的方案一般使用 网络专线优化、BGP选路优化、以及软件技术层面的优化。(核心还是部署大量的边缘节点)
动态加速中的路由优化
实现动态加速非常重要的一个方式是路由优化,网络路由并不是最近原则选路,流量互通的不对等是BGP路由选路网络延迟大的主要原因,特别是跨境的路由转发,问题更大。
动态加速的路由优化利用CDN边缘节点组成的虚拟网络节点来进行优化的,通常使用7层代理转发改变 BGP 选路路径来进行优先选择。 路由优化大概的流程如下:
- 源站提供一个20KB以上的测试资源
- CDN会在源站周边选择一批候选CDN节点
- CDN边缘节点尝试下载测试资源,下载请求会首选发送到指定的候选CDN节点,多个候选CDN和边缘节点进行多路探索后选择最佳的路由线路进行优化
- 最佳线路通常会考量多个指标如丢包率、RTT、整体下载时间等等,这些指标用来判断线路是否最佳,这种路由探索一般是在数万台节点中动态进行,是一个很复杂的过程。
除了最重要的路由优化,根据前面TCP优化策略,CDN服务商也会有连接、传输等相关的策略调整,在应用层,像TLS1.3、ECC证书、QUIC协议等等相关对服务有提升的技术都有应用。(一些先进的压缩、路由、连接技术通常也是此类服务商有大量的投入,毕竟业务驱动技术改进)
目前主流的CDN厂商都有这种技术,成熟的服务商如Akamai、Fastly、Cloudfront、Azure等等。
这些服务商在全球各区域部署了近百万台边缘设备,像Tiktok、Shopify、Amazon等等众多全球化的服务都有成功的应用。
图:边缘节点动态加速
动态加速效果
笔者所在业务中,使用了Akamai对海外用户进行了加速服务,从抽样的数据看,整体连接速度提升了30%左右。对比海外用户访问香港节点、接入加速网络测使用https协议(后端直接返回http status:200 http body:"succ"),得到如下加速数据
区域 | 直连 | Akamai加速 | 提升 |
---|---|---|---|
Bangkok | 0.58s | 0.44 | 31% |
jakarta | 0.57s | 0.44 | 31% |
Kuala Lumpur | 0.52s | 0.38 | 36% |
Taibei | 0.51s | 0.40 | 37% |
Hanoi Bac Mai | 0.54s | 0.41 | 30% |
Singapore | 0.58s | 0.39 | 48% |
Hong Kong | 0.38s | 0.24 | 58% |
Tokyo | 0.60s | 0.45s | 32% |
Surabaya | 0.67s | 0.52s | 29% |
Manila | 0.46s | 0.34s | 36% |
在使用动态加速的情况下,香港直连平均 0.57s,Akamai加速 0.41s(Akamai提速 39%), 用户请求低于0.5s, 在使用Akamai加速情况下,提升68.78%。用户请求高于0.6s, 直连模式下较Akamai 高出21.38%。