CDN加速原理

我们是光大科技有限公司智能云计算部基础设施团队,致力于规划、设计、运维管理集团基础设施环境,保障集团基础设施环境稳定运行,我们团队拥有经验丰富的网络,应用交付,安全专家。将不定期分享网络运维技巧,分析各种网络协议,提供应用交付及安全案例。将与大家共同探索金融行业基础架构发展趋势。

团队介绍

01

什么是CDN?

CDN(Content Delivery Network)也叫内容分发网络,此技术旨在降低带宽消耗,减少延迟,在网络负载时体现路由的可扩展性。

直观上体现在应用程序或网页的提速,改善应用服务器压力的同时提高用户体验。

02

为什么要用CDN?

传统单一站点,以及流媒体的访问并发量受带宽限制和服务器性能等因素限制,无限扩容虽能及时缓解瓶颈压力,但是治标不治本,还会有资源浪费的嫌疑。因此在网络“基建”已搭建好的情境下,如何对数据流进行规整,实现既能节省带宽又能减少对服务器性能依赖成为了一种新思路。

CDN技术由此应运而生。对源站页面内容进行缓存,打破跨地域、跨运营商用户访问的壁垒,同时缓解了企业带宽和服务器承载压力,加快应用的响应速度,为用户带来卓越的交互体验。

03

CDN加速原理

CDN加速原理

CDN通过建立多个节点,将源站内容更新并下发、缓存到全部节点。当用户请求资源时,CDN根据就近原则,将距离用户最近的节点作为缓存服务器下发资源。

CDN加速原理

图|CDN架构示例

CDN主要从两点体现加速价值,一是提高网络的连接性,二是从网络根本的性能上。下面会根据这两方面分别介绍CDN的功能。

炫酷技术——提高网络连接性

影响网络连接性的因素有很多,可以把数据传输过程想象成排水系统,不同类型的数据则可以理解为排水系统中不同的物质,所以在排水时有两类问题就需要工厂来明确。

  • 从源头来考虑:

    排放机制是否需要时时刻刻都进行,还是在中继处攒到一定容量再统一排放。

  • 从中间环节来考虑:

    排水系统的大体积物质若是过大是否会堵塞通道,因此也要考虑物质压缩问题。

这些问题都可以被形象地类比为数据传输中遇到的问题。工厂第一个排放机制的问题等同于HTTP请求的处理,无论是网络带宽,还是浏览器可容纳的TCP并发量,都是有阀值限制的,因此需要一些手段合理降低客户端请求数。第二个问题等同于数据传输中大文件的处理方式,是要统一进行压缩还是增加“排队”的长度。

值得欣慰的是,当前CDN的技术可以很好地解决数据传输中的问题。下面5点是从CDN在提高网络连接性的方面应用的技术和算法。

1.     对HTTP头部实现缓存策略

如果相同版本的HTTP页面一直在被加载,无论对于源站服务器还是客户端都等于做了很多“无用功”。因此CDN会自主学习,将该HTTP页面当成是“静态页面”,并缓存到CDN的缓存服务器上。等用户再请求相同资源的时候,CDN代替源站服务器,直接返回已进行缓存的资源,节省了进行相同运算的处理时间。带给用户的直观感受就是程序或网页响应快。

此外,CDN可以直接重写HTTP的缓存标头,对是否缓存、缓存时间、强制缓存,将源站资源缓存在CDN节点上,完全根据用户需求进行定制化部署。

2.     减少HTTP请求

从网络层面讲,每请求一个网页资源就需要发起一个HTTP请求,当请求数过多时就会造成首字节时间(TTFB)的延长。因此页面元素越多,也就越消耗时间来加载资源。造成的结果就是,用户打开内容丰富的页面,反而引起了5s焦虑,因此放弃继续访问[]。丢失用户这对于应用来说,无异于是巨大的损失。

CDN可通过整合资源从而减少资源的HTTP请求,从而加快用户加载页面所消耗的时间。

CDN加速原理

