随着我国计算机网络的飞速发展,网络视音频技术得到了广泛的应用。现今人们已经从传统的娱乐方式(例如:收音机,电视)向网络互动媒体娱乐方式转变,而流媒体视频点播技术更是满足了人们这种互动式娱乐的需求。但因我国网络基础和服务器能力的制约,较大容量的用户服务仍是限制流媒体视频技术发展的一个瓶颈,如果采用P2P技术与传统流媒体技术相结合,就可以避免大量用户服务的瓶颈,这不仅减轻了服务器的负担,同时也提高了网络资源的利用率。
P2P视频点播技术是利用分布式的思想把用户的资源进行分类,这不同于一般的应用层多播,它只对正在播放的用户才参与服务。在用户的使用过程中P2P视频点播系统也是比较灵活的,用户可以随时断开网络或连接,而且共享资源过程中对带宽的要求也不高,这极大的方便了用户的使用,同时在接收资源时用户采用一个接收点向多个发送者传输数据的方式,并根据接收用户和发送者的带宽来决定数据的大小,提升了网络的利用率。
P2P视频点播的组成是以流媒体服务器、索引服务器、超级用户、候选用户、一般用户组成的,其中流媒体服务器是来保存媒体文件,建立索引关系的,而索引服务器则是通过WEB服务器来向用户反馈索引信息。用户管理主要以用户的权限来划分的,其中超级用户是负责组内成员信息及成员所传资源信息的管理工作,同时还负责响应和转发用户的查询请求,一般一个组内只能有一个超级用户。
P2P视频点播技术的设计应以资源的收集、发布、索引、播放、管理为主要方向,在实际操作中P2P视频点播系统应具有以下四种功能,首先是资源的发布功能,网络各节点中要将自己所拥有的影片信息统一发送给网络中的其他节点;其次是索引功能,网络用户在检索资源时系统能够给出篇名和资源信息,并提供相关的资源信息,以方便用户对资源的选择;再次,资源的播放要统一格式,网站要有相应的播放软件下载,以方便用户观看资源;最后,视频点播的管理功能要考虑到服务器和网络系统的负载问题,并且系统还要管理影片资源分片,保证系统具有的可扩展性。
P2P视频点播技术的模块设计应以节点、源节点、媒体资源为基础,通过节点对资源的存储,源节点对资源的传送和媒体资源的发布来实现视频点播。从功能和设计来划分,P2P视频点播技术的模块设计主要有四个部分:首先是底层路由、查找模块的设计,这主要是为了提高底层路由的使用率,并提升资源使用的准确性,在设计上要根据资源所给的关键词或字进行快速准确的定位。我们一般是采用采用基于DHT的分布式路由查找算法Chord的改进算法来完成这一功能,但Chord算法还存在一定的不足,所以我们需要保留我个后继节点,以使得系统更为稳定,同时还要增加路由表本节点到后继节点的RTT值。只有这样才能使路由更为快捷;其次,语义搜索查询模块的设计,语义搜索需要系统具有一个较为丰富的资源库,以此来保证节点保存路由中的资源信息,同时根据多节点的设计理念,节点与后继节点之间Stabiliza-tion的过程中可以互相交换已知的影片信息。再次,负载均衡模块的设计,随着网络的发展系统的节点会越来越多,同时热门资源的点播压力也会越来越大,这就使得热门资源形成了一个热门节点,如果不对其进行处理则会引发资源路由的暂时性失效,通常是采用负载均衡的方法,这可以有效的处理此类问题。最后,影片传送播放模块的设计,在网络中影片资源以分片流式化进行传输,由于多节点同时为一个节点服务,资源分片往往传输次序有所颠倒,播放时需要对资源的分片进行重新排序,所以P2P视频点播技术必须做好此模块的构建。
P2P技术构建的网络是一种分散式的结构,在同一网络中其各个节点都是客户机和同时也是服务器,其在网络应用中有很大的自主权,实际应用中可以避免C/S网络出现的单一资源频繁访问的困难,减少了服务器故障引发的网络瘫痪问题。但如果采用纯的P2P广播方式进行资源转输,很容易引发“广播风暴”,从而造成了更为严重的网络堵塞。考虑到如上的种种情况,笔者在系统设计中将传统的C/S和P2P模式结合起来,综合所查阅的文献,采用了P2P-集中式混合的构架。从图中可以看到,将用户分成了一个个的点组,添加了一个虚拟服务器的概念,它的存在是动态的,由每个点组中第一台向服务器请求数据的客户机担当。点组中其他客户机的请求都将交送到虚拟服务器上处理。如果连接服务器超时,则此虚拟服务器失效,整个流程会重启,由其他客户机来担当虚拟服务器。