基于P2P的IPTV CDN技术
发布时间: 2022-06-14 15:48:51

由于最初的CDN并不是为
IPTV业务准备的,因此目前的CDN在支撑IPTV业务时尚存在一些问题,包括:
(1)CDNCache节点尚不具备支持多编码格式的能力,而且CDN产品以支持WMV格式为主,支持MPEG-4和H.264格式的产品不多。
(2)命中率低。传统的CDN通常将20%的热播节目存储在边缘,而其他大部分节目存储在中心,这样做既节约边缘存储空间,又能为大部分用户提供就近服务(有80%或更高的命中率)。而在IPTV业务中,由于用户的使用习惯更接近于看电视,不适用2/8规则,导致命中率降低。命中率低会给中心服务器带来压力,同时会影响用户的体验质量。
(3)文件机制。通常CDN釆用了基于文件的存储、分发、调度和服务机制。这种机制容易造成服务器间的负载失衡,导致网络拥塞和单点服务器繁忙,造成冷片内容的服务质量差,用户需要等待较长的时间。这种基于文件复制的机制适合中小规模的视频点播服务,不适合于直播电视,造成直播电视的切换时间长。基于流化的分片机制以及基于P2P机制的情况不多。
(4)1/0“瓶颈”。目前的CDN系统采用客户机/服务器模式提供服务,一台服务器只能
支持有限的并发流(千数量级的并发流)。要解决百万级的用户规模,不仅需要部署大量的服务器,还需要很高的网络带宽,对边缘服务器的配置和服务能力都有很高的要求,因此目前的客户机/服务器模式不能很好地提供IPTV业务。
(5)组播问题。对于采用组播方式的直播业务,CDN需要结合分发和应用层组播技术,这也是CDN的弱项。
(6)目前的CDN还缺乏完善的广告插播、发布和控制功能。
P2P是一种分布式网络,网络的参与者共享他们所拥有的硬件资源(处理能力、存储能力、网络连接能力、打印机等);这些共享资源通过网络提供服务和内容,能够被其他对等节点(Peer)直接访问而无须经过中间实体。P2P网络中的参与者既是资源(服务和内容)提供者(Server),又是资源(服务和内容)获取者(Client)。 P2P的实际应用主要体现为以下5类:
(1)即时通信类。用户可进行即时语音、文字、图像等信息通信和交流。典型的应用包括:ICQ、QQ、YahooMessenger,MSNSkype、PPLive等。
(2)文件交换和内容共享类。提供文件和内容的大范围共享,采用分布式文件存储系统,这类应用通常占用比较大的带宽,比如流媒体业务。典型的应用包括:Napster、Gnutella、CANeDonkey,BitTorrent等。
(3)分布式计算类。加入对等网络的节点除了可以共享存储能力之外,还可以共享CPU的能力。成千上万台计算机通过分布式协同处理和存储共享能力完成原来只有超级计算机才能执行的任务,如天气预报、动画制作、基因组研究等。典型的应用包括:SETI@home、AvakiPopularPower等。
(4)协同工作类。P2P技术可以帮助企业建立自己的虚拟网,使企业自身、企业和客户或合作伙伴之间建立虚拟的网络工作环境。典型的应用包括:JXTA、Magi、Groove、.NETMyService等。
(5)搜索引擎类。深度搜索文档,无须通过Web服务器,不受信息文档格式和宿主设备的限制,达到传统目录式搜索引擎无可比拟的深度。典型的应用有Google等。
一、P2P技术发展现状
随着Napster、KaZaa、BT、eMule这样的基于P2P技术的文件共享软件在因特网上迅速传播,P2P技术在国内外都引发了研究的热潮。国外开展P2P研究的学术团体主要包括P2P工作组(P2PWG)、全球网格论坛(GGF)以及各高校的研究小组。P2P工作组成立的主要目的是希望加速P2P计算基础设施的建立和相应的标准化工作。P2PWG成立之后,对P2P计算中的术语进行了统一,也形成了相关的草案,但是在标准化方面工作进展缓慢。目前P2PWG已经和GGF合并,由该论坛管理P2P计算相关的工作。GGF负责网格计算和P2P计算等相关的标准化工作。目前Microsoft公司、Sun公司和Intel公司投入较大。Microsoft公司成立了Pastry项目组,主要负责P2P计算技术的研究工作,目前开发了基于Pastry的多种应用,包括SCRIBE、PAST、SQUIRREL等。在新一代的Windows Vista操作系统中,也增加了最新的P2P研究成果来支持协同工作。2000年8月,Intel公司宣布成立P2P工作组,正式开展P2P的研究。工作组成立以后,积极与应用开发商合作,开发P2P应用平台。2002年Intel发布了.Net基础架构之上的AcceleratorKit(P2P加速工具包)和P2P安全API软件包,从而使得微软.Net开发人员能够迅速地建立P2P安全Web应用程序。IBM公司也开展了基于P2P技术的研究,提出了SmartNetworking,另外IBM公司大力支持的网格计算(GridComputing)与P2P计算在许多方面的研究类似。Sun公司以Java技术为背景,开展了JXTA项目。JXTA是基于Java的开源P2P平台,任何个人和组织均可以加入该项目。因此,该项目不仅吸引了大批P2P研究人员和开发人员,而且已经发布了基于JXTA的即时聊天软件包和搜索引擎。JXTA定义了一组核心业务,包括认证、资源发现和管理。在安全方面JXTA加入了加密软件包,允许使用该加密包进行数据加密,从而保证消息的隐私、可认证性和完整性。在JXTA核心之上,还定义了包括内容管理、信息搜索以及服务管理在内的各种其他可选JXTA服务。在核心服务和可选服务基础上,用户可以开发各种JXTA平台上的P2P应用。P2P技术应用于互联网是大势发展所趋,同时也逐渐被网络电视所釆用。随着技术的发展,P2P的结构和算法也在不断的研究,根据其结构类型来分,其中主要有集中式、分布式、混合式、结构化式几种。
1.集中式P2P
集中式P2P被称作是第一代P2P应用,Napster程序是第一代P2P应用的典型代表。在集中目录式P2P中,有一个类似于服务器的节点集中提供资源索引信息。当用户共享资源时,需要向索引服务器进行资源注册,索引服务器保存着系统中所有资源的标识符和指针列表。当用户需要査找资源时,首先通过资源标识符查询索引服务器,服务器返回该资源的指针,用户通过这个指针定位到资源的存储位置,并使用该节点的资源。图6-2给出了Napster的工作机制。图中的NapsterCentralIndexServer是一个Napster中央索引服务器,NapsterClient是Napster客户端。当某个用户需要某个音乐文件时,首先连接到Nap-ster中央索引服务器,在服务器上进行检索,服务器返回存有该文件的用户信息,再由请求者直接连到文件的所有者传输文件。Napster首先实现了文件查询与文件传输的分离,有效地节省了中央服务器的带宽消耗,减少了系统的文件传输时延。
图6-2Napster的拓扑结构
集中式P2P网络结构简单,不过也存在一些弱点,主要表现为:
(1)中央索引服务器成为整个系统的关键,其可靠性和安全性决定着整个系统的可靠性和安全性;
(2)随着网络规模的扩大,对中央索引服务器进行维护和更新的费用将急剧增加,所需成本过高;
(3)中央索引服务器的存在引起共享资源在版权问题上的纠纷。
2.纯分布式P2P
纯分布式P2P被称作第二代P2P应用。该网络中不存在中心目录服务器,所有的服务完全散布在各个节点中,因此该系统的最显著特点就是“完全去中心化”。其典型应用是Gnutella网络。节点之间通过采用泛洪请求(Flooding Request)0用户的请求通过所有链接的节点传递,这些节点或者响应该请求,或者在不能满足请求时,将该请求向自己相连的其他节点广播,直到请求得到响应为止。在该技术中,泛洪的抑制是需要重点考虑的问题,如果不加以抑制,其消息数将成指数的增长。常用的抑制手段有设置TTL、设置消息唯一标识符(UID)、设置路径标识符(PI)等方式。准确地说.Gnutella不是特指某一款软件,而是指遵守Gnutella协议的网络以及客户端软件的统称。目前基于Gnutella网络的客户端软件非常多,著名的有Shareaza,LimeWire和BearShare等。
Gnutella和Napster最大的区别在于Gnutella是更加纯粹的P2P系统,因为它没有中央索引服务器,每台机器在Gnutella网络中是真正的对等关系,既是客户机同时又是服务器,所以被称为对等机(Servent,Server+Client的组合)。在文件检索方面,它与Napster也不相同。在Gnutella网络的发展初期,它主要采用基于完全随机图的Flooding搜索算法(见图6-3)。比如某一个主机要查询一首歌“Baby Go Home,mp3”,这个查询可能要经过6〜7层(取决于查询生存时间)才能在某一个节点上找到此歌曲。同集中式的P2P应用需要中心服务器参与的过程不同,纯分布式P2P网络中的任何一个节点都可以提供完整的目录和文件服务。通过其泛洪方式的査询,可以遍历整个网络(直至抑制条件结束),实现共享资源的深度搜索。在实际使用中,其存在的弱点表现为:
图6-3 Gnutella的拓扑结构和文件检索方法
(1)搜索请求要遍历整个网络或者较大范围才能得到结果,搜索时间较长;
(2)搜索算法采用泛洪方式,消耗大量带宽,造成网络拥塞,甚至不稳定;
(3)局部性能较差的节点可能导致P2P网络被分割;
(4)容易遭受恶意攻击,当攻击者发送垃圾查询时,会造成网络拥塞。
3.混合式P2P
混合式P2P吸取了集中式P2P和纯分布式P2P的优点,选择性能较高的节点作为超级节点,在各个超级节点上存储了系统中其他部分节点的信息,发现算法仅在超级节点间转发,超级节点再将查询请求转发给适当的终端节点。混合式结构也是一个层次结构,超级节点之间构成一个提供索引搜索服务的层次,超级节点和所负责的普通节点之间构成若干自治的层次。混合式P2P网络的最大特点是介于客户机/服务器模型和纯P2P模型之间,在资源下载阶段,其与纯P2P网络一样,都是直接在节点间交换内容,不需要其他节点转发。在资源搜索阶段,则与客户机/服务器模型类似,通过一些超级节点查询。他们除了负责资源的查询外,往往还承担网络的组织和维护管理功能,可以说是一种功能弱化的服务器。釆用这种结构的最典型的案例就是KaZaa。
混合式P2P具有双层分布式架构(如图6-4所示),提高了整个网络的负载平衡,使网络中普通节点的行为受到监控。用户节点通过超级节点可以获取其他节点信息,有效消除了纯P2P应用的泛洪过程对网络造成的不利影响,提高了P2P网络的效率。
图6-4混合式拓扑结构(网络中包含超级节点)
4.结构化P2P
结构化P2P网络采用纯分布式的结构,并根据关键字进行查找、定位。目前主要的技术是基于分布式哈希表(DHT)技术。DHT各节点不需要维护整个网络的信息,只在节点中存储部分哈希表。通过多个部分哈希表之间的跳转,能够快速地定位到索引的存储位置。该算法有效地减少了节点信息的发送数量,增强了P2P网络的可扩展性。根据DHT中节点组织关系的方式不同,DHT产生了很多的不同算法,其中CAN、Chord、Pastry等算法较为著名。采用DHT算法给资源定位的基本方法如下:
(1)对P2P网络中的节点IP地址进行哈希运算,得到该节点唯一的标志(ID)值,节点的ID值为P2P网络中节点的逻辑地址(其值用Vid标识);
(2)每个节点对其可提供的内容的标识(一般为文件名)进行哈希运算,得到该内容的关键字(Key值);
(3)每个节点将其Key,Vid二元组(又称K、V对)进行发布,其中的逻辑地址(Vid)指出了内容的存储位置(还包括TCP层的端口号);
(4)由(1).(2)可知ID与Key两者处于同一命名空间,从ID序列中找到与Key值最接近的节点ID值,并将所发布的K、V对存储在该节点的后续节点中;
(5)在搜索某一内容时,要求将查询路由到与该内容Key值最接近的ID节点上,该节点所保存的目标K、V对中的Vid值指明了内容所在的位置;
(6)根据Key值查找其后续ID节点时,利用节点中位于应用层的路由表(又称DHT)来进行,与网络层的路由查找相类似,可以釆用最长前缀匹配查找的方法,一般需经过数跳达到目标ID节点。
在应用层上节点路由的每一跳,使Key值逐步向目标节点的ID值逼近。但是在实际物理网络中,可能会造成搜索过程中不必要的时延。为了减少搜索的时延和髙效利用网络资源,在实用中往往将P2P网络进行分组和/或分级。分组是让物理位置上接近的节点组成小网络,先在本节点所在小网络中搜索再扩展至其他网络搜索;分级是让物理位置接近的一群节点,按节点处理能力不同自行选举进行分级,形成一个类似塔松的树状结构,塔尖为处理能力最强的节点,向下依次减弱。可由髙级节点提供下级节点的目录服务,这样资源查找只需在高级节点间进行搜索就可以了。该模型有效地减少了节点信息的发送数量,从而增强了P2P网络的扩展性。同时,出于冗余度以及时延的考虑,大部分DHT总是在节点的虚拟标识与关键字最接近的节点上复制备份冗余信息,这样也避免了单一节点失效的问题。基于DHT的结构化P2P的维护机制较为复杂,尤其是节点频繁加入和退出造成的网络波动会极大地增加DHT的维护代价。
二、基于P2P的IPTVCDN系统架构与关键技术
基于P2P的IPTVCDN采用P2P技术对CDN网络进行改造,结合对等网络与CDN网络的优点,加强系统的自组织能力,提高边缘服务器的协作能力。在P2PCDN结构中,CDN节点包含一个以上处于网络边缘的支持P2P技术的边缘服务器,边缘服务器可属于不同的物理网络管理域,属于同一物理网络管理域内的边缘服务器之间通过P2P方式自组织成叠加网;不同物理网络的P2P叠加网络共同构成P2P叠加网络系统。P2P+CDN相对于原来的CDN的主要改动和优势在于:
(1)对媒体进行分片处理。CDN基于文件复制的机制,即将一个电影或一集电视剧内容作为一个文件,以整个文件为单位进行内容分发、调度和服务,这样很容易造成不同服务器间的负载不均衡,带来网络单点拥塞和单点服务器繁忙,为使用P2P技术提供了前提。
(2)全分布式的流媒体存储和流服务,改善了CDN的树形网络结构,使网络结构趋于扁平化。P2P与IPTV的结合将计算资源与业务能力分开,使P2P网络和IPTV业务网络具备了资源优化能力,这样的网络是运营商需要的网络,是可经营的网络,能保证大规模运营和低成本部署。
(3)充分利用各节点的资源,提高了带宽的利用率。由于釆用了分片技术,各节点在存储和提供流服务时可以根据节点的存储和计算能力来合理地为用户提供服务,因此降低了对服务器的性能要求,减轻了单个边缘服务器的压力,通过均衡的调度和优化策略,将用户的请求均匀分布到同一自治域中的各节点,充分利用了节点间的带宽,降低了对基础网络资源的消耗和成本。
(4)改善了单点瓶颈和单点故障。传统的CDN需要单独的CDN服务器和集中式存储设备,造成开发和维护成本高,业务扩展能力差。基于分布式的P2P重叠网解决了这些问题。基于P2P的CDN由于边缘服务器釆用分片的存储和流服务,通过服务器之间的内容交换,以及用户的调度来改善单点瓶颈和故障。
1. 系统架构及总体要求
IPTV面对的是十万规模、百万规模的大并发流媒体服务,在服务器的1/()能力、带宽、海量存储、部署成本等方面将会受到前所未有的考验。为了充分利用运营商的网络资源,节省带宽,提高用户的体验和服务质量,以及满足低成本部署和未来业务的可扩展性,IPTV需要引入P2P重叠网的理念和技术,来升级和改造传统的IPTVCDN。采用P2P架构可以有效地利用大量普通节点的计算资源和带宽资源,将计算任务或存储数据分布到所有节点上,达到高性能计算、高I/O能力、高带宽和海量存储,降低整个IPTV系统的部署成本的目的。基于P2P的IPTVCDN系统架构如图6-5所示,这种体系架构体现了混合式P2P架构的特点。基于P2P的CDN包括三个域:媒体的分发域、媒体服务域和终端域。这里并没有采用纯分布式的P2P架构,而是保留了CDN中的媒体分发域,将经过预处理后的媒体流切片首先注入到媒体分发域中。这一方面出于内容安全的考虑,另一方面,对于百万级的大规模用户,根据地理位置、运营需求以及用户使用的差异性,媒体分发域可以根据这些要求进行特定的分发,减少跨域流量。如果有特殊的要求,内容也可以直接注入到媒体服务域中(见图6-5中的“可选”箭头)。由于CDN提供可控的、有服务质量、安全保障的媒体调度、分发和传送;而P2P是基于对等网络的,不能保证媒体的安全和服务质量,但能够充分利用网络资源。因此,这里的架构既保留了原来CDN对媒体流的控制和管理,同时采用了P2P技术来改善CDN的中心化以及高成本的部署要求,形成了以CDN为可靠的内容来源,以P2P为服务边缘的体系架构。
图6-5基于P2P的IPTVCDN系统的一般架构
图6-5中各个服务器要完成的基本功能如下:
内容预处理服务器完成内容预处理功能(包括内容切片等);
全局负载均衡服务器要完成的功能包括:全局内容调度/路由、全局服务控制、网络组建、操作维护等;
超级节点服务器完成的功能有:内容分发策略、域间/域内查询、节点/拓扑管理等;内容分发服务器完成内容存储与控制功能、内容分发功能;
流服务器完成内容存储功能、存储控制功能、流服务功能与流服务控制功能;
终端作为P2P对等节点,只完成流服务功能,同时可以向另一个同域的对等终端提供流服务,终端不参与内容分发。流服务器可以视为对等终端的超级节点,提供内容的存储。P2P超级节点服务器为对等终端提供相关的路由信息,有效降低链路的拥塞及其长距离的迂回路由,避免了不必要的带宽消耗。当视频内容比较流行的时候,可由P2P的对等用户提供流服务。对于那些不流行的内容则继续由CDN的流服务器完成。当内容变得越来越流行的时候,视频内容的流服务则从CDN的流服务器转移到P2P的对等用户端。
全网的CDN可以根据网络容量进行分级部署。媒体分发域一般不接入用户,仅仅完成内容的分发功能,它一般位于全国中心和省中心,负责向区域媒体服务域进行内容分发。媒体服务域也包含区域内部的媒体分发功能,根据用户容量的大小,媒体分发服务器和流服务器可以是分别独立的服务器,也可以是共同部署在一台服务器上,完成流服务和媒体分发功能。其中,媒体分发域可以根据需要组建多级。CDN中的每个节点至少包含一个边缘服务器(ES),多个边缘服务器组成结构化的普通节点网络,每个普通节点网络都由超级节点服务器进行管理,超级节点服务器作为一种服务器,可以单独部署,或在边缘服务器上配置超级节点服务器功能使其成为超级节点服务器。超级节点服务器管理所属普通节点网络中所有边缘服务器。CDN节点之间通过超级节点服务器组成的层次化的P2P超级节点网络,实现节点间内容自组织调度、流服务等功能。图6-6所示为一种层次化P2P网络,其中超级节点服务器为在ES节点上配置超级节点服务器的功能模块而使其成为超级节点服务器。图6-7为另一种层次化P2P网络,超级节点服务器由与ES网络分离的设备担当,可以在原有的CDN节点服务器上增加P2P功能,成为超级节点服务器,也可以单独部署新的设备,辅助CDN节点服务器完成边缘网络的管理和互通。
图6-6将某些ES节点配置为超级节点服务器(SNS)组成层次化P2PCDN网络
2. 基于P2P的CDN功能架构
IPTV CDN在IPTV系统中主要负责媒体从内容源到客户端的传送。P2P+CDN主要由如下功能模块组成:内容调度、内容预处理、存储控制、内容存储、流服务控制、流服务、P2P节点管理和P2P策略管理。各功能模块间,及其与外部功能模块或实体间的接口如图6-8所示。
图6-8 基于P2P的IPTV CDN功能架构
(1) 内容分发(内容预处理)功能实体完成以下功能:
① 从内容运营商获得媒体内容;
② 对媒体内容进行预处理(可选);
③ 将媒体内容在CDN节点间分发传送。
(2) 内容存储功能实体完成以下功能:
① 存储媒体内容;
② 删除媒体内容;
③ 提取媒体内容;
④ 媒体内容的冗余备份和恢复。
(3) 流服务功能实体完成以下功能:
① 与机顶盒一起完成流服务功能;
② 对文件型视音频内容媒体进行流化处理;
③ 对流化内容进行缓存以支持客户对节目快进、快退、暂停、播放等流服务操作;
④ 对直播流内容进行CDN节点间中继和向内容存储转储,以支持直播和时移操作。
(4) 内容调度功能实体完成以下功能:
① 从内容运营系统获取内容管理信息;
② 对内容资源管理,如按地理分布、按时间分布的内容存储位置信息;
③ 向业务管理系统汇报节目内容数据在系统中的分布状况;
④ 内容分发策略的执行,如按地理分发、按服务状况分发、按时间分发等。
(5) 存储控制功能实体完成以下功能:
① 对媒体内容的生命周期进行管理;
② 根据内容的逻辑标识,定位到节点内的内容存储位置;
③ 对于文件内容和流化内容进行存储控制。
(6) 流服务控制功能实体完成以下功能:
① 对客户端接入的流服务进行负载均衡选择;
② 对客户端的流服务进行计费相关的控制;
③ 在发生故障或者节目未命中时,对流服务节点实施切换(重定向);
④ 在媒体分发网络中发布本地存储的媒体内容;
⑤ 根据P2P算法选择合适的节点存储全局服务器发布的内容;
⑥ 对客户端接入的流服务进行P2P查找。
(7) P2P节点管理功能实体完成以下功能:
① 接受P2P节点的注册和认证请求;
② 收集P2P节点的负荷信息;
③ 收集P2P节点的流服务信息;
④ 手机P2P节点的存储状态信息;
⑤ 管理P2P节点的节目分片信息。
(8) P2P策略管理功能实体完成以下功能:
① 分片复制策略管理;
② 分片查找策略管理;
③ 流服务策略管理;
④ 分片删除策略管理。
内部功能实体之间的接口描述如下:
参考点a:P2P+CDN的内容调度和内容分发(内容预处理)功能之间的接口。该接口功能包括:内容分发策略的下达等。
参考点b:P2P+CDN的内容分发(内容预处理)功能与内容存储功能间的媒体接口。该接口功能包括:节点内分发传送和接受媒体内容,直播时移媒体流的中继等。
参考点c:内容存储与流服务之间的接口。该接口功能包括:流服务所需数据的读取等。
参考点d:存储控制与内容存储之间的控制接口。该接口功能包括:分发内容的存储控制、内容存储负载均衡等。
参考点e:流服务控制与流服务之间的控制接口。该接口功能包括:响应客户端流服务请求、计费、流切换等。
参考点f:P2P+CDN的内容调度功能与存储控制功能之间的接口。该接口功能包括:获取媒体内容的存储信息,对调度的内容(媒体文件,直播流)进行存储管理和存储控制等。
参考点g:P2P+CDN的存储控制与流服务控制功能之间的接口。该接口功能包括:获取媒体内容的存储信息,以支持流服务全局/局部重定向功能。
参考点h:P2P+CDN的内容调度功能与流服务控制功能之间的接口。该接口功能包括:获取流服务的服务信息,以支持根据服务状况的内容调度功能。
参考点i:P2P节点管理和内容存储之间的接口。该接口功能主要是获取P2P的存储状态信息。
参考点j:P2P策略管理和存储控制模块之间的接口。该接口功能主要是传递存储控制命令。
参考点k:P2P策略管理和流服务控制模块之间的接口。该接口功能主要是传递流服务命令。
参考点1:P2P节点管理和流服务模块之间的接口。该接口功能主要是收集P2P节点负荷状态信息、带宽信息、流信息等。
参考点m:P2P节点管理和P2P侧路管理模块之间的接口。该接口功能主要是获取P2P节点状态信息等。
3. 基于P2P的内容分片、存储技术
媒体文件是对媒体对象的完整描述,包括编码部分和相关索引信息。对于直播节目,媒体内容是无始无终的流媒体。媒体分发系统必须要对无始无终的流媒体进行处理和管理。
对于集中式的媒体分发系统,媒体文件是普通的编码文件,如Avi.Avix.ASF等文件,这些文件在流服务器节点的传递釆用文件复制的方法,一般情况下,在一个文件复制完成后,才可以进行流服务。在分布式媒体分发系统中,为了保持直播节目和点播节目这两类节目媒体文件格式的一致性,媒体文件格式可以采用流格式封装,即普通的编码文件在进入媒体分发系统时以流格式进行存储。流服务器节点间传递的是流格式文件,而不是普通的编码格式的文件。为了分布式存储,媒体内容进入媒体分发系统时,流格式文件按照分片方式分布式存储在媒体分发系统中。流服务器以片为存储单位。一个媒体文件可能被切割成多个分片,并存储在多个服务器中。媒体分发系统需要对分片进行索引管理,当用户请求播放一个影片时,流服务器有能力按顺序检索出分片,并按播放控制要求进行播放。为了对各节点的流存储和对用户流发送的精确控制,在流服务器节点的流交换前会传递该流的信息索引文件,可能的信息包括:平均帧间隔、媒体类型、帧分布信息等。媒体文件的流化处理在上传节点完成,媒体分发网络对流进行透明存储和交换。针对IPTV系统中媒体内容大容量的特性,对内容的存储不再釆用由一个磁盘阵列集中存储的方式,而是釆用由不同的切片式服务器分散存储、集中管理的方式,其基本原理是基于P2P技术釆用切片的方式存储,将体积巨大的视频文件切分成一个个固定大小的视频切片,然后以切片为基础进行存储。流化后的媒体内容分片按照一定的分发策略分布式地存储在不同层次的存储节点(服务器)内,而这种分发存储策略根据用户对视频业务的使用模式和运营商的商务模式来确定。图6-9是一个多级分布式内容存储体系架构,各存储节点按照承载网络的拓扑结构和用户的分布情况进行部署。
图6-9 基于分片的分布式内容存储体系架构
分布式内容分发存储机制可以使运营商按照预先确定的分发策略和应用属性(如媒体内容的属性、用户的使用模式以及网络的可用带宽等)对媒体内容进行动态的分发。运营商可以将媒体内容起始的分片存储在靠近用户的边沿存储节点,而将其余的内容切片存储在上一级或者更高的存储节点内。例如,在分布式存储中,存储可分为中心存储节点(第一层)和边缘存储节点(第三层)。中心存储节点保存有100%的媒体内容。在大规模部署中,两层媒体存储的结构对第一层设备的压力过大,成为性能的瓶颈,可以增加一级归属存储节点(第二层),通过三层存储架构,可以缓解对第一层之下存储节点的存储访问的压力。为了降低边缘媒体服务器的部署成本,边缘媒体服务器可能仅仅缓存比较流行的内容,对于流行度较低的节目内容,可以将节目内容起始的分片存储在边缘节点。这可以加快内容的分发,降低存储的需求,减少网络的拥塞。这种存储方式提供了良好的线性扩展能力,随着服务器的增加,存储容量和输出带宽也随着增加,以保证海量视音频内容的存储需求。同时,由于采用了分散存储、分散服务的方式,解决了磁盘阵列有限吞吐量的瓶颈问题。在媒体分发系统内,媒体内容被分布存储在地理分散的各个服务节点上,满足网络存储和随机数据访问的要求。通过分布式文件管理系统,媒体分发系统具有执行远程分布式存储的文件存取的能力,并以透明方式对分布式存储在网络上的文件进行管理和存取,满足对网络存储空间进行有效的管理和优化的需求。支持存储码率为1〜6M的标清视音频内容,或码率为6~25M的高清视音频内容,满足直播流文件存储的要求。系统存储规模能够随着用户数量和内容数量的增长进行扩充,并对存储的视音频内容具有安全保护能力。不出现节目断断续续情况和马赛克情况是用户对IPTV节目的基本要求之一。这就要求IPTV业务系统具有相当快的内容分发速度和分发质量。媒体分发系统要支持分布式流服务计算。在分布式媒体分发系统内,用户获得一个流媒体的服务任务可以根据当前的节点负载状况被分配到多个节点设备共同参与完成,满足整个系统负载均衡的要求。图6-10是基于分片的分布式流服务体系架构。
图6-10 基于分片的分布式流服务体系架构
在分布式流服务中JPTV终端的内容服务不只是由一个流服务器完成的,而是多个流服务器共同完成。内容的调度控制节点按照每个流服务节点的负载情况和内容切片的分布情况指定一个合适的流服务节点为每一个视频终端服务。一般情况下,流服务节点从本地的边缘存储节点获取开始的内容分片并向用户提供流服务,如果本地的边缘存储节点没有存储其余的内容分片,它可以向更高级别的存储节点获得。这样就极大地避免了内容在流服务器之间的复制,减小了网络流量。
4. P2P媒体内家发布
媒体内容发布可以分为两个层次:媒体的发布和内容索引的发布。
P2P媒体服务的发布过程首先在内容预处理服务器将媒体数据进行统一切片(保证媒体节目内容不管是直播还是点播都具有相同的分片方式),然后根据运营策略发布到边缘服务器的过程。媒体分片原则是直接影响IPTV用户体验的一个重要因素,因为它会影响到媒体切换时的速度。为提高媒体切换速度,内容预处理服务器对媒体内容进行分片时,可将媒体编码的基础帧设置于分片的预定位置,使客户端可以快速找到基础帧,在最短的时间内开始媒体解码。具有P2P功能的客户端将与CDN系统进行交互来构建P2P的拓扑网络,从而使用P2P媒体服务。边缘服务器(ES)存储了一定内容后,需要把本地存储的内容索引釆用P2P方式在叠加网中发布到合适的ES节点进行存储。为提高P2P网络的服务质量,可以在P2P消息中携带优先级信息。网络设备接收到带有优先级信息的P2P消息,从中获取优先级信息,根据优先级信息对不同的P2P消息进行差分处理。此时的媒体发布流程分为两种情况:CDN节点内和CDN节点间的媒体发布流程。
(1) CDN节点内媒体发布流程,如图6-11所示。
图6-11 CDN节点内媒体发布流程
在普通节点网络中,存储内容的边缘服务器 首先计算内容索引,再通过P2P算法,从本地开始经过有限的跳数(hops),将内容索引/边缘服务器信息(key/value对)发布到与内容对应的边缘 服务器上。
ES1发布某一内容,此内容索引应该保存在 图6-11CDN节点内媒体发布流程ES3上。首先,ES1判断自己是否与该内容索引对应,不对应,则ES1查找自己保存的边缘服务器信息,判断ES2可能对应此内容索引,ES1请求ES2进行内容索引对应判断;ES2执行与ES1一致的操作后发现与内容索引不对应,请求ES3;ES3执行内容索引对应判断后,发现自己与该内容索引对应,保存此内容索引。
(2)CDN节点间的媒体发布流程,如图6-12所示。
图6-12 CDN节点间媒体发布流程
存储内容的边缘服务器首先在其所属的普通节点网络中发布所存储的内容,再通过P2P算法,在超级节点网络中査找与该内容对应的超级节点〔即超级节点服务器(SNS)〕,此超级节点在其普通节点网络中发布该内容。ES1发布某一内容,此内容索引应该保存在ES3,以及CDN节点2的ES6上。首先ES1在普通节点网络中发布该内容(流程同前),发布结束后通知CDN节点1的超级节点服务器ES3;ES3査找自己保存的超级节点信息,判断CDN节点2可能对应此内容索引,ES3请求ES4(CDN节点2的超级节点服务器)进行内容索引对应判断;ES4执行内容索引对应判断后,发现自己与该内容索引对应,在普通节点网络中发布该内容(流程同前),内容索引最终被存储在ES6上。
5. P2P媒体内容查找
(1) CDN节点内的媒体査找过程,如图6-13所示。

