一、概念辨析:网络延迟与网络波动

(1) 网络延迟

网络延迟是指各式各样的数据在网络介质中通过网络协议(如TCP/IP)进行传输,如果信息量过大不加以限制,超额的网络流量就会导致设备反应缓慢,造成网络延迟。受限于光速,网络延迟总是有一个下限,是无法超越物理极限的。

(2) 网络波动(丢包率)

网络波动,就是Flipping,一般在广域网才会提到,是由于线路的不稳定,出现时通时断或瞬断的现象。Flipping是会经常出现、不可避免的,这就需要路由协议对这种现象较好地处理,网络设计和调试人员,在设计和设备配置时,也可以采用多种技术,避免这种现象出现,提高网络的容错能力。


二、加速方案

当前网络加速实现方案和加速产品努力的方向都是:

  1. 尽可能把服务器放在离玩家物理距离近的地方
  2. 把长距离公网传输改为稳定的内网传输

方案一:缩短玩家与服务器间的物理距离
产品 服务商
内容分发网络 CDN(静态CDN服务) 腾讯云
海外加速 GCD(腾讯云CDN的海外版) 腾讯云
CDN(静态CDN服务) 阿里云
CloudFront(静态+动态内容加速) AWS

不难看出,静态CDN服务是缩短玩家与服务器间的物理距离的主流方案。


方案二:把长距离公网传输改为稳定的内网传输
产品 服务商
全站加速(静态+动态内容加速) 阿里云
CloudFront (静态+动态内容加速) AWS
GAAP(全球应用加速 ) 腾讯云
IP应用加速(全球应用加速) 阿里云
Anycast公网加速AIA(Anycast) 腾讯云
Global Accelerator(Anycast) AWS

相比于“缩短玩家与服务器间的物理距离”,将长距离公网传输改为稳定的内网传输方案催生下的产品更加多样,大致可以归类为动态内容加速全球应用加速Anycast三种。


三、技术方案

(1) 静态CDN服务

CDN(Content Delivery Network)内容分发网络,将网站内容发布到最接近用户的边缘节点,使网民可就近取得所需内容,有效解决互联网网络拥塞状况,提高网民访问的响应速度和成功率。静态CDN服务以图片、页面、js、css、大文件安装包等静态文件加速为主。主要原理是通过在现有的Internet中增加一层新的网络架构,将网站的内容发布到最接近用户的cache服务器内,通过DNS负载均衡的技术,判断用户来源就近访问cache服务器取得所需的内容,解决Internet网络拥塞状况,提高用户访问网站的响应速度,如同提供了多个分布在各地的加速器,以达到快速、可冗余的为多个网站加速的目的。

1)解决由于地域、带宽、运营商接入等问题带来的跨网访问问题
2)结合DNS调度系统,将用户的请求分配至最适合他的节点,提升用户的访问速度
3)中心节点收敛回源,降低回源且提升命中率,减轻源站压力
4)隐藏源站,提供大带宽接入,降低源站被攻击的风险
5)提供存储方案,解决业务线文件存放问题

一般的网站如果服务器在网通,电信用户访问很慢,如果服务器在电信,网通用户访问又很慢,因此国内访问量较高的网站、直播、视频平台,均使用CDN网络加速技术,虽然网站的访问巨大,但无论在什么地方访问都会感觉速度很快。

  • CDN是只对网站的某一个具体的域名加速。如果同一个网站有多个域名,则访客访问加入CDN的域名获得加速效果,访问未加入CDN的域名,或者直接访问IP地址,则无法获得CDN效果。
  • CDN的实现需要依赖多种网络技术的支持,其中最主要的包括负载均衡技术、动态内容分发与复制技术、缓存技术等。
  • asp,php,jsp等动态技术做成的页面将不被CDN缓存,因此面对即时性要求很高的网页和图片,可以使用动态页面,或者采用一个网站两个域名,一个启用CDN,另外一个域名不用CDN,对即时性要求高的页面和图片放在不用CDN的域名下。
