论文部分内容阅读
传统网络,即Internet和Intranet等当前主要网络形式,曾经给人们的生活带来了质的飞跃。今天,面对人们对多媒体视视频音频信息的实时、高品质的传输要求,传统网络却遇到了前所未有的挑战。一方面,传统网络只能提供最大努力(Best-effort)服务,却不能为多媒体服务提供服务质量(QoS)的保证,尤其是当网络带宽、包遗失率(Packet Loss Ratio)、延迟等经常变化很不稳定时;另一方面,许多媒体编码器,并不将网络自身情况考虑在内,但实时媒体如视频和音频等却对时间延迟非常敏感。传统的集中模式的服务器承担了全部的上传开销,它的处理能力和传输速率是影响分发速度的瓶颈。随着用户数量的增多,一方面每个用户可获得的下载速度将会降低;另一方面服务器的负载过大,甚至会使服务器当机。在研究和比较现有的内容分发技术和流媒体服务器技术后,结合考虑实现资金成本前提下采用基于P2P方式的高性能流媒体服务器来克服这些瓶颈。将P2P流媒体技术和内容分发技术结合起来,充分利用网络闲置的带宽资源和存储资源,突破了传统的流媒体播放系统带宽瓶颈。既能支持高并发的客户连接,客户之间又可以有交互,大大减轻服务器的压力。这种新型的基于P2P的分布式文件分发模式克服了传统集中模式的困难,促使网络应用的核心从中央服务器向终端设备扩散。同时在此基础上,进一步通过实现主动P2P发布、被动P2P缓存以及两种定时器实现方式,来提升服务器以及整个系统的性能。服务器实现基于Linux平台,采取模块化的思想进行设计。系统各模块运行在一个基于Epoll异步事件驱动框架之上,框架运用Linux2.6内核的最新特性进行优化,提供统一的事件的登记和回调接口,所有的操作都是通过登记事件,然后由框架检测到异步事件时回调相应的处理函数。针对流媒体服务器高网络I/O高磁盘I/O的特点,吸取常用的网络程序和磁盘程序的经验,采用通过向框架注册的管道将网络模块和磁盘模块连接,保证了网络和磁盘的独立性和高效性。对保存在磁盘上的文件采用特殊的管理机制,减少目录的深度并使文件的分布均匀。为了加快文件索引的查询速度,系统在内存中采用二级索引方式实现从逻辑地址到物理地址的迅速转换,保证磁盘操作高效性。从实际效果来看服务器能够持续稳定的给大量用户提供高效的服务,其设计实现方式具有一定的理论和实际推广价值。