一种稳定高效的互联网拥塞控制方法

文档序号:7971066阅读:170来源:国知局
专利名称:一种稳定高效的互联网拥塞控制方法
技术领域
本发明涉及了分组交换网络的拥塞控制技术,具体涉及一种基于显式拥塞信息的互联网拥塞控制方法。
背景技术
目前互联网中路由器的拥塞控制功能较弱,仅通过丢包信号向用户终端设备提供网络拥塞信息,导致网络带宽资源利用率低,排队延迟和端到端的网络延迟都较大。明显拥塞控制协议(XCP explicit Control Protocol)是一种增强网络资源利用效率,降低网络丢包率的拥塞控制算法。它在数据包中增加拥塞控制信息;采用先测量后分配的策略,即路由器先测量其输出接口的空闲资源数量,然后将这些资源分配给流经的各个会话,发送端再根据网络反馈的指令,调整其发送速度。速率控制协议RCP(Rate Control Protocol) 与XCP相似,但RCP采用了先分配后调整的策略,即路由器先测量并估算当前的公平带宽, 并分配给所有流经的会话。这样,当有大量新会话到达时,RCP系统就会出现极度拥塞的状态。仿真实验表明,XCP在端到端传输延迟差异较大的网络环境下,会出现不稳定的状况。虽然从理论分析XCP的流模式是稳定的,但实际应用中需要把流模式离散化,需要引入控制间隔来测量和估算其平均端到端延迟等状态和参数,而且其控制间隔的长度还设定为平均端到端延迟。XCP实现系统的延迟是其流模式的两倍,于是XCP实现系统的稳定性无法得到理论保证。

发明内容
有鉴于此,本发明致力于提供一种稳定高效的互联网拥塞控制方法。本发明的上述目的是通过如下的技术方案予以实现的一种稳定高效的互联网拥塞控制方法,包括al)在数据包中增加拥塞扩展头,包括发送端估计的端到端延迟、待确认带宽增量、带宽增量反馈值和平均窗口间距,其中平均窗口间距为端到端延迟除以当前拥塞窗口值;bl)路由器通过测量估算其输出接口上会话流的平均端到端延迟,并更新其控制间隔的长度,使得其控制间隔远小于平均端到端延迟;cl)路由器在控制间隔内,测量其输出接口的拥塞状态,计算得到总拥塞反馈值, 并将该总拥塞反馈值在下一个控制间隔中分发到各个会话流的数据包中,更新流经数据包的待确认带宽增量;dl)接收端把收到数据包的待确认带宽增量累加,当有消息返回发送端时,复制该累加值到返回数据包的带宽增量反馈值;el)发送端根据其收到的带宽增量反馈值,调整其拥塞窗口值W的大小;fl)发送端还控制数据包的发送间隔,使其不小于平均包间隔,其中平均包间隔等于端到端延迟乘以数据包的长度,再除以当前拥塞窗口值。所述步骤fl之后进一步包括路由器以每个控制间隔为边界,测量其输出接口的平均到达速率和最小队列长度以及该接口上所有会话流的平均端到端延迟,更新控制和分配参数。路由器利用其输出接口的带宽减去平均到达速率得到平均空闲带宽,再乘以空闲带宽反馈因子,就得到空闲带宽反馈值。路由器利用队列长度反馈因子乘以最小队列长度, 就得到队列长度反馈值。对本控制间隔内,未分发出去的总拥塞反馈值,将部分转移到下一个控制间隔中去。路由器空闲带宽反馈值减去队列长度反馈值,再加上本控制间隔未分发出去的部分总拥塞反馈值,就得到下一个控制间隔的总拥塞反馈值。本方法所使用的空闲带宽反馈因子和队列长度反馈因子可以保证该拥塞控制系统的稳定性,并使得该拥塞控制系统的暂态过程为临界阻尼响应。在下一个控制间隔中,路由器将总拥塞反馈值公平地分配到通过该输出接口的各个会话中去。当路由器收到新会话建立消息时,在其总拥塞反馈值充足的情况下,分配平均会话带宽给新到达的会话。当路由器收到会话关闭消息时,将立即回收该会话所占用的带宽资源。本发明具有如下的技术效果。1、本系统的控制间隔小于XCP系统。这样,本控制系统的延迟更小,对网络负载变化的响应更快,网络资源的利用率也更高。2、在本系统中,数据源在发送数据包时,数据包的发送间隔比较均勻。这样,路由器的队列长度较短,端到端的延迟较小,数据包的丢失也较少。3、在本系统中,控制参数选择更为合理,保证了系统的稳定性。即使在端到端延迟差异较大的情况下,系统也仍然表现稳定。4、在本系统中,路由器分配平均会话带宽给新到达的会话。这样就为TOB浏览等短流业务提供了较好的服务质量。5、在本系统中,路由器收到会话关闭消息,就立即回收该会话所占用的带宽资源。 这样能将空闲的链路资源尽早地利用起来。6、在本系统中,前一个控制间隔未分发出去的总拥塞反馈值,将部分转移到下一个控制间隔中去。这样就降低了总拥塞反馈值在分配过程的误差。


