基于P2P的流媒体在网络中的应用
来源:用户上传
作者: 沈 军 张洪海 詹 晓
摘要:基于 P2P 技术的流媒体系统,通过播放节点的相互协作,使整个系统的服务能力随节点数量的增加而增加,具有可扩展性。笔者通过对基于P2P的视频直播系统设计,探讨了其在网络中的应用。
互联网已经进入多媒体通信时代,流媒体作为一种多媒体传输技术,正逐渐成为互联网的主流应用。但传统的基于 C/S 模式的流媒体系统存在服务能力瓶颈,很难适应大规模的流媒体应用。为此,研究者们提出了基于 P2P 技术的流媒体系统,通过播放节点的相互协作,使整个系统的服务能力随节点数量的增加而增加,具有可扩展性。
P2P 流媒体系统通过节点缓存部分媒体数据并提供给其它节点,来减轻服务器的负荷,进而提高系统服务能力。系统通过一种节点自组织算法,使播放同一媒体文件的节点自行组织成一个以索引服务器为根的树状等级制 P2P 网络,并在树状网络基础上采用逐级上报的资源信息发布机制,使资源信息集中于负责响应查询的索引服务器上。这使得系统具有较高
的查询效率,并可在能力不同的节点间有效均衡负载。系统在选择数据发送节点时,综合考虑带宽、距离和连接数等因素,可在最大程度上降低服务器负荷,并可避免远距离传输、降低主干网络负荷。在数据传输时,系统的动态监控机制可以保证节点的下载速度满足播放的要求。此外,系统还通过信誉机制来鼓励用户积极共享,以提高系统性能。
一、P2P 概述
P2P 的全称是 peer-to-peer,在英语里 peer 的意思是“(地位、能力等)同等者、同事、伙伴”,体现一种平等的关系,所以 P2P 网络一般也称为对等网络。在 Internet 初期,所有的互联网上的系统都同时具有服务器和客户机的功能,只是后来那些架构在 TCP/IP 之上的应用层软件采用了客户机/服务器的结构,如浏览器和 Web 服务器、邮件客户端和邮件服务器,才使得互联网变得不平等起来。
目前 P2P 在以下几个方面已经得到了广泛的应用:
1.大规模计算:通过采用 P2P 技术,将大量被闲置的普通计算机的计算能力利用起来,来完成以前通常只有昂贵的超级计算机才能完成的大规模计算任务
2.信息检索:利用 P2P 技术开发出的强大搜索工具有实时、全面的特点,可以搜索到每个节点上的最新信息,有着传统的搜索引擎,如 Google(只能搜索到 20%-30%的资源信息,且更新不及时),所无法比拟的优点
3.数据分发:与传统的 C/S 系统相比,P2P 系统有着较高的数据分发效率,基于 P2P 的流媒体应用就是利用 P2P 技术来高效分发媒体数据。
4.其它应用:除了以上几方面的应用外,P2P 技术还可以应用在如即时通信、海量数据存贮等方面。
二、P2P 流媒体技术综述
基于 P2P 的流媒体系统主要分为两大类,一类是基于应用层多播( applicationlevel multicast, ALM)的系统,另一类是基于单播(unicast)的系统。相对于 IP 多播,应用层多播技术将多播转移到了应用层,可以解决 IP 多播没法在 Internet 广泛布署的问题。应用层多播与 IP 层多播的根本区别在于,IP 层多播在 路 由器的地方进行数据包的复制,然后由路 由器发送给接收者,而应用层多播则是在用户终端节点(end host)处复制,再由
终端节点向其它终端节点转发。
基于单播的 P2P 流媒体系统,也称为非同步 P2P 流媒体系统。尽管有的基于单播的 P2P 流媒体系统中也采用一对多的数据传输方式,但传送的并不是相同的数据,仍然是单播的性质,节点间没有同步的关系。基于应用层多播的 P2P 流媒体系统比较适合于实时视频直播,对于视频点播来说,效率并不高,特别是当用户的播放进度相差较多时。基于应用层多播的 P2P 流媒体系统的另一个问题是:多播树中的叶子节点只作为客户端,没有参与媒体数据的分发,而树中的叶子节点的数量所占比例又非常大,这部分节点没有得到充分利用。对基于单播的 P2P 流媒体系统,其节点利用率较高,每个节点不管带宽大小都能参与系统服务。基于单播的 P2P 流媒体系统主要用于点播应用,对于实时直播却不太适用。
三、基于P2P的视频直播系统设计
利用 P2P 技术为视频直播提供一种经济可行的方案。具体地说,就是利用用户端的空闲
带宽资源,通过用户之间相互共享媒体数据、共同参与系统服务,来达到扩展系统服务能力的目的。
(1) 能够满足流媒体播放的要求。
流媒体播放对数据传输有时序性要求,即媒体文件数据要按从文件头到文件尾的顺序下载。另外,流媒体播放要求数据下载速度必须大于播放速度,否则就会影响播放质量。视频直播系统通过对原始视频的捕获封装并将其划分为片段,按片段的顺序逐个下载来满足时序性要求,同时采用一种动态监控机制,使下载速度在总体上维持在播放速度之上,来保证播放质量。
(2) 能够在能力不同的播放节点间均衡负载。
播放节点之间在带宽、设备处理能力上各不相同,决定了节点参与系统服务的能力也各不相同。所以 P2P 流媒体系统要有均衡负载的能力,避免出现有的节点被闲置,而有的节点却又不堪重负的现象。视频直播系统在节点组织与管理、数据发送节点的选择、数据传输调度等方面都充分考虑到了节点间的能力差异,使每一个节点的服务能力都能得到适度利用。
(3) 能够提供服务质量保证。
在 视频直播中,当用户想要加入系统时,需要向一个起控制作用的索引服务器提出申请,索引服务器根据系统的服务能力要大于总的带宽需求的原则来决定是否接纳用户的请求,在带宽上为服务质量提供了基本保证。另外,系统在数据传输时采用了一种动态监控机制,来保证用户的下载速度满足播放的要求。
(4) 减轻底层主干网络的负担。
流媒体文件通常比较大,传输时间长,带宽占用高,给底层网络的带来的负荷较重。视频直播系统的数据源选择策略可以在一定程度上使数据传输尽可能本地化,避免远距离传输从而减轻主干网络的负担。
转载注明来源:https://www.xzbu.com/1/view-241988.htm