图6-13 CDN节点内媒体查找过程
在普通节点网络中,每个边缘服务器保存一部分内容索引/边缘服务器信息(key/value对),通过P2P算法,接收到用户请求的边缘服务器从本地开始经过有限的跳数找到内容索引,从而找到存储内容的边缘服务器。用户请求某一内容,此内容索引保存在ES3上。首先,用户请求ES4.ES4査找自己保存的内容索弓I,没有找到该内容索引,然后ES4査找自己保存的边缘服务器信息,判断ES5可能保存此内容索引,ES4请求ES5进行内容索引查找;ES5执行与ES4一致的操作后发现找不到内容索引,请求ES3;ES3执行内容索引查找后,确定自己保存此内容索引,给用户返回此内容索引对应的边缘服务器信息。
(2) CDN节点间的媒体查找流程,如图6-14所示。
图6-14 CDN节点间媒体査找流程
査找内容的边缘服务器首先在普通节点网络中査找内容索引,如果找不到,再通过P2P算法,在超级节点网络中查找与该内容对应的超级节点,此超级节点在其普通节点网络中选择最优的边缘服务器向用户提供流服务。用户请求某一内容,此内容索引保存在CDN节点2的ES6上。首先,用户请求ES7,ES7在普通节点网络中查找该内容(过程同(1)中相关的内容),没有找到内容索引通知ES9(CDN节点3的超级节点服务器);ES9査找自己保存的超级节点信息,判断ES4CCDN节点2的超级节点服务器)可能保存此内容索引,ES9请求ES4进行内容索引査找;ES4执行内容索引査找后,确定自己保存此内容索引,在普通节点网络中査找该内容(过程同(1)中相关的内容)。
6. 将P2P的能力扩展列用户端设备
将P2P的能力扩展到用户端设备是一个比较复杂的问题,这个问题对于使用PC,并且没有服务质量和运营要求的Internet网络来说并不是一个问题,而是一个优点。但对于运营商提供可控制、可管理、可运营的,并且有服务质量和安全保障的IPTV来说,需要仔细分析。如果将P2P的能力扩展到用户的机顶盒,需要在机顶盒加装P2P客户端,同时对机顶盒的缓存能力有一定的要求。需要解决的问题包括节点的登录,直播业务/点播业务的实现,直播模式切入点播模式,直播/点播节点切换,客户端文件下载等方面,目前国内外还没有这方面详细的标准规范。
7. P2P+CDN媒体请求服务流程示例
P2P+CDN媒体请求服务流程示例如图6-15所示。
(1)机顶盒从EPG取得节目源地址也就是第一个片段的地址,然后向相应流服务器一发起媒体播放请求;
(2)流服务器一向机顶盒发送媒体流,当媒体流接近发送完毕时,通知媒体内容管理模块;
(3)媒体内容管理模块根据节目ID找到下一个片段所在的流服务器二,同时通知流服务器二预装第二个片段,准备流的发送;
(4) 流服务器一通知媒体内容管理模块,第一个片段发送完毕;
(5) 媒体内容服务器通知流服务器二发送下一个片段的媒体流;
(6) 流服务器二启动下一个片段媒体流的发送。
图6-15 P2P+CDN媒体请求服务流程示例
8.基于P2P技术的网络电视应用
除了文件下载、共享、存储等典型的P2P应用外,互联网上基于P2P的流媒体应用软件很多,基本都是免费的。国内企业在P2P的应用领域研究一直与世界同步,开发了众多使用广泛的P2P产品。这些产品主要集中在文件共享与下载、网络流媒体电视等方面。基于P2P技术的网络电视应用软件有时也称为P2PTV,包括PPLive、PPStream、PPMate、TVa-nts、Mysee、UUsee、QQlive、AnySee等。P2PTV在发展中显示了旺盛的生命力,但同时也面临很多困难和问题:
(1) 无有效的带宽和系统性能调度调配机制。目前,P2PTV最大的问题就是网络带宽问题。目前虽然在连接速率和性能方面比以前有了很大的改善,特别是老牌的PP-Stream、QQLive、PPLive等受到了很多人的喜爱,但与目前电信运营商提供的IPTV相比,在服务质量和时延方面还有较大的差距,与HDTV相差甚远,缺乏电信级的可靠性保障和故障恢复机制。
(2) 节目版权问题。节目版权问题决定视频网站的生存。目前主要通过对方的内容授权或以联合运营的方式解决版权问题,另外也提供一些信息服务和部分用户上传的原创内容。要长期发展,简单地将目前用于电视的法规移植到互联网是行不通的,需要相应的法律法规。目前欧洲共同体已经开始制定适用于InternetTV的新法规。
(3) 无计费和业务绑定功能。目前P2PTV市场缺乏可以持续发展的运营模式和产业链,基本上都是免费收看,争取提高用户点击率,以获取风险投资。需要探索出健康的产业链以及盈利的商业模式。
(4) 竞争和管理问题。运营P2PTV门槛相对较低,导致大量的公司进入竞争行列,结果没有足够的资本,形成不了规模,只能导致低水平竞争。