DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1120|回复: 0
打印 上一主题 下一主题

[待整理] P2P与组播结合实现高质量IP视频直播承载

[复制链接]
跳转到指定楼层
楼主
发表于 2014-10-13 15:41:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1、高质量IP视频直播特点
  随着网络技术的发展与普及,全程数字化、网络化的视频直播业务已开始应用,如目前在开展的IPTV业务、PC终端上的实时广播业务、广播式远程会议业务等。这些业务由于实时性、视频质量要求均较高,所以在IP网络传输所占用的带宽也较高。
  在目前应用的互联网音视频点播/直播应用,一般使用的带宽都在512 kbit/s以下,所以即使使用高压缩率的编码技术如MPEG4/H.264,其观看效果也不理想,严重影响业务的推广。提高视频直播的带宽是解决视频质量的最根本办法,一般说来,1.5 Mbit/s的MPEG4视频直播流观看效果已接近目前的有线广播电视效果,4 Mbit/s可以优于DVD的效果。1.5 Mbit/s以上的高带宽视频直播由于占用的带宽高,所以给IP网络带来了巨大的压力。高质量视频直播对IP网络的要求可归纳为以下重要的几点:
  (1)高带宽:高质量视频直播要求视频带宽至少在1.5 Mbit/s以上,加上音频占用的带宽及开销,高质量视频直播平均需要的带宽在2 Mbit/s以上;
  (2)低丢包率:数字化视频如果出现丢包,很容易出现马赛克现象,严重的还会引起丢帧、停顿等现象,影响用户体验;
  (3)低时延及抖动:时延及抖动会造成用户在开始收看或切换频道时的延时等待时间过长,目前的有线电视切换时间小于1 s,由于数字化的解码需要,目前最小的IP直播都大于1 s。
  要保证用户的使用体验,高质量IP视频直播承载必须满足以上特点的要求。
2、组播技术在实现高质量视频直播存在的问题
  利用流媒体技术把实时节目(如现场直播的体育节目)传送到用户端,由用户通过电脑或加上机顶盒的电视机收看是流媒体的重要应用。目前主要的网络传输方式包括单播和组播。由于单播需要建立服务器和客户端的点对点连接,对服务器及网络资源的要求较高,所以在大量用户同时收看同一实时节目的场合较适用组播技术。
  组播技术(也称多址广播或多播)技术,是一种允许一台或多台主机(组播源)发送单一数据包到多台主机(一次的,同时的)的网络技术。组播作为一点对多点的通信,是节省网络带宽的有效方法之一。组播能使一个或多个组播源只把数据包发送给特定的组播组,而只有加入该组播组的主机才能接收到数据包。目前,IP组播技术被广泛应用在网络音频/视频广播、AOD/VOD、网络视频会议、多媒体远程教育等方面。
  组播技术虽然可以减轻服务器的负担,而且大大减少了骨干网的网络流量,但组播技术在承载高质量视频方面的缺点也非常明显,其主要缺点包括:
  (1)组播的可靠性不高
  组播使用UDP协议作为运输层协议,UDP协议由于没有错误重传机制,所以客户端的播放质量无法得到有效保证。由于组播的这个重大缺点,使得利用组播进行商业视频业务的成功案例极少。
  (2)设备对组播的支持不足
  目前中国主要的电信运营商中,都存在多种不同厂家不同型号的设备,这些设备对组播协议的支持程序不一,设备间的互通性还存在很大问题;在电信运营商中大量存在的ATM DSLAM不支持组播功能;BRAS对组播的支持能力也较弱。这些都是造成组播在国内电信运营商中未能进入商用的主要原因。
  (3)组播的可控可管理能力较弱
  由于组播协议本身是一种无控制的通信协议,其可控可管理能力较弱。如组播对相关IGMP信息如不作特殊处理,容易出现未授权用户通过IGMP请求非法接收组播流的风险;由于难以对所有组播源的合法性进行检查,存在非法用户利用组播源攻击组播网络的可能;由于组播网络是基于目前的宽带网络,其设备众多管理复杂,所以防止非法用户将组播源接入到组播网络中的难度相当大。
3、P2P技术在实现高质量IP视频直播存在的问题
  P2P技术是通过参与系统的节点之间的直接交互来实现信息资源和服务的共享,突破了传统的客户端/服务器模式,强调节点之间的“对等性”,即P2P系统中每一参与节点兼有服务器和客户端两种身份。P2P组网架构在媒体存储、交换和传输等领域存在先天优势,蕴藏着巨大的创造力和应用前景。
  P2P技术具有低成本、高扩展性、高服务质量、高安全性等先天优势,能够解决基于C/S架构和CDN架构存在的不可扩展性、投资回报率低、热点效应等问题。其成功部署应用将促进媒体服务的开展,有助于优化网络流量,提高现有资源利用率,节省投资,带来良好的经济和社会效益。但以P2P实现高质量视频直播承载也存在相当的劣势,主要包括:
  3.1 在ADSL环境下成本优势不明显
  ADSL是一种非对称带宽的网络技术,其下行比上行带宽要大得多(下行最大8 Mbits/s,上行最大512 kbit/s)。由于高质量IP视频直播所需的带宽在2 M以上,这意味着,如果某用户要依靠P2P邻居为其提供数据,则最少需要4个用户(4×512 kbit/s上行)为其数据流。由于直播用户均是一边收看一边为其他用户提供服务的,接收数据流的用户与发送数据流的用户是相同的,所以在ADSL网络环境下,还需大量服务器为用户提供数据流,其成本优势不明显。相对而言,组播技术的成本优势明显。
  3.2 增加接收时延
  使用P2P直播时,除了与组播同样需要网络时延、解码时延等因素外,P2P还增加了Cache时延。由于P2P技术是通过Cache存贮数据而为其它用户提供数据流,所以Cache时延的大小如果太小则效果会很差,目前一般P2P Cache时延均在十几秒以上,大大降低了用户的使用体验。
  3.3 网络流量流向难以控制
  P2P用户数量大,难以对用户的网络流量流向进行优化控制,将形成许多跨城域网、跨骨干网的流量,不利于网络运营商进行网络规划及设计。
  3.4 P2P与组播结合实现高带宽IP视频直播技术思路
  通过前面章节分析可以发现,P2P与组播在承载高带宽IP视频直播方面各有优点,也均有不尽人意的地方。二者是否能结合在一起,利用各自的优点而克服其主要缺点?由于P2P是一种应用层的技术,而组播主要是网络层的技术,我们设计了一个P2P环境下的组播传输系统,很好地解决了高带宽IP视频直播目前的问题。
  P2P环境下的组播传输系统基本逻辑图如图1所示。

