1 引言
随着网络技术的发展,主干网与宽带网接入技术的日臻成熟,网络视频的传输成为Internet应用的一个亮点。为了提高视频数据在网上的传输效率,并实现视频的实时播放,流媒体技术的研究与应用得到了很大发展。
其中,流媒体服务器技术在流媒体的应用中发挥了关键的作用。
传统的网络传输数据的方法是文件下载:用户需要准备大量的磁盘空间,并花大量的时间等待下载结束。但是,当数据变成海量的视频数据时,在数据处理量大,数据吞吐量高,视频播放实时性,客户连接请求数目大,连接时间长等一些情况下,传统的服务器技术已经无法高效的满足要求。面对这样的技术要求,本文从CPU调度,资源控制内存分配,I/O总线管理这三个方面出发,综合的给出了一种高效的服务器设计方法,从而有效的提高了视频流式传输时的效率。该方法也具有很强的可扩展性,当服务器的CPU数目增加时,服务器的性能将能得到成倍的增长。
2 流媒体服务器的设计
2.1 流媒体服务器的功能
流媒体在播放前不是完全下载整个文件,而是把开始部分内容存入内存,数据流是随时传送随时播放。
流媒体服务器提供的流式传输方式有两种:顺序流式传输和实时流式传输两种方式。顺序流式传输是顺序下载,在下载文件的同时用户可观看在线媒体。实时流式传输与顺序流式传输不同,实时流式传输总是实时传送,特别适合现场事件。实时流式传输必须匹配连接带宽,这意味着图像质量会因网络速度降低而变差。
在流式传输时,流媒体数据具有实时性,等时性等基本特点,流服务期和客户终端要保证各种媒体间的同步关系,因此,流媒体传输对“最大延时”,“延时抖动”等QoS参数都有严格要求。
2.2 流媒体服务器协议栈的设计
在TCP/IP参考模型中,传输层通信协议TCP和UDP都不能满足流媒体传输的QoS要求。由于TCP协议采用滑动窗口控制机制,数据传送随着流控窗口动态的启动和关闭,难以满足流媒体实时和等时的传送要求。UDP协议的无连接特点能够提高传输速率,虽然可以在某种程度上满足流媒体的实时性要求,但是由于其本身的不可靠性,也无法满足流媒体传输的需要。