一种用于高丢包率广域网环境下的拥塞控制方法

文档序号:7764837阅读:551来源:国知局
专利名称:一种用于高丢包率广域网环境下的拥塞控制方法
技术领域
本发明涉及一种高丢包率广域网环境下的拥塞控制方法。
背景技术
近年来,TCP (Transport Control Protocol,传输控制协议)拥塞控制方法一直是 人们所研究的焦点。而自从TCP Reno方法提出以来,它被公认为是一种效果不错的TCP拥 塞控制方法而沿用至今。虽然TCP Reno在城域网、局域网等短距离传输下有较好的效果, 但在一些特定广域网环境下,比如跨区域、跨网段、甚至跨国环境,由于网络具有普遍高丢 包率特性,受其影响TCP Reno的保守拥塞控制机制已逐渐突显出其非适应性,导致它在此 种环境下的传输性能急剧降低。TCP Reno方法目前包括慢启动、拥塞避免、快速重传、快速恢复四种机制,是现有 的众多拥塞控制方法的基础。TCP拥塞控制方法经过数十年的研究发展,出现了大量的改进 和增强版本。然而其中大部分在TCP Reno四种机制基础上进行的改进和增强版本的焦点 都集中在拥塞避免机制上。然而在高丢包率广域网环境下,TCP连接的绝大部分时间都将 处于快速恢复机制阶段,因而针对高丢包率广域网环境,如何改进优化TCP快速恢复机制 将成为带宽利用率提升的关键。传统TCP拥塞控制方法(如TCP Reno)在高丢包率广域网环境下的低效性主要由 以下两点问题造成(1)丢包发生时保守的降窗机制传统TCP在判定丢包发生时,将拥塞窗口减为原来的一半。在具有高丢包的网络 环境下,丢包现象比较密集,如果每一次丢包都将窗口减半,将使拥塞窗口以2为倍数乘性 减小,拥塞窗口始终远离目标带宽值而处在超低速传输状态下。(2)快速恢复时期保守的包守恒机制传统TCP每收一个重复ACK(ACKn0Wledgment,应答),则发送一新数据包,使网络 上属于该流的数据包保持不变,实现网络包守恒。即当发生丢包事件时,传统TCP首先将速 率减为原先的一半,然后保持在这个速度发送数据包。这种保守包守恒机制同样在丢包现 象频繁时,使占据TCP连接绝大部分时间的快速恢复阶段下的速率只一味的减小与持平, 而不会有任何地增长。

发明内容
本发明所要解决的技术问题是提出一种用于高丢包率广域网环境下的拥塞控制 方法,该方法以包丢失数量的增大作为降窗依据,同时采用积极地窗口增长机制,使数据传 输在高丢包率广域网环境下获得高吞吐率。本发明的技术解决方案如下一种用于高丢包率广域网环境下的拥塞控制方法,在数据传送过程中,发送方收 到重复ACK后所做处理包括以下两个阶段
1)发送方检测到包丢失数量增大时,判定此时网络拥塞增强,计算拥塞门限值 congjhreshold以及根据丢包数增量计算出拥塞窗口的减小量ε,将拥塞窗口减少ε以 响应拥塞;2)发送方检测到包丢失数量不变或者减小时,通过判断拥塞窗口与阶段1)中所 计算拥塞门限值congjhreshold的大小关系来确定拥塞窗口所采取的增长方式。拥塞门限值congjhreshold为当前网络的预估拥塞点,取为当前拥塞窗口 cwnd 与当前拥塞门限值congjhreshold'的指数加权滑动平均,即cong_threshold = α X cong_threshold' +(1-α ) Xcwnd,其中α为平滑因子。拥塞窗口减小量ε的计算方法为
ε - mmicwnd -1, cwnd χ Iog2^ost-cnt + ^ + //)), LcwndJ其中lost_cnt为丢包数增量,即lost_cnt = Iosti-IostH,其中Iosti为当前丢 包数,IostH为前一时间点i-Ι时刻的丢包数,μ为微调量且μ彡0,μ计算如下
γ π 、lost cnt、μ = β(1--^―)
cwnd其中β为微调因子,取值区间为W,l)。所述阶段2)中,当拥塞窗口小于拥塞门限值congjhreshold,则采用每收到一个 重复ACK拥塞窗口加1的乘性窗口调整机制,即以cwnd+Ι作为更新后的窗口 ;否则采用收
到一个窗口的重复ACK后拥塞窗口加1的加性窗口调整机制,即以cw^ +」;作为更新后
cwnd
的窗口。有益效果本发明的技术效果在于本发明在TCP的快速恢复机制阶段,发送方每收到一个 重复ACK则判断包丢失数是否增加,只有当包丢失数增加时才降低拥塞窗口大小,否则根 据拥塞窗口与拥塞门限值大小关系采用相应的窗口增长机制。本发明通过包丢失数增量的 大小来衡量网络的拥塞程度,依此拥塞窗口相应减小适当的量来响应拥塞,避免了拥塞窗 口直接减半的保守性。此外本方法使用拥塞门限值作为预估拥塞点来估计该高丢包环境下 的大致可用带宽,在无包丢失数增加的情况下,拥塞门限值作为窗口调整机制的分隔点,当 拥塞窗口小于门限值时,采用乘性窗口增长机制,否则采用加性窗口增长机制。本方法通过 积极地窗口增长机制试探网络可用带宽,能够有效地适应高丢包率广域网环境,获得较高 带宽利用率。具体实验结果见实施例。


