2.2.3 网络传输
网络传输(见图2-5)是影响CDN传输性能的关键系统。基于优质的节点资源和良好的调度策略,网络传输优化技术可在原基础上再大幅提升传输速率、缩短首屏时间、降低卡顿率,给用户带来更顺畅的体验。
图2-5 网络传输示意图
图2-5展示了一个经典的CDN分层结构,网络传输优化不仅影响用户与L1边缘点之间的传输性能,也影响L1、L2内部的传输。而如果开启回源加速,则还能提升到源站的传输性能。通常用户与L1之间的网络传输基于TCP等传输协议,此时L1节点开启单边加速,即优化只在服务器侧进行。而如果用户接入了CDN的SDK(Software Development Kit)或其他支持双边加速的私有协议,则优化同时在服务器和客户端两侧生效。与单边加速相比,双边加速通常对性能的提升空间更大、更加灵活。在CDN内部,例如L1、L2之间,单边/双边加速同时存在,可灵活切换。而在L2与源站之间,CDN可以基于链路质量探测、动态路由等技术选择一条连接源站最快、最稳定的线路,从而实现回源加速。
除了图2-5中分层的网络传输结构,CDN还支持扁平化的结构。在此结构中,不再严格区分L1、L2、L3等,而是基于链路质量、节点容量、节点负载等动态选择一条路径。这条路径可以只处于CDN节点间,也可以直达源站。
网络传输优化的重点在三个方面:拥塞控制、传输协议与选路方式。拥塞控制与传输协议互相配合,可以最大化利用链路带宽或最小化传输时延等,而选路可改善链路质量,提升传输能力的上限。图2-6是阿里云CDN网络传输优化的架构示意图。不同类型的业务对网络传输的需求侧重点不同,比如静态下载类业务需要提升下载速率,而点播、直播类业务需要降低卡顿率。为了对不同业务做有针对性的优化,节点软件会根据配置中心的配置,将业务特征的相关信息下发到传输层,供传输层进行决策。不同节点、不同时间段,链路质量也存在差异,通过链路质量探测等手段,将链路质量的变化及时通知传输层,可使网络传输优化策略更适应多变的网络环境。传输层最终根据业务特征和当前链路质量,从加速策略库中选择最合适的加速策略,从而达到具有针对性优化的效果。加速策略的内容包括拥塞控制算法及其参数、选择传输协议及是否使用动态选路等。而每次传输结束后,将记录相关信息和决策,并记录日志。离线的机器学习平台将分析传输层日志,自动优化加速策略库,从而形成闭环。
图2-6 阿里云CDN网络传输优化的架构示意图