图|CDN进行HTTP资源整合示例

3.     HTML内容压缩

通常HTML会对整个内容进行压缩,压缩后的文件越大,浏览器在进行解压缩并传递给用户的时间就会越长,而影响解压缩时间的因素与采取的压缩工具有关。在对GZIP、BZIP、LZMA等压缩方式进行对比之后发现,GZIP对内容的压缩量相对较大[2],且GZIP的压缩和解压缩时间都相对较小[3],因此GZIP为当前最为普遍的压缩方式。

CDN可以对HTML进行GZIP压缩,最大程度优化因为网页内容的压缩和解压缩影响下的TTFB。

4.     图片加载

常规的图片压缩方式分为三种:

第一种是有损压缩,将图片的质量降低,从而减少图片大小;

第二种是将图片变成像素模式,并同时将图片优化,使其看起来更好看而不是全部由像素点构成的图片,从而减少浏览器加载图片的时间;

第三种是将栅格式的图片全部变成矢量图,从根本上减少图片大小,同时维持高质量的视觉效果。

CDN则利用第三种方式,在无损图片质量的同时最大程度减少图片大小。因此图片越大,越能体现CDN对于图片处理的优越性。

5.     SSL连接

CDN加速原理

图|CDN双向加密示例

① 安全性

数据传输当然不可忽视数据加密问题,在使用CDN过程中涉及两阶段SSL加密过程。优秀的CDN服务商,在用户和CDN交互过程使用的是CDN提供的经由CA认证的高等级A+证书。因此通常情况下用户与CDN节点的缓存数据进行交互过程是安全可控的。而CDN访问源站的过程是需要自行按需部署SSL证书,所以保证了数据在CDN和源站进行交互的过程也是加密的。

除此之外,CDN还可提供HTTP严格传输安全协议( HSTS )技术。即CDN可统一对接入的源站域名进行管理,使该域只能通过SSL/TLS进行访问。但是因为有些应用在https进行访问后会重定向到http,若应用HSTS,则有可能会影响部分功能,因此HSTS技术还是根据用户需求按需部署。

② 高效

当client请求数据的时候,本质上是通过与CDN边缘节点服务器进行交互,而CDN边缘节点服务器再定期或根据用户需求向源站进行数据同步或预取。在用户与CDN进行数据交互过程中,CDN提供keep alive机制。当用户请求资源时,CDN支持短时间的开放连接,使用户无需重复与CDN节点建立连接,从而减少了SSL反复建立连接过程中浪费的时间。

稳固地基——改善网络性能

CDN是否优秀,一方面体现在对于改善网络连接所使用的多种技术。但是无论提供的技术有多智能、多便捷,CDN的立足之本都是节点的物理位置选择和整体网络的架构部署。就好比搭建房子,根基稳了才能在上层建筑上凸显个性。因此CDN的根基主要是从网络的数据传输方式、路由策略和运营商的选择来衡量的。

1.     拯救运维工程师睡眠的技术——任意播(Anycast)

网络环境中,数据从客户端到服务器的通信方式有多种选择,常见为单播、组播、广播。

  • 单播(Unicast)是指一对一的通信方式,只有客户端发起了请求服务器才会发送数据流。这种方式最为广泛,常见的TCP就是属于单播模式。更直观来讲,用户发送邮件、浏览网页就是单播最好的体现,即点对点传输。

  • 组播(Multicast)是指一对多的通信方式,但是只发给特定“组”的用户,当下视频会议、流媒体等资源多数采用组播方式。形象的比喻是用户在油管上关注了一个播主,那么这个播主更新的内容会自动推送到订阅该播主的用户上。不在这个订阅组的用户将收不到更新的推送。那么“组”的这个概念就很好理解了。

  • 广播(Broadcast)也是一对多的通信方式,只不过相较于组播,广播是发给广播域里面所有用户。因为用户只能是被动接受,若是再加上网络结构设计不合理,因此才会有“广播风暴”这种网络故障存在。

