资源描述
IPTV媒体交付系统技术要求中国电信广州研究院目 录1 媒体交付系统在IPTV系统中的位置32 IPTV业务能力需求33 媒体交付系统功能架构43.1 功能架构43.2 功能模块描述53.3 参考点74 媒体交付系统体系架构84.1 系统体系架构84.2 功能部署及系统接口94.3 系统描述144.4参考点155网络侧功能流程165.1 媒体发布流程165.1.1 CDN节点内的媒体发布流程185.1.2 CDN节点间的媒体发布流程185.2 媒体查找流程195.2.1 CDN节点内的媒体查找流程195.2.1 CDN节点间的媒体查找流程206 客户端业务实现216.1 关键部件226.2节点登录流程236.3直播业务实现236.3.1 组播方式实现直播业务236.3.2 应用层组播实现直播业务246.3.3 P2P客户端节点直播播放流程276.4点播业务实现276.4.1 P2P点播拓扑建立276.4.2 P2P客户端节点点播播放流程286.5直播与点播共存的业务实现296.5.1 P2P点播与直播共存的网络拓扑296.5.2 P2P点播与直播共存的播放处理306.5.3 直播模式切入点播模式316.5.4 直播节点切换节目346.5.5 点播节点切换346.6 P2P客户端文件下载351 媒体交付系统在IPTV系统中的位置媒体交付系统(F)在 IPTV系统中主要负责内容从节目源到客户端的传送,包括分发/传送、存储、调度控制和流服务等功能模块。 媒体交付系统及其在IPTV系统中的位置,可参见图1 。图1 IPTV媒体交付系统在IPTV系统中的位置 2 IPTV业务能力需求基于CDN架构的IPTV媒体交付系统要能满足网络计算的需求,即CDN系统内的存储资源、流服务计算能力和网络通信等网络通信计算资源必须共享,并具备任务分布式处理的能力。分布式媒体交付系统应具备足够的系统稳健性和冗余能力。媒体交付系统内的节点出现故障后,该节点上的媒体内容存储、计算任务和流服务任务可以被其他节点替代执行。在存储资源一定并满足用户的收视与点播习惯的条件下,降低网络成本,提高用户对内容体验的质量。基于这些基本的考虑,IPTV媒体交付系统应该满足下列技术要求:l 系统必须支持分布式的组网l 系统必须支持分布式的内容存储l 系统必须支持分布式的流服务l 系统必须支持IPTV点播,直播和时移业务l 系统可以支持P2P点播,P2P直播和P2P下载业务l 系统必须支持IPTV单播,组播的传输方式l 系统必须支持流服务的负载均衡l 系统必须保证IPTV业务和内容的可靠性和安全性l 系统必须提供对多业务运营商的支持l 系统必须具备保证IPTV业务的QoS和QoE的能力l 系统必须支持内容的透明传输l 系统必须具备良好的可扩展性l 系统必须保证良好的稳健性和冗余性l 系统必须根据策略进行业务分发l 系统应该支持异构媒体交付系统的组网l 系统应该提供系统平滑扩容能力l 系统应该支持IPTV系统的用户权限控制和费用控制的流程l 系统应该支持内容分发的纠错能力l 系统应该支持内容储存的纠错能力l 系统应该具备对流服务进行纠错和容错能力l 系统应该支持合法内容监听3 媒体交付系统功能架构3.1 功能架构基于P2PCDN结构的IPTV媒体交付系统在IPTV系统中主要负责媒体从内容源到客户端的传送。媒体交付系统主要由如下内部功能模块组成:内容调度,内容分发(内容预处理),存储控制,内容存储,流服务控制,流服务,内容寻址模块(如内容发布/查找,域间发布/查找等,具体功能部署参见8.2节),内容管理模块等。各种内部功能模块间,及其与外部功能模块或实体间的接口如下图所示。门户导航E业务管理C内容运营A客户端G(内容预处理)内容分发内容存储流服务流服务控制存储控制媒体交付FGDACBadebcfghEFi可穿越媒体内容控制协议 图2 IPTV系统的媒体交付子系统功能架构基于P2PCDN结构3.2 功能模块描述内容分发(内容预处理)功能模块完成以下功能:l 从内容运营商获得媒体内容l 对媒体内容进行预处理(可选)l 将媒体内容在CDN节点间分发传送l 差错恢复功能内容存储功能模块完成以下功能:l 存储媒体内容l 删除媒体内容l 提取媒体内容l 媒体内容的冗余备份和恢复流服务功能模块完成以下功能:l 与机顶盒一起完成流服务功能l 对文件型音视频内容媒体进行流化处理l 对流化内容进行缓存,以支持客户对节目快进、快退、暂停、播放等流服务操作l 对直播流内容进行CDN节点间中继和向内容存储转储,以支持直播和时移操作l 支持单播和组播方式的流服务提供功能l 差错恢复功能内容调度功能子模块完成以下功能:l 从内容运营系统获取内容管理信息l 对内容资源管理:如按地理分布、按时间分布的内容存储位置信息l 向业务管理系统汇报节目内容数据在系统中的分布状况l 内容分发策略的执行,如按地理分发、按服务状况分发,按时间分发等内容寻址子模块完成以下功能:l 在媒体分发网络中按照P2P的方式发布/取消本地存储的内容索引信息l 接收其他的ES和CDN节点的内容索引信息的登记l 根据内容索引信息进行节点查找内容管理子模块完成以下功能:l P2P点播节点管理,管理用户点播P2P节目的信息,记录时间点信息l 内容冗余和可用性管理存储控制功能模块完成以下功能:l 对媒体内容的生命周期进行管理l 根据内容的逻辑标识,定位到节点内的内容存储位置l 对于文件内容和流化内容进行存储控制l 获取存储状态信息流服务控制功能模块完成以下功能:l 对客户端接入的流服务进行负载均衡选择l 对客户端的流服务进行计费相关的控制l 在发生故障或者节目未命中时,对流服务节点实施切换(重定向)客户端实体具有以下功能:l 可以向IPTV系统请求支持P2P内容传输的ES信息;l 可以向IPTV系统请求支持P2P内容传输的CS信息;l 可以向IPTV系统请求以支持P2P内容传输的P2P客户端信息;l 可以从其他具有P2P功能的客户端节点获取P2P多媒体数据;l 可以从CS或者ES获取P2P多媒体数据;l 可以对P2P多媒体数据进行组装;l 可以P2P的方式向其他P2P客户端传输多媒体数据3.3 参考点参考点 a:媒体交付系统的内容调度和内容分发(内容预处理)功能之间的接口。该接口功能包括:内容分发策略的下达等。参考点 b:媒体交付系统的内容分发(内容预处理)功能与内容存储功能间的媒体接口。该接口功能包括:节点内分发传送和接受媒体内容,直播时移媒体流中继,等。参考点 c:内容存储与流服务之间的接口。该接口功能包括:流服务所需数据的读取等。参考点 d:存储控制与内容存储之间的控制接口。该接口功能包括:分发内容的存储控制,内容存储负载均衡等。参考点 e: 流服务控制与流服务之间的控制接口。该接口功能包括:响应客户端流服务请求、计费、流切换等。参考点 f: 媒体交付系统的内容调度功能与存储控制功能之间的接口。该接口功能包括:获取媒体内容的存储信息,对调度的内容(媒体文件,直播流)进行存储管理和存储控制等。参考点 g:媒体交付系统的存储控制与流服务控制功能之间的接口。该接口功能包括: 获取媒体内容的存储信息,以支持流服务全局/局部重定向功能。参考点 h:媒体交付系统的内容调度功能与流服务控制功能之间的接口。该接口功能包括:获取流服务的服务信息,以支持根据服务状况的内容调度功能。参考点i:媒体交付系统的内容寻址子功能模块和客户端之间的接口,该接口功能包括:响应客户端的内容寻址请求。4 媒体交付系统体系架构4.1 系统体系架构基于P2PCDN结构的IPTV媒体交付系统成员主要包括边缘服务器,ES管理节点和全局服务器,边缘服务器实现IPTV系统中的媒体存储、调度、分发和流服务等功能。IPTV媒体交付系统的体系架构图如图3所示。业务管理P2PP2P门户导航P2PP2PP2P媒体交付CDN节点CDN节点内容运营图3 媒体交付系统体系架构图4.2 功能部署及系统接口在3.1节中描述了IPTV媒体交付系统的功能架构,罗列了各种内部功能模块及其关联性。这些功能模块在系统中的具体部署情况如图4所示。在ES管理节点上部署了内容调度,P2P功能(具体表现为域间发布/查找,ES节点/拓扑管理);在ES上部署了存储控制,内容存储,内容分发(内容预处理),流服务及控制,以及P2P功能(具体表现为内容发布/查找)等。E业务管理CDN全局服务器网络组建操作维护全局服务控制全局内容调度GDACHJ内容运营门户导航BES管理节点内容调度操作维护ES节点/拓扑管理域间发布/查找边缘服务器内容存储/控制内容分发/流服务及控制内容发布/查找KES管理节点内容调度操作维护ES节点/拓扑管理域间发布/查找边缘服务器内容存储/控制内容分发/流服务及控制内容发布/查找ILE操作维护操作维护MNFFOP图4 功能部署及系统接口图每个CDN节点包含至少一个边缘服务器ES,多个边缘服务器组成结构化的普通节点网络,每个普通节点网络都由ES管理节点进行管理,ES管理节点作为一种服务器,可以单独部署,或在边缘服务器上配置ES管理节点功能使其成为ES管理节点。ES管理节点管理所属普通节点网络中所有边缘服务器,ES管理节点的功能参见8.2节。域间查询ES管理节点ES节点管理域内查询ES拓扑管理内容管理/调度边缘服务器流服务内容存储/发布边缘服务器边缘服务器边缘服务器内容管理/调度流服务内容存储/发布内容管理/调度流服务内容存储/发布内容管理/调度流服务内容存储/发布内容分发/存储/流服务图5 ES管理节点与边缘服务器间关系图CDN节点之间通过ES管理节点组成的层次化的P2P超级节点网络,实现节点间内容自组织调度、流服务等功能。图6.1所示为一种层次化P2P网络,其中ES管理节点为在ES节点上配置ES管理节点的功能模块而使其成为ES管理节点。图6.2为另一种层次化P2P网络,ES管理节点由与ES网络分离的设备担当,可以在原有的CDN节点服务器上增加P2P功能,成为ES管理节点,也可以单独部署新的设备,辅助CDN节点服务器完成边缘网络的管理和互通。图6.1 将某些ES节点配置为ES管理节点组成层次化P2PCDN网络图6.2 采用单独部署的ES管理节点组成层次化P2PCDN网络4.3 系统描述基于P2PCDN结构的媒体交付子系统采用P2P技术对CDN网络进行改造,结合对等网络与CDN网络的优点,加强系统的自组织能力,提高ES的协作能力。在P2PCDN结构中,CDN节点包含一个以上处于网络边缘的支持P2P技术的边缘服务器,边缘服务器可属于不同的物理网络管理域,属于同一物理网络管理域内的边缘服务器之间通过P2P方式自组织成结构化的叠加网;不同物理网络的P2P叠加网络共同构成P2P叠加网络系统;CDN全局服务器向每个边缘服务器分发内容;在CDN节点内的边缘服务器不需借助CDN节点服务器就可以实现内容自组织存储、调度、媒体分发,流服务等功能。基于P2PCDN结构的媒体交付子系统成员主要包括CDN全局服务器,ES管理节点和边缘服务器,它们应具有如下角色/作用:(1) CDN全局服务器具有资源监控与管理、内容分发与控制的功能,并能够保存设备信息、服务状态和CDN网络配置数据等。(2) ES管理服务器兼有原CDN节点服务器功能和P2P功能。ES管理节点与边缘服务器直接交互,将边缘服务器的状态实时地上报给CDN 全局服务器; ES管理节点包括内容分发/调度、负载均衡、内容存储/控制、CDN节点操作维护、流服务/控制以及P2P内容发布/查找等功能。ES管理节点具有路由处理模块及与之相连的存储模块。存储模块保存归属于该ES管理节点的结构化P2P网络中所有边缘服务器ES的性能信息,存储所有ES节点的节点NodeID,节点状态信息,节点存储信息等基本信息。路由处理模块根据存储模块保存的节点NodeID和节点状态信息,将该P2P网络查询资源键值的节点路由到保存该资源键值的节点。(3) 边缘服务器实现内容自组织存储、调度、P2P内容发布/查找,及流服务等功能。根据由CDN全局服务器分发的内容,普通节点网络选择特定的边缘服务器以存储内容;存储内容的边缘服务器在普通节点网络中发布所存储的内容;根据用户请求,收到用户请求的边缘服务器在普通节点网络中选择最优的边缘服务器向用户提供内容。4.4参考点参考点 A:IPTV业务管理系统与媒体交付系统内容调度功能模块之间的控制接口。该接口功能包括:管理配置、资源上报、业务管理,等。参考点 B:IPTV内容运营系统与媒体交付系统边缘服务器的内容存储/控制功能模块之间的媒体接口。该接口功能包括:将外部媒体内容文件或媒体流存储入边缘服务器,等 参考点 C:IPTV内容运营系统与媒体交付系统全局服务器的内容调度功能模块之间的控制接口。该接口功能包括:通知媒体交付系统将外部内容文件注入媒体交付系统的媒体库和内容发布结果返回,等参考点 D:IPTV业务管理系统与媒体交付系统全局服务控制功能模块之间的控制接口。该接口功能包括:服务状态上报,业务计费控制,频道管理,播放列表下放等。参考点 E:客户端与媒体交付系统内容分发/流服务控制功能模块之间的控制接口。该接口功能为实现流服务控制功能,等。参考点 F:客户端与媒体交付系统内容分发/流服务控制功能模块之间的媒体接口。该接口功能主要是实现内容按片或按流向客户分发,等。参考点 G:门户导航系统与媒体交付系统流服务控制功能模块之间的控制接口。该接口功能主要是内容URL请求,频道URL请求,全局内容服务状态,等。参考点H:CDN全局服务器与ES管理节点之间的操作维护功能模块的控制接口。该接口功能包括:资源信息查询报告、设备配置管理等。参考点I:CDN节点间的控制接口。该接口功能包括:CDN节点内的媒体内容发布和查找,等。参考点J:ES管理节点内容调度功能模块与内容运营功能模块间的控制接口。该接口功能包括:通知内容运营模块将媒体以一定的规则注入到边缘服务器,并返回内容发布的结果,等。参考点K:ES管理节点域间发布/查找功能模块间的控制接口。该接口功能包括:CDN节点间的内容查找功能,查找结果返回,等。参考点L:ES管理节点的ES节点/拓扑管理功能模块与边缘服务器操作维护功能模块间的控制接口。该接口功能包括:边缘服务器状态上报,边缘服务器P2P网络拓扑信息上报,等。参考点M:ES管理节点域间发布/查找功能模块与边缘服务器内容发布/查找功能模块间的控制接口。该接口功能包括:ES管理节点转发域间查找请求,边缘服务器返回域间查找结果,等。参考点N:ES管理节点和边缘服务器的操作维护功能模块间的控制接口。该接口功能包括:设备配置管理,资源信息报告,等。参考点O:内容运营功能模块与边缘服务器的内容分发/流媒体及控制功能模块间的媒体接口。该接口功能包括:外部媒体内容文件或媒体流进入媒体交付系统,等。参考点P:边缘服务器内容分发/流服务及控制功能模块间的媒体接口。该接口功能包括:ES之间的内容分发,等。5 网络侧功能流程5.1 媒体发布流程CMSMMCS内容源ES通知MM发布P2P多媒体服务返回响应将状态设为待发布通知CS进行P2P多媒体内容发布(含内容源描述)RRS获取多媒体数据对多媒体数据进行切片处理返回响应通知RRS,多媒体服务已发布到CS上根据内容发布策略通知ES进行内容发布CS上采用P2P的方式向CS或ES获取切片多媒体数据返回响应通知RRS更新P2P拓扑结构RRS更新P2P拓扑数据结构返回响应返回发布后的多媒体服务访问信息将状态设为已发布RRS建立多媒体服务,建立P2P拓扑数据结构图7 P2P多媒体内容发布流程注:ES采用P2P的方式从其他ES或者CS获取需要的切片数据,这一流程也存在于CDN系统根据用户请求动态调度时,并且提供多媒体切片数据的ES不一定和请求数据的ES在同一个域中。P2P多媒体服务的发布过程是首先在CS将多媒体数据进行统一切片(保证多媒体节目内容不管是直播还是点播服务中都具有相同的分块编码方式)然后根据运营策略发布到边缘服务器的过程。媒体分片原则是直接影响IPTV用户体验的一个重要因素,因为它会影响到媒体切换时的速度。为提高媒体切换速度,CS对媒体内容进行分片时,可将媒体编码的基础帧设置于分片的预定位置,使客户端可以快速找到基础帧,在最短的时间内开始媒体解码。具有P2P功能的客户端将与CDN系统进行交互来构建P2P的拓扑网络,从而使用P2P多媒体服务。此过程在下面的章节进行详细介绍。ES存储了一定内容后,需要把本地存储的内容索引采用P2P方式在叠加网中发布到合适的ES节点进行存储。为提高P2P网络的服务质量,可以在P2P消息中携带优先级信息。网络设备接收到带有优先级信息的P2P消息,从中获取优先级信息,根据优先级信息对不同的P2P消息进行差分处理。此时的媒体发布流程分为两种情况:CDN节点内和CDN节点间的媒体发布流程5.1.1 CDN节点内的媒体发布流程 边缘服务器(ES)ES3ES2ES112图8 CDN节点内内容发布流程在普通节点网络中,存储内容的边缘服务器首先计算内容索引,再通过P2P算法,从本地开始经过有限的跳数(hops),将内容索引/边缘服务器信息(key/value对)发布到与内容对应的边缘服务器上。ES1发布某一内容,此内容索引的目的地址是ES3。首先,ES1判断自己是否与该内容索引对应,不对应,则ES1查找自己保存的边缘服务器信息,判断ES2可能对应此内容索引,ES1请求ES2进行内容索引对应判断;ES2执行与ES1一致的操作后发现与内容索引不对应,请求ES3;ES3执行内容索引对应判断后,发现自己与该内容索引对应,保存此内容索引。5.1.2 CDN节点间的媒体发布流程 CDN节点2CDN节点1边缘服务器(ES)45ES6边缘服务器(ES)ES3ES2ES1123ES46图9 超级节点网络内容发布流程存储内容的边缘服务器首先在其所属的普通节点网络中发布所存储的内容,再通过P2P算法,在超级节点网络中查找与该内容对应的超级节点(即ES管理节点),此超级节点在其普通节点网络中发布该内容。ES1发布某一内容,此内容索引的目的地址是ES3,以及CDN节点2的ES6上。首先ES1在普通节点网络中发布该内容(过程同9.1.1),发布结束后通知CDN节点1的ES管理节点ES3;ES3查找自己保存的超级节点信息,判断CDN节点2可能对应此内容索引,ES3请求ES4(CDN节点2的ES管理节点)进行内容索引对应判断;ES4执行内容索引对应判断后,发现自己与该内容索引对应,在普通节点网络中发布该内容(过程同9.1.1),内容索引最终被存储在ES6上。5.2 媒体查找流程5.2.1 CDN节点内的媒体查找流程边缘服务器(ES)1234用户ES4ES3ES5图10 普通节点网络内容查找流程在普通节点网络中,每个边缘服务器保存一部分内容索引/边缘服务器信息(key/value对),通过P2P算法,接收到用户请求的边缘服务器从本地开始经过有限的跳数(hops)找到内容索引,从而找到存储内容的边缘服务器。用户请求某一内容,此内容索引保存在ES3上。首先,用户请求ES4,ES4查找自己保存的内容索引,没有找到该内容索引,然后ES4查找自己保存的边缘服务器信息,判断ES5可能保存此内容索引,ES4请求ES5进行内容索引查找;ES5执行与ES4一致的操作后发现找不到内容索引,请求ES3;ES3执行内容索引查找后,确定自己保存此内容索引,给用户返回此内容索引对应的边缘服务器信息。5.2.1 CDN节点间的媒体查找流程CDN节点2CDN节点3边缘服务器(ES)1237用户边缘服务器(ES)456ES7ES9ES8ES6ES4图11 超级节点网络内容查找流程查找内容的边缘服务器首先在普通节点网络中查找内容索引,如果找不到,再通过P2P算法,在超级节点网络中查找与该内容对应的超级节点,此超级节点在其普通节点网络中选择最优的边缘服务器向用户提供流服务。用户请求某一内容,此内容索引保存在CDN节点2的ES6上。首先,用户请求ES7,ES7在普通节点网络中查找该内容(过程同9.2.1),没有找到内容索引通知ES9(CDN节点3的ES管理节点);ES9查找自己保存的超级节点信息,判断ES4(CDN节点2 的ES管理节点)可能保存此内容索引,ES9请求ES4进行内容索引查找;ES4执行内容索引查找后,确定自己保存此内容索引,在普通节点网络中查找该内容(过程同9.2.1)。6 客户端业务实现6.1 关键部件1 ES服务器内容管理,用于管理本地存放P2P多媒体数据;内容通信,用于请求或接收本地需要的内容,并处理其他节点发送的请求;SN管理,从进入ES的节点中选择、注销SN。簇管理器的主要作用是针对整个ES登陆的节点进行SN的选择和划分簇管理器:从进入该ES的节点中选择、注销SN。簇管理器的主要作用是针对整个ES登陆的节点进行SN的选择和划分。维护引导节点状态,选择引导节点及获取该引导节点的状态信息,并根据状态信息更新本地引导节点列表。2 点播超级节点SNSN是由ES从众多普通节点中选择的性能良好节点,为了获得可靠的服务SN节点可以位于ES上,SN具有以下功能:聚簇管理,管理缓存同一内容的普通用户节点的聚簇,可以提供其管理区域内,每一个内容的每一个块的节点分布情况,并记录内容块变化时的更新情况;存储处理,该内容的内容分块信息和地址信息的记录;状态信息维护,记录当前节点所处的状态;节点引导,作为引导节点辅助ES完成普通节点的加入/退出普通节点网络等操作。3 P2P客户端节点可以登录网络;可以选择具体的多媒体业务比如直播业务或点播业务或内容下载业务;待添加的隐藏文字内容2获取使用选择的P2P多媒体服务所需要的网络信息;可以判断是否缓存多媒体数据;6.2节点登录流程P2P客户端接入系统首先要在RRS上面进行登记,如果是第一次登录系统,P2P客户端的磁盘缓冲为空,不需要向RRS汇报缓冲的信息,只登录。否则的话RRS返回磁盘所缓存内容对应的VoD_ES信息,进而获得对应的SN,向SN登记P2P客户端缓存的内容块信息。具体流程如下图所示:P2P ClientRRSVoD_ESSNs启动P2P Client登陆汇报返回相关VOD_ES请求SN返回SN登记文件快信息修改注册登记的信息返回登记结果图12 节点登陆交互图6.3直播业务实现目前实现直播业务有多种方式,常见的有组播方式,应用层组播方式,以及单播方式。由于直播业务是非常耗费带宽,并且对实时性要求很高,所以单播方式的直播业务已逐渐被前两者取代。6.3.1 组播方式实现直播业务采用组播方式实现直播业务分发流程可以分为静态组播分发和动态组播分发两种。1)静态组播分发中,直播源按照静态配置的组播树路径送抵边缘服务器。2)动态组播分发,通过启用动态组播路由协议,在网络中建立组播源到边缘服务器的组播树,然后根据组播树进行动态推送。系统提供组播式的直播服务需要实现如下基本功能:1)边缘服务器及ES管理节点可以接收单播或者组播源的码流,按照配置,可以向客户端提供单播或者组播服务。其中组播包括动态和静态两种方式,要求边缘服务器和ES管理节点能够支持动态组播路由协议。2)边缘服务器应该具有从上级节点中继直播频道的功能。3)直播流经过的边缘服务器和ES管理节点能够实时存储内容,并根据缓存大小及时老化和更新内容,所存储的内容应该能够满足用户的时移业务请求。4)为提高组播可靠性,系统中每个ES及ES管理节点应支持重传窗口协议,具有接收功能和更新功能,前者接收上游节点发送的重传窗口通知消息,后者更新重传窗口通知消息,并将更新后的重传窗口通知消息发送给下游节点。4)系统应考虑性能问题,当某一频道的直播用户和时移用户很多时,必须做到频道直播码流(包含单播码流和组播码流)和时移存储码流尽量在节点内部完成共享。6.3.2 应用层组播实现直播业务由于现网中组播部署尚不完善,所以有不少采用应用层组播方式实现直播业务的实例。应用层组播可以充分利用每一个参与到直播业务中的客户端的空闲能力和缓存的内容为其他客户端服务,降低系统对内容源的要求,降低运营商成本,缓解网络升级的压力。应用层组播的重点在于多树拓扑的建立,合理的多树拓扑可以有效及充分利用客户端能力,降低直播时延,提高业务质量,并且不会对网络整体带宽产生太大冲击。构建多树拓扑已经有很多研究,可以从稳定性的角度出发构建多树。此时ES需要构建若干个子树,每一个子树用于传输一个数据子流;每一个子树包含一个或多个树干,每一个树干节点仅有一个树干子节点,每一个树干节点连接一个或多个叶节点;树干节点和叶节均为客户端节点;一个客户端节点只能作为一个树干的树干节点,可以作为多个不同子树的叶节点。配合相应的媒体编码方式,可以保证某个节点故障时,其他节点可以继续观看节目。也可以根据节点能力构建多树拓扑。具有不同能力(如上传带宽和在线长度,以及终端稳定性等)的终端节点在多树中的位置直接影响了多树的性能,应该尽量部署在多树的高处,即更接近根节点的位置。业界通常采用的方式是,根据节点的上行带宽信息确定节点的角色(根节点或者叶子节点),并根据子树上行带宽相等或相近的原则确定节点所归属的子树。最后根据节点的上行带宽信息确定其在所归属的子树中的位置。下图所示为根据稳定性构建多树的示例。图13 P2P直播网络拓扑图在直播原始视频流分发到ES上之后,原始视频流被编码成多个独立的子流(s1,s2,s3)。传输s1子流的拓扑树就称为子树s1。一个节点要想收看直播,需要加入多个子树获取不同的子流,然后解码复原成原始视频流才能观看。但是在为其他节点提供数据时,规定节点只能提供一个子流。如图中的节点4,它加入子树s1作为树干节点存在转发子流s1,而在其他所有的子树中它作为叶节点存在,不转发其他的子流。而且一棵子树中的每个树干节点只有唯一一个树干子节点,其他都是叶节点。如图中的节点4,只有子节点7是树干节点分发子流s1,其他子节点5、6都是叶节点接收子流s1但是不转发。这样设计的原因是由于P2P节点的上传带宽有限,比如现在ADSL宽带技术,普遍的应用是只提供512kbps的上传带宽,因此要想提供高带宽的流媒体直播服务,完全依赖用户节点的上传能力是做不到的。因此节点收看直播时,加入P2P网络中的各个子树获取一个或多个子流,不够的子流从ES_Live服务器获取。网络拓扑构建流程A. 首先节点N1登录网络;B. 节点N1和RSS通讯,指定要加入的频道、自己的IP、Port。C. RRS-P根据N1的IP地址选择一个或多个网络距离较近(通常是和它在同一个自治域的ES-P)且有空闲资源(带宽和CPU负荷)的ES-P。如果是公网节点要指定N1分发哪个子流。如果指定N1分发子流s1(也就是指定N1加入子树s1作为树干节点),那么RRS要返回与请求节点位于相同自治域的子树s1的树干底层节点信息。为了控制传输延迟,树干的层次不能太大,因此一棵子树会有多个树干,因此也会有多个树干底层节点。对其他的子树,由于N1不用分发这些子树所属的子流,因此RRS可以任选一些与请求节点位于相同自治域的空闲节点。空闲是指树干节点当前的叶节点数量不到规定的数量。RRS将上面的这些信息返回给N1。D. N1尝试加入s1获取树干子流。N1和RRS-P返回信息中的一个或多个子树s1树干底层节点建立连接,然后逐一向这些请求备选节点请求作为树干节点加入。如果被请求的节点没有树干子节点,则接受N1的加入请求。N1断开其他尝试连接并向RRS-P报告自己的连接关系。如果被请求的节点已经有树干子节点了,则返回该节点信息给N1,N1连接该节点作为请求的被选节点。重复以上过程直到某个节点接受它的请求。如果RRS开始就没有返回s1的底层节点信息或节点实效连接建立失败导致没有一个节点能接受它,那么N1直接向RRS返回的ES-P请求子流s1。N1加入子树s1后,要预留一部分带宽以便接受树干子节点的加入请求。E. N1尝试加入其他子树获取叶子子流。和RRS返回信息中的其他子树的节点建立连接,请求作为叶节点加入。如果被请求节点空闲则接受N1作为它的叶节点,否则拒绝。如果尝试一定次数还找不到能够接受N1的节点,N1直接向ES请求子流。6.3.3 P2P客户端节点直播播放流程P2P ClientRRSES其他P2P客户端请求加入直播频道返回ES和其他客户端信息连接其他客户端获得多媒体数据连接ES进行快速缓冲播放内容定期上报状态信息图14 P2P客户端直播流程P2P直播播放时连接其他客户端获得多媒体数据和连接ES进行快速缓冲的动作同时发生,这样可以提供更好的用户体验。6.4点播业务实现6.4.1 P2P点播拓扑建立首先是节点登录;P2P客户端节点点播节目,RRS返回节目对应的VoD_ES信息以及同一节目点播时间点临近的节点信息;节点从RRS上获取的是节点所需要的同一节目点播时间点临近的节点信息。并且根据系统状况,判断是否该加入P2P拓扑网络对下载数据进行磁盘存储。如果当前正在使用该内容的节点用户多于设定的阀值那么就进行内容存储否则不存储。节点向VoD_ES发送请求,得到SN信息。同时,通过VoD_ES获取快速缓存数据,并与获取的节点选择性的建立连接,进行数据请求。如果节点不能从当前拥有的节点中获取足够的数据流,向SN发起节点查询请求,取得节点,SN根据每一个节点在本地登记的状态,(点播模式、直播模式或者闲置状态),根据策略:优先选择闲置状态的节点,然后是点播模式的节点,最后才是直播模式节点,反馈给节点选择的原因:闲置节点拥有足够多的空闲资源,直播节点在拓扑架构中稳定持续获取/传递数据,消耗带宽。当直播节点获取到一部分完整的数据块的时候,检测到需要汇报登记时,则向SN登记(SN设定其管理的域内该内容块的上限,如果该部分数据块大于上限,那么返回不需要存储该块)。在传统的IP报文分段转发方式中,通信双方会首先探测两者之间通路的最大传输单元PMTU,在报文发送之前就按照PMTU对报文进行分片,以便减少分段传输中报文重组带来的巨大开销和时延。在对等网络中,尤其是对时间敏感的点播业务中,也可以采取探测PMTU的数据传输方法,提高内容分发的速度。源端网络设备探测源端与客户端间会话链路的PMTU,并将该PMTU通知源端,以供源端根据PMTU对数据进行分割传输。6.4.2 P2P客户端节点点播播放流程P2P ClientRRSES其他P2P客户端请求访问点播节目返回ES和其他节点信息(时间点相近)请求获得快速缓冲数据以及SN信息连接ES进行快速缓冲播放内容SN请求其他节点信息获取多媒体数据图15 P2P客户端点播播放流程注:实际应用时需要从众多节点中选取时间相近点的节点以及地理位置最近的节点进行连接,来获得数据并进行播放。6.5直播与点播共存的业务实现6.5.1 P2P点播与直播共存的网络拓扑错误!不能通过编辑域代码创建对象。图16 P2P点播与直播共存的网络拓扑示意图上图中左边部分为收看直播节目的节点,右边部分为点播模式及闲置状态节点。实线连接了直播拓扑,虚线连接了与点播有关的节点,构成了点播拓扑网络。节点E,F,G在系统中,有双重角色:自身的应用为直播模式,处在直播模式的网络拓扑中;其磁盘缓存的数据,被点播模式的节点利用,因而在点播拓扑中也扮演供流的角色。节点A,B,C,D以直播模式收看节目,一般来说,是因为首次进入系统,其磁盘缓存为空,没有数据块可供点播利用,因而只存在直播应用中,但其已经向该节目的点播SN进行注册,一旦缓存数据块下载完成即进行汇报,加入点播拓扑。节点I,J表示点播拓扑中的SN,节点O为没有参与节目收看的闲置节点,但是其磁盘有缓存数据,进入了点播拓扑结构。节点H,K,L,M,N表示点播模式中的普通节点。节点H,I,J,K,L,M,N,以点播模式收看节目,有三种方式获得视频流:从点播ES获取;从点播拓扑结构(点播模式(如H)或者直播模式(如F)的节点中获取;也有可能从并没有收看节目,但是其磁盘缓存中有数据的闲置节点(如O)获取。6.5.2 P2P点播与直播共存的播放处理本方案提供用户在观看P2P直播节目时,进行快进快退等操作则自动进入P2P点播模式的功能,具体实现方式如下图示:图17 点播直播共存时处理流程示意图6.5.3 直播模式切入点播模式节点由直播模式切入点播模式,其视频流的获取模式一般来说会发生变化。这时,节点需要从直播拓扑图退出,加入点播拓扑图;或者保留在直播拓扑中的位置,避免直播拓扑结构的频繁变化,减少扰动。后种情况下,点播节点在直播拓扑中,作为中间节点转发视频流。优点是,稳定直播拓扑结构,避免退出操作;缺点是直播拓扑结构可能变得异常庞大,许多中间节点并不直接需要直播模式提供播放流,建议节点从直播拓扑中退出。一般说来,一个节点进入点播模式后,在某个时间后与直播同步的概率极小,可以不考虑某节目点播节点后续进入该节目直播模式的情况。直播节点拖动进入点播模式交互图如下:图18 直播节点拖动切入点播模式交互图1. 用户选择直播模式下拖动2. 向RRS登记退出直播模式,将要切入点播模式和切入的播放点,这时节点通知RRS退出直播列表,进入点播列表,RRS据此更改其保存的数据,符合节点当前的实际情况。 3. 从RRS处返回拖动后的播放时间点的节点信息,可供建立连接时选择节点4. 查看本地是否拥有足够的数据,如果没有那么就节点向VoD_ES请求快速数据缓冲5. ES返回数据给节点,以减小拖动延迟6. 节点向SN请求登记有请求数据的节点7. 从SN节点列表8. 节点按照一定策略,经过选择与部分节点进行连接(可选择节点为RRS所返回的和SN返回的节点的并集),下载数据,或者VoD_ES中获取数据,观看节目9. 检测是否已经下载了一部分完整的数据块,如果是那就登记该数据块,进入11,否则,继续获取数据(步骤9)。10. 待到某些内容块下载完成,向SN登记信息SN根据其所管理域内该内容块的存储情况,决定是否该块是否缓存。(如果文件级缓存Num_FileN1判断为真,则不用判断,直接存储,向SN登记)11. SN修改其数据结构RegInfo。12. 返回登记结果对于原来的直播拓扑,即将退出的节点可以有两种选择:主动发起退出请求,比如向RRS、直播ES或者其邻居节点发起退出通知,这样,自组织网络可以主动应对拓扑结构的变化;另一种方法是被动的,不主动通知其在直播拓扑中的节点,而是直接离开,由其邻居节点探测到他的离开,再采取策略,自适应。图19 节点退出直播时与直播ES交互图1. 用户选择切换模式,进入点播2. 节点退出时主动发出通知,通知Live_ES3. Live_ES向其它节点发出通知4. 该网络自组织动态调整,以应对网络中的节点变化6.5.4 直播节点切换节目直播节点切换节目的过程与第一次选择节目的过程相似,只是要保持其在点播拓扑中的位置,通知相应的SN修改节点状态信息,且退出其在上一个节目中的直播拓扑。6.5.5 点播节点切换点播节点可切换进入直播模式、切换节目进入点播或直播。切换进入直播模式,与第一次进入直播模式相同,其在点播拓扑中的位置仍然要保持,SN修改节点的状态信息,进入新节目的直播拓扑;切换节目进入点播或者直播,与第一次进入点播和直播的交互是相同的,其在原来点播拓扑图的位置也要保持,并通知具有缓存数据登记的SN修改节点的状态。6.6 P2P客户端文件下载P2P视频点播实现方案的实质是采用渐进式下载,边下载边观看。P2P客户端的文件下载与之不同之处在与,P2P客户端的文件下载会存储整个文件,随之而来的是SN节点上管理的内容聚簇信息的范围扩大,但是处理机制和原理类似,具体流程如下。RRS接收P2P客户端下载文件请求;根据请求信息确定P2P客户端所属的网络自治域; RRS查找该网络自治域内存储文件的边缘服务器ES,并向客户端返回至少一个存储文件的ES的地址;ES响应P2P客户端的下载文件请求,记录客户端信息与文件的对应关系,并且根据ES上的记录,向客户端返回下载此文件的其他客户端信息;P2P客户端从ES或其他P2P客户端节点下载文件。
展开阅读全文