一、引言
目前,网格的发展越来越受到大家的重视,它们可以在不同国家甚至不同州的机器之间传输甚至到达几千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在快速远距离网络中的不足起到了很好的作用。
二、带宽减少算法
在适用于网格应用的快速远距离网络中,可以假设连接的可用带宽在相当长的时间(大致是10min到1h)内是保持不变的,这个假设对与其他类型的网络基本上也是成立的。根据这个假设,可以做如下的近似:对于一个长时间的TCP连接,可用带宽ABW可以看作是一些分段表示的常数。
根据以上的简化模型,我们可以对TCP和式增加积式减少的带宽增减算法进行修改。在用于网格计算的TCP拥塞控制中,当一个TCP连接检测到网络拥塞时(用于网格计算的TCP拥塞控制,对于拥塞的判断标准是在一个相同的拥塞窗口中至少有两个连续的分组丢失,只有一个分组丢失被认为是链路错误),并不是将带宽减半,而是减少ABWi-ABWi+1,ABWi+1由式(1)得出=-1
(1)
式中 ABWi- 在阶段i的可用带宽;
C- 链路容量的估计值; ABWi在较长时间(一般式10min到1h)内是常数。由于 ABWi是C的一部分,所以
A i,E αi,(0≤αi≤1)∧(ABWi=αiC) (2)
由式(1)和式(2)可以得到