图1为本发明的流程图。图2为本发明实验床测试环境拓扑图。图3为本发明TCP方法与TCP Reno在各种环境下的速率对比示意图;其中分图 a-i 分别是 2M,20ms、2M,IOOms、2M,500ms、4M,20ms、4M,IOOms、4M,500ms、10M,20ms、10M, IOOmsUOM, 500ms情况下的对比示意图。
具体实施例方式以下将结合附图和具体实施例对本发明做进一步详细说明实施例1 参见图1,为本发明的流程图。它是基于发送方的方法,过程如下在传输没有结 束的情况下,发送方收到ACK,首先判断是否为重复ACK,如非重复ACK,则按正常拥塞控制 (慢启动或拥塞避免)处理。其中,当拥塞窗口小于慢启动门限时,发送方每收到一个ACK将 拥塞窗口加1 ;当拥塞窗口大于慢启动门限时,发送方每一个RTT时间将拥塞窗口加1。如是 重复ACK,则进入快速恢复机制阶段。该阶段首先判断由SACI^SelectiveACKnowledgment, 选择性确认)统计的丢包数是否增大,如是则重传丢失的数据包,计算拥塞门限值,并根据 丢包数增量计算拥塞窗口减小量且依此降低拥塞窗口 ;否则比较拥塞窗口与门限值的大 小,如果拥塞窗口小于门限值,则将拥塞窗口加1进行乘性窗口增长,否则将拥塞窗口加
丄騰力口··。首先定义变量congjhreshold用于保存拥塞门限值。当丢包数量增大时,门限值 取为当前拥塞窗口与当前门限值的指数加权滑动平均,即cong_threshold = α X cong_threshold+(1_ α ) Xcwnd, cwnd 为当前拥塞窗口 ;其中α为平滑因子。当丢包发生时,很可能是网络由非拥塞到拥塞的拐点,将此 时的拥塞窗口作为门限值的调整依据并与之前门限值进行指数加权滑动平均计算,得出新 的拥塞门限值。在具有高丢包率广域网环境下,数据包丢失数的变化情况一定程度上反映了网络 的拥塞状况。当包丢失数增加时本方法根据丢包数增量计算拥塞窗口减小量,进行降窗 操作。假定第i时刻丢包数增加,此时丢包数为Iosti,前一时间点i-Ι时刻的丢包数为 Iosti+可知Iosti > lostH,因而丢包数增量lost_cnt = Iosti-IostH,此时拥塞窗口减 小量ε计算如下
ε - mmicwnd -1, cwnd χ Iog2^ost-cnt + ^ + //)), LcwndJ其中cwnd为当前拥塞窗口,μ为微调量且μ彡O。L·」表示下取整操作。“计算 如下
γ π 、lost cnt、μ = β(\--^―)
cwnd其中β为微调因子,它的取值区间为W,l)。丢包数增量越大,微调量越小;而拥 塞窗口越大,微调量越大。通过拥塞窗口减小量ε计算公式可知,ε随lost_Cnt递增,且当lost_Cnt固定
In^f CTli
时,ε随(^1!(1递增。 -,为丢包数增量占已发数据包的比例,根据微调量μ的计算公
cwnd
式可知,当该比例值较小时,将得到相对较大的微调量来获得适当的ε值。计算获得ε之后,新的拥塞窗口值通过如下公式计算更新cwnd = cwnd- ε
5
随着lost_Cnt增大,拥塞增强,拥塞窗口减小量ε也相应增大,最终拥塞窗口下 调的幅度增大以响应增强的拥塞。快速恢复机制阶段当发送方每收到一个重复ACK且包丢失数并未增加时,本发明 根据当时拥塞窗口 cwnd与拥塞门限值congjhreshold的大小关系分别采用两种拥塞窗口 增长方式,如下
cwnd +1cwnd < cong threshold cwnd =
cwnd H---- cwnd > cong threshold
cwnd—如果拥塞窗口小于门限值,则采用每收到一个重复ACK拥塞窗口加1的乘性窗口 增长调整机制,否则采用收到一个窗口的重复ACK后拥塞窗口加1的加性窗口增长调整机 制。我们基于TCP Reno实现了本发明方法,并在网络实验床环境下进行了测试。方法 中一些参数设置如下α = 0. 875,β = 0. 1。图2是我们进行测试用的实验床拓扑环境,其中cl,c2为客户端,负责接收数 据;sl,s2为服务器端,负责发送数据,si使用TCP Reno, s2使用本发明拥塞控制方法TCP CSU ;中间的WANem(开源工具,可模拟广域网带宽、延时、丢包等特性,网址http//wanem. sourceforge. net/)为广域网模拟器。cl从sl进行传统下载,c2从s2进行加速下载,通 过WANem设置带宽、延时与丢包率,测出TCP Reno以及TCP CSU在各种环境下的速率及速 率比如表1所示。表1广域网环境实验床测试结果
瓶颈带宽时延丢包率TCP Reno 速率 (Mbps)TCP CSU速率 (Mbps)速率比2M0.10%1.981.991.0120ms2%1.751.961.125%1.111.941.7510%0.5091.793.520.10%1.951.971.01100ms2%0.6891.912.775%0.3821.854.8410%0.2051.145.56500ms0.10%0.5161.653.20
权利要求
一种用于高丢包率广域网环境下的拥塞控制方法,其特征在于,在数据传送过程中,发送方收到重复ACK后所做处理包括以下两个阶段1)发送方检测到包丢失数量增大时,判定此时网络拥塞增强,计算拥塞门限值cong_threshold以及根据丢包数增量计算出拥塞窗口的减小量ε,将拥塞窗口减少ε以响应拥塞;2)发送方检测到包丢失数量不变或者减小时,通过判断拥塞窗口与阶段1)中所计算拥塞门限值cong_threshold的大小关系来确定拥塞窗口所采取的增长方式。
2.根据权利要求1所述的用于高丢包率广域网环境下的拥塞控制方法,其特征在于, 拥塞门限值congjhreshold为当前网络的预估拥塞点,取为当前拥塞窗口 cwnd与当前拥 塞门限值congjhreshold'的指数加权滑动平均,即cong_threshold = α X cong_threshold' + (1- α ) X cwnd, 其中α为平滑因子。
3.根据权利要求1所述的用于高丢包率广域网环境下的拥塞控制方法,其特征在于, 拥塞窗口减小量ε的计算方法为ε - mmicwnd -1, cwnd χ Iog2^ost-cnt + ^ + //)), LcwndJ其中lost_cnt为丢包数增量,即lost_cnt = Iosti-IostH,其中Iosti为当前丢包数, Iostp1为前一时间点i_l时刻的丢包数,μ为微调量且μ彡0,μ计算如下 …lost cnt、μ 二 β(}--cwna其中β为微调因子,取值区间为W,1)。
4.根据权利要求1-3任一项所述的用于高丢包率广域网环境下的拥塞控制方法,所述 阶段2)中,当拥塞窗口小于拥塞门限值congjhreshold,则采用每收到一个重复ACK拥塞 窗口加1的乘性窗口调整机制,即以cwnd+Ι作为更新后的窗口 ;否则采用收到一个窗口的重复ACK后拥塞窗口加1的加性窗口调整机制,即以cw^ +」;作为更新后的窗口。cwna
全文摘要
本发明公开了一种用于高丢包率广域网环境下的拥塞控制方法,发送方通过检测包丢失数量是否增大来判断网络拥塞状态,自适应的调节拥塞窗口。如检测到包丢失数量增大,将根据丢包数增大程度计算出拥塞窗口的减小量,拥塞窗口通过减去该减小量大小的窗口来响应拥塞;否则判断拥塞窗口与拥塞门限值的大小关系来确定拥塞窗口所采取的增长方式。本发明在网络出现丢包现象时,并不迅速降低拥塞窗口,而以包丢失数量的变化情况作为降窗依据,同时使用积极地窗口增长机制试探网络可用带宽。本方法能有效地适应高丢包率广域网环境,获得较高带宽利用率。
文档编号H04L1/16GK101977151SQ201010538208
公开日2011年2月16日 申请日期2010年11月9日 优先权日2010年11月9日
发明者曾勇军, 王伟平, 王建新, 董苹苹 申请人:中南大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1