Skip to content

Latest commit

 

History

History
210 lines (166 loc) · 16.8 KB

File metadata and controls

210 lines (166 loc) · 16.8 KB

CDN及PCDN

image

CDN

CDN(Content Delivery Network或Content Ddistribute Network):内容分发网络也称为内容传送网络。 是指一种透过互联网互相连接的电脑网络系统,利用最靠近每位用户的服务器,更快、更可靠地将音乐、图片、影片、 应用程序及其他文件发送给用户,来提供高性能、可扩展性及低成本的网络内容传递给用户。 这个概念始于1996年,是美国麻省理工学院的一个研究小组为改善互联网的服务质量而提出的。 为了能在传统IP网上发布丰富的宽带媒体内容,他们提出在现有互联网基础上建立一个内容分发平台专门为网站提供 服务,并于1999年成立了专门的CDN服务公司,为Yahoo提供专业服务。由于CDN是为加快网络访问速度而被优化的 网络覆盖层,因此被形象地称为“网络加速器”。

  • 举个栗子:

大学的时候宿舍里面有一个同学A翻墙去东京看一个比较热的电影,日本人访问那个网站的时候,速度就会很快。 但是我在中国,当我去访问网站的时候速度就会很慢。这是由于地域的限制,中间隔了很多很多的网络, 导致我访问很慢。所有同学A想要把这个电影下载下来再看。结果宿舍内的其他同学BCD发现这个电影挺好看, 他也想看这个电影,如果同学BCD直接去该网站上下载这个电影,那速度肯定是奇慢无比。 但是如果同学A先把这个电影缓存下来,然后同学BCD可以直接通过内网来从同学A缓存的电影进行下载, 这样既不占用访问外网的带宽,也对目标网站的服务器压力小了很多,同时也大大的提高了速度。

这种把一个视频从比较远的服务器中,缓存下来,放到离用户比较近的地方,让他们可以就近获取, 更快速,这就是CDN,那个缓存视频的同学A就是一个CDN节点。

还有一个现实中的例子,我感觉是对CDN原理的最佳应用:
打个比方我想买一个手表,我先去淘宝上找了一个第三方的卖家,看了下价格,问了一下从哪发货啊, 是什么快递啊,他告诉我从深圳发货。到你那三天,因为他这个发货地点一般就是一个。 而我在京东上面的话,京东在全国各地都有仓库,他会根据你的位置,在全国范围内找离你最近、 送达最快的仓库,京东的这种仓储系统,就是类似CDN的作用。

组成

