CN110620737B - 基于延迟的自适应拥塞控制方法 - Google Patents
基于延迟的自适应拥塞控制方法 Download PDFInfo
- Publication number
- CN110620737B CN110620737B CN201910846492.9A CN201910846492A CN110620737B CN 110620737 B CN110620737 B CN 110620737B CN 201910846492 A CN201910846492 A CN 201910846492A CN 110620737 B CN110620737 B CN 110620737B
- Authority
- CN
- China
- Prior art keywords
- delay
- window
- queuing delay
- current
- congestion
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/28—Flow control; Congestion control in relation to timing considerations
- H04L47/283—Flow control; Congestion control in relation to timing considerations in response to processing delays, e.g. caused by jitter or round trip time [RTT]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种基于延迟的自适应拥塞控制方法,根据排队延迟和窗口大小,在发送端判断网络是否拥塞,并根据拥塞情况调节拥塞窗口。拥塞窗口每一次的调节幅度为V*θ*δ,其中δ是常数,V用于加快拥塞控制算法的收敛速度,θ是根据排队延迟周期性抖动的过程中是否到达过0点的情况而调整的参数。该参数用于控制当前网络环境中的调窗幅度,以解决长期排队延迟为0的情况下链路利用率降低和排队延迟长期不为0又无法测量到最小往返延迟的问题。实验结果表明,本专利能够控制瓶颈链路缓存队列周期性地出现清空行为,使每条流都能测量到准确的往返链路传播延迟。相比于Copa算法,本专利具有延迟更低、公平性更好的优势。
Description
技术领域
本发明涉及网络拥塞控制领域,尤其涉及一种基于延迟的自适应拥塞控制方法。
背景技术
在Internet网中,传统的主流拥塞控制协议主要依据丢包信息进行拥塞控制。然而,当网络未拥塞时,基于丢包的拥塞控制协议会一直增加拥塞窗口的大小,直至数据流量发生拥堵的地方即网络瓶颈处的缓冲区溢出。这使得缓冲区越大时,瓶颈处的排队队列越长,从而增加数据包的传输延迟。为了避免这一问题,现有的基于延迟的拥塞控制方法提出了利用延迟信息判断网络是否拥塞,当延迟过大时,便判定为网络拥塞,从而在缓冲区溢出前便减少拥塞窗口,避免排队队列的增长。
基于延迟的拥塞控制协议Vegas、Copa均结合排队延迟和拥塞窗口的大小判断网络是否拥塞。其中Vegas在判断网络拥塞后,采用静态的方式调节窗口,每个RTT内窗口的调节量仅为一个包。并且当窗口和排队延迟处于期望位置时,便保持窗口大小不变。然而,在延迟带宽积很大的情况下,Vegas需要经历很长时间才能使窗口达到期望的大小。同时,由于Vegas达到期望位置后保持窗口不变,使得网络瓶颈处的缓冲区将保持一定的队列。这意味着新到达的流将错误的估计往返链路传播延迟,即测量到的RTTmin大于真实的往返链路传播延迟。
Copa采用了和Vegas相似的机制判断网络拥塞,不同的是,Copa中每个RTT的调窗幅度由V*δ决定,其中V为动态调节的参数,δ为预设置的参数,设置完毕后不再改变,在Copa中一般设为2。Copa具体的拥塞控制方法为:
其中cwnd′为根据当前拥塞窗口cwnd计算得到的新的拥塞窗口,CR为当前速率,TR为目标速率,CR和TR的计算方式如下:
CR=cwnd/RTTstand
TR=δ/dq
其中,排队延迟dq=RTTstand-RTTmin,往返延迟RTTstand为最近0.5srtt内测量所得的最小往返延迟数值,其中srtt为TCP中默认的往返延迟的指数加权平滑值,RTTmin为最近10秒内测量到的最小往返延迟数值。V的初始值V为1。其调节算法如下,当Copa检测到窗口一直增加(或者一直减小)超过三个RTT时,认为当前速率距离目标速率很远,则每经过一个RTT将V加倍,加快当前速率接近目标速率。若连续三个RTT内,窗口变化方向发生过改变,即由增加变为减小(或者由减小变为增加),则表明当前速率从小于等于目标速率变为大于目标速率(或者相反)。此时认为通过V的加速,当前速率已经接近过目标速率,将V重设为1。由于当前速率等于目标速率时,Copa依旧会调节窗口。这使得Copa总是在调节窗口。并且在当前速率等于目标速率时窗口调节方向发生改变。而在调节方向改变后,当前速率将重新接近目标速率。Copa指出,在同步的环境下,当窗口调节方向刚发生改变后,对于调窗幅度1*δ,再经过2.5个RTT便能使当前速率达到目标速率。这意味着,窗口每经过2.5个RTT便会发生一次转向,而由于V的加倍机制需要连续三个RTT内窗口调节方向不变,因此V的值将保持为1。相比于Vegas,Copa能通过调节V加速当前速率接近目标速率,并在当前速率接近目标速率后,使窗口出现周期性的振荡行为,从而使队列也出现周期性的振荡行为。假若队列振荡的周期内,其极小值点接近0点,则每经过一个振荡周期,每条流能够观测到一个接近往返链路传播延迟的往返延迟,从而使测量到的RTTmin更准确。
然而,通过分析队列的振荡行为发现,实际上在一个振荡周期内,排队延迟的极小值点与瓶颈处链路带宽C、网络中流的数目N、往返链路传播延迟的测量值RTTmin相关。这意味着在不同的网络环境中,Copa无法确保通过队列的振荡行为使得每条流能估计到准确的往返链路传播延迟。分析过程如下:假设所有流同步,且处于减窗阶段。记t时刻测量到的往返延迟为RTT(t),则t时刻观测到的排队延迟dq(t)为RTT(t)-RTTmin,RTTmin为测量的最小往返延迟,假设其等于真实的链路往返传播延迟。每一个RTT内的调窗幅度为λ>0,是常量,则t时刻前一个RTT前的窗口大小为:
cwnd(t-RTT(t))=cwnd(t)+λ (1)
在t-RTT(t)时刻发送的数据包,其ACK在t时刻被收到。此数据包所经历的排队大小由总窗口大小和链路延迟带宽积的差决定。当总窗口小于链路延迟带宽积时,链路未填满,缓冲区队列为0;当总窗口大于等于链路延迟带宽积时,缓冲区队列等于总窗口减链路延迟带宽积。因此在t时刻观测到的排队延迟等于所经历的队列长度除以瓶颈处的链路带宽C。假设所有流同步,则有:
dq(t)=max([N*cwnd(t-RTT(t))-RTTmin*C]/C,0)
其中,N为网络中流数,N*cwnd(t-RTT(t))为t-RTT(t)时刻所有流的总窗口大小。由公式可知,发送端观测到的排队延迟dq(t)和窗口之间存在一个RTT的滞后。假设当前t时刻,所有流观测到当前速率和目标速率相等,则排队延迟dq(t)>0。联立窗口调节公式(1),则有
求解得到
在t时刻之后,窗口将增加,因此cwnd(t)为极小值,记为cwndmin。由于排队延迟滞后cwnd一个RTT。因此发送端在一个RTT后,观测到排队延迟达到极小值点,记为dqmin。其表达式为:
因此,在Copa中,可知下降过程中窗口的极小值点和V成反比,当V越大时,cwndmin值越小,dqmin将越接近于0。但当cwndmin小于时,链路无法填满。使得链路利用率下降,从而影响吞吐率。而V越小时,cwndmin值越大,而dqmin将越远离0点。当V等于默认值1时,有:
其中,N*cwndmin大于RTTmin*C,因此一个RTT后观测到的排队延迟为
进一步分析得到dqmin和往返链路传播延迟RTTmin,瓶颈处的链路带宽C呈单调递减关系,而与网络中的流数N存在单调递增关系,因为;
基于NS3网络仿真平台的仿真实验表明dqmin和往返链路传输延迟RTTmin,瓶颈处的链路带宽C以及网络中的流数N之间的关系与分析一致。
仿真实验所采用哑铃拓扑如图2所示,其中节点S1和S2为发送端,节点B为交换机,节点R为接收端,每条链路的带宽和延迟均相同,记往返链路传播延迟为RTTbase,其为发送节点到接收节点之间链路传播延迟的两倍,链路B-R为瓶颈链路,其链路带宽为瓶颈带宽,记为C。
图3展示了,队列极小值点dqmin随往返链路传播延迟RTTbase的变化趋势,仿真环境采用图2所示的拓扑。每次仿真,改变往返链路传播延迟RTTbase,而保持每条链路的带宽(100mbps)和网络中的流数不变,其中网络中的流数等于10,平均分布在两个发送节点,从0秒启动,持续10秒。每次仿真,统计每个队列振荡周期内排队延迟的最小值dqmin,观察其随RTTbase的变化。仿真结果表明:dqmin和RTTbase存在单调递减关系,与之前的分析一致。
图4展示了,队列极小值点dqmin随瓶颈带宽C的变化趋势,仿真环境采用图2所示的拓扑。每次仿真,改变每条链路的带宽,而保持往返链路传播延迟RTTbase(20ms)和网络中的流数不变。网络中的流数等于10,平均分布在两个发送节点,这些流从0秒启动,持续10秒。每次仿真,统计每个队列振荡周期内排队延迟的最小值dqmin,观察其随C的变化。仿真结果表明:dqmin和瓶颈带宽C之间存在单调递减关系,与之前的分析一致。
图5展示了,队列极小值点dqmin随网络中的流数N的变化趋势,仿真环境采用图2所示的拓扑。每次仿真,改变网络中的流数,而保持每条链路的带宽(100mbps)和往返链路传播延迟RTTbase(20ms)不变。网络中的N条流平均分布在两个发送节点上,从0秒启动,持续10秒。每次仿真,统计每个队列振荡周期内排队延迟的最小值dqmin,观察其随N的变化。仿真结果表明:dqmin和N存在单调递增关系,与之前的分析一致。
根据理论分析和仿真结果可知,当RTTmin很小或者C很小或者N很大时,排队延迟的极小值dqmin将不能接近0点,使得往返链路传播延迟的估计值RTTmin大于真实的往返链路传播延迟。当RTTmin越大,使用RTTstand和RTTmin的差值估计到的排队延迟dq则越小,相应地通过δ和dq比值计算得到的目标速率越大,这使得发送端将更加激进地增加拥塞窗口以接近目标速率,从而使得瓶颈处队列进一步增长。此外当不同流测量到的RTTmin不一样时,RTTmin值越大的流将更激进地增加窗口,从而影响公平性。
基于NS3仿真平台进一步分析平均往返延迟和RTTmin之间的关系。图6为,采用Copa的情况下,每条流测量到的RTTmin随时间变化图。仿真环境采用图2所示的拓扑,每条链路的带宽为100mbps,往返链路传播延迟RTTbase为20ms,网络中的流数为50,平均分布在两个发送端上。每条流均从0秒启动,总运行40s。仿真结果表明,在一开始的0~10秒内,每条流观测到的RTTmin等于RTTbase。而在10s后,每条流重新估计得到的RTTmin高于RTTbase。
在图6所描述的仿真环境下,采用Copa的情况下,每500ms内所有流的平均瞬时往返延迟(averagedelay)随时间的变化如图12所示。实验结果表明:在10s后,由于每条流重新测量得到的RTTmin高于RTTbase,使得每条流更激进地增长窗口,相应地导致平均延迟增长。
此外,基于NS3仿真平台,进一步分析当不同流估计到的RTTmin不同时,每条流的吞吐量情况。图7为,采用Copa的情况下,3s时启动的10条新流和0s时启动的90条老流测量到的RTTmin的对比图。仿真场景采用图2所示的拓扑,其中每条链路的带宽为100mbps,往返链路传播延迟为20ms。在0s时启动90条流,在3s时启动的10条新流,总运行10s。仿真结果表明,3s时启动的新流测量到的RTTmin高于0s时启动的老流测量到的RTTmin。
图8为,采用Copa的情况下,3s时启动的10条新流和0s时启动的90条老流的吞吐率随时间变化图,其中吞吐率为500ms内所有流的总的ACK的到达速率。仿真环境和图7一致。仿真结果表明,在0~3s期间内,由于排队延迟的极小值dqmin没有接近0点,在3s时新到达的流将测量到更高的RTTmin,使得新流更加激进地增加窗口。因此,在图9中观测到相比于老流,新流获得更多的吞吐量。
总的来说,虽然Copa希望通过队列周期性的振荡行为,使每条流能测量到准确的RTTmin。但基于上述分析,队列周期性振荡的极小值与网络环境有关。因此对于Copa的调窗机制,在流数很大、链路传播延迟或瓶颈处带宽很小的网络环境中,将无法保证每个振荡周期内排队延迟的极小值接近0点,从而影响RTTmin的测量。
发明内容
本发明要解决的问题是:在往返链路传播延迟很小或者瓶颈带宽很小或者网络中流数很多的情况下,排队延迟振荡周期内的极小值点无法接近0点的问题。为解决上述问题,本发明提供了一种基于延迟的自适应的拥塞控制方法Adaptive-Copa。根据之前的分析,窗口的极小值点和调窗幅度λ成反比。当λ越大时,排队延迟的极小值越小。因此可以通过改变调窗幅度使得队列振荡周期内排队延迟的极小值能够接近0点。基于这一思想,基于延迟的自适应拥塞控制方法Adaptive-Copa,将每个RTT内的调窗幅度修改为V*θ*δ,其中V根据窗口的变化行为进行调节,而θ根据排队延迟的极小值点是否接近过0点进行调节。
为了实现上述技术目的,本发明的技术方案是,
一种基于延迟的自适应拥塞控制方法,在排队延迟抖动的周期内,根据排队延迟是否曾到达0点,动态改变拥塞控制过程中调节拥塞窗口的系数,包括以下步骤:
步骤一,发送端每收到一个ACK包时,通过如下公式调节拥塞窗口cwnd:
其中,cwnd′为根据当前拥塞窗口cwnd计算得到的新拥塞窗口,δ为预设置且不变化的参数,V和θ是动态变化的参数,CR为当前速率,TR为目标速率;
步骤二,发送端每收到一个ACK包时,根据拥塞窗口cwnd的变化情况动态调节参数V:当窗口持续变大或变小时则增大V,否则将V置为1;
步骤三,发送端每收到一个ACK包时,根据每个振荡周期内排队延迟dq是否曾到达过0点来动态调节参数θ,当排队延迟dq曾到达过0点则减小θ,否则增加θ;其中振荡周期通过以下方法获得:若当前排队延迟大于历史排队延迟,记排队延迟变化方向为增,否则记排队延迟变化方向为减;当排队延迟由增变为减或由减变为增时,认为排队延迟变化方向发生一次转向,以排队延迟每发生两次转向的时间为一个振荡周期。
所述的方法,所述的步骤一中,CR和TR通过以下公式计算:
CR=cwnd/RTTstand
TR=δ/dq
其中,排队延迟dq=RTTstand-RTTmin,往返延迟RTTstand为最近0.5srtt内测量所得的最小往返延迟数值,其中srtt为TCP中默认的往返延迟的指数加权平滑值,RTTmin为最近10秒内测量到的最小往返延迟数值。
所述的方法,所述的步骤二包括以下步骤:
步骤A1,发送端每收到一个ACK包时,根据ACK包的接收时间减去该ACK包的发送时间得到瞬时往返延迟RTT。发送端记当前时刻之前一个RTT时刻的拥塞窗口大小为历史窗口。若当前时刻的拥塞窗口大于历史窗口,发送端记窗口调节方向为正,反之,记窗口调节方向为负。
步骤A2,判断最近连续三个RTT以内窗口调节方向是否一致,若一致,则将V加倍;若最近连续三个RTT内窗口调节方向不一致,则将V重置为1。
所述的方法,所述的步骤三中,若在当前周期内发现dq=0,则认为dq曾经到达过0点,此时,先记录当前的θ值为θempty,然后记录当前周期的结束时刻为Tempty,最后将θ调节为β*θ,其中β是小于1且大于0的系数,若在当前周期内没有发现dq=0,则根据当前时刻t距离Tempty的时间长度的三次函数增加θ,公式如下:
其中,w为默认值为0.1的参数,t为当前时刻。
本发明的技术效果在于,根据排队延迟周期性抖动的过程中排队延迟是否到达过0点的情况而动态改变调窗幅度。使得在排队延迟的振荡周期内的排队延迟的极小值能够接近0点,从而准确地测量到往返链路传播延迟,同时在极小值能够接近0点后,减小调窗幅度,避免调窗幅度过大导致吞吐量的损失。仿真实验结果表明,本发明能够控制瓶颈链路缓存队列周期性地出现清空行为,使每条流都能测量到准确的往返链路传播延迟。相比于Copa算法,本发明具有延迟更低、公平性更好的优势。
附图说明
图1为基于延迟的自适应拥塞控制方法的总体框架图。
图2为哑铃型拓扑示意图。
图3为队列极小值点随往返链路传播延迟的变化关系图。
图4为队列极小值点随瓶颈链路带宽的变化关系图。
图5为队列极小值点随网络中存在的流数变化关系图。
图6为采用Copa的情况下,在流数为50,链路带宽为100mbps,往返链路传播延迟20ms情况下每条流的RTTmin随时间变化图。
图7为采用Copa的情况下,在链路带宽为100mbps,往返链路传播延迟为20ms环境下,在3s时启动的10条新流和0s时启动的90条老流测量到的RTTmin的比较图。
图8为采用Copa的情况下,在链路带宽为100mbps,往返链路传播延迟为20ms环境下,在3s时启动的10条新流和0s时启动的90条老流测量到的吞吐量比较。
图9为检测队列振荡周期的示意图。
图10为θ的调节算法图。
图11为采用Adaptive-copa的情况下,在流数为50,链路带宽为100mbps,往返链路传播延迟为20ms情况下每条流的RTTmin随时间变化图。
图12为在流数为50,链路带宽为100mbps,往返链路传播延迟为20ms环境下,Adaptive-copa和Copa的平均延迟随时间变化的对比图。
图13为采用Adaptive-Copa的情况下,当有新流到达时,每条流测量到的RTTmin随时间变化图。
图14为采用Adaptive-Copa的情况下,当有新流到达时,每条流的吞吐率随时间的变化图。
具体实施方式
下面结合附图对本发明的具体实施方式作进一步详细描述:
图1为基于延迟的自适应拥塞控制方法Adaptive-Copa的总体框架图,首先根据窗口和往返延迟的比计算当前速率,再根据预设置的参数δ和排队延迟的比计算目标速率,最终通过比较当前速率和目标速率的大小判断网络是否拥塞。当判断网络拥塞后,再根据V*θ*δ调节拥塞窗口。其操作步骤如下:
步骤一,发送端每收到一个ACK包时,通过如下公式调节拥塞窗口cwnd:
其中,cwnd′为根据当前拥塞窗口cwnd计算得到的新拥塞窗口,δ为预设置且不变化的参数,V和θ是动态变化的参数,CR为当前速率,TR为目标速率;
步骤二,发送端每收到一个ACK包时,根据拥塞窗口cwnd的变化情况动态调节参数V:当窗口持续变大或变小时则增大V,否则将V置为1;
步骤三:发送端在收到ACK包时,根据历史上排队延迟的振荡周期内,排队延迟dq是否接近过0,动态调节参数θ。测量排队延迟dq的振荡周期方法如下:当前排队延迟大于历史排队延迟时,记排队延迟变化方向为增,否则记排队延迟变化方向为减。当排队延迟由增变为减、或由减变为增时,认为排队延迟变化方向发生一次转向。定义排队延迟变化每发生两次转向的时间为一个周期。
步骤一中,CR和TR通过以下公式计算:
CR=cwnd/RTTstand
TR=δ/dq
其中,排队延迟dq=RTTstand-RTTmin,往返延迟RTTstand为最近0.5srtt内测量所得的最小往返延迟数值,其中srtt为TCP中默认的往返延迟的指数加权平滑值,RTTmin为最近10秒内测量到的最小往返延迟数值。
步骤二包括以下步骤:
步骤A1,发送端每收到一个ACK包时,根据ACK包的接收时间减去该ACK包的发送时间得到瞬时往返延迟RTT。发送端记当前时刻之前一个RTT时刻的拥塞窗口大小为历史窗口。若当前时刻的拥塞窗口大于历史窗口,发送端记窗口调节方向为正,反之,记窗口调节方向为负。
步骤A2,判断最近连续三个RTT以内窗口调节方向是否一致,若一致,则将V加倍;若最近连续三个RTT内窗口调节方向不一致,则将V重置为1。
步骤三中,动态调节θ的方法为:如果当前周期内若发现dq=0,则认为dq曾经接近过0点。此时,先记录当前的θ值为θempty,然后记录当前周期的结束时刻Tempty,最后将θ调节为β*θ,其中β是小于1且大于0的系数。如果当前周期内没有发现dq=0,则根据当前时刻t距离Tempty的时间长度的三次函数增加θ,其公式如下:
其中w为默认值为0.1的参数,t为当前时刻。
其中θ根据当前周期内排队延迟是否接近过0点进行调节。为了判断队列是否经历过了一个振荡周期,Adaptive-Copa即本发明需要跟踪排队延迟的变化行为。如果当前排队延迟大于历史排队延迟,则排队延迟变化方向为正;如果当前排队延迟大于历史排队延迟,则记延迟的变化的方向为负。当排队延迟的变化方向由正变为负(或者由负变为正)时,则认为排队延迟方向发生了一次转向。队列振荡周期的检测如图9所示,每当检测到排队延迟两次转向时,意味着一个周期的结束,而排队延迟的极小值发生在排队延迟由减变为增的转向处。每当检测到一个周期结束时,判断当前周期内排队延迟是否接近过0,即极小值点是否等于0。若排队延迟曾接近过0则将θ减小,避免调窗幅度过大导致吞吐量损失。当排队延迟未曾接近过0点时,则将θ增加。为了能够快速的将θ增加至一个合适的值。每次检测到队列极小值接近0点时,记录当前的θ值,并将其作为下次θ增加的目标。θ调节算法如图10所示,在Tempty时刻,当前周期并且观测到排队延迟曾等于0。则将θ记录为θempty,并将θ减为β*θ,其中,β小于1且大于0,且设置完就不再改变,在不同网络环境下可以预设置不同的值,0.75是一个推荐值,因为仿真实验表明其在不同的网络环境下都有不错的性能。在之后队列周期性的振荡过程中,如果没发现排队延迟等于0,则根据当前时刻t距离Tempty的时间长度的三次函数增加θ,其公式如下:
θ=w((t-Tempty)-K)3+θempty
其中w为预设置的参数,默认为0.1,其中K为由于三次函数的特性,在一开始θ将快速的接近目标θempty,而当时间t接近K时,θ将缓慢变化,使其能较长时间停留在目标值θempty附近。当θ大于θempty后,如果每个周期内排队延迟依旧不等于0,将进入探测阶段,θ的增加速度不断加快,以探测到一个新的能使排队延迟等于0的θempty。基于NS3的仿真结果表明,采用Adaptive-Copa方法,每条流总是能保持估计到准确往返链路传播延迟。
图11展示了,采用Adaptive-Copa方法,每条流观测到的RTTmin随时间变化。仿真环境采用图2所示的拓扑,每条链路的带宽为100mbps,往返链路传播延迟RTTbase为20ms,网络中的流数为50,平均分布在两个发送端上。每条流均从0秒启动,总运行40s。
虽然该仿真场景和图6一致,但实验结果表明,由于Adaptive-Copa会自适应的调节θ使得排队延迟的极小值接近0点。因此在10s后,重新测量到的RTTmin接近RTTbase。
图12展示了,Adaptive-Copa和Copa的平均延迟随时间变化对比结果。仿真环境采用图2所示的拓扑,每条链路的带宽为100mbps,往返链路传播延迟RTTbase为20ms,网络中的流数为50,平均分布在两个发送端上。每条流均从0秒启动,总运行40s。仿真结果表明,由于θ的调节机制的作用,每条流总是能测量到准确的RTTmin,即在RTTmin重测后,由于Adaptive-Copa测量到RTTmin接近RTTbase,从而相比于Copa维持更低平均延迟。
图13展示了,采用Adaptive-Copa算法情况下,当有新流到达时,每条流观测的RTTmin随时间的变化。仿真环境采用图2所示的拓扑。每条链路的带宽为100mbps,往返链路传播延迟RTTbase为20ms。总共运行100条流,其中90条流(平均分布在每个发送端上)在0s时启动,另外10条流(平均分布在每个发送端上)在3s启动。
虽然该仿真场景和图7一致,但仿真结果表明在Adaptive-Copa中,3s启动的新流和0s启动的老流获得相同的RTTmin估计且接近往返链路传播延迟RTTbase。
图14展示了,采用Adaptive-Copa算法情况下,当有新流到达时,每条流的吞吐率随时间的变化。仿真环境采用图2所示的拓扑。每条链路的带宽为100mbps,往返链路传播延迟RTTbase为20ms。总共运行100条流,其中90条流(平均分布在每个发送端上)在0s时启动,另外10条流(平均分布在每个发送端上)在3s启动。
虽然该仿真场景和图8一致,但仿真结果表明采用Adaptive-Copa后,3s启动的新流和0s启动的老流获得相接近的吞吐量。
总的来说,基于延迟的拥塞控制协议需要测量到一个准确RTTmin,以使其算法正确运行。而本发明所述基于延迟的自适应的拥塞控制方法,在Copa的基础上新增了根据排队延迟是否接近0点改变调窗幅度的机制。相比于现有的基于延迟的拥塞控制协议,能够自适应的使每条流能观测到准确的往返链路播延迟。
Claims (2)
1.一种基于延迟的自适应拥塞控制方法,其特征在于,在排队延迟抖动的周期内,根据排队延迟是否曾到达0点,动态地改变拥塞控制过程中拥塞窗口的调节系数,包括以下步骤:
步骤一,发送端每收到一个ACK包时,通过如下公式调节拥塞窗口cwnd:
其中,cwnd′为根据当前拥塞窗口cwnd计算得到的新拥塞窗口,δ为预设置且不变化的参数,V和θ是动态变化的参数,CR为当前速率,TR为目标速率;
步骤二,发送端每收到一个ACK包时,根据拥塞窗口cwnd的变化情况动态调节参数V:当窗口持续变大或变小时则增大V,否则将V置为1;
步骤三,发送端每收到一个ACK包时,根据每个振荡周期内排队延迟dq是否曾到达过0点来动态调节参数θ,当排队延迟dq曾到达过0点则减小θ,否则增加θ;其中振荡周期通过以下方法获得:若当前排队延迟大于历史排队延迟,记排队延迟变化方向为增,否则记排队延迟变化方向为减;当排队延迟由增变为减或由减变为增时,认为排队延迟变化方向发生一次转向,以排队延迟每发生两次转向的时间为一个振荡周期;
所述的步骤二包括以下步骤:
步骤A1,发送端每收到一个ACK包时,根据ACK包的接收时间减去该ACK包的发送时间得到瞬时往返延迟RTT;发送端记当前时刻之前一个RTT时刻的拥塞窗口大小为历史窗口;若当前时刻的拥塞窗口大于历史窗口,则在发送端记窗口调节方向为正,反之,记窗口调节方向为负;
步骤A2,判断最近连续三个RTT以内窗口调节方向是否一致,若一致,则将V加倍;若最近连续三个RTT内窗口调节方向不一致,则将V重置为1;
所述的步骤三中,若在当前周期内发现dq=0,则认为dq曾经到达过0点,此时,先记录当前的θ值为θempty,然后记录当前周期的结束时刻为Tempty,最后将θ调节为β*θ,其中β是小于1且大于0的系数;若在当前周期内没有发现dq=0,则根据当前时刻t距离Tempty的时间长度的三次函数增加θ,公式如下:
其中,w为默认值为0.1的参数,t为当前时刻。
2.根据权利要求1所述的方法,其特征在于,所述的步骤一中,CR和TR通过以下公式计算:
CR=cwnd/RTTstand
TR=δ/dq
其中,排队延迟dq=RTTstand-RTTmin,RTTstand为最近0.5srtt内测量所得的最小往返延迟数值,其中srtt为TCP中默认的往返延迟的指数加权平滑值,RTTmin为最近10秒内测量到的最小往返延迟数值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910846492.9A CN110620737B (zh) | 2019-09-09 | 2019-09-09 | 基于延迟的自适应拥塞控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910846492.9A CN110620737B (zh) | 2019-09-09 | 2019-09-09 | 基于延迟的自适应拥塞控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110620737A CN110620737A (zh) | 2019-12-27 |
CN110620737B true CN110620737B (zh) | 2022-09-02 |
Family
ID=68922705
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910846492.9A Active CN110620737B (zh) | 2019-09-09 | 2019-09-09 | 基于延迟的自适应拥塞控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110620737B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022077523A1 (zh) * | 2020-10-16 | 2022-04-21 | 华为技术有限公司 | 信道拥塞参数确定方法及装置 |
CN115941557A (zh) * | 2020-11-10 | 2023-04-07 | 中南大学 | 基于延时的自适应拥塞控制方法及设备 |
CN113300969B (zh) * | 2021-05-20 | 2022-07-12 | 清华大学深圳国际研究生院 | 基于场景变化的拥塞控制切换方法、存储介质和电子设备 |
CN113726677B (zh) * | 2021-11-02 | 2022-04-12 | 阿里云计算有限公司 | 一种网络拥塞控制方法及设备 |
CN114844837B (zh) * | 2022-04-25 | 2023-09-26 | 西安交通大学 | 多服务队列环境中基于时延的拥塞控制方法和控制装置 |
CN114979011B (zh) * | 2022-05-17 | 2024-03-19 | 南京大学 | 一种应用于园区网络的拥塞控制方法 |
CN117499317B (zh) * | 2023-12-28 | 2024-04-12 | 苏州元脑智能科技有限公司 | 链路拥塞控制方法及装置、存储介质及电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1487698A (zh) * | 2003-09-01 | 2004-04-07 | 中国科学院计算技术研究所 | 一种适合有线/无线混合网络的自适应拥塞控制方法 |
CN103281255A (zh) * | 2013-06-12 | 2013-09-04 | 北京航空航天大学 | 一种基于吞吐量变化率和ecn机制的tcp友好速率控制方法 |
CN103888367A (zh) * | 2014-03-10 | 2014-06-25 | 清华大学 | 基于分组传输时延的多路径tcp拥塞控制方法 |
US10043137B1 (en) * | 2014-01-06 | 2018-08-07 | Nuu:Bit, Inc. | Dynamically optimized transport system |
-
2019
- 2019-09-09 CN CN201910846492.9A patent/CN110620737B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1487698A (zh) * | 2003-09-01 | 2004-04-07 | 中国科学院计算技术研究所 | 一种适合有线/无线混合网络的自适应拥塞控制方法 |
CN103281255A (zh) * | 2013-06-12 | 2013-09-04 | 北京航空航天大学 | 一种基于吞吐量变化率和ecn机制的tcp友好速率控制方法 |
US10043137B1 (en) * | 2014-01-06 | 2018-08-07 | Nuu:Bit, Inc. | Dynamically optimized transport system |
CN103888367A (zh) * | 2014-03-10 | 2014-06-25 | 清华大学 | 基于分组传输时延的多路径tcp拥塞控制方法 |
Non-Patent Citations (2)
Title |
---|
《Computer Communications》;Jianxin Wang etal;《Adaptive explicit congestion control based on bandwidth estimation for high bandwidth-delay product networks》;20130630;全文 * |
关于改进无线自组织网络TCP协议拥塞控制算法;聂昊;《科技促进发展》;20090215(第02期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN110620737A (zh) | 2019-12-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110620737B (zh) | 基于延迟的自适应拥塞控制方法 | |
Al-Saadi et al. | A survey of delay-based and hybrid TCP congestion control algorithms | |
US11936561B2 (en) | Rate-optimized congestion management | |
JP4032231B2 (ja) | データ伝送方法 | |
Pan et al. | PIE: A lightweight control scheme to address the bufferbloat problem | |
EP1955460B1 (en) | Transmission control protocol (tcp) congestion control using transmission delay components | |
US6754228B1 (en) | Method and device for data flow control | |
US20130322246A1 (en) | Network packet loss processing method and apparatus | |
CN104581422B (zh) | 一种用于处理网络数据传输的方法和装置 | |
US20050018617A1 (en) | Method and apparatus for network congestion control | |
US20050286416A1 (en) | Communication system | |
CN114422443B (zh) | 基于带宽估计和拥塞预测的卫星网络tcp拥塞控制方法 | |
US20090073975A1 (en) | Communication method and communication device | |
EP2586235B1 (en) | Method and arrangement for detecting congestion in a communications network | |
CN104618258B (zh) | 一种数据传输速率的控制方法 | |
CN112738843B (zh) | 确定通信延迟的高速率5g上行拥塞控制方法 | |
WO2009146726A1 (en) | Technique for improving congestion control | |
Aweya et al. | Enhancing TCP performance with a load‐adaptive RED mechanism | |
CN104579582B (zh) | 一种基于通信网络的高质量语音传输方法 | |
Wu et al. | Sync-tcp: A new approach to high speed congestion control | |
Koyama et al. | Slow start algorithm for mobile broadband networks including delay unrelated to network congestion | |
JP3548005B2 (ja) | フロー制御方法及びフロー制御装置 | |
Awadallah et al. | TCP-BFA: Buffer fill avoidance | |
CN115941557A (zh) | 基于延时的自适应拥塞控制方法及设备 | |
Zhang et al. | Adaptive fast TCP |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |