一种协议无关的双拥塞控制方法与流程

文档序号:16066944发布日期:2018-11-24 12:45阅读:400来源:国知局
本发明属于网络
技术领域
,具体涉及一种网络拥塞控制方法。
背景技术
拥塞控制一直是网络领域里的研究热点,主要原因是网络的状态不断的发生着变化,而过时的拥塞控制算法不适应当前的网络环境,或者不是最优,所以需要改进。传统的拥塞控制算法,例如tcpreno,tcpnewreno,hstcp,htcp,udt,bic,cubic,bbr,quic等都是基于丢包、rtt或者可用带宽进行着调节。这些算法过于依赖拥塞中的过程参数,例如nak(丢包反馈信号),ack(应答信号),rtt(往返时延),bandwidth等,而这里面很多参数很难准确测定,再加上网络状态千变万化,所以传统网络拥塞控制算法很难达到全局最优。特别bdp很大的广域网下,带宽利用率和吞吐率有待提升。网络流量呈现不规则的锯齿波形状,可以将其类比于正弦波去分析。可以数学和实验证明,调整正弦波的波长,也就是业务增窗增速或者降窗降速的加速度,可以降低网络拥塞概率,并且提升网络整体吞吐率和带宽利用率。正弦波的波长,跟拥塞控制算法中的一些变量相关,比如bbr中的增益因子等,调整波长,相当于调整这些增益因子的值。一方面是传统拥塞控制算法调节着网络拥塞状态,另一方面是基于波长的方法进一步改善着拥塞状态,所以最后的网络拥塞概率会比较低。例如,当网络即将或者出现拥塞时,不仅可以降窗降速,还可以增大波长,从而进一步改善网络拥塞状态。波长的调节可以跟拥塞过程中的参数无关,只跟是否拥塞有关,并且也是协议无关。技术实现要素:本发明的目的在于提供一种协议无关的双拥塞控制方法,从而提升网络吞吐率和带宽利用率。本发明提供的协议无关的双拥塞控制方法,是通过将传统拥塞控制算法和波长调节的方法结合起来调整网络拥塞,进而使网络拥塞的概率降低,提升网络吞吐率和带宽利用率。本发明提供的协议无关的双拥塞控制方法,基本思路为:将传统拥塞控制算法进行分段,确定每段函数的自变量,将该自变量作为影响该段函数的波长;监测吞吐率、cwnd或者发包速率这些变量变化的曲线,该曲线可以类比为传统拥塞算法下网络拥塞的概率分布函数;根据分布函数求出传统拥塞控制算法(记为q)的概率密度函数,并进而求得基于波长调节的拥塞控制算法(记为p)的概率密度函数,然后根据优化方程确定波长mn,qp-wave便是根据mn来实时对网络拥塞状态进行动态调节。本发明提供的协议无关的双拥塞控制方法,具体步骤为:(1)将网络流量转化为正弦波动函数去分析。采用傅里叶变换将网络流量的时域转化到频域,实时采集网络流量的吞吐率、速率、cwnd等数据;将传统拥塞控制算法按照函数本身连续性、上升和下降阶段以及拥塞阶段进行分段,并提取每段函数的自变量x,如rtt、nak、lossrate、ack、bandwidth等;(2)求取分布函数。根据不同拥塞控制算法的特点,找到影响拥塞状态的参数,然后提取跟它相关的分布函数。例如udt的拥塞状态主要是靠丢包率来确定,所以对udt分布函数的提取,可以关注于丢包状态下网络的发包速率或者吞吐率变化情况。由于rtt的离散型和不确定性,该分布函数是离散的,通过该分布函数可以确定传统拥塞控制算法(记为q)的概率密度函数和基于波长的拥塞控制算法(记为p)的概率密度函数;(3)由上述分布函数求得q,根据q和p的反比关系求得p;根据基于波长调节的拥塞概率密度函数和拥塞概率限制值plimit确定波长mn,由波长mn和传统拥塞算法共同调节着网络拥塞状态;实时根据分布函数更新概率密度函数,并将拥塞状态参数反馈给基于波长调节的拥塞概率密度函数,更新波长mn。将这种传统拥塞控制算法(记为q)和基于波长调节的拥塞控制算法(记为p)结合,根据mn来实时对网络拥塞状态进行动态调节的方法,记为qp-wave。本发明步骤(1)中,利用正弦波动函数和傅里叶变换去分析网络流量,将给网络拥塞控制的研究提供新的方向,并且也有利于对网络拥塞控制进行量化分析。本发明步骤(1)中,分布函数可以为分段函数,分布函数是根据实时数据测量和处理得到的,例如根据网卡的吞吐量、业务的发包速率、甚至程序中的丢包函数调用次数和相关变量变化值来确定。本发明步骤(1)中,对自变量x的提取,主要是考虑该拥塞算法f(mnx)以什么参数作为拥塞度量;调整波长mn,便可以使f(mnx)的曲线随着横轴变宽或者变窄,进而控制业务导致网络拥塞的概率。本发明步骤(2)中,分布函数的提取可以确定q和p,分布函数的提取主要依赖于实时测试到的数据。本发明步骤(3)中,qp-wave的概率密度函数可以配合其他参数确定当前时刻的最优波长mn;由q和p共同通过调节波长mn来实现双拥塞控制qp-wave。本发明的优势在于:1.波长的可变性将会大大降低网络的拥塞概率,并且在满足一定的条件下,可以不影响或者提升网络的整体吞吐率和带宽利用率;2.传统网络拥塞控制算法只需要做很少改进来适配pn(mn)的参数接口,保证了该方法的灵活性和可扩展性;3.将网络流量类比于正弦波函数分析,将会给传统拥塞控制算法的优化提供新的思路。利用本发明,可以优化传统拥塞控制算法,提升网络吞吐率和带宽利用率,并为网络拥塞及其他领域的优化问题提供新的解决方案。附图说明图1本发明方法框架图示。图2本发明对网络流量的理论建模。图3本发明中q与p对数据包传输的影响对比。图4本发明中p对带宽的补偿利用。图5双拥塞控制方法qp-wave的优势。图6qn(t,nak,ack,rtt...)和pn(mn)的关系曲线。图7qp-wave实现流程图。图8不调节波长时udt丢包曲线。图9调节波长为1.005时丢包曲线。图10波长改变与文件传输时间的关系。具体实施方式为表述方便,下面将传统拥塞控制算法称为q,基于波长的拥塞控制算法称为p,q和p是相互独立的。本发明的实现框架如图1所示,其中qn(t,nak,ack,rtt...)为q作用下网络流量的分布函数fn(t,nak,ack,rtt...)求导而来;其中,t为时间,nak为丢包反馈信号,ack为应答信号,rtt为往返时延。这里的自变量根据q本身来确定,例如基于丢包,q就只跟nak或者丢包率有关;基于延时,q就只跟rtt相关。pn(mn)为p的拥塞概率,它只跟波长mn有关。qn(t,nak,ack,rtt...)本身调控着网络拥塞状态,pn(mn)进一步通过控制波长mn来调控网络拥塞,所以本发明是对网络的双拥塞控制。下面结合附图对本发明进行详细的描述。1、网络流量的理论建模与分析传统拥塞控制算法对网络流量的分析局限于rtt,带宽,丢包等离散的量,而本发明将傅里叶变换的思想借鉴过来,将网络流量模拟为正弦波去分析,如图2所示。数据包传输速率可以通过正弦波函数近似分段为vn(t)≈an+an|sinmnt|,而吞吐量是其分段函数的积分:这时,可以将网络流量从时域分析转换到频域进行分析。q的降窗降速和增窗增速过程,不管速率和吞吐率怎样变化,网络拥塞情况如何,其加速度总体上保持一致,即所有业务都基本上集中于频域里的某一个频率点,除非q本身能自动调节这个加速度,而实际上q的这个加速度或者增益是固定值或者很有限的调节,这样就容易导致网络拥塞。p算法的主要思想是将加速度或者增益动态变化,打散频率点,减少业务共振产生拥塞的可能性。而p的调节将会依赖于pn(mn)所决定的mn,而pn(mn)由qn(t,nak,ack,rtt...)和plimit确定。可以数学证明,在mn相互的大小关系满足最小公倍数的情况下,p的调节不会影响理论网络吞吐量,但会大大降低网络拥塞概率,而实际上,网络拥塞概率的降低,将会使实际吞吐量或带宽利用率上升。对q和p的数据传输过程分析如图3所示,由于q的加速度一致,导致从统计学上看数据包出现一致的上升行为,容易导致拥塞,而且拥塞后一致的下降行为,又导致了带宽浪费;而p基于波长变化的思想,数据包的加速度可以设置为不同,这样它们拥塞的概率减少,即使出现拥塞,也不会造成太大的带宽浪费。也就是说,p对带宽具有一定的补偿作用,如图4所示,而q会浪费掉一些带宽,表现的过于激进。qp-wave结合了p和q两者的优点,如图5所示,当q出现拥塞时,p通过波长控制来调整q的拥塞程度;当p出现拥塞时,q也能根据自身的拥塞机制来调节p的拥塞程度;由qp通过波wave共同调节网络拥塞,从而使网络拥塞概率最小,这也是qp-wave的优势。2、q的分布函数的求取为了求取q的概率密度函数qn(t,nak,ack,rtt...),我们可以先求取q的分布函数fn(t,nak,ack,rtt...),该函数是实时测量吞吐率或者速率得到的。qp-wave是协议无关的,意味着可以适用于各种q算法,但每种q的拥塞控制状态参数是不同的,关键看q主要跟那种因素相关,比如对于cubic,q主要跟丢包有关,那么分布函数就是关于丢包自变量的函数;对于bbr,q跟可用带宽,丢包,rtt均有一定关系,那么分布函数的变量设定,就都要考虑这些因素。分布函数是实时和动态的,只能用于预测一段时间内的概率密度。分布函数的因变量可以是吞吐量、发包速率和cwnd等。3、求取q和p的概率密度函数以及mnq的概率密度函数qn(t,nak,ack,rtt...)可通过q的分布函数求得,而求取p的概率密度函数,主要是求取mn,因为可以通过上述正弦波模型和数学证明导出pn(mn)=mn/(m1m2...mn),其中m为q的固有波长,mn为p的可变调节波长,由此可见pn(mn)只跟mn和m相关,跟nak,ack,rtt等无关,相当于协议无关。假设一个业务造成网络拥塞发生的概率是a,由于p和q的发生是独立事件,所以n个业务造成网络拥塞发生的概率psum满足二项分布。综上所述,有以下关系式成立:1-(1-pn(mn))(1-qn(t,nak,ack,rtt...))=a为了求得mn,需要设定一个优化问题:我们总是希望尽量提高总业务的带宽利用率或者吞吐率。所以假设链路吞吐率上限为tmax,实际吞吐率为tactual,于是该优化问题可数学上表述为:minimizeδt=tmax-tactualsubjectto1-(1-pn(mn))(1-qn(t,nak,ack,rtt...))=apn(mn)min≤pn(mn)≤pn(mn)maxpn(mn)∝1/qn(t,nak,ack,rtt...)(该反比关系如图6所示)上述约束条件中的边界值,可以根据分布函数的边界值去确定。可以通过这个优化问题最终求得当前实时条件下的mn。q通过mn去调节p,最终实现协议无关的双拥塞控制qp-wave,其实现流程图如图7所示。上述关于本发明的描述仅仅是针对本发明的实施方式的详细说明,并非由于限制本发明的保护范围,在对应领域的技术人员应明白,凡未脱离本发明技术本质所作的等效实施方式或变更都应包含在本发明的保护范围内。下面以udt(一种拥塞控制算法)算法为例说明本发明的实现过程,对其他拥塞算法的实现过程是类似的。首先我们分析udt的拥塞控制算法特点,它是以丢包作为拥塞状态的检测机制,nak是它的丢包检测信号。所以qn(t,nak,ack,rtt...)可以表述为qn(t,nak)。拥塞控制算法都有发生拥塞前增窗增速,发生拥塞后降窗降速的过程,这些过程对应了不同的分段函数,每个分段函数都可以有自己的波长。由于udt是以丢包作为检测拥塞状态的信号,所以可以拥塞后调整波长,观察带宽利用率情况。对应udt代码里就是修改voidcudtcc::onloss(constint32_t*losslist,int)函数中的部分算法,例如m_dpktsndperiod=ceil(m_dpktsndperiod*wavelength)中的wavelength。我们通过调节wavelength来进一步控制网络拥塞的概率,从而配合udt本身的算法实现双拥赛控制,这里关键是选取wavelength的最佳值。其次,为了求取wavelength的最佳值,先求取分布函数fn(t,nak,ack,rtt...),由于分布函数只跟丢包相关,所以可以将其简化为fn(t,nak)。分布函数是用于计算得到概率密度,进而得到wavelength的最佳值的。由于该分布函数跟丢包相关,所以我们要实时提取业务的丢包情况。可以在程序里设置静态变量,记录业务发生丢包的次数、时间以及发送速率。将丢包次数和时间的关系拟合成折线图,并且将其平滑,最终便得到了分布函数。最后,对分布函数求导便可以得到概率密度函数qn(t,nak),设置plimit=20%,网卡带宽为11m左右,用软件设置丢包率。所以1-(1-pn(mn))(1-qn(t,nak))=20%。需要求出δt=11-tactual的最小值。然后设置不同的丢包率,实时采用wireshark抓包分析,得到分布函数,最后求得最佳波长为wavelength=1.005左右,这跟实际的表现也比较吻合。测试的相关曲线如下:图8不调节波长时udt丢包曲线。该曲线描述了原始udt的测试曲线,原始的意思是保持udt的固定波长wavelength=1.125不变。共测试了四种不同丢包率的情况,可以发现,丢包率为1%(packetloss=0.01)时文件发送完成所需的时间最长,发包速率最小,对拥塞的适应越差,拥塞概率越高,降窗降速比较频繁,浪费了部分带宽。图9调节波长为1.005时丢包曲线。相比图8中的曲线,不管哪种丢包率下,wavelength=1.005时文件传输时间缩短为原来的三分之一,而且传输波动更小,更加平稳,说明在相同的丢包拥塞环境下,这种波长对拥塞的适应更强,拥塞控制算法判断网络拥塞概率比较小,降窗降速比较平缓,提升了带宽利用率。图10波长改变与文件传输时间的关系。该图在固定丢包率packetloss=0.01的情况下,测试波长的改变与文件传输时间的关系,从图中可以发现,波长越大,文件传输时间越短,波长越小,文件传输时间越大。但波长太大,容易造成网络拥塞,影响其他业务传输,波长太小,又导致发包速率降低,带宽利用率较差,所以它们的最佳值是图中的交点,正好位于1.005附近,这也正好验证了上述理论分析时最佳波长为1.005的结论,验证了本发明的有效性。表1最终测试和计算的参数。参数值实际最佳波长1.005文件大小208mb丢包率1%传输时间63s平均发包速率3.3mbps性能改善将近2倍最大带宽bwmax11mbps理论最佳波长大约1.005plimit20%该表为实验中的部分参数。可以看出,利用本发明,udt拥塞控制算法在丢包环境下,也就是在网络可能发生拥塞时,性能提升了将近两倍。对于其他拥塞控制算法,本发明也是有效的,因为所有的拥塞控制算法,基本过程是相似的,那就是拥塞时降窗降速,没有拥塞时增窗增速,传统拥塞算法对增窗增速和降窗降速的增加或者减少速率基本是一致的,而本发明尝试去改变这个速率,也就是波长,结果显示具有良好的效果。而且本发明仅仅是改变波长,并没有改变拥塞控制算法本身,所以是双拥塞控制。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1