CDN网络中包含的功能实体包括以下部分:

  • 内容缓存:CDN网络节点,位于用户接入点,是面向最终用户的内容提供设备,可缓存静态Web内容和流媒 体内容,实现内容的边缘传播和存储,以便用户的就近访问。它借助于建立索引、缓存、流分裂、组播(Multicast)等技术,将内容发布或投递到距离用户最近的远程服务点(POP)处。 内容分发包含从内容源到CDN边缘的Cache的过程。从实现上,有两种主流的内容分发技术:PUSH和PULL。 PUSH是一种主动分发的技术。通常,PUSH由内容管理系统发起,将内容从源或者中心媒体资源库分发到各边缘的 Cache节点。分发的协议可以采用Http/ftp等。通过PUSH分发的内容一般是比较热点的内容, 这些内容通过PUSH方式预分发到边缘Cache,可以实现有针对的内容提供。 对于PUSH分发需要考虑的主要问题是分发策略,即在什么时候分发什么内容。一般来说, 内容分发可以由CP(内容提供商)或者CDN内容管理员人工确定,也可以通过智能的方式决定, 即所谓的智能分发,它根据用户访问的统计信息,以及预定义的内容分发的规则,确定内容分发的过程PULL是一种被 动的分发技术,PULL分发通常由用户请求驱动。当用户请求的内容在本地的边缘 Cache上不存在(未命中)时, Cache启动PUL方法从内容源或者其他CDN节点实时获取内容。在PULL方式下,内容的分发是按需的。
  • 内容交换机:处于用户接入集中点,可以均衡单点多个内容缓存设备的负载,并对内容进行缓存负载平衡及访问控制。
  • 内容路由器:负责将用户的请求调度到适当的设备上。它是整体性的网络负载均衡技术,通过内容路由器中的重定向(DNS)机制,在多个远程POP上均衡用户的请求, 以使用户请求得到最近内容源的响应。CDN负载均衡系统实现CDN的内容路由功能。它的作用是将用户的请求导向 整个CDN网络中的最佳节点。最佳节点的选定可以根据多种策略,例如距离最近、节点负载最轻等。 负载均衡系统是整个CDN的核心,负载均衡的准确性和效率直接决定了整个CDN的效率和性能。 通常负载均衡可以分为两个层次:全局负载均衡(GSLB)和本地负载均衡(SLB)。全局负载均衡主要的目的是在整 个网络范围内将用户的请求定向到最近的节点(或者区域)。因此,就近性判断是全局负载均衡的主要功能。 本地负载均衡一般局限于一定的区域范围内,其目标是在特定的区域范围内寻找一台最适合的节点提供服务, 因此,CDN节点的健康性、负载情况、支持的媒体格式等运行状态是本地负载均衡进行决策的主要依据。
  • 内容管理系统:负责整个CDN的管理,它通过内部和外部监控系统,获取网络部件的状况信息,测量内容发布的 端到端性能(如包丢失、延时、平均带宽、启动时间、帧速率等),保证网络处于最佳的运行状态。内容管理在 广义上涵盖了从内容的发布、注入、分发、调整、传递等一系列过程。在这里,内容管理重点强调内容进人Cache 点后的内容管理,称其为本地内容管理。本地内容管理主要针对一个CDN节点(有多个CDN Cache设备和一个 SLB设备构成)进行。本地内容管理的主要目标是提高内容服务的效率,提高本地节点的存储利用率。 通过本地内容管理,可以在CDN节点实现基于内容感知的调度,通过内容感知的调度,可以避免将用户重定向到没有 该内容的 Cache设备上,从而提高负载均衡的效率。通过本地内容管理还可以有效实现在CDN节点内容的存储共享, 提高存储空间的利用率。

功能

使用CDN的第一个也是最重要的原因:加速网站的访问。

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

归纳起来,CDN具有以下主要功能:

  1. 实现跨运营商、跨地域的全网覆盖
    互联不互通、区域ISP地域局限、出口带宽受限制等种种因素都造成了网站的区域性无法访问。 CDN加速可以覆盖全球的线路,通过和运营商合作,部署IDC资源,在全国骨干节点商,合理部署CDN边缘 分发存储节点,充分利用带宽资源,平衡源站流量,这样可以节省骨干网带宽,减少带宽需求量并能 解决由于用户访问量大造成的服务器过载问题。
  2. 保障网站安全
    CDN的负载均衡和分布式存储技术,可以加强网站的可靠性,相当无无形中给你的网站添加了一把保护伞, 应对绝大部分的互联网攻击事件。防攻击系统也能避免网站遭到恶意攻击。
  3. 为了异地备援
    当某个服务器发生意外故障时,系统将会调用其他临近的健康服务器节点进行服务,进而提供接近100%的可靠性, 这就让你的网站可以做到永不宕机。
  4. 为了节约成本投入
    使用CDN加速可以实现网站的全国铺设,你根据不用考虑购买服务器与后续的托管运维,服务器之间镜像同步, 也不用为了管理维护技术人员而烦恼,节省了人力、精力和财力。