(2) 动态内容加速

所谓的动态内容加速,是指用户在请求一些动态内容时,如网站中的.asp、.jsp、.php和.cgi接口、API接口等,不直接请求源站,而是由基于地理位置的DNS调度,请求最靠近用户的云服务节点,再由云服务节点通过优化过的传输网络(公网,但比普通BGP更优化的链路),转发请求到源站,达到优化和加速的目的。当然这其中有很多其他的传输层面的优化,比如访问链路优化、传输内容压缩合并、智能选路、链路复用等技术。

我们可以看到,静态加速和动态加速,都依赖基于地理位置的DNS服务,这类服务,能够根据用户的地理位置,返回最优的接入IP,我们称之为GeoDNS。这种服务在AWS叫Route 53,其他厂商也能提供类似服务。


(3) 全站加速【动态+静态加速】

当前腾讯、阿里和AWS的都支持动静态内容混合加速,即静态内容直接由边缘节点(静态CDN)返回,动态请求走内网代理转发到源站。AWS更是把动静态加速直接合并为一个服务Amazon CloudFront,统一计费。

CDN 全站加速和CloudFront
资源类型 仅支持静态内容加速 支持静态内容和动态内容同时加速
加速方式 将服务器上的静态内容缓存在CDN节点上供用户就近访问。 静态内容使用CDN加速。动态内容通过智能路由、协议优化等动态加速技术快速访问服务器源站获取。
源站适配 建议对服务器源站的动静态内容进行分离,静态内容使用CDN加速,动态内容不使用CDN。 无需对服务器源站上的资源进行改造,全站加速会智能区分动静态内容并分别加速。

CVM(Cloud Virtual Machine 云虚拟机)是普遍的虚拟云服务器统称云服务器;ECS(Elastic Compute Service 弹性计算服务)是一个计算机集群多台一起虚拟一个环境,架设了一个云系统,云系统可以按需分配CPU内存硬盘等资源。VPS(Virtual Private Server 虚拟专用服务器)是使用一台服务器,虚拟一个环境,并架设虚拟系统。主要区别是VPS的宿服务器如果有硬件或者软件故障,会导致这个宿主机内的VPS主机全部宕机。ECS不会因为单台宿主机故障导致整体或者某台云主机宕机。这里我们可以将ECS理解为vps或站点的服务器。


(4)全球应用加速GAAP

GAAP的本质,是在加速区域入口和源站区域出口,各部署一套转发集群,把长距离公网传输改为自建的内网传输,从而实现加速的效果。

阿里云的IP应用加速类似于腾讯云的全球应用加速 GAAP产品,基于位置的DNS服务支持,按地区返回给用户最近的接入IP,通过GAAP创建的内网加速传输通道把数据转发到服务器。

GAAP有一个特点,就是客户端和服务端,都可以不是腾讯云的机器,只需要离腾讯云的节点足够近即可。这种优势,大大提升了GAAP的应用场景,当然GAAP的费用比普通的公网带宽要贵很多,业务是否选择使用,还需要综合考虑成本因素。GAAP中经过的节点很多,配置较为复杂,


(5)Anycast 公网加速 AIA

Anycast 公网加速 AIA是使用了一个叫Anycast的技术。

Anycast又叫任播,是指一个发送方同最近的一组接收方之间的通信。当一个单播地址被分配到多于一个的接口上时,发到该接口的报文被网络路由到由路由协议度量的最近的目标接口上。

腾讯云的Anycast公网加速 AIA和AWS的Global Accelerator实际上是同样的产品。在腾讯云上,Anycast做到的效果是,用户的公网请求在腾讯云就近节点进入,提高传输环节的质量。本质上还是基于一个公网IP,在寻址环节采用任播。原理为,普通的IP是单播寻址,全程走公网。如果用Anycast的话,该公网IP用任播形式寻址,在腾讯云的多个节点都发路由,这样客户端的包只需要走公网到达最近的腾讯云节点即可,剩下来的路程是走更有保障的腾讯云内网

