CDN:加速我们的网络服务

为什么要有网络加速

互联网从逻辑上看是一张大网,但实际上是由许多小网络组成的,这其中就有小网络“互连互通”的问题,典型的就是各个电信运营商的网络,比如国内的电信、联通、移动三大家。
在这里插入图片描述
这些小网络内部的沟通很顺畅,但网络之间却只有很少的联通点。如果你在 A 网络,而网
站在 C 网络,那么就必须“跨网”传输,和成千上万的其他用户一起去“挤”连接点
的“独木桥”。而带宽终究是有限的,能抢到多少只能看你的运气。

还有,网络中还存在许多的路由器、网关,数据每经过一个节点,都要停顿一下,在二层、
三层解析转发,这也会消耗一定的时间,带来延迟。

最终结果就是,如果仅用现有的 HTTP 传输方式,大多数网站都会访问速度缓慢、用户体
验糟糕。

放到全球来看,你在北京,访问旧金山的网站,要跨越半个地球,地理位置距离远、运营商网络、路由转发的影响就会成倍增加。

什么是 CDN?

1.CDN 的最核心原则是“就近访问”,如果用户能够在本地几十公里的距离之内获取到数据,那么时延就基本上变成 0 了。所以 CDN 投入了大笔资金,在全国、乃至全球的各个大枢纽城市都建立了机房,部署了大量拥有高存储高带宽的节点,构建了一个专用网络。

2.有了这个高速专用网,CDN就要分发源站的内容,利用缓存代理技术,把源站内容逐级缓存到网络的每一个节点上,这样用户上网就不用直接访问源站,而是访问离他“最近的”一个 CDN 节点,术
语叫“边缘节点”(edge node),其实就是缓存了源站内容的代理服务器,这样一来就省去了“长途跋涉”的时间成本,实现了“网络加速”。

3.那么,CDN 都能加速什么样的“内容”呢?在 CDN 领域里,“内容”其实就是 HTTP 协议里的“静态资源”,比如超文本、图片、视频、应用程序安装包等等。

资源按照是否可缓存又分为“静态资源”和“动态资源”。所谓的“静态资源”是指数据内
容“静态不变”,任何时候来访问都是一样的,比如图片、音频。所谓的“动态资源”是指
数据内容是“动态变化”的,也就是由后台服务计算生成的,每次访问都不一样,比如商品
的库存、微博的粉丝数等。

CDN 的负载均衡

它有两个关键组成部分:全局负载均衡和缓存系统:

全局负载均衡: GSLB 是 CDN 的“大脑”,使用 DNS 负载均衡技术,智能调度边缘节点提供服务;

(Global Sever Load Balance)一般简称为 GSLB,它是 CDN 的“大
脑”,GSLB 最常见的实现方式是“DNS 负载均衡。主要的职责是当用户接入网络的时候在 CDN 专网中挑选出一个“最佳”节点提供服务,解决的是用户如何找到“最近的”边缘节点,对整个 CDN 网络进行“负载均衡”。

CDN 的缓存代理 缓存系统是 CDN 的“心脏”,使用 HTTP 缓存代理技术,缓存命中就返回给用户,否则就要回源

这里就有两个 CDN 的关键概念:“命中”和“回源”。“命中”就是指用户访问的资源恰好在缓存系统里,可以直接返回给用户;“回源”则正相反,缓存里没有,必须用代理的方式回源站取。

相应地,也就有了两个衡量 CDN 服务质量的指标:“命中率”和“回源率”。命中率就是
命中次数与所有访问次数之比,回源率是回源次数与所有访问次数之比。显然,好的 CDN
应该是命中率越高越好,回源率越低越好。现在的商业 CDN 命中率都在 90% 以上,相当
于把源站的服务能力放大了 10 倍以上。

1.cdn一般有专用的高速网络直连源站,或者是动态路径优化,所以动态资源回源要比通过公网速
度快很多。
2.有种叫“边缘计算”的技术,就是把计算动态资源的代码和数据也放在cdn的节点上,这样就可以在cdn里获取动态资源不用回源站了。

下一篇:http缓存代理–深入浅出

参考:透视http协议

猜你喜欢

转载自blog.csdn.net/HZ___ZH/article/details/114660370