全站加速 (DCDN)-IPA 是阿里云自主研发四层加速产品, 它基于 TCP/UDP 的私有协议提供加速服务, 包括解决跨运营商网络不稳定, 单线源站, 突发流量, 网络拥塞等诸多因素导致的延迟高, 服务不稳定的问题, 提升传输性能和用户体验.
IP 应用加速架构如下图所示, 首先, 全球用户就近接入边缘节点, 通过阿里云的智能调度系统接入二级节点, 中间采用传输协议优化和路由优化, 选取最快, 最优的路径. 最后, 二级节点到源站则选择相同运营商进行回源.
在架构中也会使用 CDN 一些比较成熟的组件, 包括调度系统, 管控平台, 数据监控, IP 地址库及日志采集等服务.
同时, 在实际加速过程中, IP 应用加速通过 "就近接入, 传输优化, 智能路由" 三大技术能力提供更极致的加速体验. 其中就近接入与 CDN 加速原理一致, 传统静态 CDN 的就近接入与缓存是实现加速的主要手段, 将用户的访问就近解析到离用户最近的 CDN 节点, 利用访问 CDN 节点上的缓存内容来实现加速的效果. 但是对于动态加速来说, 就近接入可以理解为一个就近上车的动作. 传输优化在 CDN 场景中是一个基础的手段, 包括单边加速和双边加速, 传输优化可以为用户提供更稳定, 高效的传输. 而智能路由则是动态加速场景中是核心的技术. 下面依次对这三个技术点进行解读.
就近接入
下图是一个典型的 CDN 通过域名方式就近解析, 就近接入的方式. 在现有的 CDN 加速系统中, 如果用户在 CDN 上注册一个域名, CDN 会返回给用户一个 CNAME 地址, 用户把 CNAME 地址加入到自己的 DNS server 之上, 通过这样的方式, 用户在请求的时候, 就会递归查询到 CDN 的 GLB 上, GLB 会根据用户的 localDNS,IP, 地理位置, 运营商等信息, 选择一个就近的 CDN 节点提供接入. 这是通过 DNS 方式就近接入的典型例子, 目前 IP 应用加速已经实现了标准了 DNS-CNAME,HTTPS,HTTPDNS 的接入.
在接入的过程中, 就近接入想达到足够好的效果, IP 地址库以及资源的优势是非常重要的. 如果 IP 地址库不准, LocalDNS 会被识别到错误的地方或者运营商, 那访问就可能跨省跨运营商, 达不到加速的目的. 如果没有足够的资源覆盖, 也很难做到稳定的调度, 这样就近接入可能也难以达到理想效果.
传输优化
TCP 协议是典型的基于丢包或异常延迟来识别网络拥塞的传输协议, 它的特征包括拥塞控制算法, 如果发生了丢包, 吞吐率会急剧下降, 系统会认为它是拥塞, 发送窗口减小 (半), 这是标准的 TCP 的行为. 所以在客户端到源站之间一旦发生丢包, 吞吐率会极大下降
如果在客户端和源站之间加入 Proxy, 问题就会缩小到局部, 用户和服务器不会感受到发送数据的显著变化. 同时, 在长 RTT 的网络环境中, Proxy 会使长链路分割成短链路, 每个数据包的确认也会变得更短, 拥塞窗口的恢复会变得更快, 对于提升整体吞吐率也有帮助.
除了 TCP Proxy 外, 在内部协议优化上也进行大量实践. 比如通过改进拥塞控制, 区分随机丢包还是拥塞丢包来使用更优的重传策略, 来提升传输效率; 使用多种传输协议, 私有协议, 多路传输技术以及冗余的传输手段, 达到更高的传输速率和可靠性; 另外内部传输也采用了更好的异常感知的技术, 能够快速加速网络传输过程中的异常并在网络层面切换, 实现对上层业务的透明.
下图是在持续丢包的场景下的测试数据, 阿里云自研的 TCP 传输协议比现在最新的 bbr 算法效果更优.
智能路由
如果真的链路上出现了拥塞, 这时就需要采用智能路由技术. 它的本质是有效预测网络中的拥塞, 并且实时切换. 另外备份的策略有次优的路线选择, 以此保障对上层业务的影响最低.
实际上智能路由算法中, 需要考虑的问题非常多. 比如要考虑链路的质量, 节点的复杂, 相关服务器的能力, 节点水位, 负载均衡, 成本等问题, 比如在转发的过程中, 需要根据现实情况来判断用 BGP 或多线路进行接入, 来满足同运营商回源. 在负载均衡方面, 还要考虑地域, 运营商, 源站的优先级等策略. 在实际网络质量的评估过程中, 我们会用到多层次, 多维度实施网络探测, 避免源站探测风暴. 同时, 也要考虑在突发流量汇聚情况下如何实现过载保护. 在众多约束条件下, 选取最短最优路径有相当大的技术挑战.
IP 应用加速 - 全栈加速
从客户端到源站, IP 应用加速目前实现了七层, 四层, 三层各层级的加速, 其中七层加速是传统 CDN,DCDN 的加速产品, 针对 http(s) 的加速, 对于一些私有协议, 可以使用四层加速. 对于 IP 协议, 可以使用 IP 隧道加速. 这其中每一层都是独立组网, 实现独立转发. 如果本层某些特殊业务, 本层不能很好支持, 可以考虑在实施过程中考虑把相关加速服务通过转交给下层, 利用下层技术能力实现更好的技术服务.
比如, 在一个大文件上传的场景中, 客户端到服务器端文件上传假设使用 http, 如果网络有波动或异常, 可能会导致成功率较低. 而在过程中, 如果利用下沉到四层加速, 利用多径传输, 即可有效降低网络异常对于传输成功率的影响.
IP 应用加速的功能
访问控制: 通过支持白名单, 黑名单, 对用户到边缘节点之间提供访问控制能力.
透明切换: 当数据包转发回源站的过程中, 可能会出现转发不成功, 网络异常, 服务器异常等情况, 透明切换可以实现内部链路切换无感知.
分区回源: 不同边缘服务器可以根据源站域名的分区解析的结果, 回到最优的源站, 适用于多源站情况下的使用.
负载均衡: 通过适配源站和路径内部的负载均衡, 处理汇聚点的相关问题.
除了以上功能, IP 应用加速也会陆续上线 UDP 加速, 升级安全防护策略同时提供 SDK 接入方式. 详细的产品信息, 可以登录阿里云官网全站加速产品详情页以及 IP 应用加速文档进行了解.
来源: https://yq.aliyun.com/articles/703371