论文部分内容阅读
九十年代以来,因特网呈爆炸式的增长,随之而来的是越来越严重的拥塞问题。由于TCP是因特网上的主要传输协议,所以我们重点研究TCP拥塞控制算法。 该文在归纳总结了关于TCP拥塞控制算法的研究现状的基础上,主要研究了Vegas算法的改进问题。该文所做贡献如下: 首先对TCP拥塞控制和TCP拥塞控制算法进行简单介绍。其中介绍了拥塞控制算法的四个阶段:慢启动、拥塞避免、快速重传和快速恢复阶段,这四个阶段的算法也是拥塞控制算法最基础的算法。目前应用最广泛的较为成熟的Reno算法就是由上述四个阶段组成的。由于采用数据包丢失作为拥塞度量的Reno存在一定的缺点,进而基于避免丢包目的提出Vegas算法。和Reno所不同的是,Vegas采用延时作为拥塞度量,并且通过比较实际吞吐量和期望吞吐量之间的差值来预知拥塞的发生。 Vegas算法不但可以避免丢包,而且在吞吐量和稳定性方面都比Reno要好。但由于其保守的拥塞避免机制,当它与Reno共存时,吞吐量急剧下降。而且Vegas也存在很多问题,这些问题大多是由于延时估计精度引起的。由于延时对Vegas至关重要,所以我们采用二阶自适应卡尔曼滤波器对延时进行估计,用估计的延时取代旧的延时应用于算法当中,来改进Vegas算法的性能。而且我们还改进了Vegas算法的慢启动阶段和拥塞避免阶段:实现了慢启动初始阶段的快速响应并减小了丢包的可能性;采用了适应性的拥塞避免机制,增加了Vegas算法的侵略性。在此基础上提出基于延时估计的改进的Vegas算法。 最后使用NS仿真来进一步验证,重点是对Reno、Vegas和改进的Vegas在不同仿真环境下的拥塞窗口、吞吐量、RTT和丢包的研究。仿真证明我们改进的算法在很多方面都表现不错。而且对于Vegas目前不能广泛应用于现实中的最大问题即公平性问题有所改进。但它仍然存在需要改进的地方,比如寻找更好的延时估计方案以及滤波器参数的在线设置等问题。