一种网络拥塞控制方法

文档序号:7750915阅读:104来源:国知局
专利名称:一种网络拥塞控制方法
技术领域
本发明属于计算机通信技术领域,更为具体地讲,涉及一种网络拥塞控制方法。
背景技术
随着计算机通信技术的不断发展,人们对因特网的需求也越来越高,因此合理的 拥塞控制机制对现有网络的流畅运作有着十分重要的作用。拥塞控制的目的是有效防止和 消除网络出现的拥塞,它是确保互联网鲁棒性的关键因素,也是各种管理机制和应用的基 石出。网络中的拥塞主要是由于网络链路资源和流量分布不均衡产生的。根据拥塞控制 算法的实现位置,主要分为源端算法和链路算法两种。在基于源端算法的控制策略中,TCP协议是使用最广泛的源端算法,它包 括慢启动、拥塞避免、快速重传和快速恢复四个阶段,其核心的拥塞控制算法是采用 AIMD(Additive Increase Multiplicative Decrease,即加性增乘性减)的窗口调节机制。链路算法AQM(Active Queue Management)是路由器中最常用的一种拥塞恢复机 制,即在路由器增加智能预测环节,使得在路由器缓存被耗尽前有计划地丢掉一部分分组, 提前通知发送方降低发送速率,这就是AQM的由来。然而,现有技术的上述方法,流量增长不平稳,且收敛到平衡状态的时间较长。

