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

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

(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。


在这里插入图片描述


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


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

©️2020 CSDN 皮肤主题: 代码科技 设计师:Amelia_0503 返回首页