论文部分内容阅读
P2P流媒体技术是近年流行的网络多媒体传播技术。流媒体以其边播放边下载的特点,大大减小了等待时延,同时也降低了对系统缓存的需求量。随着Internet的普及和web访问的日益频繁,出现了视频点播VOD(Video On Demand)和实时流媒体传输服务。但这两种服务很多仍然以传统的客户端/服务器(C/S)体系结构为基础,这种体系结构下,所有用户的流媒体服务完全只由服务器提供,但随着用户的逐步增加,服务器的负载和压力也将急剧增加。在解决实时流媒体传输的问题上,许多研究者提出了IP组播技术,这个技术利用“一路发送,多路共享”的思想来减少数据包在网络中(IP层)的传输,从而减少网络带宽的耗用。但因为是基于IP层的组播,所以该技术必须要得到底层路由器的支持。可是基于简单原则和分层体系结构的要求,现实中很多路由器仍然不支持IP组播,因为这会增加路由器用于保存分组信息导致的额外性能开销,从而影响报文转发这个主流业务。为了解决该问题,出现了基于P2P技术的实时流媒体。它利用P2P系统的高容量、易扩展、廉价以及自组织等特点再与流媒体技术有机结合,从而得到了广泛应用,比如当前主流的QQLive,PPLive,UUSEE等。通过这种技术,可以大大缓解中心服务器的压力,并具有良好的服务和扩展能力。但是和普通的P2P应用不同,在流媒体技术中,实时性占据着很重要的地位,所以P2P流媒体技术需要更好地分割、快速重传丢失的资源来满足实时性的要求。本文描述的P2P实时流媒体系统由P2P实时流媒体服务器、TCP代理和P2P客户端构成。本文主要对P2P实时流媒体服务器的设计、实现和系统测试做较为全面的阐述。该服务器既是数据源又是资源索引服务器,它着重从资源管理的角度实现了流媒体数据的保存、分配和发送,并借鉴流媒体技术中的应用层组播模型以及NAT穿透模型来提供P2P的传输支持。同时,作为原始数据源,该服务器在多通道服务以及C/S和P2P混合传输的问题上也进行了有益的探索。该系统能够应用于许多场合,例如IPTV,视频会议,以及现场直播等实时性要求高的地方。