论文部分内容阅读
随着硬件技术和网络通信技术的快速发展,终端用户经常会通过互联网获得多媒体形式的网络服务。例如,网页浏览、即时消息通信、视频聊天等。这些服务往往对带宽十分敏感,且在同一次服务中需要从服务器获取多种类型的数据。但在低带宽情况下网络无法为所有类型的数据提供足够的带宽,因此网络服务器需要提供一种将不同类型数据并行且高效地传输到终端用户的方法,同时在低带宽情况下该方法仍能够提供令人满意的服务质量。流控制传输协议(Stream Control Transmission Protocol,SCTP)是面向连接,提供可靠数据传输服务的传输协议,它的多流多宿特性非常适合于上述的多媒体网络服务。本文基于对Linux内核中SCTP源代码的分析,针对低带宽引起的高传输延迟情况,提出了一种基于SCTP的多流优先级传输优化方案,并将其实现。本方案利用SCTP的多流特性,将同一SCTP关联中的多个逻辑流赋以不同的优先级,并根据优先级将这些逻辑流对应到若干优先级队列中,随后通过优先级调度算法使其出队并发送出去,从而保证了重要数据能够在低带宽情况下以较低的延迟发送到接收方。为了满足应用程序对优先级队列的不同要求,本文实现了两种可选的调度算法:优先级队列调度算法、加权循环队列调度算法。为了验证方案的有效性和可行性,本文还设计并实现了基于SCTP多流优先级的Web网页浏览服务。主要完成了两项工作:首先,修改了Apache Web服务器和Firefox浏览器源代码以实现对SCTP的支持,为了提高基于SCTP的网页浏览性能,使用多线程技术来处理同一个SCTP关联的各个逻辑流中的数据。该工作有效地避免基于TCP的传统网页浏览中存在的队头阻塞、SYN flooding攻击等问题。其次,设计并实现了将多流优先级特性引入到网页浏览服务的方案。在低端到端带宽情况下,基于SCTP的多线程网页浏览产生的数据交织将大幅增加浏览器用户的等待延迟。通过第二项工作,用户等待延迟被有效地降低了。