标签归档:通信

十分钟了解CDN

内容分发基本概念

在互联网上做事跟平时生活很像,各种网线、网络设备连接成一张大网,就好像大大小小的街道、交通岗连接成一座城市。有城市就有开店的,卖吊炉饼的、放电影的、卖鞋的…,我想买双鞋了,就从家里出发走400米到公交站,坐6站车,下车再走1000米到达鞋店。

而在网上也是干什么的都有,有写新闻的、有放视频的、有放歌的,我打开电脑想看电影了,网络信号(流量)就会从我的电脑出发经过1000米的网线到小区交换机,再经过10公里的光纤到达沈阳的核心路由器,再经过数不过来的光纤和路由器到达位于深圳某视频网站的服务器。我又想看新闻了、想听音乐了,网络信号(流量)也用同样的方式去到北京、上海、成都。

在这个例子中:

  • “我”是网络服务使用者,被称为“用户”;
  • 我上网的工具是台PC电脑,被称为“客户端”;
  • 经过各种线路、网络设备最终访问到视频网站,中间提供网络接入服务的被称为“互联网服务供应商(ISP)”,也就是常说的电信运营商;
  • 提供视频节目的网站,被称为“互联网内容供应商(ICP)”。

CDN网络结构

CDN网络基本概念

后来我发现了问题:

  • 我去买鞋的时候要走好远,至少要花1个小时在路上,这叫“延时”;
  • 现在的交通可想而知,各种堵车,这叫“网络拥挤”;
  • 到了鞋店发现买鞋的人很多,店员忙不过来,这叫“网站负载大”;
  • 逛街的路上人多,还有丢手机、丢钱包的风险,这叫“丢包”。

为了解决上面这些问题,CDN便应运而生。

CDN的全称是Content Delivery(Distribution) Network,即内容分发网络,就是把ICP的内容(网页、视频、音频等)发布到最接近用户的地方,使用户可以就近获得所需的内容。CDN从技术上解决由于网络带宽小、用户访问量大、网点分布不均而产生的用户使用互联网业务服务质量差的问题。

聪明如你一定明白了,就相当于鞋店在我家楼下开了一家分店,由于是分店,鞋的种类、型号肯定没有总店那么全,但也基本包含了最热销的款式,所以只要我不是审美特别独特、脚特别大或特别小,分店是完全满足我买鞋的需求,这样既缓解了总店和交通的压力,也提高了我的购物体验。

CDN网络结构2

可见CDN是在现有的互联网之上增加了一层新的网络架构,由分布在不同区域的服务器群组成,提供应用层服务的虚拟网络(应用承载网)。分布在CDN网络边缘的这些服务器中存储的就是ICP发布的主要内容,服务器按照其位置和功能被叫做“边缘服务器”、“缓存服务器”或“Cache节点”,Cache节点是CDN业务的提供点,是面向最终用户的内容提供设备。顺便说一下,这些服务器需要安装在特定机房中,由专业人员进行管理与维护,能够提供这种机房和服务的地方,被称作互联网数据中心(IDC)。

CDN关键技术

 还是回到买鞋,总店对分店的发货模式可以分成两种:一种是总店总是把当下的热销款式主动发货给分店;另一种是分店并没有鞋,当我说要什么样的鞋后再去向总店申请发货。

CDN的主流内容分发技术也是两种:PUSH和PULL。

  • PUSH(主动分发):由内容管理系统发起,将内容从源或者中心媒体资源库分发到各边缘的Cache节点,PUSH的内容一般是比较热点的内容,这些内容通过PUSH方式预分发(Preload)到边缘Cache,这种方式需要考虑的主要问题是分发策略,即在什么时候分发什么内容;
  • PULL(被动分发):通常由用户请求驱动,当用户请求的内容在本地的边缘Cache上不存在(未命中)时,Cache启动PULL方法从内容源或者其他CDN节点实时获取内容。在PULL方式下,内容的分发是按需的。

 慢慢的,附近小区的人都发现了分店的便利不再去总店,分店也出现了人满为患的忧虑,而就在离小区稍远一点的另一个分店却门可罗雀,大家发现在楼下排队还不如多走200米到另外的店不用排队,于是成立了一个微信群实时播报每个分店的客流,方便大家合理安排出行,这叫“负载均衡”。

CDN负载均衡系统实现CDN的内容路由功能,它的作用是将用户的请求导向整个CDN网络中的最佳节点,通常作为CDN网络中的内容路由系统实现方案。

CDN网络结构3

CDN负载均衡可分为全局负载均衡(GSLB)和本地负载均衡(SLB):

  • GSLB:在整个网络范围内将用户的请求定向到最近的节点(或者区域),主要采用就近性判断,主要的方法包括DNS、应用层重定向、传输层重定向等;
  • SLB:大多在一个服务节点范围内,根据Cache设备的健康性、当前负载、服务能力、支持的媒体格式、内容分布等情况将用户的请求分配到一个具体Cache设备,主要的方法包括L4根据节点内各设备的负载情况、基于内容分布的优先判断等。

 最后重点说明CDN系统的关键评估指标:

  • 缓存命中率(Cache Hit Ratio):指用户所访问内容在Cache服务器上的比率,命中率越高意味CDN系统效率越高,用户得到的平均响应越快。在一段时间内,用户总请求次数为N,其中请求内容不在Cache服务器的次数为M,缓存命中率H=(N-M)/N;
  • 保留带宽RB(Reserved Bandwidth):在一定时间内,ICP源服务器端所使用的网络带宽。RB越小,说明CDN发挥作用越大,为源服务器节省带宽越多;
  • 响应时延(Latency):指用户发出请求至得到请求响应间的时间。平均响应时延越小说明CDN性能越好,ICP源服务器消耗带宽越小;
  • 边缘服务器利用率(Edge Server Utilization):该指标测量的是边缘Cache服务器的资源利用的程度,常用CPU利用率、I/O值、接受用户请求次数、存储空间比率来衡量;
  • 可靠性(Reliability):主要是通过分组的丢包率来衡量CDN为终端用户所提供服务的可靠性。