论文部分内容阅读
在TCP/IP互联网中,TCP是最重要的传输层协议,网络中的TCP数据流占网络总数据比例可达95%及以上。TCP拥塞控制是保证网络稳定运行的重要手段,其主要思想是根据网络状况,调整数据包发送速率,从而充分利用网络带宽,并当网络发生拥塞时,避免网络崩溃。常用的拥塞控制策略主要将丢包作为拥塞标识,认为一旦丢包,网络即出现拥塞。当推测到丢包后,重传所丢的数据包,并减小发送窗口,降低发送速率。但是,在实际网络中,并非所有的丢包都是由网络拥塞造成的。链路故障、信号干扰及信道误码等均可能造成丢包,这种丢包称为随机丢包。常用的拥塞控制策略在遇到随机丢包时,同样降低发送速率,降低了带宽的利用率,影响了TCP的传输性能。 针对在有随机丢包的网络中,常用拥塞控制策略传输性能下降的问题。本文首先分析了随机丢包对常用拥塞控制策略的影响,并设计了一种丢包类型识别方法;在此基础上,实现了一种面向随机丢包的拥塞控制策略。本文的主要工作包含以下三个方面: 1.随机丢包环境对拥塞控制策略性能的影响分析。测量并分析了随机丢包对newReno、Cubic、Westwood、H-TCP及TCP Vegas等拥塞控制策略传输性能的影响。实验结果表明,在0.1%的随机丢包网络中,这些拥塞控制策略的传输性能下降了10倍以上,同时链路带宽利用率较低。造成性能下降的根本原因是,拥塞控制策略不区分丢包类型,无论是否由网络拥塞造成丢包,均遇到丢包就减少拥塞窗口,而拥塞窗口在减少后恢复到之前水平需要较长的时间。 2.基于丢包类型识别的拥塞控制策略。首先利用来自某典型互联网应用的数据集(千万级数据包,数十万TCP流),刻画了拥塞丢包类型在RTT(Round Trip Time)和连续丢包之间的距离(丢包之间的数据包个数)统计特征。利用这两方面的特征,推测丢包是否由网络拥塞产生。如果不是,则标识为随机丢包。在丢包类型识别方法的基础上,提出了混合Cubic和H-TCP的窗口管理方法:如果是随机丢包,只重传数据而不减少窗口;如果是拥塞丢包,则比例减少窗口,并根据Cubic和H-TCP二者窗口的最大值设置新的拥塞窗口。 3.拥塞控制策略实现与性能评测。本文设计的拥塞控制策略,以内核模块的形式在Linux kerne12.6.39上实现。具体来说,将拥塞控制操作封装到内核模块Orplcc中,并将该模块注册到内核中,从而达到使用自定义拥塞控制的目的,避免过多地修改内核代码,保证拥塞控制策略的可用性及可移植性。通过设定不同随机丢包率,实验对比分析了Cubic、H-TCP、Orplcc的数据传输性能。实验结果表明,所设计的拥塞控制策略在各种随机丢包网络环境中,较Cubic、H-TCP平均有7倍以上的性能提升。