摘 要 目前IP网络所应用的TCP拥塞控制机制是基于1988年Jacobson所设计的算法(慢启动和拥塞避免),虽然TCP在许多不同类型的网络中应用得很好,但在网格计算中,现有的TCP拥塞控制算法已不能有效工作。本文分析了TCP传统算法在网格计算中的缺陷,并提出在网格计算中使用新的TCP拥塞控制算法——一个新的带宽增减算法。
关键词 网格计算 拥塞控制 AIMD 带宽
一、引言
目前,网格的发展越来越受到大家的重视,它们可以在不同国家甚至不同州的机器之间传输甚至到达几千G字节的大文件,将大规模的数据处理分散到世界范围的各个组织中。网格的应用需要高速远距离网络的支持,这可能需要网络速度达到622Mbit/s或是更高。在这种情况下,传统的TCP拥塞控制算法就不太适用了。这主要有以下三方面的原因:
(1)传统的TCP拥塞控制机制在高速网络中反应性比较差,这是因为TCP在高速网络中对分组丢失的反应要敏感得多。这主要是由于它的拥塞避免算法是基于AIMD(Additive Increase Multiplicative Decrease,和式增加积式减少)的。所以一个分组的丢失在高速网络中所造成的后果是很严重的:一个分组丢失被检测出来之后,TCP连接就会将带宽减半(积式减少),这样就会不止花上几百毫秒或是多达几秒钟,甚至花上几分钟或是几个小时来恢复所有的可用带宽(和式增加)。另外,慢启动也会造成TCP在高速网络中性能的下降,但是它的影响要比拥塞避免小点。因为通过三个重复的ACK来判断分组丢失的情况要比超时经常得多,因此TCP连接会花费大多数时间在拥塞避免算法上。
(2)传统的TCP总是把分组丢失解释为拥塞,而假定链路错误造成的分组丢失是可以忽略的,但是在高速网络中,这种假设是不成立的。当数据传输速率比较高时,链路错误是不能忽略的。由链路错误引起的分组丢失和由网络拥塞引起的分组丢失的可能性是相同的。因此,不能笼统地认为分组丢失都是由网络拥塞引起的。因此,当一个TCP分组丢失后我们不应该认为就是出现了网络拥塞,拥塞的判断需要两个连续的分组丢失。
(3)传统的TCP不能使用网络链路的所有容量。这主要是由于在AIMD算法中,TCP从一个分组丢失到带宽的恢复所用的时间比较长。这是目前所有TCP版本(TCPTahoe、TCPReno、New-Reno、SACK、Vegas等)的一个固有的问题。而高速远距离网络的造价是比较高的,所以对容量的浪费是不可原谅的。
针对以上TCP传统算法的缺陷,网格计算中的TCP拥塞控制提出了一个新的带宽使用的公平性原则和增减算法,对于克服传统TCP在快速远距离网络中的不足起到了很好的作用。




