基于NS-2的FAST TCP协议
快速收敛改进算法
摘 要:FAST TCP协议采用静态表映射方法设置慢启动阈值,在复杂多变的网络环境无法实现快速收敛。本文首先通过NS-2仿真实验发现了慢启动阈值与系统收敛速度的关系,然后采用数学方法理论分析了慢启动阈值对与系统收敛速度的影响,并根据上述实验和理论分析结果,提出了一种动态设置慢启动阈值的改进算法。该算法将各连接留在链路缓冲区的个数作为慢启动阈值量纲,根据各连接实际的协议参数确定慢启动阈值,使其在复杂多变的网络环境下获得较好的收敛性能。NS-2仿真结果表明该算法的有效性。
1 FAST TCP简介
FAST TCP是一种面向高带宽延时积网络的新型TCP拥塞控制协议。它从根本上改变了传统TCP的拥塞控制机制。该协议是由加州理工学院网络实验室Steven H.Low 等人在源端针对高速、长时延、大容量的高性能网络提出的一种新型高速传输控制协议。FAST TCP 协议完全将拥塞控制器建立在各连接源端,采用估测的排队时延作为拥塞反馈信号,其基于平衡的设计思
想使其稳定性、吞吐量、公平性和快速响应等性能指标要优于TCP Reno、HSTCP和STCP等网络传输控制协议。但其存在难以选择确保系统稳定的协议参数和准确估计传播延时等公开问题。这些公开问题阻碍了该协议的进一步推广。
2 FAST TCP所存在的问题
通过分析FAST TCP代码(由澳大利亚墨尔本大学CUBINLAB实验室网页Unimelb.edu.au/ns2fasttcp/ 提供)和文献[1,2,4]可知,FAST TCP在建立新连接时,是采用静态表映射方法初始化FAST TCP的协议参数α、控制律增益参数和慢启动阈值,各取值分别为200、0.5和0.00075。这种静态表映射的方法存在致命的缺陷,就是无法很好的适应变化层出不穷的网络拓扑。下面我们通过一组对比实验说明此问题。
我们通过NS-2网络仿真平台,搭建如图1的经典哑铃网络系统:哑铃网络系统中包含3条具有相同链路属性的FAST TCP连接,共享唯一瓶颈链路l。
实验一:
采用如图1所示的哑铃网络拓扑结构,假设瓶颈链路l带宽C = 96Mb/s(即C = 12000packets/s),排队延时d=50ms,每个FAST TCP连接采用默认静态协议参数(=200, =0.5, =0.00075),数据包的大小设置为1000个字节,仿真记录时间为20s。记录各连接的数据发送率,仿真实验结果如下图2所示:
图2 C = 96Mb/s时各连接传输流量
由图2可知,FAST TCP在瓶颈链路带宽C为96Mb/s时,收敛时间大概为3秒,超调量约为25%,系统表现出较快的收敛速度和较低的超调量。
实验二:
将瓶颈链路l带宽C设置为实验一的10倍,即C = 960Mb/s,其它参数保持不变。记录各连接的数据发送率,仿真实验结果如下图3所示:
图3 C=960Mb/s时各连接传输流量
由图3可知,FAST TCP在瓶颈链路带宽C为960Mb/s时,使用默认的静态协议参数,收敛时
间长达18秒,超调量超过200%,各连接在慢启动阶段占用时间较长。
实验三:
将瓶颈链路l带宽C设置为960Mb/s(与实验二相同),协议参数α取800,其它参数与实验二保持一致。记录各连接的数据发送率,仿真实验结果如下图4所示:
图4 C=960Mb/s时各连接传输流量
由图4可知,FAST TCP在瓶颈链路带宽C为960Mb/s时,将协议参数α设置为800,其它参数不变的情况下,收敛时间约为7秒,超调量约为30%。
实验对比结论:
对比实验一和实验二,我们可以看出,在不同带宽的瓶颈链路中,FAST TCP表现出两种截然不同的系统性能。在百兆网络中,FAST TCP有较良好的性能,但随着核心网络带宽的增加,FAST TCP呈现出波动和传播速率收敛慢的现象。由实验三可得,通过增大协议参数α,可得到较快的收敛速度和较小的超调量。但增大α的同时,也增加了系统的队列延时。由文献[1-4,6]和实验数据可求得实验二的瓶颈链路队列排队时延为0.005s,而实验三的瓶颈链路队列排队时延高达0.05s,为原来的10倍,影响系统数据传送性能。
3 慢启动阈值对收敛速度的分析及改进
由FAST TCP的代码与文献[1,3,4]可知,在建立FAST TCP新连接时,分三个阶段:慢启动阶
段(下简称阶段1)、慢启动完成至系统达到平衡避免拥塞阶段(下简称阶段2)和系统平衡阶段,如下图5所示:
其中:
T1=m ,m为慢启动阈值;
T2=N·α/C - m ,N为当前系统连接个数,α为当前FAST TCP连接的协议参数, C为链路l的带宽单位packets/s;
由文献[1,4,5]可得:
(1)
n为当排队延时q=m时,当前FAST TCP连接留在缓冲区的包的个数,根据其定义可得其计算公式为。
通过实验一、二和三收集的仿真数据,可求出其与(1)式对应的值分别为:0.01522、0.1764和0.01522。不妨猜想,(1)式的结果T1与T2的比例关系,能影响网络系统的收敛速度与超调量。为验证猜想,我们做了另外一组对比实验:
实验四:
瓶颈链路l带宽取C = 96Mb/s,FAST TCP连接总个数N为1,修改其α与m值,分别做以下实验,收集数据如下表所示:
表一:慢启动阈值m和(1)式结果的关系
实验号 | α | m | T1/T2 | n /α | 超调量 | 收敛时间(s) |
1 | 400 | 0.0075 | 0.29 | 0.225 | 60% | 3 |
2 | 400 | 0.003 | 0.099 | 0.09 | 10% | 1.5 |
3 | 800 | 0.00075 | 0.0113 | 0.01125 | 40% | 2 |
4 | 800 | 0.006 | 0.099 | 0.09 | 20% | 1.75 |
由以上实验和实验一、二、三可以看出,当T1与T2的比值落在区间[0.09,0.1]时,系统表现出良好的性能,即收敛速度较快,超调量较低。因此,我们可以以n为慢启动的阈值标志,以控制T1与T2之间的比例。
基于tcp协议的应用程序包括
1
2
3
4
5
6
FAST TCP建立连接时的三个阶段,根据其代码,可用伪代码描述如下:while(a ACK is received) {
if (qi(t) < mi){
//阶段1,执行慢启动算法:
wi(t+1) = wi(t) + 1;
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论