内容递送网络关键技术
发布时间: 2022-06-14 14:44:32
1996年,由麻省理工学院一个小组提出了CDN的概念,并开始对CDN技术进行研究,他们在1999年成立了一个专业CDN服务公司,为Yahoo提供服务。如今在国内外已经有很多的企业和服务商开始使用内容递送网络来传输内容,以满足用户的需求。
CDN的英文全称是ContentDeliveryNetwork,即内容递送网络,它是建立在现有IP网络基础之上的一层应用网络。在传统的IP网络中,用户请求直接指向基于网络地址的原始服务器,而CDN业务提供了一个服务层,补充和延伸了因特网,把频繁访问的内容尽可能向用户推进,提供了处理基于内容进行流量转发的新能力,把路由导引到最佳服务器上。它改变了信息传递的方式,使得信息由原来被动的寻找转变为主动的内容转发。CDN开始时主要用于Web访问加速,只支持HTTP/FTP协议,随后出现了流媒体业务,CDN开始支持MMS/RTSP等协议,CDN有时也被称为MDN(MediaDeliveryNetwork)o但是
IPTV业务与传统互联网业务有很大的区别,除了终端的区别外,还包括媒体流的速率、网络带宽、服务质量和安全等方面。CDN也有很大的缺点,比如可扩展性差,存储和网络资源利用率低,在大规模并发用户时出现瓶颈,容易产生单点故障。当IPTV用户规模达到百万级以上时,CDN在服务器的I/O能力、带宽、海量存储、部署成本等方面都会受到挑战。
从目前国内CDN服务提供商发展状况来看,存在着业务单一(主要是为CDN节点加速服务、CDN网络存储服务)、平台收益单一(主要价值体现在“比特通道”推送上)、增值服务没有发挥作用等问题。因此,CDN技术创新、应用创新将是CDN下一步发展的关键。众所周知,P2P技术具有良好的扩展性和自组织性、巨大的协同计算能力,能够充分利用闲置节点带宽,提高网络服务能力。釆用P2P技术的媒体分发网络,将节目内容预先进行流化处理后分块存储在多个边缘服务器中,由调度服务器按照就近原则、负载均衡原则进行集中控制,并且可以实时选择和交换内容,极大地提高了用户的体验质量,能够更好地满足直播和时移等业务的需要。随着P2P在互联网上的逐步应用和不断成熟,P2P技术越来越受到IPTV系统提供商的重视,在流媒体的分发和传输方面占有重要地位。本章首先介绍CDN的基本构成和关键技术,然后对P2P应用到IPTV系统涉及的技术进行讨论。
CDN关键技术主要有内容路由技术、内容分发技术、内容存储技术、内容管理技术、视频压缩技术、流媒体技术和存储技术。
一、内容路由技术
CDN负载均衡系统实现CDN的内容路由功能,其作用是将用户的请求导向整个CDN网络中的最佳节点。最佳节点的选定可以根据多种策略,例如距离最近、节点负载最轻等。负载均衡系统是整个CDN的核心,负载均衡的准确性和效率直接决定了整个CDN的效率和性能。负载均衡可以通过多种方法实现,主要的方法包括DNS、应用层重定向、传输层重定向等。通常负载均衡可以分为两个层次:全局负载均衡(GSLB)和本地负载均衡(SLB)。全局负载均衡(GSLB)的主要目的是在整个网络范围内将用户请求定向到距离用户最近的节点(或者区域)。因此,就近性判断是全局负载均衡的主要功能。本地负载均衡一般局限于一定的区域范围内,其目标是在特定的区域范围内寻找一个最适合的节点提供服务。CDN节点的健康性、负载情况、支持的媒体格式等运行状态是本地负载均衡进行决策的主要依据。
1. 全局负载均衡功能
GSLB通常可以釆用两种方式执行就近性判断:一种是静态配置,另一种方式是动态检测。静态和动态方式可以综合起来一起使用。IPTV系统应具备将用户的每次点播请求按照一定的规则重定向到最适合的边缘节点进行处理,可以有下面的规则:
(1) 按网络范围分配。选择在网络上最“邻近”的边缘节点进行处理。选择依据可以是根据用户的IP地址进行静态分配,也可以自动测试用户到各边缘节点的网络连接速度等参数进行动态分配。
(2) 按节点健康度和相关依赖关系分配。在点播过程中,如优先设定的CDN节点发生故障,系统将根据预先设定的CDN节点的依赖关系,对点播请求进行重定向,将正在进行的点播请求切换到新的CDN节点上。
(3) 顺序服务优先。对点播请求按照“先到先处理”的原则进行服务。
(4) 本地服务优先。对点播请求,按照优先处理本地用户的点播请求,再处理其他点播请求的原则进行服务。
2. 本也负载均衡
本地SLB通过实时获取缓存设备的运行状态执行复杂均衡决策。缓存设备的运行状态的获取方法一般有两种,一种是主动探测,一种是协议交互。主动探测针对SLB设备和缓存设备没有协议交互接口的情况,通过Ping等命令主动发起探测,根据返回结果分析状态并进行负载均衡。另一种是协议交互,即SLB和缓存根据事先定义好的协议实时交换运行状态信息,以便进行负载均衡。比较而言,协议交互比探测方式要准确可靠,但是目前尚没有标准的协议,各厂家釆用私有协议,互通比较困难。
用户的点播请求被分配到边缘节点后,边缘节点的局部负载均衡器将在本节点媒体服务器组的多个媒体服务器间进行负载均衡,根据节目存放位置、并发流流量、并发流个数、服务器资源消耗等综合因素,分配最合适的媒体服务器响应该请求。在点播过程中,如点播流所在媒体服务器或网络连接发生故障,系统应能够自动地记录失败点,并能够重新进行流媒体服务器负载均衡分配并将正在进行的点播流切换到新的流媒体服务器上继续播放。
二、内容分发技术
内容分发是指将内容从内容源分发到CDN边缘缓存的过程。从实现上看,有两种主流的内容分发技术:PUSH和PULL。
PUSH是一种主动分发技术,通常由内容管理系统发起,将内容从源或者中心媒体资源库分发到各边缘的缓存节点。分发协议可以采用HTTP或FTP等。通过PUSH分发的内容一般是比较热点的内容,这些内容通过PUSH方式预分发(Preload)到边缘缓存,可以实现有针对的内容提供。PUSH方式需要考虑的主要问题是分发策略,即在什么时候分发什么内容。一般来说,内容分发可以由内容提供商(CP)或者CDN内容管理员人工确定,也可以根据用户访问的统计信息,以及预定义的内容分发的规则,确定内容分发的过程,即所谓的智能分发。
PULL是一种被动的分发技术,PULL分发通常由用户请求驱动。当用户请求的内容在本地的边缘缓存上不存在(未命中)时,缓存启动PULL方法从内容源或者其他CDN节点实时获取内容。在PULL方式下,内容的分发是按需的。在实际的CDN系统中,一般两种分发方式都支持,但是根据内容的类型和业务模式的不同,在选择主要的内容分发方式时会有所不同。PUSH方式适合内容访问比较集中的情况,如热点的影视流媒体内容;PULL方式比较适合内容访问分散的情况。
1. 直播分发技术
直播源可根据网络情况采用单播方式/组播方式分发到边缘流媒体节点,由边缘流媒体节点通过单播形式提供给用户。直播源也可通过单播方式分发到边缘直播流媒体服务器由其进行组播或直接通过组播方式分发到边缘业务接入控制点,再由业务接入控制点通过接入层提供给用户。时移电视的内容可缓存在边缘时移服务器上,由边缘时移服务器为用户提供服务。网络录播的内容由内容分发网络进行录制,釆用点播源的分发方式分发到边缘流媒体节点为用户提供服务。包含以下5种分发模式:
(1) 直播源通过单播形式分发到边缘直播流媒体服务器,边缘直播流媒体服务器通过单播形式为用户提供直播服务。这种情况下要求直播中继可采用静态方式分发直播流,直播中继接收到某个直播流时它会查找此直播流的下级接收直播中继或直播流媒体服务器,并将直播流分发下去。
(2) 直播源通过组播形式分发到边缘直播流媒体服务器,边缘直播流媒体服务器通过单播形式为用户提供直播服务。此种情况下技术要求:
① 支持静态组播方式,通过静态组播配置,建立直播流媒体服务器到组播源间的组播数据透明通道,然后将直播源按静态配置的组播树路径送抵直播流媒体服务器;
② 支持动态组播方式,通过启用动态组播路由协议,在网络中建立组播源到直播流媒体服务器的组播树,然后根据组播树进行动态推送。
(3) 直播源通过单播形式分发到边缘直播流媒体服务器,直播流媒体服务器通过组播形式为用户提供直播服务。此种情况下技术要求:
①直播中继可采用静态方式分发直播流,直播中继接收到某个直播流时它会査找此直播流的下级接收直播中继或直播流媒体服务器,并将直播流分发下去;
② 支持多中心分发;
③ 支持多种接入层组播复制;
④ 支持组播流的访问控制。
(4) 直播源通过组播形式分发到边缘业务接入控制点,再由业务接入控制点通过接入层提供给用户。此种情况下技术要求:
① 支持静态组播方式,通过静态组播配置,建立直播流媒体服务器到组播源间的组播数据透明通道,然后将直播源按静态配置的组播树路径送抵直播流媒体服务器;
② 支持动态组播方式,通过启用动态组播路由协议,在网络中建立组播源到直播流媒体服务器的组播树,然后根据组播树进行动态推送;
③ 支持多种接入层组播复制;
④ 支持组播流的访问控制。
(5) 直播源通过组播形式分发到一级节点直播流媒体服务器,一级节点直播流媒体服务器通过单播分发到边缘节点直播流媒体服务器,再通过组播形式为用户提供直播服务。此种情况下技术要求:
① 支持静态组播方式,通过静态组播配置,建立直播流媒体服务器到组播源间的组播数据透明通道,然后将直播源按静态配置的组播树路径送抵直播流媒体服务器;
② 支持动态组播方式,通过启用动态组播路由协议,在网络中建立组播源到直播流媒体服务器的组播树,然后根据组播树进行动态推送;
③ 支持多种接入层组播复制;
④ 支持组播流的访问控制。
2. 点播分发技术
支持采用PUSH方式主动把用户经常访问的内容推送到边缘服务器上,包括手动分发、按区域分发、按策略分发、多中心内容分发、定时分发、限速分发等多种内容分发方式。
按内容分发的实现方式,可分为手动立即分发、定时分发、智能分发。按功能分,可分为定时分发、周期性分发、指定区域分发、多中心内容分发。下面详细描述各种分发方式:
(1) 手动立即分发:手动分发是最基本内容发布形式,操作员指定内容要分发的范围(如是否要分发到边缘服务器,分发到哪些组群),提交发布命令后,流媒体节点从中心取得内容并分发到网络中去。
(2) 指定区域分发:根据管理员指定的分发策略,实现不同的流媒体服务器可以分发不同的内容。系统可以规划流媒体节点逻辑组群(也可以是流媒体服务器逻辑群组),在发布内容时通过选择分发的逻辑组群向指定的区域分发内容。
(3) 智能分发:在运营过程中,系统根据用户对内容的使用情况,自动统计内容的热度,采用智能分发的策略动态地自动维护内容在网络中的分布。
静态节目根据用户点播频度将节目进行分类,可以分为热门节目、冷门节目、普通节目;普通节目又可以进行多次分级,以适应于不同的边缘节点组网方式。对各种节目采用不同的分发、调度策略,完成所有静态节目从片源库到中心节点的发布和分发工作,并发布到中心节点存储系统上。对于冷门节目,系统通过CDN调度仅仅到中心节点上,不再往下分发;热门节目和普通节目分发到边缘节点的存储设备;普通节目可以根据多级边缘节点逐级分发。当节目通过业务统计转化为冷门节目后-IPTV内容管理系统发送命令,删除其在次中心节点和边缘节点的存储空间。节点内服务器可以把热点节目全部或者部分缓存到本地存储设备上,可以提高对外服务的缓存命中率,节约与共享存储设备的I/O。本地缓存的热点节目经过一定的策略进行老化删除处理。
(4)分层分发:当网络分层部署时,系统应能够分层次进行内容的分发,控制内容逐层下发或同层复制或者内容同层转发。
(5)多中心内容分发:系统应支持多内容分发中心,并可以在所属的VCDN内进行内容分发。各个VCDN可以以不同的节点为中心节点,整个CDN有多个中心节点,业务运营商向自己的中心节点发布和分发内容。
(6)定时分发:包括定时自动分发和周期性分发两种方式。定时分发指定时间(如在网络空闲时)发布内容,在发布时间到后,CDN全局服务器控制实现媒体内容到边缘服务器的分发。周期性的分发由管理员指定刷新频率,对内容进行分发,在刷新时间到后,CDN全局服务器控制实现指定媒体内容的分发,使流媒体服务器上的内容得以定时更新。
(7)限速分发:内容递送所占带宽不超过设定值,它可以根据网络的实际情况而配置。
3. 时移分发技术
码流由中心节点接入,逐级中继到各个边缘节点。各个节点可以完成实时码流的一份实时存储过程。每个节点中需要一个流媒体服务器接收实时码流并进行实时存储,然后可以通过组播方式向同节点的其他流媒体服务器进行码流转发。节点其他的流媒体服务器接收针对某一频道的主流媒体服务器发送的组播码流,但不进行实时存储。
4. 电视录播技术
系统或个人可以灵活地制定自动或手动录播计划,统一进行电视录播,录播生成的媒体文件存储在节点上,同时进行发布,提供回放功能。
三、内容存储技术
媒体内容需要占用大量的存储资源,一般需要采用分布式存储方式,包括基于文件的存储和基于流化处理以后文件的存储两种。在边缘存储热度最高的内容。再根据内容的热度和SP/CP的资源状态,动态调整内容的分布,达到内容在全网的动态分布。内容存储主要有两个方面:一个是内容源的存储;一个是内容在缓存节点中的存储。对于内容源的存储,由于内容的规模比较大(通常可以达到几个甚至几十个TB),通常釆用海量存储架构。常用的存储技术包括DAS.NAS和SAN。
1. DAS
直接连接存储(DirectAttachedStorage,DAS)是指外置存储设备与服务器主机通过电缆直接相连。数据存储设备与服务器主机系统密切相关。这种方式依赖服务器主机操作系统进行数据的I/O读写和存储管理。数据备份和恢复要求占用服务器主机资源。数据流需要回流主机再到服务器连接着的磁带库。数据备份通常占用服务器主机资源的20%〜30%。
数据备份和恢复的时间随数据量的增长而增加,对服务器硬件的依赖性和影响也越大。系统的扩展升级,无论是服务器主机扩展(从一台服务器扩展为多台服务器组成的群集),或存储阵列容量的扩展,都要求业务系统暂停运行,并且升级扩展只能由使用原设备厂商提供的设备,受设备厂商限制。
2. NAS
网络连接存储(NetworkAttachedStorage,NAS)通过交换机连接存储系统和服务器主机,建立专用于数据存储的局域网络。NAS设备内置独立的操作系统并且针对I/O操作进行了优化。NAS设备一般集成本地备份软件,可以不经过服务器在NAS设备中进行本地备份。
NAS设备可以通过网络接口直接连接到局域网交换机上,实现存储的在线扩容。NAS还实现了在不同操作系统平台下的文件共享。因此NAS在系统扩容时不需要停止业务系统运行而且不受服务器数量和系统结构异构等因素的限制。
3. SAN
存储局域网(StorageAreaNetwork,SAN),通过光纤和交换机连接磁盘阵列和服务器主机,建立专用于数据存储的局域网络。SAN中的每个服务器主机可以连接到任何一个磁盘阵列上,且不受任何限制。SAN的主要技术之一是光通道(FiberChannel,FC)技术。高性能存储体和宽带网络使用单1/()接口,使得系统的成本和复杂程度大大降低。光通道支持多种拓扑结构,主要包括:点到点、仲裁环和交换式网络结构。FC使用全双工串行通信原理传输数据,传输速率可达1000Mbit/s或更高,传输距离可达10km以上(单模光纤)。SAN能自动识别并配置新的存储设备,同时能根据使用情况平衡SAN内不同存储设备间的负载,进行存储设备间的数据复制、备份。
对于在缓存节点中的存储,是缓存设计的一个关键问题。需要考虑的因素包括功能和性能两个方面:在功能上包括对各种内容格式的支持、对内容进行部分缓存等;在性能上包括存储容量、多文件吞吐率、可靠性、稳定性等。部分缓存能力是指流媒体内容可以以不完整的方式存储和读取。部分缓存的需求来自用户访问行为的随机性,因为许多用户可能不会完整地收看整个节目。部分缓存能力能够大大提高存储空间的利用率,并有效地缩短用户请求的响应时间。但是部分缓存可能导致内容出现碎片,需要进行良好的设计和控制。
如果将P2P技术应用到CDN中,首先需要将流媒体内容进行分片,需要解决的问题包括对媒体内容进行切片化的处理,内容的索引和定位,节点拓扑的建立和管理,以及基于P2P的客户端等。
四、内容管理技术
内容管理在广义上涵盖了内容的引入、调整、分发以及发布等一系列过程。在这里,内容管理特指内容进入缓存节点后的内容管理,又称为本地内容管理。本地内容管理主要针对一个CDN节点进行。其主要目标是提高内容服务的效率以及提高本地节点的存储空间的利用率。通过本地内容管理,可以在CDN节点实现基于内容感知的调度,通过内容感知的调度,可以避免将用户重定向到没有该内容的缓存设备上,从而提高负载均衡的效率。
在实现上,本地内容管理主要包括如下几个方面:
1. 本是内容索引
本地内容索引依赖于本地内容的属性信息,包括每个缓存设备上内容的名称、URL、更新时间、内容摘要等。本地内容索引是实现基于内容感知的调度的关键。
2. 本地内容复制
通常为了提高存储效率,同一个内容在一个CDN节点中仅存储一份,即仅存储在某个特定的缓存上。但是一旦对该内容的访问超过该缓存的服务提供能力,就需要在本地缓存之间实现内容的分发,以提高效率。
3. 本地内容访问状态信息收集
这些信息包括各个缓存设备上各个内容访问的统计信息,缓存设备的可用服务提供能力及内容变化的情况等。
五、流媒体传输技术
常用的流媒体传输协议包括RTP/RTCP.RTSP和MMS。
1. RTP
RTP协议在IETFRFC355O中定义。
RTP协议属于应用层协议,适用于传输具有实时特性的应用数据(如音频和视频信号),提供端到端的单播及组播传输功能。RTP协议一般承载在UDP协议之上(也可以承载TCP协议之上)。RTP协议本身不进行资源预留并且不保证服务质量。RTP协议采用载荷类型标识、序列号以及时间标签等网络传输参数。对这些参数的控制由RTCP协议完成。RTCP协议可以在大规模组播网络中提供最小化的数据标识和监控功能。
2. RTSP
RTSP协议在IETFRFC2326中定义。
RTSP协议属于应用层协议。RTSP协议主要用于建立并控制具有实时特性的应用数据。实时数据流可以与RTSP控制流一起传送,也可以将数据流和控制流分开传送。例如,控制流采用RSTP协议传送,而数据流釆用RTP传送。RTSP可以承载在UDP协议之上,也可以承载在TCP协议之上。
3. MMS
MMS协议是微软公司定义的流媒体传输协议。
MMS协议属于应用层协议,适用于建立并控制客户端与Windows媒体服务器之间的流媒体传输。MMS自动按顺序尝试分别釆用MMSU和MMST建立连接。MMUS是指MMS协议结合UDP协议进行数据传输;MMST是指MMS协议结合TCP协议进行数据传输。
六、国内的CDN系统案例
ChinaCache是国内最早专业从事CDN服务的公司。它利用专业公司生产的缓存设备,组建自己的CDN网络,提供专业的CDN服务。ChinaCache积累了丰富的CDN运营经验,可以很好地将CDN服务与客户千差万别的网站内容相结合,为客户提供最适合的加速方案。同时它们还拥有很强的差异化服务能力,可以针对不同的客户需求提供相应的解决方案,使更多的客户能够享用CDN所带来的网站提速体验。针对流媒体的直播服务,Chi-naCache提出了流媒体直播加速方案,如图6-1所示。
图6-1ChinaCache流媒体加速方案
流媒体直播加速方案中,系统分为4层:核心节点层、边缘节点层、系统管理层和访问层。
(1) 核心节点层。抓取源站直播信号,并在此层内进行P2P的数据共享,节点间互为备份,保证源信号的高效传输。
(2) 边缘节点层。服务于终端用户,并可同时获取多个核心节点的直播流,充分利用多路信号,保障用户的收看效果。
(3) 系统管理层。提供节目管理、数据通信、状态监控和数据库支持的支撑系统。
(4) 访问层。用户可选择以客户机/服务器的方式或P2SP的方式收看现场直播。
除了直播加速产品之外.ChinaCache还有专门的流媒体点播加速产品,可以将源站大量的流媒体内容分发到位于各个城市、各个运营商网络的专用流媒体服务器中。无论用户来自何处,都可以从性能最优、距离最近的流媒体访问服务器上来获得高速高质的精彩内容。流媒体内容提供商不再为网络质量不能保证服务质量而烦恼,也不用担心大量用户访问所带来的带宽压力。采用了ChinaCacheCDN的点播加速后,节点会提前下载源站的热点文件,直接响应用户的点播。对于非热点文件的访问,节点再回源站抓取并实时呈现给用户,同时缓存内容以供其他用户再次点播;非热点文件的少量访问,节点随时回源站下载,不会过多占用源站带宽。