IP应用加速技术详解:如何提升动静混合站点的访问速率?
全站加速(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应用加速文档进行了解。
相关阅读
IP应用加速产品发布会直播回顾:https://yq.aliyun.com/live/1074
IP应用加速详情:https://promotion.aliyun.com/ntms/dcdnipa.html
参与聚能聊话题,赢取礼品:https://yq.aliyun.com/roundtable/497735
阿里云全站加速DCDN全面支持WebSocket协议https://yq.aliyun.com/articles/686839
本文作者:樰篱
本文为云栖社区原创内容,未经允许不得转载。
IP应用加速技术详解:如何提升动静混合站点的访问速率?的更多相关文章
- 《CDN技术详解》 - CDN知多少?
开发时间久了,就会接触到性能和并发方面的问题,如果说,在自己还是菜鸟的时候完全不用理会这种问题或者说有其他的高手去处理这类问题,那么,随着经验的丰富起来,自己必须要独立去处理了.或者,知道思路也行,毕 ...
- CDN学习笔记二(技术详解)
一本好的入门书是带你进入陌生领域的明灯,<CDN技术详解>绝对是带你进入CDN行业的那盏最亮的明灯.因此,虽然只是纯粹的重点抄录,我也要把<CDN技术详解>的精华放上网.公诸同 ...
- CDN技术详解及实现原理
CDN技术详解 一本好的入门书是带你进入陌生领域的明灯,<CDN技术详解>绝对是带你进入CDN行业的那盏最亮的明灯.因此,虽然只是纯粹的重点抄录,我也要把<CDN技术详解>的精 ...
- [转帖]技术盛宴 | 关于PoE以太网供电技术详解
技术盛宴 | 关于PoE以太网供电技术详解 https://smb.pconline.com.cn/1208/12085824.html [PConline 干货铺]随着物联网技术飞速发展,需要提 ...
- CDN技术详解笔记
1.影响网络传输的四个因素(1)“第一公里”:网站服务器接入互联网的链路所能提供的带宽.(2)“最后一公里”:用户接入带宽.(3)对等互联关口:不同网络之间的互联互通带宽.(4)长途骨干传输:首先是长 ...
- 架构设计:远程调用服务架构设计及zookeeper技术详解(下篇)
一.下篇开头的废话 终于开写下篇了,这也是我写远程调用框架的第三篇文章,前两篇都被博客园作为[编辑推荐]的文章,很兴奋哦,嘿嘿~~~~,本人是个很臭美的人,一定得要截图为证: 今天是2014年的第一天 ...
- SSE技术详解:一种全新的HTML5服务器推送事件技术
前言 一般来说,Web端即时通讯技术因受限于浏览器的设计限制,一直以来实现起来并不容易,主流的Web端即时通讯方案大致有4种:传统Ajax短轮询.Comet技术.WebSocket技术.SSE(Ser ...
- IP地址、子网掩码详解
如何通过子网掩码划分网段 资料一: 一.缺省A.B.C类地址,子网掩码: 二.子网掩码的作用: code: IP地址 192.20.15.5 11000000 00010100 00001111 ...
- 如何将HLS延时缩短至4秒,HLS+技术详解
在直播应用中,RTMP 和 HLS 是两种较为成熟且广泛应用的流媒体协议,基本上可以覆盖所有客户端.RTMP 是互联网 TCP/IP 五层体系结构中应用层的协议,主要优势就是实时性高,基本可将直播延时 ...
随机推荐
- java知识点---文件分隔符
本篇讲述java编程中,怎样解决跨平台时,因不同系统中分隔符不同导致的文件或路径找不到的问题 首先来看两个例子: 一.linux系统和windows系统中的文件路径: Linux系统: Windows ...
- http方式nginx 访问不带www的域名301重定向跳转到www的域名帮助seo集中权重
比如我需要吧gucanhui.com重定向301跳转到www.gucanhui.com 需要在nginx的con发文件中加入一段 server { listen ; server_name gucan ...
- JAVA获取磁盘空间
需要把磁盘空间显示在页面上,这样就不用去服务器查看了,方便 两个办法 File file = new File("D:"); long totalSpace = file.getT ...
- PHP快速导出Excel文件 (采用xlsx Writer)
<?php include_once("xlsxwriter.class.php"); ini_set('display_errors', 0); ini_set('log_ ...
- php语言的核心知识点
PHP:脚本语言,网站建设,服务器端运行PHP定义:一种服务器端的 HTML 脚本/编程语言,是一种简单的.面向对象的.解释型的.健壮的.安全的.性能非常之高的.独立于架构的.可移植的.动态的脚本语言 ...
- YouTube上最受欢迎的十大机器学习视频(最新)
2017-05-04 机器之心 选自KDnuggets 作者:Thuy T. Pham 机器之心编译 参与:微胖.黄小天 虽然 YouTube 有很多不错的机器学习视频,但是很难搞清楚是否值得一看,何 ...
- adb安装apk包时提示:device unauthorized
adb install apk时提示device unauthorized,手机上还没出现usb是否允许调试的询问弹框: 解决方法: 1.cmd输入:adb kill-server,点击回车键 2.c ...
- Python 运算符首尾匹配
- 深入浅出Cocoa 之动态创建类【转】
在前文<深入浅出Cocoa之类与对象>一文中,我已经详细介绍了ObjC中的 Class 与 Object 的概念,今天我们来如何在运行 时动态创建类.下面这个函数就是应用前面讲到的Clas ...
- github遇到 non-fast-forward错误
可以参考:这里 解决过程如图所示