图1 P2P环境下的组播传输系统基本逻辑

  其主要逻辑组件包括:
  (1)组播服务器。组播服务器负责发送组播流。组播服务器可以是一个分级的逻辑结构,用户可通过多种方式从中心内容服务器取得内容,如直接与中心内容服务器建立组播路径,或中心内容服务器通过单播传送至边缘内容服务器,用户端到边缘服务器建立组播路径等,这由具体的网络实现决定。
  (2)管理服务器。管理服务器负责对整个系统的用户进行管理。
  (3)客户端。客户端提供内容的本地存储,并与其余客户端建立P2P关系,为对方提供节目。
  客户端接收P2P环境下的组播关键流程如下:
  (1)客户端1接收组播并缓存
  客户端1通过IGMP(Internet Group Management Protocol,互联网组管理协议)请求加入组播组,缓存了一定时间的节目后再开始播放。
  在客户端有两个缓存,一个缓存保存了接收到的数据包,称为原始缓存;另一个缓存把原始缓存的内容复制过来,并解包合成工作的内容,称为播放缓存。
  原始缓存通过检查UDP包的包号知道哪些数据包是否缺失,如果原始缓存发现了有丢包时,就会向群内用户发送请求重发。当原始缓存的包完整后,原始缓存把数据包复制到播放缓存,由播放缓存解包合成图像内容。
  这两个缓存的关系如图2所示。

图2 原始缓存与工作缓存关系示意

  由图2可见,原始缓存的空间比工作缓存的空间要大。原始缓存保留的数据包括了部分工作缓存已经删除的数据,这是考虑到在分布式环境下,各客户端可能的时延不同,可能有别的用户需要重传该部分数据。
  原始缓存及工作缓存的时间可根据网络的状况调整。缓存结构应与具体P2P应用软件的分片方式相适应,缓存的大小应为P2P应用软件分片大小的整数倍。缓存的数据先不进行拆包的工作,保留UDP包的包号,播放时把缓存的内容复制到播放缓存再进行拆包合成。
  (2)多个客户端接收同一组播内容
  客户端2同样加入这个组播组,其过程与客户端1相同。以后加入的客户端过程类似。
  (3)管理服务器把客户端组成群
  管理服务器把几个客户端归成一个群(数量可调,建议5个),在一个群内的用户建立点对点的关系。
  群指一组建立点对点关系的客户端,建立群的目的是为了组播重传,当群中的一个用户丢失某个数据包时,它将向群内用户发送请求重发,群内用户从自己的缓存中为其提供相应数据。
  考虑到组播丢包时可能是数据网的某个设备或节点出现问题,所以群内用户分布应跨城域网,以避免城域网内某个设备或节点出现问题时影响用户使用组播。
  群的建立由管理服务器统一调度。
  群是一种交叉的方式,每个用户可能属于几个群,如图3所示:

图3 组播群示意

  (4)群内组播重传机制
  当客户端1发现缓存上的缺少了某个包时(通过包号检查),它向群内的所有用户发送广播包,询问哪个用户有这个包,如果群内的某用户有,它将向客户端1发送这个包,客户端把这个包放入缓存。如果有多个用户发送了数据过来,客户端1将忽略后到的包。重发机制的过程如下:
  ①客户端向群内的所有用户发送请求,请求别的用户为自己发送丢失的数据包,请求信息包括需要的数据的UDP包号;
  ②群内用户接收到请求后,检查自己的原始缓存,如果有该丢失数据包,则向请求用户发送该丢失数据包,发送时把丢失的整个UDP数据包(包括UDP包头)作为重传数据包的Payload(净荷)进行传送;
  ③请求重发的客户端接收到重传的数据包后,把它放入原始缓存相应队列;
  ④请求重发的客户端只使用首先收到的重发数据包,丢弃其余数据。
4、小结
  本技术方案解决了P2P与组播在承载高带宽IP视频直播方面不尽人意的地方中,由于本技术方案使用了分布式的重传机制,对内容服务器的负载没有影响,而且本技术方案无需发送接收确认信息,减小了服务器的负载和网络流量,是一种值得推广的技术。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2024-9-26 05:14 , 耗时 0.175863 秒, 19 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表