发明内容
本发明的目的在于克服现有技术的不足,提供一种在瓶颈链路上流量平稳增长并 快速收敛到平衡状态、不出现拥塞、网络可以畅通运作的网络拥塞控制方法。为实现上述发明目的,本发明的网络拥塞控制方法,其特征在于,包括以下步骤步骤1 :n个源共享一条瓶颈链路,都通过此瓶颈链路发送数据包,与目的节点通 信;在t = 0时刻,源Si向源端路由器发送拥塞窗口 Wi初始值以及链路资源Q、丢包 数P和空闲链路F的初始值,空闲链路F的初始值根据公式F = B-nW,确定,其中,B表示 瓶颈链路的总带宽,并n个源按拥塞窗口 Wi初始值发送数据包;步骤2 在t = 0 RTT时间段内(2. 1)、源端路由器根据源Si所发送的初始值,按公式 计算出t = RTT时刻的拥塞窗口化,并发送给n个源,其中,a,b,c,P,k为系数, (F)表示拥塞窗口 Wi随着空闲链路变化的变化率,c*P表示由于出现丢包,拥塞窗口 Wi
的降低率;(2. 2)、源端路由器根据源Si所发送的初始值,按公式
4
计算出t = RTT时刻的空闲链路F,并发送给源Si ;(2. 3)、源端路由器检测瓶颈链路中在此时间段内释放的链路资源Q,链路资源Q 等于在t = 0 RTT时间段内从目的节点反馈回的ACK个数;步骤3 在t = RTT时刻,n个源均接收到源端路由器的信息,并提取其中的拥塞窗 口 Wi,并按照提取的拥塞窗口 Wi发送数据包,同时,源Si提取其中的空闲链路F,为计算下 一时间段,即t = RTT 2RTT时间段内的丢包数P做准备;步骤4 在t = RTT 2RTT时间段内(4. 1)、源Si利用提取的拥塞窗口 Wi和空闲链路F按照公式 dP 计算t = RTT 2RTT时间段内的丢包数P,并发送给源端路由器;(4. 2)、源端路由器接收到来自源Si的丢包数P,并结合步骤2计算得到的空闲链 路F代入公式 计算出t = 2RTT时刻的拥塞窗口 Wy并发送给n个源;结合步骤2检测得到的Q代入公式
计算出t = 2RTT时刻的空闲链路F,并发送给源;(4. 3)、源端路由器检测瓶颈链路中在此时间段内释放的链路资源Q,链路资源Q 等于在t = RTT 2RTT时间段内从目的节点反馈回的ACK个数;步骤5 在t = 2RTT时刻,n个源均接收到源端路由器的信息,并提取其中的拥塞 窗口 I,并按照提取的拥塞窗口化发送数据包,同时,源31提取其中的空闲链路F,为计算t =2RTT 3RTT时间段内的丢包数P做准备;步骤6 在t = 2RTT 3RTT时间段内(6. 1)、源Si利用提取的拥塞窗口 Wi和空闲链路F按照公式 dP 计算t = 2RTT 3RTT时间段内的丢包数P,并发送给源端路由器,其中 min(F+n*ffi, B)是指取F+nWi与B 二者的最小值;(6. 2)、源端路由器接收到来自源Si的丢包数P,并结合步骤4计算得到的空闲链 路F代入公式 计算出t = 3RTT时刻的拥塞窗口 Wy并发送给n个源;结合步骤4检测得到的Q代入公式
计算出t = 3RTT时刻的空闲链路F,并发送给源;(6. 3)、源端路由器检测瓶颈链路中在此时间段内释放的链路资源Q,链路资源Q 等于在t = 2RTT 3RTT时间段内从目的节点反馈回的ACK个数;依据步骤3 6类推,对网络拥塞进行控制。本发明的发明目的是这样实现的整个自然界具有动态、平衡的特性,其中生物系统也具有自适应性、自组织性、鲁 棒性和可扩展性等特征,而这些性质都是现今网络发展正不断追求的。因此,在生物学及生 物数学不断发展的过程中,一些研究者将生物学的理论和生物数学的模型应用到当前的计 算机网络中来,使我们所处的计算机网络也如生物系统一样可以自动调配到动态平衡。在本发明中,涉及三个网络参数拥塞窗口(Congestion Window-W)、空闲链路 (Link Free Capacity-F)和丢包数(Packets Drop-P)。这三个参数在计算机网络中的关 心与捕食者与被捕食者模型和微生物连续培养模型中的参数相对应。空闲链路F与拥塞窗口 间存在竞争关系,当网络畅通,空闲链路F变大时,拥 塞窗口 I也会随之增大;反之,当网络即将或已经发生拥塞,空闲链路F减小或为零时,拥 塞窗口 Wi也随之减小。这样的关系跟微生物连续培养模型中培养基浓度和微生物浓度的关 系类似,因此,利用微生物连续培养的数学模型映射网络模型中的拥塞窗口I和空闲链路F 之间的关系。其中,微生物的浓度映射拥塞窗口 I,培养基的浓度映射空闲链路F,用公式 表示如下

Q表示在当前RTT内私房的瓶颈链路资源,即已发送的数据包成功传送到目的节 点后释放的资源,n表示共享此瓶颈链路的源的数量。 拥塞窗口 I和丢包数P之间也存在竞争的关系,当拥塞窗口 Wi增大时,网络流量 增大,导致丢包数P增大;当拥塞窗口 Wi减少时,网络流量相应减少,导致丢包数P减少。当 丢包数P减少时,说明网络状态转好,可以增大拥塞窗口 Wi。这种相互制约相互竞争的关系 与捕食被捕食的关系相似,所以,在本发明中,利用捕食者与被捕食者模型来描述拥塞窗口 ffi和丢包数P之间的关系,被捕食者映射为拥塞窗口 Wi,捕食者映射为丢包数P,则拥塞窗 口 Wi和丢包数P的关系如下 ‘dWt
其中^表示拥塞窗口 1的增长率,a2表示遇到丢包数P时拥塞窗口 I的降低率, a3表示拥塞窗口 Wi转化成丢包数P的转化率,a4表示拥塞窗口 Wi为零时,丢包数P的降低率。
将空闲链路F、拥塞窗口化和丢包数P三者之间的关系糅合到一起,拥塞窗口化与 空闲链路F是利用微生物连续培养模型机制,拥塞窗口化和丢包数P是利用捕食与被捕食 的模型,而丢包数P与空闲链路F之间没有直接的关系,这三者之间的关系用公式表示为 ‘ dF_ dt 其中,h = min (F+n^ffj,B)本发明在瓶颈链路上利用上述模型,代替原先使用TCP中的AIMD算法和路由器上 AQM算法,使得在此瓶颈链路上的流量平稳增长并且快速收敛到平衡状态,使得在此瓶颈链 路上不出现拥塞,网络可以顺畅运作。


