PeerCast网络介绍

PeerCast系统介绍
1 概述
PeerCast[1,2]是开源的P2P流媒体软件,P2P流媒体与传统的流媒体不同,没有集中的中央流媒体服务器,任一节点都可作为种子节点进行广播,每个节点在作为Client从别的节点接收媒体数据进行播放的同时,也要作为Server向其它节点提供服务,其服务质量随着整个网络节点数目的增加而提高,与传统的流媒体服务器相反。
目前PeerCast仅支持广播,暂不支持VOD形式的点播。支持的流媒体格式:MP3、WMA、 AVS、WMV 和NSV等。
       本文主要介绍PeerCast的系统结构、工作流程、P2P算法以及存在的问题。
2 系统简介
2.1      系统结构


       PeerCast系统结构
系统主要由流媒体服务器(提供广播源)、PeerCast(广播/中转)、播放器(播放PeerCast获得的媒体数据)和Yellow Page(管理和显示频道信息)组成。
Yellow Page包括PeerCast(不同与其他PeerCast,整个系统只有一个,负责组织、管理PeerCast之间的频道信息通讯)和频道Web页面(显示频道信息)两部分。
频道以广播源节点为根组成一个树状结构。
2.2      网络协议


PeerCast网络协议
目前支持的流媒体协议有HTTP、MMS和RTSP,媒体源和广播的PeerCast之间使用这些协议连接。另外在播放器和本地PeerCast之间也使用和媒体源相同的协议,从本地PeerCast获取收到的数据、播放。
PeerCast之间使用PCP协议(自定义协议),数据和路由信息均通过PCP协议传递,PCP协议是在TCP/UDP传输层之上的应用层协议,目前系统传输层使用的是TCP协议。
Yellow Page有2部分组成:PeerCast和Web页面,PeerCast管理整个系统PeerCast之间的频道信息通讯,Web页面从PeerCast的特定端口读取以XML形式组织的频道信息,并将信息解析为HTML,发布在Web页面。
2.3      频道组织结构


PeerCast频道组织结构
PeerCast频道组织采用了树状结构,以频道源为根节点组成了应用层组播树。频道源通过Tracker实现对外路由信息传递,频道源将频道信息广播到Tracker,Tracker将收到的信息传递到YP,因此,YP有全部频道的路由信息。Tracker用于连接广播源和Yellow Page,由网络中相对比较稳定的节点(比如广播源)组成。
3 工作流程
3.1      频道广播


频道广播
1.    创建频道,生成一个唯一的用16个字节表示的频道ID,分配频道缓冲区;
2.    与Media Server建立网络连接并开始接收数据;
3.    连接到YP获得Tracker;
4.    连接Tracker,发布频道信息(ID和IP等);
5.    Tracker将收到的频道信息广播到YP;
6.    Yellow Page的Web页面访问PeerCast(Yellow Page)获得频道信息,以HTML形式发布。
3.2      频道中继
 


频道中继
1.       与上游节点(流媒体服务器或者别的PeerCast节点)建立网络连接,并接收频道的媒体数据包;
2.       将接收到的数据包放入该频道的循环缓冲队列;
3.       接收到下游节点(别的PeerCast节点或者本节点的媒体播放器)的连接请求后,向其发送循环缓冲队列中的数据包。
 
3.3      频道播放


频道广播
1.       从YP的Web页面看到某个频道,点击播放,系统将播放参数传递给PeerCast,PeerCast向YP查询频道的位置;
2.       YP根据路由表和路由选择算法返回多个频道源(可能是Relay)给PeerCast;
3.       与上游节点建立网络连接,将接收数据包放入循环缓冲队列;
4.       PeerCast调用Player,将收到媒体数据映射为包含URL的媒体文件,并将地址传给Player,Player通过此地址连接PeerCast,获取循环队列中的数据。
 
4 算法原理
4.1      路由协议传递