然而任意播(Anycast)的产生则是概念性的突破。任意播是由IPV6衍生出的一个技术,即通过“就近原则”,向最近节点发送数据的方式。那么问题来了,网络又不像实际路况,到某一个节点路由器时,面对新解锁的地图它怎么知道谁最近呢?尤其涉及到全球范围,每一个国家的路由是不会让别人摸清的,那依靠任意播的CDN、DNS是怎么工作的呢?

答案就是利用BGP。不同地域之间靠边缘ISP将路由告知给邻居节点,从而实现了将保密区域内部结构私有化,同时不同地域之间又能互通。

CDN便是依托于该特点,在全球节点互通互联的基础上,向全球用户提供加速服务。

CDN加速原理

图|CDN路由选择示例

2.     运营商强强联合

CDN选取的运营商线路所影响的加速效果远比CDN提供的技术性能优化明显得多。一般来讲,一级运营商的专线质量以及节点位置、数量会远远高于二、三级运营商。因此为保证运营商效益,一级运营商会在不同地域构成一个类似于联盟性质的“一级运营商俱乐部”,在稳固了自己的市场占有率同时,又保证彼此通过联盟而向用户提供最优的链路质量。与此同时,优质CDN则会协议使用“一级运营商俱乐部”提供的链路,将加速效果最大化。

04

CDN加速原理

总结

通过CDN的灵活部署,在节省了互联网出口带宽的同时,为业务带来了更多的可能性。不用再顾虑大文件、高清音频是否会出现严重卡顿现象,不再考量其他地域用户是否有时延问题等。应用CDN不但为业务免除了数据传输的影响因素,而且带来了卓越的用户体验,让业务可以更加专注于应用的开发以及客户群体的定位。

作为当前已经使用CDN的业务,现在是不是已经开始偷着乐了呢。

引用

[1] https://kinsta.com/learn/page-speed/

[2] https://tukaani.org/lzma/benchmarks.html

[3] https://catchchallenger.first-world.info/wiki/Quick_Benchmark:_Gzip_vs_Bzip2_vs_LZMA_vs_XZ_vs_LZ4_vs_LZO

1

mybatis框架的插件机制

2

玩转Selenium——Web页面自动化实战

3

自定义控制器开发(一)

4

初识分布式锁及其实现与使用

欢迎关注EBCloud!

作者|赵旭彤

原创文章,作者:EBCloud,如若转载,请注明出处:https://www.sudun.com/ask/33647.html

(0)
EBCloud的头像EBCloud
上一篇 2024年4月2日 下午3:28
下一篇 2024年4月2日 下午3:28

相关推荐

  • 被墙的ip还会解封吗,ip地址被墙查询

    在互联网行业,你经常会听到——IP块这个词。虽然看起来是一个很常见的词,但却对互联网行业产生了巨大的影响。那么什么是IP被封呢?为什么会出现这种情况呢?更重要的是,我们如何解决这个…

    行业资讯 2024年5月6日
    0
  • 网站被反诈中心拦截,怎么避开反诈骗网站

    尽管互联网行业正在快速发展,但网络欺诈问题也日益严重。您是否担心您的网站会被反欺诈中心屏蔽?如果您的网站被屏蔽,我如何知道我的网站是否被屏蔽?陷入这样的困境?在这篇文章中,我们将详…

    行业资讯 2024年5月17日
    0
  • 如何选择高防服务器租用公司?

    随着互联网的发展,云服务器行业也日益火爆,而在众多的云服务器中,高防服务器备受关注。那么什么是高防服务器?它又有着怎样的作用和优势?如何选择高防服务器租用公司?这些问题都是我们在选…

    行业资讯 2024年3月19日
    0
  • 服务器机柜散热技巧(详解)

    每当我们谈论网络安全加速行业,总会提到服务器机柜散热技巧。它是保障服务器正常运行的重要环节,但又常常被忽视。那么,什么是服务器机柜散热技巧?为什么需要关注它?它又会带来哪些影响?如…

    行业资讯 2024年3月26日
    0

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注