论文摘要
流媒体技术随着当下视频分享与社交网络的流行而迅速发展,对于流媒体技术而言,流媒体服务器软件是其中最重要的部分之一。流媒体服务器软件管理着底层的硬件资源,同时控制着网络协议的传输,它的性能,对流媒体服务的质量而言至关重要。随着流媒体技术的发展,流媒体服务器软件由早期的简单音视频服务提供者转变为了现在的实时互动服务提供者。按照流媒体服务器软件的功能需求,可以将它分成内核层与外壳层两个层次,内核层则注重控制服务器硬件资源与网络资源,而外壳层主要为网络用户提供服务,控制网络协议的传输。进一步细分,内核层可以分成网络通信、内存管理、线程管理、文件管理、数据库管理五个模块。网络通信模块管理底层的网络I/O;内存管理模块主要负责内存池的创建与管理;线程管理模块实现了两级线程池,将所有耗时操作集中到一个线程池来进行处理;文件管理模块则负责媒体文件信息的维护以及文件的磁盘I/O控制;数据库管理模块负责数据库的连接管理与查询管理。外壳层可以分成启动模块、进程守护模块、负载均衡模块和外挂协议模块。启动模块负责启动内容服务程序并初始化相关数据;进程守护模块用于守护内容服务程序的进程并定时向负载均衡服务器通报内容服务器状态信息;负载均衡模块用于管理内容服务器集群并平衡分摊服务器负载;外挂协议模块用于流媒体协议的解析与封装。流媒体服务器软件实现的关键技术主要在完成端口网络通信、内存池与事件队列模型的实现以及RTMP协议的解析与封装。完成端口与事件队列模型结合,使用两级线程池解决了网络I/O操作与后台协议解析操作的分离,大大提高了网络的吞吐量。内存池管理使用事先预估分配空间并加入链表的方式实现了对所有对象内存的统一管理,减少了内存碎片的产生。
论文目录
相关论文文献
标签:流媒体服务器论文; 线程池论文; 完成端口论文; 实时消息传输协议论文;