路由协议传递
 
 
一个PeerCast维护4类对外的连接:CRelay(PeerCast所看频道的上游或通过该PeerCast看频道的下游)、COut(PeerCast相连的Tracker)和CIn(PeerCast作为其他节点的Tracker)。与某个频道相关的路由信息(例如某个频道增加了观看者,即多了一个数据源提供者)在CRelay之间传递。新广播的频道和新增Tracker(某个节点成为Tracker,广播源节点有机会成为Tracker)的信息在COut和CIn之间传递。
路由信息通过频道的信息更新函数(broadcastTrackerUpdate)定时产生,使用与其相连的PeerCast向外传播,频道信息更新函数是路由信息传递的源动力。
4.2      查找算法
       YP收到请求某个频道的路由信息时,查询其路由表,根据最近最少使用和频道源节点的带宽容量,返回多个频道源地址。最近最少使用:距离上次访问时间差最长的节点。带宽容量:节点目前提供服务的带宽总和小于其设定带宽。
如果YP本身有被查找频道的数据,并且符合查找算法的要求, YP将为请求端服务,创建发送对象从该频道的循环队列读数据发送给请求端。


查找算法流程图
查找算法流程图说明:
同一网络:使用内网IP,在一个网关(NAT)内的节点,这些节点的特点是对外连接使用同一个IP。
NAT内节点:使用内网IP的节点,这些节点位于网关内,所以又称为防火墙内的节点。
发送连接信息到NAT内节点:由于使用内网IP的节点不能够接受外部连接,所以当请求频道的节点IP为外网IP,而频道源节点为内网IP时,将通过与频道源节点连接的Tracker给位于内网的频道源节点发送消息,通知有外网节点需要其媒体数据,频道源节点收到消息后主动向外网请求节点发起连接,传输媒体数据。这是穿越NAT的一种方法,由NAT内的节点主动发起连接。
4.3      离开/断线处理
4.3.1      路由表
通过4.1提到的路由传递机制,本地保存了与其相连的PeerCast发送的路由信息。在需要查找路由信息时,先查找本地路由表,如果没有则求助YP。
4.3.2      断线/离开
当检测到连接节点断线时,先查找本地路由表获得路由信息,连接新的接点;如果查找或连接失败,则连接到YP获得路由信息。
对离开没有进行单独处理,节点离开相当于断线。
5 问题和讨论
5.1      存在的问题
5.1.1      查找策略
目前的路由查找策略是最近最少使用和服务带宽容量相结合,没有考虑节点之间的延迟,根据延迟选择最佳节点。
5.1.2      断线/离开重连
断线/离开时,节点所服务的子节点各自处理,子节点查找本地的路由表或连接到YP获得频道源,连接新的频道源获取数据。这种处理增大了子节点的媒体中断时间,降低了收看的质量。
5.1.3      树的平衡
       算法在节点加入和离开时没有平衡树的结构,这将使树结构不平衡、层次比较高,从而增加了节点之间的传递延迟。
5.1.4      树型结构的缺点
树型结构的特点是节点仅从一个上游节点获取频道数据,不能很好的发挥P2P优势。
5.2      未来计划
PeerCast尽管有一些问题和不完善的方面,但提供了一套完整的P2P流媒体解决方案,有很多可以借鉴的地方,比如频道发布和Yellow Page管理等。
在今后的研究中,计划在PeerCast基础上重构一个P2P演示平台。
平台有以下几个特点:
1.       系统架构松散,可扩展,能够运行多种P2P算法,以便于对比分析和研究算法。
2.       能够输出完备的测试信息,比如:媒体延迟、带宽占用、流畅度和掉线影响度等,通过这些信息可以量化P2P算法。
3.       基于DirectShow的播放器。目前对于标准的ASF和WMV等媒体源,使用Windows Media Player播放,对于基于RTSP的AVS频道源,使用mpeg4ip中的播放器播放,该播放器效率和稳定性不高。所以需要设计基于DirectShow的AVS P2P播放器。另外,可以将播放缓冲和P2P的缓冲相结合,提高播放流畅度,降低延迟和抖动。
 
6 参考资料
[1]      www.peercast.org
[2]      H. Deshpande, M. Bawa and H. Garcia-Molina, “Streaming Live Media over a Peer-to-Peer Network”, Stanford database group technical report (2001-20), Aug. 2001.


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/anqiongdy/archive/2006/10/24/1348635.aspx

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值