Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3335369
  • 博文数量: 530
  • 博客积分: 13360
  • 博客等级: 上将
  • 技术积分: 5473
  • 用 户 组: 普通用户
  • 注册时间: 2006-07-13 13:32
文章分类

全部博文(530)

文章存档

2017年(1)

2015年(2)

2013年(24)

2012年(20)

2011年(97)

2010年(240)

2009年(117)

2008年(12)

2007年(8)

2006年(9)

分类: 系统运维

2010-10-05 15:54:12


  通过前面章节分析可以发现,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(净荷)进行传送;

  ③请求重发的客户端接收到重传的数据包后,把它放入原始缓存相应队列;

  ④请求重发的客户端只使用首先收到的重发数据包,丢弃其余数据。

阅读(2851) | 评论(0) | 转发(0) |
0

上一篇:高清视频概述

下一篇:PropertyChangeEvent事件

给主人留下些什么吧!~~