特点

  • 本地Cache加速:提高了企业站点(尤其含有大量图片和静态页面站点)的访问速度, 并大大提高以上性质站点的稳定性。
  • 镜像服务:消除了不同运营商之间互联的瓶颈造成的影响,实现了跨运营商的网络加速,保证不同网络中的用户 都能得到良好的访问质量。
  • 远程加速:远程访问用户根据DNS负载均衡技术智能自动选择Cache服务器,选择最快的Cache服务器, 加快远程访问的速度。
  • 带宽优化:自动生成服务器的远程Mirror(镜像)cache服务器,远程用户访问时从cache服务器上读取数据, 减少远程访问的带宽、分担网络流量、减轻原站点WEB服务器负载等功能。
  • 集群抗攻击:广泛分布的CDN节点加上节点之间的智能冗余机制,可以有效地预防黑客入侵以及降低各 种D.D.o.S攻击对网站的影响,同时保证较好的服务质量。

原理

CDN的工作原理就是将您源站的资源缓存到位于全国各地的CDN节点上,用户请求资源时,就近返回节点上缓存的 资源,而不需要每个用户的请求都回您的源站获取,避免网络拥塞、分担源站压力,保证用户访问资源的速度和体验。

下面分别是不用CDN以及使用CDN时的访问流程:
image

image

上面图中在使用CDN时,server-isp-DNS服务器不是直接把域名做A记录映射到源站,而是CNAME记录到调度中心, 调度中心根据用户请求的来源,选择一个最近的CDN节点,主要的流程如下:

  1. 当用户点击网站页面上的内容URL,经过本地DNS系统解析,DNS系统会最终将域名的解析权交给CNAME指向的CDN 专用DNS服务器。
  2. CDN的DNS服务器将CDN的全局负载均衡设备IP地址返回用户。
  3. 用户向CDN的全局负载均衡设备发起内容URL访问请求。
  4. CDN全局负载均衡设备根据用户IP地址,以及用户请求的内容URL,选择一台用户所属区域的区域负载均衡设备, 告诉用户向这台设备发起请求。
  5. 区域负载均衡设备会为用户选择一台合适的缓存服务器提供服务,选择的依据包括:根据用户IP地址, 判断哪一台服务器距用户最近;根据用户所请求的URL中携带的内容名称,判断哪一台服务器上有用户所需内容; 查询各个服务器当前的负载情况,判断哪一台服务器尚有服务能力。基于以上这些条件的综合分析之后, 区域负载均衡设备会向全局负载均衡设备返回一台缓存服务器的IP地址。
  6. 全局负载均衡设备把服务器的IP地址返回给用户。
  7. 用户向缓存服务器发起请求,缓存服务器响应用户请求,将用户所需内容传送到用户终端。如果这台缓存服务器 上并没有用户想要的内容,而区域均衡设备依然将它分配给了用户,那么这台服务器就要向它的上一级缓存服务器 请求内容,直至追溯到网站的源服务器将内容拉到本地。

网站接入CDN

  • 将需要加速的域名,添加一个由CDN提供的CNAME。这样用户在访问加速域名时,实际上会访问到这个CNAME。
  • CNAME在解析时会使用CDN的权威域名服务器。在那里根据DNS,去判断用户的物理位置和运营商情况等, 然后返回边缘节点服务器ip客户端。
  • 客户端再次请求返回的ip,边缘节点服务器由本地负载均衡服务器根据用户请求内容、节点服务器状态等动态因素 去判断哪台服务器可以提供服务,通过302重定向到那台服务器。

PCDN

PCDN:(P2P技术和CDN的融合创新),下面是阿里云PCDN 的介绍:P2P内容分发网络(英文名:P2P CDN,简称PCDN)是以P2P技术为基础,通过挖掘利用电信边缘网络 海量碎片化闲置资源而构建的低成本高品质内容分发网络服务。客户通过集成PCDN SDK接入该服务后能获得等 同(或略高于)CDN的分发质量,同时显著降低分发成本。适用于视频点播、直播、大文件下载等业务场景。

CDN存在的问题