所以,AIA的本质,也是把长距离公网传输改为自建的内网传输,从而实现加速的效果。腾讯云的Anycast IP,可以绑定在云服务器上,也可以绑定在CLB(Cloud Load Balancer 负载均衡)上,使用跟普通的公网IP相同,非常简单。

  • 用途一:将Anycast IP绑定在CLB(负载均衡)上,提供面向玩家的接入服务
  • 用途二:将Anycast IP绑定在NAT网关,用来加速服务器对外部接口的请求

AIA相比于GAAP,一个显著的优势在于部署配置简单。全局唯一的IP,不需要依赖GeoDNS,后端唯一的服务提供集群,架构清晰,配置容易。但AIA的后端业务,只能是腾讯云上的机器,无法接入第三方服务器(补充一点:如果想接入第三方服务器,可在绑anycast ip的CVM上做转发代理,可以实现类似混合云的加速效果)。

总的来说,(4)GAAP(5)AIA都能做到全球加速,但是服务的对象可以有区别,配置复杂程度不同。成本和价格不同。Anycast带宽可以理解为高级版的BGP带宽【BGP一般是高级线路进行中转,而Anycast是直连并且也有加速效果】,用户通常是本来不做加速,但是又希望带宽质量更好的。而本来就要做加速的人,会倾向于用GAAP,因为他们希望调度要拿在手里。

BGP是一种路由协议, Anycast是一种通信方式, AIA是腾讯的产品


(6)CLB跨地域部署

负载均衡(Cloud Load Balancer,CLB)提供安全快捷的流量分发服务,访问流量经由 CLB 可以自动分配到云中的多台云服务器上,扩展系统的服务能力并消除单点故障。负载均衡支持亿级连接和千万级并发,可轻松应对大流量访问,满足业务需求。 支持Http,https,UDP,tcp转发。

在不同的地域创建CLB,后端绑定在相同的云服务器上,来实现部分加速效果,有点类似于GAAP。配置起来比GAAP和AIA都麻烦,同样依赖GeoDNS。



至此,文章也就进入尾声了。希望本文能够起到抛砖引玉之效,也欢迎大家的批评交流。


如果您有任何疑问或者好的建议,期待你的留言、评论与关注!