图1为本发明中拥塞扩展头的内部结构图;图2为本发明在IPv4网络环境的运行机制图;图3总拥塞反馈值的计算;图4总拥塞反馈值的分发。
具体实施例方式本发明以IPv4网络环境为基础,来实现稳定高效的拥塞控制系统。本实现中控制间隔取值为平均端到端延迟的N分之一,其中N为20。下面结合附图和具体实施例对本发明进行详细说明。协议扩展为了满足拥塞控制的要求,需要扩展现有IPv4标准,在IP包头中增加一个拥塞扩展头,如图1所示。该拥塞扩展头已在IETF的草案draft-falk-xcp-spec-03中定义。本发明遵循该草案的规定,并做适当的扩展。下文给出了该扩展头的格式。第一个字段为下一个包头的类型。第二个字段为扩展头长度,该值设定为20个字节,编码为0x14。第三个字段为本扩展头的版本,本发明设定为4。第四个字段为本扩展头的格式,可以取3个值1、2和3。1 表示其后的三个字段平均窗口间距、端到端延迟和待确认带宽增量均有效;2 表示其后的三个字段平均窗口间距、端到端延迟和待确认带宽增量均无效;3 表示其后的两个字段平均窗口间距、端到端延迟无效。第五个字段是保留字段,暂未使用。第六个字段是平均窗口间距(X),取值为非负数,其后观个比特位表示小数部分, 前4个比特位表示整数。第七个字段是端到端延迟(d),取值为非负数,其后观个比特位表示小数部分,前 4个比特位表示整数。第八个字段是带宽增量反馈值(Δ),取值为整数,单位为bps。该值可正可负,为正时表示允许增加的吞吐量;为负时表示必须减少的吞吐量。第九个字段是待确认带宽增量(δ),取值为整数,单位为bps。该值可正可负,为正时表示允许增加的吞吐量;为负时表示必须减少的吞吐量。本拥塞控制系统的运行机制如图2所示。发送端A发送的每个数据包都包含了拥塞扩展头。拥塞扩展头的端到端延迟设置为发送端估算得到的端到端延迟di (发送端采用现有的TCP传输协议中的端到端延迟估算方法。在TCP协议中,接收端收到数据包后,会向发送端发送确认消息。这样,接收端根据发送数据包的时间和接收到确认消息之间的间隔,就可以估算出发送端到接收端的端到端延迟);平均窗口间距\设置为端到端延迟Cli除以当前拥塞窗口值W ;待确认带宽增量设定为发送者期待获得的带宽增量δ uo ;带宽增量反馈值设定为收到的来自接收端B的待确认带宽增量的累计值。带宽增量反馈值是某一时间段内的累计值,是给接收端B使用的。在实际的网络应用中,通常一个会话是双向的,既有A到B的数据流,也有B到A的数据流。数据包到达路由器Rl后,路由器Rl收集每个流经数据包的端到端延迟,得到本控制间隔内的平均端到端延迟Du,并确定下一个控制间隔的长度为Dk,/N,此处N取值为20 ; 根据数据包的平均窗口间距信息(平均窗口间距信息由发送端设置在数据包头中的,路由器读取这个信息就可),更新待确认带宽增量为Si,JSiilS= δ ^0);根据其输出接口带宽资源状况(包括平均空闲带宽和队列长度),计算下一个控制间隔的总拥塞反馈值;收集每个数据包的平均窗口间距信息,计算下一个控制间隔的反馈参数。数据包到达路由器R2后,路由器R2做与Rl相似的处理,数据包拥塞扩展头的待确认带宽增量更新为\,2(δι2<= δ ^)。数据包到达接收端B后,接收端B把数据包拥塞扩展头中的待确认带宽增量δ i,2累加到变量ζ中。待接收端B向发送端A返回数据包时,带宽增量反馈值Δ就设置为ζ, 并把变量ζ重新初始化为0。发送端A收到带宽增量反馈值为Δ的数据包后,就更新其发送速度,从而完成拥塞控制系统的闭环控制过程。平均端到端延迟D的计算方法如下路由器在控制间隔内转发了 M个数据包,每个数据包的端到端延迟Cli,平均端到端延迟D的计算如下D=E di/M平均会话带宽ν的计算方法如下控制间隔k的长度为nk,收到一个长度为Li,平均窗口间距为\的数据包,其对会话数量的贡献为XjLi/ ilk。在控制间隔k结束时,估算的会话数量Yk为Yk = Σ (Xi^Li)Znk若该控制间隔内的平均到达速率为uk,可计算得到其平均会话带宽vk = Uk* η k/ Σ (XjLi)总拥塞反馈值的计算如图3所示,控制间隔k的长度为nk,输出接口的链路带宽为C,测量得到输出接口平均到达速率为uk,可计算得到输出接口空闲带宽反馈值为(0. 4/ (1+1/N)) * η k* (C-Uk) / N。在控制间隔k内,其输出接口的最小队列长度为仏,其队列长度反馈值为-1. 414*(0. 4/ (l+l/N))2*Qk/N。若控制间隔k结束时剩余的总拥塞反馈值为r_Ok,那么下一个控制间隔的转移拥塞反馈值为0.95*r_c5k。下一个控制间隔的总拥塞反馈值为可由下式计算得到,其中N取值为20:(Dk+1 = 0. 95*r_0k+0. 019* ηk*(C_uk)_0· 01* 总拥塞反馈值的分解在控制间隔k结束时,还需要把下一个控制间隔的总拥塞反馈值分为正反馈p_ Ok+1和负反馈当|c5k+1| > Y *uk时,设定流量重分配因子Y为0.1,即取流量资源的10%用于把高吞吐量的数据流资源转移给低吞吐量的数据流,ρ.Φ^ = (I Φ^Ι+Φ^/2η,Φ^ = (I Φ^Ι-Φ^/2否则,ρ,Φ^ = y*uk+1+(| Φ^Ι+Φ^Λn_cDk+1 = - y*uk+1+(| Φ^Ι-Φ^)^反馈参数的计算反馈的分发原则是正反馈平均分配给每个会话流;负反馈按比例分配给各个会话流,吞吐量越大的会话流分得的负反馈也越多。正反馈的反馈参数PwS pk+1 = P_Ok+1/Yk负反馈的反馈参数nk+1为nk+1 = n_Ok+1/uk总拥塞反馈值的分发
如图4所示,在控制间隔k+Ι,收到输入数据包Pkti时,剩余的正反馈值为r_p_ ,分配给该数据包的正反馈值为p_pkti = pk+1* (Xi^Li/ η k+1)剩余的负反馈值为r_n_c5k+1,分配给该数据包的负反馈值为I^pkti Lpkti = IVjXi/ (XjLi/ η k+1)n_pkti = nk+1* η ^1ZL1分配给该数据包的拥塞反馈值为Lpkti t_pktj = min (p_pktj, r_p_Φ k+1)-min O^pkti, r_n_C>k+1)r_p_05k+1_ = min (p_pkti; Γ_ρ_Φ,,+1)r_n_C>k+1_ = minOi—pkti, r_n_C>k+1)在控制间隔k+1结束时,其剩余的总拥塞反馈值为r_ Φ k+1 = r_p_ Φ k+1_r_n_ Φ k+1会话建立过程在会话建立的第一个数据包,发送端无法获知到达接收端B的端到端延迟,所以该数据包拥塞扩展头的端到端延迟设定为0,平均窗口间距设定为0,格式字段设定为3.路由器Rl收到会话建立的初始数据包Pkti后,在其正反馈ρ_Φ i资源充足的情况下,分配平均会话带宽V1给该会话,并减少正反馈的剩余资源,即δ j = min( δ i (l, V1, ρ.Φ^ρ_Φ「= Sil路由器R2收到会话建立的初始数据包Pkti后,在其正反馈ρ_Φ2资源充足的情况下,分配平均会话带宽V2给该会话,并减少正反馈的剩余资源,即δ i 2 = min( δ ν2, ρ_Φ2)ρ_Φ2- = δ i 2接收端D收到该会话建立请求后,若接收该会话,就立即返回确认消息,并设置该数据包的带宽增量反馈值为S ;若拒绝该会话,就立即返回拒绝消息,并设置该数据包的带宽增量反馈值为O。会话释放过程当路由器Rl收到会话结束的消息Pkti时,路由器收回该会话占用的带宽资源,并增加正反馈的剩余资源。ρ_φ:+ = 0. 95/XiXi为该数据包拥塞扩展头的平均窗口间距。当路由器R2收到会话结束的消息Pkti时,路由器收回该会话占用的带宽资源,并增加正反馈的剩余资源。ρ_Φ2+ = 0. 95/XiXi为该数据包拥塞扩展头的平均窗口间距。
权利要求
1.一种稳定高效的互联网拥塞控制方法,其步骤为1)发送端A在待发送数据包中增加一个拥塞扩展头;所述拥塞扩展头包括发送端A 估计的端到端延迟屯、待确认带宽增量δ u、带宽增量反馈值Ai*平均窗口间距& ;其中, 带宽增量反馈值~初始化为0;2)路由器根据流经数据包的端到端延迟屯,计算当前控制间隔内输出接口上会话流的平均端到端延迟Dk,并根据当前Dk值更新其下一控制间隔的长度;3)路由器根据当前控制间隔内输出接口的拥塞状态计算下一控制间隔的总拥塞反馈值。k+1,并将。k+1在下一控制间隔分发到各个会话流的数据包中,4)路由器根据收到数据包的平均窗口间距&,更新流经数据包的待确认带宽增量为 δ i, j+1 ;其中,δ i, j+1 ^ δ u,δ w为会话数据包i经第j个路由器后确认的带宽增量;5)接收端B将收到的发送端A所发送数据包中待确认带宽增量累加,当接收端B有消息返回发送端A时,将该待确认带宽增量累加值添加到返回数据包的带宽增量反馈值中;6)发送端A根据其收到数据包中的带宽增量反馈值,调整其拥塞窗口值W。
2.如权利要求1所述的方法,其特征在于所述路由器根据当前Dk值更新其下一控制间隔的长度,使其下一控制间隔远小于当前平均端到端延迟Dk。
3.如权利要求1或2所述的方法,其特征在于计算所述总拥塞反馈值。k+1的方法为 所述路由器利用其输出接口的带宽C减去当前控制间隔内数据包平均到达速率Uk得到平均空闲带宽,再乘以空闲带宽反馈因子,得到空闲带宽反馈值;并且所述路由器利用当前控制间隔内输出接口的最小队列长度A乘以最小队列长度反馈因子,得到队列长度反馈值; 然后所述路由器利用空闲带宽反馈值减去队列长度反馈值,再加上当前控制间隔剩余未分发出去的总拥塞反馈值,得到下一控制间隔的总拥塞反馈值φμ。
4.如权利要求3所述的方法,其特征在于将①㈣在下一控制间隔中分发到各个会话流的数据包中的方法为a)对总拥塞反馈值Ow分解为正反馈和负反馈η_ΦΜ,当> Y*uk 时,p_Ok+1 = ( Φ^Ι+Φ^Λ.η,Φ^ = (ΙΦ^Ι-Φ^Λ,否贝lJ,p_Ok+1 = Y*uk+1+(| Ok+1|+Ok+1)/2、n_Ok+1 = - y*uk+1+(| Φ^Ι-Φ^)^ ;b)设一正反馈参数Pk+1、一反馈参数 nk+1 ;其中 pk+1 = p_Ok+1/Yk, nk+1 = n_Ok+1/uk ;c)在下一控制间隔,即第k+1控制间隔内,收到输入数据包Pkti时,剩余正反馈值为 P_。k+1,剩余负反馈值为r_n_c5k+1,则分配给该数据包的正反馈值为p_pkti = pk+1*(Xi^Li/ η k+1),分配给该数据包的负反馈值为I^pkti = nk+1* JlwZli ;d)分配给该数据包的拥塞反馈值为Lpkti= π η(ρ_ρ1^,r_p_Ok+1)-minO^pkti,r_ n_Ok+1),并令 r_p_05k+1_ = min(p_pkti, Γ_ρ_Φ,,+1),r_n_05k+1_ = Hiin^pkti, r_n_05k+1);其中,Yk为当前控制间隔的会话数量,Hk为控制间隔k的长度山为数据包Pkti长度, &为数据包Pkti平均窗口间距,γ为流量重分配因子。
5.如权利要求4所述的方法,其特征在于所述发送端A在每收到非零的带宽增量反馈值时,更新平均窗口间距,平均窗口间距为端到端延迟除以当前拥塞窗口值。
6.如权利要求5所述的方法,其特征在于所述发送端还控制数据包的发送间隔,使其不小于平均包间隔,其中平均包间隔等于端到端延迟乘以数据包的长度,再除以当前拥塞窗口值。
7.如权利要求1所述的方法,其特征在于更新所述待确认带宽增量的方法为δUj+1 = min( δ . j, Vi,j+1);其中,vUj+1为本路由器确认带宽增量。
8.如权利要求1或2或3所述的方法,其特征在于所述路由器收到会话结束消息时,收回该会话占用的带宽资源,并增加正反馈的剩余资源。
9.如权利要求1所述的方法,其特征在于所述拥塞扩展头的格式为下一包头的类型、 扩展头长度、本扩展头的版本、平均窗口间距、端到端延迟、带宽增量反馈值、待确认带宽增量。
10.如权利要求1所述的方法,其特征在于所述拥塞状态包括路由器当前控制间隔内输出接口的平均空闲带宽和队列长度。
全文摘要
本发明公开了一种稳定高效的互联网拥塞控制方法,属于网络技术领域。本方法为1)发送端A在待发送数据包中增加一拥塞扩展头;2)路由器根据流经数据包的端到端延迟di,更新其下一控制间隔的长度;3)路由器计算下一控制间隔的总拥塞反馈值Φk+1,并将Φk+1在下一控制间隔分发到各个会话流的数据包中;4)路由器根据收到数据包的平均窗口间距Xi,更新流经数据包的待确认带宽增量为δi,j+1;5)接收端B将收到的发送端A所发送数据包中待确认带宽增量累加,并将其添加到返回数据包的带宽增量反馈值中;6)发送端A根据其收到数据包中的带宽增量反馈值,调整其拥塞窗口值W。本发明对网络负载变化响应快,提高资源利用率。
文档编号H04L12/56GK102404208SQ20111035819
公开日2012年4月4日 申请日期2011年11月11日 优先权日2011年11月11日
发明者吴志美, 方贵明, 石志强 申请人:中国科学院软件研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1