专利名称:基于网络状态测量的分阶段慢启动传输控制方法
技术领域:
本发明主要涉及到网络传输控制领域,特别指一种基于网络状态测量的分阶段慢启动传输控制方法。
背景技术:
传输控制协议(Transfer Control Protocol,TCP)是当今因特网应用最为广泛的传输控制协议,提供可靠的端到端的服务。TCP采用了滑动窗口机制进行网络流量的控制,数据传输过程应用慢启动(Slow Start)、拥塞避免(Congestion Control)、快速重传(Fast Retransmission)和快速恢复(FastRecovery)几个窗口调节机制,如图1所示。数据传输过程中,发送窗口(win)为拥塞窗口(cwnd)和接收窗口(rwnd)中的最小值。TCP的慢启动机制作用于连接启动阶段,逐渐增大数据发送速率,探测网络带宽,直到网络拥塞丢包或达到某一阈值,数据源端按发送窗口大小发送数据包,如数据传送成功,接收端返回确认信息(Acknowledgement,ACK),源端每成功接收一个ACK,cwnd大小将增加1个分组,经历一个往返延迟(Round Trip Time,RTT),cwnd将增加为原来的两倍,因此呈现出指数增长;如果发送窗口大于慢启动门限阈值,则将发送窗口大小设为门限阈值,进入拥塞避免阶段,发送窗口遵循线性规律增长。TCP慢启动探测网络带宽机制,由于窗口从1开始按指数增长,导致了两个主要问题第一,慢启动的窗口由1个分组开始增加,达到一个合适的值,将耗费多个往返时间周期,此过程导致了短生存期连接对可用带宽的低利用率,使窗口大小远小于路径带宽延迟乘积。
第二,门限阈值初设。源端并不知道网络可用带宽容量,使用系统预设门限阈值。门限阈值过大,拥塞窗口的指数增长往往误导太快地发送过多的分组,使瓶颈链路缓存区严重溢出,出现一个发送窗口中多个分组丢弃,使TCP发送端失去自时钟,引发重传超时,导致网络的全局同步,网络性能急剧恶化;门限阈值过小,将使得网络带宽探测过程提前终止,网络带宽没有被完全利用就进入拥塞避免阶段,造成传输性能低下。
在高带宽长延迟网络环境下,此问题尤为突出,目前传统的方法一般通过设置较大窗口初始值,或根据历史状态信息、带宽估算设置门限阈值的方法改善慢启动性能,但在动态变化的网络环境下这些方法都显得灵活性不足,在异构网络环境下效率不高。
发明内容
本发明的任务是克服TCP慢启动易造成一个发送窗口内多个分组丢弃和网络利用率低的缺陷,提出一种基于网络测量的分阶段慢启动方法(MP-Start)。
本发明的解决方案为首先,数据发送源端根据报文的发送与应答情况,获取当前网络状态,记录报文最小往返延迟,计算出端到端的可用带宽,根据往返延迟与可用带宽乘积结果设置慢启动的拥塞门限阈值,从而确立了慢启动阶段发送窗口的最大值。慢启动阶段窗口分阶段采用不同增长规律,在小于等于二分之一门限阈值阶段按指数规律增长,在大于二分之一门限阈值阶段采用二分逼近规律增长,直到慢启动门限阈值与发送窗口大小差值小于2,从而进入拥塞避免阶段。在此过程中,为保持与网络当前状态一致,源端持续检测网络的状态,并调整门限阈值。
TCP会话启动后以不小于2的初始拥塞窗口开始发送分组,发送端提取连续两个分组的发送时间之差;当分组成功发送,ACK返回时,发送端提取序号相连的两个ACK到达时间差;将分组大小除以两时间差的差值,得到当前测量可用带宽值,再通过指数加权移动平均滤波器,计算出可用网络带宽。网络带宽与平均往返延迟RTTave相乘,得到两者带宽延迟乘积(BDP),将慢启动门限阈值ssthresh设置为BDP,并且根据网络状态的动态变化而动态变化。
通过实时在线带宽测量技术确定门限阈值ssthresh,在拥塞窗口小于门限值的一半的情况下遵循指数增长规律,否则,拥塞窗口每次增加门限值与拥塞窗口之差(ssthresh-cwnd)的一半,逐步逼近门限值,直到其差值小于调节因子φ(ssthresh/2≥φ≥2),同时将拥塞窗口设为门限值,从而进入拥塞避免阶段,窗口的变化规律不同,如图2所示,cwnd的变化规律如式(1)。
cwnd(t+T)=2×cwnd(t),ifcwnd<ssthresh/2(cwnd(t)+ssthresh)/2,ifssthresh-cwnd≥φandssthresh>cwnd≥ssthresh/2ssthresh,else---(1)]]>当φ=2时,算法MP-Start与TCP Vegas慢启动所经历的时间基本相同,不过MP-Start将窗口增加的粒度减少了,改变了分布的时间段,开始和结束均比较平滑;与标准慢启动比较,所经历时间约为标准慢启动的2倍,导致MP-Start性能降低,在带宽延迟乘积大的情况下,有必要保证平滑性同时提高传输性能,引入了增长因子γ为大于等于1的整数(γ≥1),表示源端每接收一个应答,cwnd增加的分组数,可以用来反映慢启动窗口增加的快慢,例如,当γ=1,φ=2时,即为TCP慢启动算法;如果γ=3,φ=2,当cwnd<ssthresh/2时,每个RTT时间间隔cwnd增加为原来的4倍,当cwnd>ssthresh/2时,每个RTT时间间隔cwnd增加幅度为3(ssthresh-cwnd)/4,直到ssthresh-cwnd小于φ,如图2所示,MP-Start cwnd表达式如式(2),cwnd(t+T)=(γ+1)×cwnd(t),ifcwnd<ssthresh/2γ×(cwnd(t)+ssthresh)γ+1,ifcwnd≥ssthresh/2andssthresh-cwnd≥φssthresh,ifcwnd>ssthreshorssthresh-cwnd<φ---(2)]]>引入增长因子γ和调节因子φ实现了上述慢启动的参数模型,但静态的参数设置会使这种参数模型不能适应网络环境的变化,需要自适应的参数设置,MP-Start采用基于经验的网络协议设计方法,一般连接的慢启动历时不超过10个往返周期,即cwnd小于1024个分组大小,MP-Start也满足该约定。根据图2和MP-Start窗口曲线以及式(2),在RTT和ssthresh固定不变,各慢启动机制历时情况如表1所示。
表1启动阶段经历时间
MP-Start算法获取慢启动门限阈值ssthresh,分如下几种情况设置慢启动的调节因子、增长因子1)调节因子φ的设定保持与TCP协议的初始拥塞窗口initwnd一致。
2)当ssthresh足够大,即log2ssthresh≥10,]]>基于性能考虑MP-Start经历时间不能超过10RTTs,因此参数γ,φ满足式(3)条件,logγ+1(ssthresh/2-φ)=5---(3)]]>3)当ssthresh比较小,标准慢启动所经历时间不超过5个往返时间周期,即ssthresh小于等于32个分组大小,MP-Start保持与标准慢启动相同的cwnd增长率,γ,φ均等于1。
4)当ssthresh在这两个门限值之间,即5<logγ(ssthresh/2-φ)<10,]]>调节因子γ的取值在情况2),3)两种取值之间逐渐增加,如式(4),γ的值可以保持相对比较平滑地变化。
γ=1+log2ssthresh/2-φ5---(4)]]>基于上述的自适应策略,在ssthresh较小的情况下对传输性能影响较小,在高带宽长延迟的网络环境下,具有显著效果。ssthresh是决定增长因子γ取值的关键因素,本发明通过网络测量获取ssthresh值。
以ssthresh/2为界,将慢启动过程分为两个阶段,分别采用不同的窗口调节机制a)当cwnd≤ssthresh/2时,每成功接收到一个ACK,发送端拥塞窗口增加γ;b)当ssthresh-φ≥cwndφssthresh/2时,每成功接收到一个ACK,发送端拥塞窗口增加γ/(γ+1)+ssthresh/((γ+1)cwnd);c)在拥塞窗口增加过程中,若cwnd≤(ssthresh-φ),则慢启动过程结束,进入拥塞避免阶段。
在TCP协议的源端实时在线地测量网络带宽,利用TCP协议的滑动窗口机制和应答(ACK)返回,以传送的分组作为探测分组,进行带宽测量。源端当前发送窗口wi,分组大小为Pi,每个分组的往返时间为RTTi,每个分组ACK返回时间为ti,相邻取样点的间隔为Δi=ti+1-ti,该采样时间内网络带宽为Bi。那么,对于一个TCP业务流,我们对每个返回的ACK进行取样,这样取样周期并不固定,随ACK返回时间变化,采样获得的带宽如式(5),Bi=PiTi+1-Ti---(5)]]>受时间扩展和压缩影响,所测带宽并不能完全匹配实际带宽,解决办法是采用滤波器消除噪音,考虑传输控制中需要在线实时测量,采用指数加权移动平均滤波器,如式(6),其中 分别为本次与上一次测量值。
B^i=αB^i-1+(1-α)Bi---(6)]]>在实际测量中,有如下几个方面的问题值得注意1)当数据传送过程遭遇拥塞,不能按序返回ACK时,如返回重复的ACK,依然采样,不过时间间隔增加了,测量带宽将减少;若重传计时器超时,分组往返时间急剧增加而影响测量准确性,因此,停止采样并计算当前测量值,直到拥塞退出,也就是说当下一个分组正确应答,重新启动测量。
2)由于TCP协议是建立在应答机制上,对于一个特定网络,RTT能反映网络的拥塞情况,在一个拥塞周期里RTT的最小值为RTTmin及平均值为RTTave,其中RTTave根据式RTTave=αRTTave+(1-α)RTTi计算。
与现有技术相比,本发明的优点在于1、本发明在TCP协议的慢启动阶段引入了基于源端节点的在线实时网络可用带宽测量,可有效获得网络的状态,为门限阈值的动态设置提供支持,具有简单高效的特点。与其他基于ICMP、UDP协议的测量技术相比,本发明实现容易,只需要在TCP协议源端进行修改;本发明部署方便且不易被路由器、防火墙和服务器屏蔽掉。
2、本发明引入了一种分阶段的慢启动窗口调节机制,使得窗口增加的过程更加平滑。一个互联网的连接启动时,能够以较小的数据发送速率去试探网络带宽,在过渡到拥塞避免阶段时,窗口增加幅度较小确保了平滑过渡,同时可用带宽测量技术设置了合适的ssthresh值,从而有效地减少了丢包率和一个窗口中发生多个分组丢弃的概率。
3、本发明引入了动态自适应的参数配置机制,使得MP-Start能够适应各种不同带宽、延迟的网络,具有相对稳定的慢启动持续时间,从而有效提高了慢启动的网络性能。
图1是TCP协议拥塞控制窗口随时间在4个阶段的变化情况;图2是各种慢启动机制的拥塞窗口规律比较。
具体实施例方式
本发明作用于TCP慢启动阶段,在连接开始启动和进入拥塞避免的两个邻近阶段拥塞窗口增加幅度较小,变化比较平滑,能减少网络中其他共享连接的影响,保持了网络运行的稳定,减少了网络的抖动。本发明的具体处理流程如下1.初始化,将cwnd=wndinit,ssthresh=ssthreshinit,设置调节因子φ,滤波器参数d;2.初始化,k为发送分组的编号,设初始值k=1,RTTmin=RTTave=RTTinit;3.以cwnd为窗口大小同时发送分组,并启动滑动窗口机制;记录每个分组发送时间tsk;计算连续两个分组的发送时间差τ=tsk-tsk-1;4.如果接收三个重复应答或应答超时,则重新进入慢启动阶段;转1;5.如果第k个分组正确返回ACKk,记录分组返回时间trk,同时计算序号连续两个分组的ACK返回时间差τk-1′=trk-trk-1;如果k=1 then RTTmean=RTT1;如果k>1,则计算RTTmean,计算公式为RTTmean=((k-1)×RTTmean+RTTk)/k,并计算当前瞬时测量可用带宽Bt_cur;如果k=2,则Bt=Bt_cur;
如果k>2,则通过指数加权移动平均滤波器计算测量带宽Bti=αBtI-1+(1-d)Bt_cur;根据可用带宽和延迟状况,估测慢启动门限值ssthresh=Bt×RTTmean/P;a)调节因子φ=initwnd;b)如果log2ssthresh≥10,]]>则γ,φ满足条件方程式logγ+1(ssthresh/2-φ)=5;]]>c)如果ssthresh≤32,则γ,φ均等于1;d)如果5<logγ(ssthresh/2-φ)<10,]]>则γ,φ满足条件方程式γ=1+log2ssthresh/2-φ5]]>如果cwnd<ssthre sh/2,则cwnd=cwnd+γ;如果ssthresh-φ≥cwndφssthresh/2,则cwnd=cwnd+(rr+1+rr+1·ssthreshcwnd);]]>6.将发送分组序号增加1,k=k+1,如果k<(ssthresh-φ)就跳转到第4步,等待对应的ACK返回;7.否则cwnd=ssthresh,进入拥塞避免阶段。
权利要求
1.基于网络状态测量的分阶段慢启动传输控制方法,其特征在于首先,数据发送源端根据报文的发送与应答情况,获取当前网络状态,记录报文最小往返延迟,计算出端到端的可用带宽,根据往返延迟与可用带宽乘积结果设置慢启动的拥塞门限阈值,从而确立了慢启动阶段发送窗口的最大值,慢启动阶段窗口分阶段采用不同增长规律,在小于等于二分之一门限阈值阶段按指数规律增长,在大于二分之一门限阈值阶段采用二分逼近规律增长,直到慢启动门限阈值与发送窗口大小差值小于2,从而进入拥塞避免阶段,在此过程中,为保持与网络当前状态一致,源端持续检测网络的状态,并调整门限阈值。
2.根据权利要求1所述的基于网络状态测量的分阶段慢启动传输控制方法,其特征在于TCP会话启动后以不小于2的初始拥塞窗口开始发送分组,发送端提取连续两个分组的发送时间之差;当分组成功发送,ACK返回时,发送端提取序号相连的两个ACK到达时间差;将分组大小除以两时间差的差值,得到当前测量可用带宽值,再通过指数加权移动平均滤波器,计算出可用网络带宽,网络带宽与平均往返延迟RTTave相乘,得到两者带宽延迟乘积(BDP),将慢启动门限阈值ssthresh设置为BDP,并且根据网络状态的动态变化而动态变化。
3.根据权利要求1所述的基于网络状态测量的分阶段慢启动传输控制方法,其特征在于分为如下几种情况设置慢启动的调节因子、增长因子a)调节因子φ的设定保持与TCP协议的初始拥塞窗口initwnd一致;b)当ssthresh足够大,即log2ssthresh≥10,]]>γ,φ满足下式条件,logγ+1(ssthresH2-φ)=5]]>c)当ssthresh比较小,标准慢启动所经历时间不超过5个往返时间周期,即ssthresh小于等于32个分组大小,γ,φ均等于1;d)当ssthresh在这两个门限值之间,即5<logγ(ssthresh/2-φ)<10,]]>增长因子γ的取值在情况a),b)两种取值之间逐渐增加,如式下式,γ的值保持相对比较平滑地变化,γ=1+log2ssthresh/2-φ5.]]>
4.根据权利要求1所述的基于网络状态测量的分阶段慢启动传输控制方法,其特征在于以ssthresh/2为界,将慢启动过程分为两个阶段,分别采用不同的窗口调节机制a)当cwnd≤ssthresh/2时,每成功接收到一个ACK,发送端拥塞窗口增加γ;b)当ssthresh-φ≥cwndφssthresh/2时,每成功接收到一个ACK,发送端拥塞窗口增加γ/(γ+1)+ssthresh/((γ+1)cwnd);c)在拥塞窗口增加过程中,若cwnd≤(ssthresh-φ),则慢启动过程结束,进入拥塞避免阶段。
全文摘要
本发明公开了一种基于网络状态测量的分阶段慢启动传输控制方法。该方法通过实时在线带宽测量技术确定门限阈值ssthresh,在拥塞窗口小于门限值的一半的情况下遵循指数增长规律,否则,拥塞窗口每次增加门限值与拥塞窗口之差(ssthresh-cwnd)的一半,逐步逼近门限值,直到其差值小于调节因子φ(ssthresh/2≥φ≥2),同时将拥塞窗口设为门限值,从而进入拥塞避免阶段。本发明能够减少慢启动阶段一个窗口中多个报文丢失现象的发生,降低丢包率,提高网络传输性能。
文档编号H04L1/16GK101094047SQ20071003529
公开日2007年12月26日 申请日期2007年7月6日 优先权日2007年7月6日
发明者邓晓衡, 卢锡城, 王怀民, 彭宇行 申请人:中国人民解放军国防科学技术大学