CDN(内容分发网络)详解

维基的解释:

内容分发网络(英语:Content Delivery Network或Content Distribution Network,缩写:CDN)是指一种透过互联网互相连接的计算机网络系统,利用最靠近每位用户的服务器,更快、更可靠地将音乐、图片、影片、应用程序及其他文件发送给用户,来提供高性能、可扩展性及低成本的网络内容传递给用户。

优点

内容分发网络的总承载量可以比单一骨干最大的带宽还要大。这使得内容分发网络可以承载的用户数量比起传统单一服务器多。也就是说,若把有100Gbps处理能力的服务器放在只有10Gbps带宽的数据中心,则亦只能发挥出10Gbps的承载量。但如果放到十个有10Gbps的地点,整个系统的承载量就可以到10*10Gbps。

同时,将服务器放到不同地点,可以减少互连的流量,进而降低带宽成本。

对于TCP传输而言,TCP的速度(throughput)会受到延迟时间(latency)与数据包漏失率(packet loss)影响。为了改善这些负面因素,内容分发网络通常会指派较近、较顺畅的服务器节点将数据传输给用户。虽然距离并不是绝对因素,但这么做可以尽可能提高性能,用户将会觉得比较顺畅。这使得一些比较高带宽的应用(传输高清画质的影片)更容易推送。

内容分发网络另外一个好处在于有异地备援。当某个服务器故障时,系统将会调用其他邻近地区的服务器服务,进而提供接近100%的可靠度。

除此之外,内容分发网络提供给服务提供者更多的控制权。提供服务的人可以针对客户、地区,或是其他因素调整。

技术

内容分发网络节点会在多个地点,多个不同的网络上摆放。这些节点之间会动态的互相传输内容,对用户的下载行为最优化,并借此减少内容供应者所需要的带宽成本,改善用户的下载速度,提高系统的稳定性。

内容分发网络所需要的节点数量随着需求而不同,依照所需要服务的对象大小,有可能有数万台服务器。

服务器的工作方式一般是基于nginx的模式,也就是仅仅缓存网站的静态内容,不过,随着今年(2017)来世界各地CDN服务商纷纷推出HTTPS加速功能,工作方式也变得略有不同,变成了nginx+SNI(一个CDN节点上可以借此技术绑定N个域名),同时,BGP anycast技术也逐渐引入了CDN领域中。

P2P CDN

因部署或租用机房带来的多方面高昂成本和管理压力,学界和业界也研究了将P2P技术融入CDN部署和管理的技术,以降低运营成本和通信时延。