传统的CDN技术虽然可以在一定程度上加速流媒体,实现下载、直播和点播。但是其核心仍然是基于 集中服务器的结构,跟地域化管制紧密相连,很难降低其扩展的成本。另外,传统CDN技术在高峰时期 对突发流量的适应性,容错性等方面仍然存在一定缺陷。随着用户规模的迅速增加,对CDN应用发展提出了较大挑战。 因部署或租用机房带来的多方面高昂成本和管理压力,学界和业界也研究了将P2P技术融入CDN部署和管理的技术, 以降低运营成本和通信时延。迅雷、优酷、百度、阿里巴巴等公司就在2010年代多次试水用户端运行的P2P众包类 CDN服务、专用设备,模式为用户自愿以PC或专用设备利用闲置上行带宽充当CDN缓存节点, 提供服务并赚取积分,而积分可兑换现金红包、特定商品或服务。

P2P技术则是打破了传统的Client/Server模式,是一种基于对等节点非中心化服务的平台方案。 P2P技术发展迅猛,迅速改变了整个互联网传统秩序。“去中性化”符合WEB2.0技术潮流。特别在流媒体领域, 由于采用Peer之间对等计算的模式,大大提高了资源共享的利用率,能在较低的成本下,充分利用空闲时间分 发数据,避免拥塞,提供具备高实时性,和容错性能的流服务。为流媒体服务开辟了一条崭新的道路。

P2P简介

P2P(Peer to Peer):点对点通信或称为对等联网。每个用户既下载数据,又作为服务器存储数据 并供其他用户下载。他的本质,是一种硬盘的共享,是把每个人电脑上的一部分硬盘,拿出来与其他人共享。

然而目前单纯的P2P应用亦存在它的问题,P2P业务的盛行会带来网络流量风暴;新闻监管缺失, 内容版权管理真空,盗版盛行;可能导致恶性病毒;给电信运营商以及产业链造成损害。此外,层出不穷的p2P 产品采用的拓扑结构、算法模型不尽相同,缺乏标准体系,应用模式也不清晰。这些问题都阻碍了P2P技术 进一步发展成为运营商级别的可靠技术平台。

CDN和P2P技术优劣势分析

CDN P2P
可扩展性 扩展成本较高 低成本扩展
内容版权 可监管 不可监管
用户管理有效性 可实现用户的有效管理 无法进行有效的用户管理
QoS服务 可保障服务 无法保障
流量有序性 流量区域控制 无序无序

也就是说,P2P和CDN技术在几个关键点上,完全实现互补,如果能将两种技术有效的结合起来, 必然是一种更加完美的组合。于是,一种全新的思路是在CDN网络中,引入P2P技术。通过这种模式, 可以在不增加成本的同时有效提升CDN服务能力,更有效避免了P2P应用的诸多弊端,是在当前运营商 网络状况下最理想的媒体业务承载平台方案。

PCDN的主要优势:

  • 流服务能力的提高
    P2P传输的内容与原CDN的内容有所不同,在核心节点根据P2P协议对内容(包括文件和流)做切片处理, P2P用户将根据这些规则来完成P2P共享。P2P在边缘层的引入大大降低了边缘服务器的压力, 提高了文件传输和流媒体传输的效率。P2P技术充分利用了用户的闲置上行带宽,这样运营商可以通过更少 的边缘服务器,提供更多的业务量为更多的用户服务,以较低成本代价应对迅猛增长的客户规模带来的挑战。
  • 可管理的P2P+CDN网络
    为了避免骨干网上的流量对冲,通过集中的分布式架构,将P2P的流量严格限制在同一边缘节点的区域内。 这样就继承了P2P和CDN的优点,同时摒弃双方的缺点,避免电信骨干网上的流量无序性和风暴, 增强了网络的可管理性和服务高的可靠性。通过客户端,可以实现对用户的监控,流量的监管。
  • 客户体验的改善
    一方面,P2P+CDN结合的方式,使得有限的服务能力可以为更多的用户提供流媒体服务。超级种子的存在保证了 服务质量。另一方面,P2P技术的应用也能够更有效地防止因网络的抖动而产生对服务质量的影响。