论文部分内容阅读
TCP协议是因特网上使用最为广泛的协议,它为用户提供了可靠的、健壮的端到端数据通信服务,其中TCP拥塞控制机制一直是保证因特网正常运行的关键技术之一。但是传统的TCP拥塞控制机制已经无法适应链路质量较差的无线网络环境,因为TCP最初是按照有线网络来设计的,在有线网络中网络拥塞基本上是分组丢失的唯一原因,因此TCP假设所有丢包是由网络拥塞引起,相比之下,无线网络具有较高的传输误码率,容易因传输出错而引起分组丢失,因此网络拥塞不再是数据丢失的唯一原因,如果继续沿用传统的TCP拥塞控制机制,就会造成传输速率的不必要降低,结果导致网络性能严重下降。因此在无线网络下如何有效改进TCP性能自然成了一项非常重要的网络研究课题。本文提出了一种基于自适应带宽估计的拥塞控制算法(Adaptive Bandwidth Estimation Congestion control, ABEC)。该算法根据TCP确认报文返回信息来估计当前网络的实际可用带宽,在丢包时不盲目降低拥塞窗口,而是根据当前可用带宽来设置拥塞窗口,从而提高TCP吞吐量和网络利用率,改进TCP在无线网络下的性能。该算法相比以前算法有三个方面的重要改进:通过判断报文丢失的原因来选择合适的采样间隔时间,在丢失原因可能为网络拥塞时,增加取样间隔时间,以避免Westwood带宽估计偏高的问题,提高新算法和传统TCP算法之间的公平性,在丢失原因可能为传输出错时,缩短间隔时间,以尽量提高网络的利用率;根据网络状态自适应选择TCP的带宽估计响应程度,如网络抖动较剧烈,则尽量降低响应速度,保持TCP的稳定,如网络可用带宽发生永久变化,则提高TCP的响应速度,迅速适应这种新的变化,保证带宽估计的准确性;通过观察往返时延的变化来探测网络中路由的变化,带宽估计类算法需要准确获知端到端的最小往返时延,而路由的改变会使计算到的最小往返时延失效,导致带宽估计值偏低,因此本文通过观察往返时延的变化来判断路由是否发生变化,如发生变化,则更新最小往返时延,提高带宽估计的准确性。本文通过NS2仿真软件对ABEC算法进行了大量的实验,在各种不同网络环境中观察它的性能,并和其他的拥塞控制算法进行比较。仿真实验结果表明,ABEC算法不但能有效提高TCP在无线网络中的吞吐量和链路利用率,同时也能保证它在有线网络中和传统TCP的公平性,解决了Westwood带宽估计偏高、RE算法在无线网络中吞吐量偏低等问题,并且能够避免确认报文压缩、路由改变等特殊网络环境带来的影响。最后我们在Linux系统上将ABEC算法实现为一个内核模块,通过内核模块我们能够实时的切换Linux系统上的拥塞控制机制。实现后我们又在实际网络中对其进行了测试:无线网络中的传输性能和有线网络中与传统TCP之间的公平性。结果表明,ABEC算法能够在保证有线网络中和传统TCP保持公平的前提下充分利用无线网络中的链路资源,这个结果也是ABEC算法设计的出发点。本文的工作对于TCP拥塞控制机制的研究有着重要的意义,ABEC算法除了性能优越,公平性好之外,只需修改TCP的发送端,可部署性强,因此有应用到现实网络中的实际意义和进一步研究的借鉴价值。