网络加速原理与方法:静态CDN、动态CDN、全站加速、GAAP、AIA、CLB跨地域部署相关推荐

  1. 【C++ 语言】面向对象 ( 继承 | 重写 | 子类调用父类方法 | 静态多态 | 动态多态 | 虚函数 | 纯虚函数 )

    文章目录 类的继承 方法的重写 子类中调用父类方法 多态 虚函数 虚函数示例 纯虚函数 相关代码 类的继承 1. 继承表示 : C++ 中继承可以使用 ":" 符号 , 格式为 & ...

  2. 如何利用全站加速,提升网站性能和用户体验?

    随着网络技术的发展,越来越多的应用基于互联网发布,再好的应用,如果打开速度慢,10个用户会有9个用户选择离开,相关统计数据显示,每增加0.1秒的加载延迟,将会导致客户活跃度下降1%.在目前获客成本较高 ...

  3. 如何利用全站加速,提升网站加速性能和用户体验?

    随着网络技术的发展,越来越多的应用基于互联网发布,再好的应用,如果打开速度慢,10个用户会有9个用户选择离开,相关统计数据显示,每增加0.1秒的加载延迟,将会导致客户活跃度下降1%.在目前获客成本较高 ...

  4. 阿里云CDN全站加速,说说动态加速那些事

    如今CDN已经被广大站长所接纳,主要是能提高访问速度,优化访问线路等,就像小编一样,同样使用了CDN对网站进行了加速,其他CDN没有测试过,但是阿里云的CDN正是今天小编要讲的. 阿里云CDN可以说是 ...

  5. CDN - 阿里云CDN全站加速,说说动态加速那些事

    如今CDN已经被广大站长所接纳,主要是能提高访问速度,优化访问线路等,就像小编一样,同样使用了CDN对网站进行了加速,其他CDN没有测试过,但是阿里云的CDN正是今天小编要讲的.阿里云CDN可以说是国 ...

  6. CDN全站加速助力企业云上升级

    [2018云栖大会南京分会飞天技术汇专场,阿里巴巴高级技术专家魏晋带来题CDN全站加速助力企业云上升级的演讲.主要内容是结合实际客观案例详细解读全战加速产品如何对动静态业务进行的加速,结合安全WAF等 ...

  7. 阿里云张毅萍:构建边缘云全站加速网络体系

    简介:2021年6月9日,亚太内容分发大会暨CDN峰会在北京举行,阿里云边缘云网络高级技术专家张毅萍受邀参会,分享了阿里云在构建边缘云全站加速网络体系的实践,基于边缘云节点支撑各种应用协议的分层传输加 ...

  8. 玩转AgiileCDN(十三)——全站加速

    网络内容形态不断地发展,从静态的图文.视频向具有实时交互特征的短视频.直播等演变.当前,几乎所有的网站既有静态界面也有动态刷新,单纯的静态加速难以让网站整体上达到最佳加速效果.这是因为动态内容无法像静 ...

  9. 阿里云全站加速在游戏行业的最佳实践

    在全民加速节第二场在线直播课堂中,阿里云CDN解决方案架构师研一进行了<全站加速在游戏行业中的最佳实践>主题分享,针对游戏行业中的一些特点和痛点,介绍阿里云全站加速产品的核心功能以及实现方 ...

最新文章

  1. 外媒:社交媒体的大量使用与精神疾病有关
  2. 推荐 12 个提升程序员软技能与效率的必备工具,爱了爱了!
  3. wxWidgets:wxDragImage类用法
  4. 高可用与负载均衡(7)之聊聊Lvs-DR+Keepalived的解决方案
  5. 【WC2014】紫荆花之恋【替罪羊思想】【动态点分树】【替罪羊树】
  6. 牛客网-数据结构笔试题目(三)-博弈论圆圈游戏(Circle Game)(附源码)
  7. 博士面试被拒,只因第一学历非985、211...
  8. iOS开发过程中常见错误问题及解决方案
  9. nginx php 5.5 安装,Nginx1.5与PHP5.5安装文档
  10. 基于 Openpose 实现人体动作识别
  11. 如何利用国内开源镜像站,下载想要的资源
  12. 14种常用的异常检测方法总结
  13. 小米手机google play下载应用一直显示等待中的解决办法
  14. 微信公众号支付|微信H5支付|微信扫码支付|小程序支付|APP微信支付解决方案总结
  15. vcode去除分号和双引号方法
  16. php做excel导入word,php如何将excel表格插入到word文档
  17. 三星S508手机DIY图文教程全攻略
  18. m.555lu.co/vlist.php_新浪微博V2接口演示程序-Powered by Sina App Engine
  19. 多个txt文件合并成一个文本
  20. 面经——oppo2022校招Linux系统工程师

热门文章

  1. 原码、反码、补码和移码其实很简单
  2. 免费漂亮的WordPress小程序
  3. APK改之理 手游修改改编安卓程序工具安装使用教程
  4. pygame2D游戏开发
  5. 【傅老师DarkSouls第一季】03
  6. for...in与for...of区别
  7. 考试与评价杂志考试与评价杂志社考试与评价编辑部2021年第4期目录
  8. 股票自动交易接口API的全称是什么?
  9. Proxmox VE PVE 机械盘、固态盘、固态缓存盘ceph存储性能对比(iops 读写速率)
  10. 企业如何实现内容多渠道一键合规投放?