图1是本发明所处的网络环境图;图2是本发明与现有技术的网络拥塞控制方法拥塞窗口的变化对比图;图3是本发明下拥塞窗口的变化放大图。
具体实施例方式下面结合附图对本发明的具体实施方式
进行描述,以便本领域的技术人员更好地 理解本发明。需要特别提醒注意的是,在以下的描述中,当已知功能和设计的详细描述也许 会淡化本发明的主要内容时,这些描述在这里将被忽略。实施例图1是本发明所处的网络环境图。在本实施例中,如图1所示,n个源Sbn共享 一条瓶颈链路,都通过源端路由器R1、瓶颈链路以及目的端路由器R2发送数据包与m个目 的节点Dii通信,导致瓶颈链路容易发生拥塞。本发明就解决此问题展开,在本实施例中, 瓶颈链路的总带宽B = 50pkts/RTT,往返时间RTT = 20ms,每个数据包pkt长=1500byte, 所以,B = 30Mb/s。图2是本发明与现有技术的网络拥塞控制方法拥塞窗口的变化对比图,而图3是 本发明下拥塞窗口的变化放大图。在本实施例中,如图2、3所示,采用本发明网络拥塞控制 方法的系统收敛速度快,不到一秒钟的时间里拥塞窗口(Cwnd)曲线(曲线1)就达到稳定 值,而现有技术的网络拥塞控制方法拥塞窗口(Cwnd)曲线(曲线2)则需要30秒以后才能 达到稳定。另外,本发明网络拥塞控制方法的系统在收敛过程,拥塞窗口平稳增加,提高了 系统的稳定性,而现有技术的网络拥塞控制方法则出现拥塞窗口增大过程中的起伏抖动。通过图1 3,我们可以看出,本发明通过生物系统的数学模型来调节拥塞窗口的 大小,有效避免瓶颈链路发生拥塞,提高了瓶颈链路资源的利用率,有效减小拥塞窗口的抖 动性,提高了系统的稳定性。尽管上面对本发明说明性的具体实施方式
进行了描述,以便于本技术领的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式
的范围,对本技术领域的普通技术 人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变 化是显而易见的,一切利用本发明构思的发明创造均在保护之列。
权利要求
一种网络拥塞控制方法,其特征在于,包括以下步骤步骤1n个源共享一条瓶颈链路,都通过此瓶颈链路发送数据包,与目的节点通信;在t=0时刻,源Si向源端路由器发送拥塞窗口Wi初始值以及链路资源Q、丢包数P和空闲链路F的初始值,空闲链路F的初始值根据公式F=B-n*Wi确定,其中,B表示瓶颈链路的总带宽,并n个源按拥塞窗口Wi初始值发送数据包;步骤2在t=0~RTT时间段内(2.1)、源端路由器根据源Si所发送的初始值,按公式 <mrow><mfrac> <msub><mi>dW</mi><mi>i</mi> </msub> <mi>dt</mi></mfrac><mo>=</mo><mi>a</mi><mo>*</mo><msub> <mi>W</mi> <mi>i</mi></msub><mo>*</mo><mo>[</mo><mi>b</mi><mo>*</mo><mi>&mu;</mi><mrow> <mo>(</mo> <mi>F</mi> <mo>)</mo></mrow><mo>-</mo><mi>c</mi><mo>*</mo><mi>P</mi><mo>]</mo><mo>,</mo> </mrow> <mrow><mi>&mu;</mi><mrow> <mo>(</mo> <mi>F</mi> <mo>)</mo></mrow><mo>=</mo><mi>&mu;</mi><mo>*</mo><mfrac> <mi>F</mi> <mrow><mi>K</mi><mo>+</mo><mi>F</mi> </mrow></mfrac><mo>=</mo><mi>&mu;</mi><mo>-</mo><mi>&mu;</mi><mo>*</mo><mfrac> <mi>k</mi> <mrow><mi>k</mi><mo>+</mo><mi>F</mi> </mrow></mfrac> </mrow>计算出t=RTT时刻的拥塞窗口Wi,并发送给n个源,其中,a,b,c,μ,k为系数,b*μ(F)表示拥塞窗口Wi随着空闲链路变化的变化率,c*P表示由于出现丢包,拥塞窗口Wi的降低率;(2.2)、源端路由器根据源Si所发送的初始值,按公式 <mrow><mfrac> <mi>dF</mi> <mi>dt</mi></mfrac><mo>=</mo><mi>F</mi><mo>*</mo><mo>[</mo><mi>Q</mi><mo>-</mo><mi>n</mi><mo>*</mo><msub> <mi>W</mi> <mi>i</mi></msub><mo>]</mo> </mrow>计算出t=RTT时刻的空闲链路F,并发送给源Si;(2.3)、源端路由器检测瓶颈链路中在此时间段内释放的链路资源Q,链路资源Q等于在t=0~RTT时间段内从目的节点反馈回的ACK个数;步骤3在t=RTT时刻,n个源均接收到源端路由器的信息,并提取其中的拥塞窗口Wi,并按照提取的拥塞窗口Wi发送数据包,同时,源Si提取其中的空闲链路F,为计算下一时间段,即t=RTT~2RTT时间段内的丢包数P做准备;步骤4在t=RTT~2RTT时间段内(4.1)、源Si利用提取的拥塞窗口Wi和空闲链路F按照公式 <mrow><mfrac> <mi>dP</mi> <mi>dt</mi></mfrac><mo>=</mo><mi>P</mi><mo>*</mo><mrow> <mo>(</mo> <mi>n</mi> <mo>*</mo> <msub><mi>W</mi><mi>i</mi> </msub> <mo>-</mo> <mi>min</mi> <mrow><mo>(</mo><mi>F</mi><mo>+</mo><mi>n</mi><mo>*</mo><msub> <mi>W</mi> <mi>i</mi></msub><mo>,</mo><mi>B</mi><mo>)</mo> </mrow> <mo>)</mo></mrow> </mrow>计算t=RTT~2RTT时间段内的丢包数P,并发送给源端路由器;(4.2)、源端路由器接收到来自源Si的丢包数P,并结合步骤2计算得到的空闲链路F代入公式 <mrow><mfrac> <msub><mi>dW</mi><mi>i</mi> </msub> <mi>dt</mi></mfrac><mo>=</mo><mi>a</mi><mo>*</mo><msub> <mi>W</mi> <mi>i</mi></msub><mo>*</mo><mo>[</mo><mi>b</mi><mo>*</mo><mi>&mu;</mi><mrow> <mo>(</mo> <mi>F</mi> <mo>)</mo></mrow><mo>-</mo><mi>c</mi><mo>*</mo><mi>P</mi><mo>]</mo> </mrow>计算出t=2RTT时刻的拥塞窗口Wi,并发送给n个源;结合步骤2检测得到的Q代入公式 <mrow><mfrac> <mi>dF</mi> <mi>dt</mi></mfrac><mo>=</mo><mi>F</mi><mo>*</mo><mo>[</mo><mi>Q</mi><mo>-</mo><mi>n</mi><mo>*</mo><msub> <mi>W</mi> <mi>i</mi></msub><mo>]</mo> </mrow>计算出t=2RTT时刻的空闲链路F,并发送给源Si;(4.3)、源端路由器检测瓶颈链路中在此时间段内释放的链路资源Q,链路资源Q等于在t=RTT~2RTT时间段内从目的节点反馈回的ACK个数;步骤5在t=2RTT时刻,n个源均接收到源端路由器的信息,并提取其中的拥塞窗口Wi,并按照提取的拥塞窗口Wi发送数据包,同时,源Si提取其中的空闲链路F,为计算t=2RTT~3RTT时间段内的丢包数P做准备;步骤6在t=2RTT~3RTT时间段内(6.1)、源Si利用提取的拥塞窗口Wi和空闲链路F按照公式 <mrow><mfrac> <mi>dP</mi> <mi>dt</mi></mfrac><mo>=</mo><mi>P</mi><mo>*</mo><mrow> <mo>(</mo> <mi>n</mi> <mo>*</mo> <msub><mi>W</mi><mi>i</mi> </msub> <mo>-</mo> <mi>min</mi> <mrow><mo>(</mo><mi>F</mi><mo>+</mo><mi>n</mi><mo>*</mo><msub> <mi>W</mi> <mi>i</mi></msub><mo>,</mo><mi>B</mi><mo>)</mo> </mrow> <mo>)</mo></mrow> </mrow>计算t=2RTT~3RTT时间段内的丢包数P,并发送给源端路由器;(6.2)、源端路由器接收到来自源Si的丢包数P,并结合步骤4计算得到的空闲链路F代入公式 <mrow><mfrac> <msub><mi>dW</mi><mi>i</mi> </msub> <mi>dt</mi></mfrac><mo>=</mo><mi>a</mi><mo>*</mo><msub> <mi>W</mi> <mi>i</mi></msub><mo>*</mo><mo>[</mo><mi>b</mi><mo>*</mo><mi>&mu;</mi><mrow> <mo>(</mo> <mi>F</mi> <mo>)</mo></mrow><mo>-</mo><mi>c</mi><mo>*</mo><mi>P</mi><mo>]</mo> </mrow>计算出t=3RTT时刻的拥塞窗口Wi,并发送给n个源;结合步骤4检测得到的Q代入公式 <mrow><mfrac> <mi>dF</mi> <mi>dt</mi></mfrac><mo>=</mo><mi>F</mi><mo>*</mo><mo>[</mo><mi>Q</mi><mo>-</mo><mi>n</mi><mo>*</mo><msub> <mi>W</mi> <mi>i</mi></msub><mo>]</mo> </mrow>计算出t=3RTT时刻的空闲链路F,并发送给源Si;(6.3)、源端路由器检测瓶颈链路中在此时间段内释放的链路资源Q,链路资源Q等于在t=2RTT~3RTT时间段内从目的节点反馈回的ACK个数;依据步骤3~6类推,对网络拥塞进行控制。
全文摘要
本发明公开了一种网络拥塞控制方法,将空闲链路F、拥塞窗口Wi和丢包数P三者之间的关系糅合到一起,拥塞窗口Wi与空闲链路F是利用微生物连续培养模型机制,拥塞窗口Wi和丢包数P是利用捕食与被捕食的模型,而丢包数P与空闲链路F之间没有直接的关系,这三者之间的关系用公式表示为。其中,h=min(F+n*Wi,B)。本发明在瓶颈链路上利用上述模型,代替原先使用TCP中的AIMD算法和路由器上AQM算法,使得在此瓶颈链路上的流量平稳增长并且快速收敛到平衡状态,使得在此瓶颈链路上不出现拥塞,网络可以顺畅运作。
文档编号H04L29/06GK101860488SQ20101019480
公开日2010年10月13日 申请日期2010年6月8日 优先权日2010年6月8日
发明者兰红梅, 刘菖, 彭云峰, 隆克平 申请人:电子科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1