CN114143271B - 一种基于拥塞检测的带宽估算方法及装置 - Google Patents
一种基于拥塞检测的带宽估算方法及装置 Download PDFInfo
- Publication number
- CN114143271B CN114143271B CN202111445481.3A CN202111445481A CN114143271B CN 114143271 B CN114143271 B CN 114143271B CN 202111445481 A CN202111445481 A CN 202111445481A CN 114143271 B CN114143271 B CN 114143271B
- Authority
- CN
- China
- Prior art keywords
- congestion
- link
- rate
- congestion information
- information
- 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
- 238000001514 detection method Methods 0.000 title claims abstract description 86
- 238000000034 method Methods 0.000 title claims abstract description 53
- 238000005070 sampling Methods 0.000 claims abstract description 57
- 238000001914 filtration Methods 0.000 claims abstract description 54
- 238000012545 processing Methods 0.000 claims abstract description 13
- 230000005540 biological transmission Effects 0.000 claims description 71
- 230000008859 change Effects 0.000 claims description 8
- 230000001934 delay Effects 0.000 claims description 2
- 238000009825 accumulation Methods 0.000 description 25
- 230000008569 process Effects 0.000 description 8
- 230000000903 blocking effect Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000012790 confirmation Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000009499 grossing Methods 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
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/50—Queue scheduling
- H04L47/52—Queue scheduling by attributing bandwidth to queues
- H04L47/525—Queue scheduling by attributing bandwidth to queues by redistribution of residual bandwidth
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
- H04L47/72—Admission control; Resource allocation using reservation actions during connection setup
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请实施例公开了一种基于拥塞检测的带宽估算方法及装置。本申请实施例提供的技术方案通过对链路进行拥塞检测确定链路拥塞信息,根据链路拥塞信息从链路发送速率和链路接收速率中确定采样速率,以及根据链路拥塞信息确定滤波系数,并基于滤波系数对采样速率进行滤波处理,得到带宽估算结果,有效提高带宽估算的稳定性,提高对码率控制的稳定性和准确性,根据拥塞程度的不同平滑过滤采样带宽得到更准确的估算带宽结果,以提高带宽估算的跟随性和稳定性,进而提升流控的稳定性和准确性。
Description
技术领域
本申请实施例涉及通信技术领域,尤其涉及一种基于拥塞检测的带宽估算方法及装置。
背景技术
随着视频技术的发展,越来越多的人开始使用视频软件进行交流,为了保证视频数据传输的质量和流畅度,在视频数据传输的过程中,数据发送方需要通过拥塞控制算法,根据视频数据发送情况实时估算链路可用带宽,以评估数据发送能力并设置合适的码率来控制编码,从而保证在充分利用带宽的同时完成视频数据的及时交付。
但是现实中的网络场景是复杂且多变的,链路容易因为链路带宽的抖动而发生拥塞,拥塞控制算法需要经过几百毫秒甚至几秒的时间才检测到链路拥塞,导致估算带宽出现抖动,导致视频数据传输的质量和流畅度的波动,影响用户的视频观看体验。
发明内容
本申请实施例提供一种基于拥塞检测的带宽估算方法及装置,以解决现有技术中应估算带宽出现抖动而导致视频数据传输的质量和流畅度的波动,影响用户的视频观看体验,提高带宽估算的稳定性,提高对码率控制的稳定性和准确性,优化用户的视频观看体验。
在第一方面,本申请实施例提供了一种基于拥塞检测的带宽估算方法,包括:
对链路进行拥塞检测得到链路拥塞信息,所述链路拥塞信息用于指示链路的拥塞情况;
基于所述链路拥塞信息,从链路发送速率和链路接收速率中确定采样速率;
根据所述链路拥塞信息确定滤波参数,并基于所述滤波参数对所述采样速率进行滤波处理,以得到带宽估算结果。
在第二方面,本申请实施例提供了一种基于拥塞检测的带宽估算装置,包括拥塞检测模块、速率确定模块和带宽估算模块,其中:
所述拥塞检测模块,用于对链路进行拥塞检测得到链路拥塞信息,所述链路拥塞信息用于指示链路的拥塞情况;
所述速率确定模块,用于基于所述链路拥塞信息,从链路发送速率和链路接收速率中确定采样速率;
所述带宽估算模块,用于根据所述链路拥塞信息确定滤波参数,并基于所述滤波参数对所述采样速率进行滤波处理,以得到带宽估算结果。
在第三方面,本申请实施例提供了一种基于拥塞检测的带宽估算设备,包括:存储器以及一个或多个处理器;
所述存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如第一方面所述的基于拥塞检测的带宽估算方法。
在第四方面,本申请实施例提供了一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行如第一方面所述的基于拥塞检测的带宽估算方法。
本申请实施例通过对链路进行拥塞检测确定链路拥塞信息,根据链路拥塞信息从链路发送速率和链路接收速率中确定采样速率,以及根据链路拥塞信息确定滤波系数,并基于滤波系数对采样速率进行滤波处理,得到带宽估算结果,有效提高带宽估算的稳定性,提高对码率控制的稳定性和准确性,根据拥塞程度的不同平滑过滤采样带宽得到更准确的估算带宽结果,以提高带宽估算的跟随性和稳定性,进而提升流控的稳定性和准确性。
附图说明
图1是本申请实施例提供的一种基于拥塞检测的带宽估算方法的流程图;
图2是本申请实施例提供的另一种基于拥塞检测的带宽估算方法的流程图;
图3是本申请实施例提供的一种基于拥塞检测的带宽估算装置的结构示意图;
图4是本申请实施例提供的一种基于拥塞检测的带宽估算设备的结构示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面结合附图对本申请具体实施例作进一步的详细描述。可以理解的是,此处所描述的具体实施例仅仅用于解释本申请,而非对本申请的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本申请相关的部分而非全部内容。在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
图1给出了本申请实施例提供的一种基于拥塞检测的带宽估算方法的流程图,本申请实施例提供的基于拥塞检测的带宽估算方法可以由基于拥塞检测的带宽估算装置来执行,该基于拥塞检测的带宽估算装置可以通过硬件和/或软件的方式实现,并集成在基于拥塞检测的带宽估算设备中。
下述以基于拥塞检测的带宽估算装置执行基于拥塞检测的带宽估算方法为例进行描述。参考图1,该基于拥塞检测的带宽估算方法包括:
S101:对链路进行拥塞检测得到链路拥塞信息,链路拥塞信息用于指示链路的拥塞情况。
本实施例提供的链路拥塞信息用于指示链路的拥塞情况,其中链路的拥塞情况包括链路处于拥塞状态和链路处于非拥塞状态。在带宽估算装置中,拥塞控制模块基于拥塞控制算法(例如BBR算法,Bottleneck Bandwidth and RTT,瓶颈带宽和往返延时拥塞控制算法),根据带宽估算结果控制链路发送速率,同时,流控模块根据带宽估算结果控制视频数据的编码率,在充分利用带宽的同时完成直播视频数据的及时交付,保证直播的低延时以及流畅。
示例性的,在数据传输的过程中(例如在直播场景下,主播端上传视频流数据),对数据传输链路进行拥塞检测,确定链路的拥塞情况并生成对应的链路拥塞信息。
S102:基于链路拥塞信息,从链路发送速率和链路接收速率中确定采样速率。
在确定链路拥塞信息后,根据链路拥塞信息指示链路处于拥塞或非拥塞状态,从链路接收速率和链路发送速率中确定拥塞控制算法进行采样时的采样速率。可以理解的是,在链路处于非拥塞状态时,可将拥塞控制算法当前的链路发送速率作为采样速率,而在链路处于拥塞状态(无论是传输层上的拥塞状态还是应用层上的拥塞状态)时,可认为链路管道被拥塞控制算法填满,此时链路的最大带宽接近于链路接收速率。基于此,本实施例在基于链路拥塞信息从链路发送速率和链路接收速率中确定采样速率时,具体包括S1021-S1022:
S1021:在链路拥塞信息指示链路处于拥塞状态时,将链路接收速率确定为采样速率。
S1022:在链路拥塞信息指示链路处于非拥塞状态时,将链路发送速率确定为采样速率。
具体的,在链路拥塞信息指示链路处于拥塞状态时,此时链路的最大带宽接近于链路接收速率,则将链路接收速率确定为采样速率,而在链路拥塞信息指示链路处于非拥塞状态时,将链路发送速率确定为采样速率。
S103:根据链路拥塞信息确定滤波参数,并基于滤波参数对采样速率进行滤波处理,以得到带宽估算结果。
其中,不同的链路拥塞信息对应不同的滤波参数,并且链路拥塞信息指示的拥塞程度越高,对应的滤波参数越大。其中滤波参数用于调整对采样速率进行滤波处理时,采样速率的收敛速度,并且滤波参数越大,采样速率的收敛速度越快,并且采样速率的收敛速度越快,采样速率的跟随性越强。
示例性的,根据当前拥塞信息对应的滤波参数,结合之前的带宽估算结果,对当前确定的采样速率进行平滑滤波处理,并将对采样速率进行平滑滤波处理后的处理结果作为带宽估算结果。可将带宽估算结果传递给拥塞控制算法和流控模块进行链路发送速率的以及视频数据编码率的调整。
上述,通过对链路进行拥塞检测确定链路拥塞信息,根据链路拥塞信息从链路发送速率和链路接收速率中确定采样速率,以及根据链路拥塞信息确定滤波系数,并基于滤波系数对采样速率进行滤波处理,得到带宽估算结果,有效提高带宽估算的稳定性,提高对码率控制的稳定性和准确性,根据拥塞程度的不同平滑过滤采样带宽得到更准确的估算带宽结果,以提高带宽估算的跟随性和稳定性,进而提升流控的稳定性和准确性,减少因带宽估算的偏差影响视频数据传输质量,导致视频渲染卡顿和播空卡顿,优化用户的视频观看体验。
在上述实施例的基础上,图2给出了本申请实施例提供的另一种基于拥塞检测的带宽估算方法的流程图,该基于拥塞检测的带宽估算方法是对上述基于拥塞检测的带宽估算方法的具体化。参考图2,该基于拥塞检测的带宽估算方法包括:
S201:对传输层进行传输层拥塞检测得到传输层拥塞信息。
本实施例提供的链路拥塞信息包括传输层拥塞信息和应用层拥塞信息,其中,传输层拥塞信息用于反映带宽估算装置的传输层的拥塞情况,应用层拥塞信息用于反映带宽估算的应用层的拥塞情况。
需要进行解释的是,对于拥塞控制算法(以BBR算法为例)而言,拥塞控制算法本身维持着瓶颈链路带宽(Btlbw,Bottleneck Bandwidth)的探测并控制着链路发送速率,然而其对于链路发送速率的控制与应用层流控的码率控制的目标并不完全相同,拥塞控制算法需要保持一定数据超发的能力而不必降低链路发送速率来抢占链路带宽,保证链路带宽的充分利用和一定的抗网络抖动能力。因而在带宽突降的情况下,发送速率在几百毫秒甚至几秒内无法及时降低,造成网络链路数据包(例如直播场景下的视频数据)的堆积,数据传输延时的上升甚至丢包,导致数据重传增加进一步加大数据传输的压力,继而引起发送端(基于拥塞检测的带宽估算装置)应用层的数据堆积,接收端视频数据缓存的下降,当缓存耗尽时就会出现可明显感知的卡顿问题。因此,传输层面的拥塞是最严重的拥塞现象,本实施例根据发包的数据往返时延变化趋势检测传输层拥塞信息。基于此,本实施例在对传输层进行传输层拥塞检测得到传输层拥塞信息时,具体包括步骤S2011-S2012:
S2011:根据设定数据窗口内接收到的确认字符信息确定数据往返时延变化趋势。
具体的,本实施例动态维持一个设定大小(例如窗口大小为20)的设定数据窗口作为趋势检测窗口,利用该设定数据窗口记录确认字符信息(数据接收端返回的ACK包)。其中确认字符信息记录有对应数据是否发送成功以及对应的发送时间,根据设定数据窗口内记录的确认字符信息确认每个确认字符信息所对应的往返时延(RTT,Round-Trip Time),并确定这些往返时延对应的数据往返时延变化趋势。
本实施例基于最小二乘法计算数据往返时延变化趋势,基于此,本实施例可基于以下公式确定数据往返时延变化趋势:
其中,Treandi为数据往返时延变化趋势,N为设定数据窗口的窗口大小,ti为设定数据窗口内中第i个确认字符信息与第一个确认字符信息的发送时间之差,为设定数据窗口内中i个确认字符信息与第一个确认字符信息的发送时间之差的平均数,RTTi为第i个确认字符信息的数据往返时延,/>为i个确认字符信息的数据往返时延的平均数,第i个确认字符信息的数据往返时延可根据确认字符信息对应的数据发送时间Ps和确认字符信息的发送时间Pr之差确定:RTTi=Ps-Pr。
S2012:根据数据往返时延变化趋势和数据丢包率确定传输层拥塞信息。
本实施例根据数据往返时延变化趋势和数据丢包率确定传输层拥塞信息,其中数据丢包率为数据上传过程中的丢包率(例如直播场景中发送端上传的数据流数据的丢包率),其可根据所发送的数据以及各个数据对应的确认字符信息确认。具体的,在数据往返时延变化趋势达到设定趋势阈值或数据丢包率达到设定丢包阈值时,确定传输层拥塞信息指示传输层处于拥塞状态,否则确定传输层拥塞信息指示传输层处于非拥塞状态。即传输层拥塞信息的判断依据为:
其中,Cbbr为传输层拥塞信息,在Cbbr=1时,传输层处于拥塞状态,在Cbbr=0时,传输层处于非拥塞状态,Treandi为数据往返时延变化趋势,Thtrend为设定趋势阈值(例如设置为0.4),Lossrate为数据丢包率,Thlossrate为设定丢包阈值(例如设置为0.1)。
S202:对应用层进行应用层拥塞检测得到应用层拥塞信息。
本实施例提供的应用层拥塞信息包括速率拥塞信息和堆积拥塞信息,其中速率拥塞信息用于指示应用层的速率拥塞情况,堆积拥塞信息用于指示应用层的数据堆积拥塞情况。进一步的,在应用层的链路发送速率偏高时,速率拥塞信息指示应用层处于高速率拥塞状态,否则,速率拥塞信息指示应用层处于非高速率拥塞状态(低速率状态);在应用层的数据堆积较大时,堆积拥塞信息指示应用层处于高堆积拥塞状态,否则堆积拥塞信息指示应用层处于非高堆积拥塞状态(低堆积状态)。基于此,本实施例在对应用层进行应用层拥塞检测得到应用层拥塞信息时,具体包括步骤S2021-S2022:
S2021:基于链路发送速率和速率判断阈值确定速率拥塞信息。
需要进行解释的是,由于数据源受限(特别是对于视频直播场景),数据源的发送无法满足拥塞控制算法填满网络链路管道来探测实际最大带宽的目的,为了满足带宽探测需求,拥塞控制算法采用pacing机制,在数据源不足但又需要探测更大的带宽时会发送冗余数据包,如果实际链路带宽远大于数据源码率那么发送的冗余包将会非常大;其次视频直播码率本身是有限的,因此链路发送速率只需要达到视频数据的及时交付即可,无需探测至更大的带宽来发送数据,本实施例通过设定限速因子来限制最大发送速率来避免发送更多的冗余包的同时满足数据发送的要求。基于此,本实施例在基于链路发送速率和速率判断阈值确定速率拥塞信息时,具体包括步骤S20211-S20213:
S20211:根据最大上行编码率和设定限速因子确定拥塞控制算法的最大发送速率。
S20212:根据最大发送速率和设定发送速率最大偏移相对量确定速率判断阈值。
S20213:基于链路发送速率和速率判断阈值的比较情况确定速率拥塞信息。
其中,最大上行编码率为带宽估算装置发送的数据的最大编码率,其中拥塞控制算法的最大发送速率可基于以下公式确定:
Sendratemax=β*Coderatemax
其中,Sendratemax为最大发送速率,β为设定限速因子(例如设置为1.6),Coderatemax为最大上行编码率(例如直播过程中主播端上行的最大编码码率)。
在确定最大发送速率后,根据最大发送速率和设定发送速率最大偏移相对量确定速率判断阈值,其中速率判断阈值可基于以下公式确定:
Thrate=γ*SendRatemax=γ*β*CodeRatemax
其中,Thrate为速率判断阈值,γ为设定发送速率最大偏移相对量(例如设置为0.25)。
进一步的,基于链路发送速率和速率判断阈值的比较情况确定速率拥塞信息,速率拥塞信息可基于以下公式进行确定:
Chigh_rate=SendRatei>Thrate
其中,Chigh_rate为速率拥塞信息,在Chigh_rate=1时,应用层处于高速率拥塞状态,在Chigh_rate=0时,应用层处于非高速率拥塞状态,SendRatei为于链路发送速率。
S2022:基于队列堆积信息和设定堆积阈值确定堆积拥塞信息。
其中,队列堆积信息用于指示数据发送队列中数据堆积的大小。需要进行解释的是,在发送端(带宽估算装置)的应用层上,影响数据服务质量的直接表现之一为数据发送队列的数据堆积,这是由于视频数据编码输出的视频码率小于当前链路实际带宽而造成的数据累积。基于此,本方案采集数据队列的队列堆积信息,并将队列堆积信息与设定堆积阈值(例如设置为750)进行比较,在队列堆积信息大于设定堆积阈值时,堆积拥塞信息指示应用层处于高堆积拥塞状态,否则堆积拥塞信息指示应用层处于非高堆积拥塞状态。
S203:基于传输层拥塞信息和应用层拥塞信息,从链路发送速率和链路接收速率中确定采样速率。
具体的,基于上述确定的传输层拥塞信息、速率拥塞信息和堆积拥塞信息,确定链路是否处于拥塞状态。具体的,在传输层拥塞信息指示传输层处于拥塞状态应用层处于高速率拥塞状态、速率拥塞信息指示应用层处于高速率拥塞状态或堆积拥塞信息指示应用层处于高堆积拥塞状态时,确定链路处于拥塞状态,否则确定链路处于非拥塞状态。
进一步的,在链路处于拥塞状态时,将链路接收速率作为采样速率,而在链路处于非拥塞状态时,将链路发送速率作为采样速率,即:
其中,SampleRatei为采样速率,SendRatei为链路发送速率,ReceiveRatei为链路接收速率,congestionoff为指示链路处于非拥塞状态的链路拥塞信息,congestionon为指示链路处于拥塞状态的链路拥塞信息。
S204:基于设定大小的滑动窗口记录动态接收速率,并将滑动窗口中最大的动态接收速率确定为链路接收速率。
需要进行解释的是,由于链路接收速率一方面受数据源发送速率的约束(当带宽足够但视频码率不足时,链路接收速率近似等于视频码率),另一方面受拥塞控制算法的链路发送速率的影响,在探测最小数据往返时延时,会降低链路发送速率,此时的链路接收速率同样达不到实际带宽的水平。基于此,本方案采用设定大小为W(例如设置为8)的滑动窗口记录最新的W个链路接收速率作为动态接收速率,将滑动窗口内W个动态接收速率的最大值作为实际的链路接收速率,即:
其中,RecieveRate为链路接收速率,ReceiveRatei为滑动窗口中第i个动态接收速率,T为滑动窗口中最新的动态接收速率对应的标号。本方案在滑动窗口中将最大动态接收速率作为链路接收速率,通过滑动窗口实现对链路接收速率的过滤,保证链路接收速率可达到实际带宽的水平,有效提高带宽估算的稳定性的以及跟随性。
S205:根据链路拥塞信息确定滤波参数,并基于滤波参数对采样速率进行滤波处理,以得到带宽估算结果。
在一个实施例中,为了提高带宽估算的平滑度以提高流控码率的稳定性,利用指数加权移动平均(EWMA,Exponentially Weighted Moving Average)滤波器对采样速率进行滤波处理。具体的,本实施例在基于滤波参数对采样速率进行滤波处理时,具体为:基于指数加权移动平均算法,以滤波参数为加权因子,根据上一次的带宽估算结果对采样速率进行滤波处理。即基于以下公式对采样速率进行滤波处理:
Bwei=αi*Bwei-1+(1-αi)*SampleRatei
其中,Bwei为带宽估算结果,αi为滤波参数(即加权因子),Bwei-1为上一次的带宽估算结果,SampleRatei为采样速率。
本实施例在根据链路拥塞信息确定滤波参数时,具体为:根据链路拥塞信息确定收敛倍数,基于收敛倍数和设定加权因子确定滤波参数,其中链路拥塞信息指示的拥塞情况对应的拥塞程度越高,对应的收敛倍数越大。在一个实施例中,以设定加权因子为底数,收敛倍数为指数计算滤波参数,基于此,滤波参数可基于以下公式确定:
αi=α^wi
其中,αi为滤波参数,α为设定加权因子(例如设定为0.94387),wi为收敛倍数。
在一个实施例中,在传输层拥塞信息指示传输层处于拥塞状态时,收敛倍数为第一收敛倍数;在速率拥塞信息指示应用层速率处于拥塞状态时,收敛倍数为第二收敛倍数;在堆积拥塞信息指应用层堆积处于拥塞状态时,收敛倍数为第三收敛倍数;在链路拥塞信息指示链路处于非拥塞状态时,收敛倍数为第四收敛倍数。其中,收敛倍速越大,对采样速率进行滤波处理时的收敛速度越快,即带宽估算的收敛速度越快,并且链路的拥塞程度越高,其对带宽估算的收敛速度要求越高,其中传输层拥塞状态、应用层速率拥塞状态和应用层堆积拥塞状态对应的拥塞程度依次减小,对应的,第一收敛倍数、第二收敛倍数、第三收敛倍数和第四收敛倍数依次减小。
可以理解的是,在链路处于非拥塞状态时,带宽估算的收敛速度最慢,带宽估算的稳定性也最高,在链路处于拥塞状态时,拥塞程度越高,带宽估算的收敛速度越快,即带宽估算的跟随性越快。在一个实施例中,第四收敛倍数可设置为默认值1,在基于第四收敛倍数对采样速率进行滤波处理时,第四收敛倍数以默认的设定加权因子对应的速度进行收敛,在带宽上升或带宽轻微抖动时(非拥塞状态),并不希望带宽估算就此抖动而带动码率抖动,此时带宽估算结果会以默认速度收敛并且更加平滑,由此提带宽和码率控制的稳定性。
在确定带宽估算结果后,可将带宽估算结果传递给拥塞控制算法和流控模块进行链路发送速率的以及视频数据编码率的调整。
上述,通过对链路进行拥塞检测确定链路拥塞信息,根据链路拥塞信息从链路发送速率和链路接收速率中确定采样速率,以及根据链路拥塞信息确定滤波系数,并基于滤波系数对采样速率进行滤波处理,得到带宽估算结果,有效提高带宽估算的稳定性,提高对码率控制的稳定性和准确性,根据拥塞程度的不同平滑过滤采样带宽得到更准确的估算带宽结果,以提高带宽估算的跟随性和稳定性,进而提升流控的稳定性和准确性,减少因带宽估算的偏差影响视频数据传输质量,导致视频渲染卡顿和播空卡顿,优化用户的视频观看体验。同时,在滑动窗口中将最大动态接收速率作为链路接收速率,通过滑动窗口实现对链路接收速率的过滤,保证链路接收速率可达到实际带宽的水平,有效提高带宽估算的稳定性的以及跟随性。并且分别从传输层和应用层的角度来衡量链路的拥塞程度,根据拥塞程度对数据服务质量的影响来调整对采样速率的滤波参数,从而控制对采样速率的收敛速度,提高带宽估算的跟随性。
图3给出了本申请实施例提供的一种基于拥塞检测的带宽估算装置的结构示意图。参考图3,该基于拥塞检测的带宽估算装置包括拥塞检测模块31、速率确定模块32和带宽估算模块33。
其中,拥塞检测模块31,用于对链路进行拥塞检测得到链路拥塞信息,链路拥塞信息用于指示链路的拥塞情况;速率确定模块32,用于基于链路拥塞信息,从链路发送速率和链路接收速率中确定采样速率;带宽估算模块33,用于根据链路拥塞信息确定滤波参数,并基于滤波参数对采样速率进行滤波处理,以得到带宽估算结果。
本申请实施例还提供了一种基于拥塞检测的带宽估算设备,该基于拥塞检测的带宽估算设备可集成本申请实施例提供的基于拥塞检测的带宽估算装置。图4是本申请实施例提供的一种基于拥塞检测的带宽估算设备的结构示意图。参考图4,该基于拥塞检测的带宽估算设备包括:输入装置43、输出装置44、存储器42以及一个或多个处理器41;存储器42,用于存储一个或多个程序;当一个或多个程序被一个或多个处理器41执行,使得一个或多个处理器41实现如上述实施例提供的基于拥塞检测的带宽估算方法。上述提供的基于拥塞检测的带宽估算装置、设备和计算机可用于执行上述任意实施例提供的基于拥塞检测的带宽估算方法,具备相应的功能和有益效果。
本申请实施例还提供一种包含计算机可执行指令的存储介质,计算机可执行指令在由计算机处理器执行时用于执行如上述实施例提供的基于拥塞检测的带宽估算方法。当然,本申请实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上提供的基于拥塞检测的带宽估算方法,还可以执行本申请任意实施例所提供的基于拥塞检测的带宽估算方法中的相关操作。上述实施例中提供的基于拥塞检测的带宽估算装置、设备及存储介质可执行本申请任意实施例所提供的基于拥塞检测的带宽估算方法,未在上述实施例中详尽描述的技术细节,可参见本申请任意实施例所提供的基于拥塞检测的带宽估算方法。
上述仅为本申请的较佳实施例及所运用的技术原理。本申请不限于这里提供的特定实施例,对本领域技术人员来说能够进行的各种明显变化、重新调整及替代均不会脱离本申请的保护范围。因此,虽然通过以上实施例对本申请进行了较为详细的说明,但是本申请不仅仅限于以上实施例,在不脱离本申请构思的情况下,还可以包括更多其他等效实施例,而本申请的范围由权利要求的范围决定。
Claims (13)
1.一种基于拥塞检测的带宽估算方法,其特征在于,包括:
对链路进行拥塞检测得到链路拥塞信息,所述链路拥塞信息用于指示链路的拥塞情况,其中,所述链路拥塞信息包括传输层拥塞信息和应用层拥塞信息,所述传输层拥塞信息用于反映传输层的拥塞情况,所述应用层拥塞信息用于反映应用层的拥塞情况;所述对链路进行拥塞检测得到链路拥塞信息,包括:对传输层进行传输层拥塞检测得到传输层拥塞信息;对应用层进行应用层拥塞检测得到应用层拥塞信息;
基于所述链路拥塞信息,从链路发送速率和链路接收速率中确定采样速率;
根据所述链路拥塞信息确定收敛倍数,以设定加权因子为底数,所述收敛倍数为指数计算滤波参数,并基于所述滤波参数对所述采样速率进行滤波处理,以得到带宽估算结果,所述链路拥塞信息指示的拥塞情况对应的拥塞程度越高,对应的收敛倍数越大。
2.根据权利要求1所述的基于拥塞检测的带宽估算方法,其特征在于,所述对传输层进行传输层拥塞检测得到传输层拥塞信息,包括:
根据设定数据窗口内接收到的确认字符信息确定数据往返时延变化趋势;
根据所述数据往返时延变化趋势和数据丢包率确定传输层拥塞信息。
3.根据权利要求2所述的基于拥塞检测的带宽估算方法,其特征在于,所述数据往返时延变化趋势基于以下公式确定:
其中,Treandi为数据往返时延变化趋势,N为设定数据窗口的窗口大小,ti为设定数据窗口内中第i个确认字符信息与第一个确认字符信息的发送时间之差,为设定数据窗口内中i个确认字符信息与第一个确认字符信息的发送时间之差的平均数,RTTi为第i个确认字符信息的数据往返时延,/>为i个确认字符信息的数据往返时延的平均数。
4.根据权利要求2所述的基于拥塞检测的带宽估算方法,其特征在于,所述根据所述数据往返时延变化趋势和数据丢包率确定传输层拥塞信息,包括:
在所述数据往返时延变化趋势达到设定趋势阈值或所述数据丢包率达到设定丢包阈值时,确定传输层拥塞信息指示传输层处于拥塞状态,否则确定传输层拥塞信息指示传输层处于非拥塞状态。
5.根据权利要求1所述的基于拥塞检测的带宽估算方法,其特征在于,所述应用层拥塞信息包括速率拥塞信息和堆积拥塞信息;
所述对应用层进行应用层拥塞检测得到应用层拥塞信息,包括:
基于链路发送速率和速率判断阈值确定速率拥塞信息;
基于队列堆积信息和设定堆积阈值确定堆积拥塞信息。
6.根据权利要求5所述的基于拥塞检测的带宽估算方法,其特征在于,所述基于链路发送速率和速率判断阈值确定速率拥塞信息,包括:
根据最大上行编码率和设定限速因子确定拥塞控制算法的最大发送速率;
根据所述最大发送速率和设定发送速率最大偏移相对量确定速率判断阈值;
基于链路发送速率和所述速率判断阈值的比较情况确定速率拥塞信息。
7.根据权利要求1所述的基于拥塞检测的带宽估算方法,其特征在于,所述基于所述链路拥塞信息,从链路发送速率和链路接收速率中确定采样速率,包括:
在所述链路拥塞信息指示链路处于拥塞状态时,将链路接收速率确定为采样速率;
在所述链路拥塞信息指示链路处于非拥塞状态时,将链路发送速率确定为采样速率。
8.根据权利要求1所述的基于拥塞检测的带宽估算方法,其特征在于,在传输层拥塞信息指示传输层处于拥塞状态时,所述收敛倍数为第一收敛倍数;在速率拥塞信息指示应用层速率处于拥塞状态时,所述收敛倍数为第二收敛倍数;在堆积拥塞信息指应用层堆积处于拥塞状态时,所述收敛倍数为第三收敛倍数;在链路拥塞信息指示链路处于非拥塞状态时,所述收敛倍数为第四收敛倍数,所述第一收敛倍数、所述第二收敛倍数、所述第三收敛倍数和所述第四收敛倍数依次减小。
9.根据权利要求1所述的基于拥塞检测的带宽估算方法,其特征在于,所述基于所述滤波参数对所述采样速率进行滤波处理,包括:
基于指数加权移动平均算法,以所述滤波参数为加权因子,根据上一次的带宽估算结果对所述采样速率进行滤波处理。
10.根据权利要求1所述的基于拥塞检测的带宽估算方法,其特征在于,所述方法还包括:
基于设定大小的滑动窗口记录动态接收速率,并将所述滑动窗口中最大的所述动态接收速率确定为所述链路接收速率。
11.一种基于拥塞检测的带宽估算装置,其特征在于,包括拥塞检测模块、速率确定模块和带宽估算模块,其中:
所述拥塞检测模块,用于对链路进行拥塞检测得到链路拥塞信息,所述链路拥塞信息用于指示链路的拥塞情况,其中,所述链路拥塞信息包括传输层拥塞信息和应用层拥塞信息,所述传输层拥塞信息用于反映传输层的拥塞情况,所述应用层拥塞信息用于反映应用层的拥塞情况;所述对链路进行拥塞检测得到链路拥塞信息,包括:对传输层进行传输层拥塞检测得到传输层拥塞信息;对应用层进行应用层拥塞检测得到应用层拥塞信息;
所述速率确定模块,用于基于所述链路拥塞信息,从链路发送速率和链路接收速率中确定采样速率;
所述带宽估算模块,用于根据所述链路拥塞信息确定收敛倍数,以设定加权因子为底数,所述收敛倍数为指数计算滤波参数,并基于所述滤波参数对所述采样速率进行滤波处理,以得到带宽估算结果,所述链路拥塞信息指示的拥塞情况对应的拥塞程度越高,对应的收敛倍数越大。
12.一种基于拥塞检测的带宽估算设备,其特征在于,包括:存储器以及一个或多个处理器;
所述存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-10任一项所述的基于拥塞检测的带宽估算方法。
13.一种包含计算机可执行指令的存储介质,其特征在于,所述计算机可执行指令在由计算机处理器执行时用于执行如权利要求1-10任一项所述的基于拥塞检测的带宽估算方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111445481.3A CN114143271B (zh) | 2021-11-30 | 2021-11-30 | 一种基于拥塞检测的带宽估算方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111445481.3A CN114143271B (zh) | 2021-11-30 | 2021-11-30 | 一种基于拥塞检测的带宽估算方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114143271A CN114143271A (zh) | 2022-03-04 |
CN114143271B true CN114143271B (zh) | 2024-04-02 |
Family
ID=80386011
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111445481.3A Active CN114143271B (zh) | 2021-11-30 | 2021-11-30 | 一种基于拥塞检测的带宽估算方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114143271B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115103235B (zh) * | 2022-06-21 | 2023-10-20 | 咪咕互动娱乐有限公司 | 数据传输方法、装置、设备与介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102148662A (zh) * | 2011-03-21 | 2011-08-10 | 大唐移动通信设备有限公司 | 一种数据发送速率的调整方法及装置 |
WO2012149762A1 (zh) * | 2011-09-22 | 2012-11-08 | 华为技术有限公司 | 拥塞控制方法及设备 |
WO2015161990A1 (en) * | 2014-04-23 | 2015-10-29 | Bequant S.L. | Method and apparatus for network congestion control based on transmission rate gradients |
CN106059950A (zh) * | 2016-05-25 | 2016-10-26 | 四川大学 | 一种基于scps‑tp的自适应网络拥塞控制方法 |
CN110730469A (zh) * | 2019-09-03 | 2020-01-24 | 西安工业大学 | 一种基于扩展卡尔曼无线网络带宽预测方法及其拥塞控制 |
CN111683393A (zh) * | 2020-05-25 | 2020-09-18 | 华中科技大学 | 一种动态调整增益系数的自适应拥塞控制方法 |
CN113364701A (zh) * | 2021-05-28 | 2021-09-07 | 南京大学 | 基于rtt的结合比例积分微分控制的拥塞控制方法及设备 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7130268B2 (en) * | 2000-10-17 | 2006-10-31 | Saverio Mascolo | End-to-end bandwidth estimation for congestion control in packet switching networks |
US7299280B2 (en) * | 2001-10-17 | 2007-11-20 | The Regents Of University Of California | Method and apparatus for TCP with faster recovery |
US10637788B2 (en) * | 2018-06-26 | 2020-04-28 | International Business Machines Corporation | Stability of delay-based congestion control in a computer network using an alpha-beta filter and round-trip-time predictor |
-
2021
- 2021-11-30 CN CN202111445481.3A patent/CN114143271B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102148662A (zh) * | 2011-03-21 | 2011-08-10 | 大唐移动通信设备有限公司 | 一种数据发送速率的调整方法及装置 |
WO2012149762A1 (zh) * | 2011-09-22 | 2012-11-08 | 华为技术有限公司 | 拥塞控制方法及设备 |
WO2015161990A1 (en) * | 2014-04-23 | 2015-10-29 | Bequant S.L. | Method and apparatus for network congestion control based on transmission rate gradients |
CN106059950A (zh) * | 2016-05-25 | 2016-10-26 | 四川大学 | 一种基于scps‑tp的自适应网络拥塞控制方法 |
CN110730469A (zh) * | 2019-09-03 | 2020-01-24 | 西安工业大学 | 一种基于扩展卡尔曼无线网络带宽预测方法及其拥塞控制 |
CN111683393A (zh) * | 2020-05-25 | 2020-09-18 | 华中科技大学 | 一种动态调整增益系数的自适应拥塞控制方法 |
CN113364701A (zh) * | 2021-05-28 | 2021-09-07 | 南京大学 | 基于rtt的结合比例积分微分控制的拥塞控制方法及设备 |
Non-Patent Citations (3)
Title |
---|
Sławomir Grzyb ; Przemysław Orłowski.Congestion feedback control for computer networks with bandwidth estimation.2015 20th International Conference on Methods and Models in Automation and Robotics (MMAR).2015,全文. * |
无线网络中基于自适应带宽估计的跨层拥塞控制算法;王倩;徐如志;杨峰;;山东大学学报(理学版)(第11期);全文 * |
无线网络中带宽估计和TCP拥塞的控制方法;姚国良;胡晨;;应用科学学报(第04期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN114143271A (zh) | 2022-03-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9577935B2 (en) | Unified congestion control for real-time media support | |
EP2532170B1 (en) | Data flow control method and apparatus | |
US10805196B2 (en) | Packet loss and bandwidth coordination | |
CN107624232B (zh) | 在通信***中控制下行链路吞吐量的设备和方法 | |
CN106487779B (zh) | 发送视频包流的方法和发送装置 | |
US6643496B1 (en) | System, method, and apparatus for adjusting packet transmission rates based on dynamic evaluation of network characteristics | |
US20230171301A1 (en) | Monitoring Network Conditions | |
US9455925B2 (en) | Method, device, and system for self-adaptively adjusting data transmission rate | |
CN101971629B (zh) | 用于适配视频信号的目标速率的设备和方法 | |
US8094578B2 (en) | Method of predicting the transmission error rate in a communication network and server implementing such a method | |
RU2450468C2 (ru) | Система и способ адаптации к перегрузке сети | |
US20170346601A1 (en) | Data transmission method and computing apparatus having data transmission function | |
KR20040041170A (ko) | 혼잡 제어를 위한 전송률을 계산하기 위해 수신 버퍼 크기를 사용하는 데이터 통신 방법 및 시스템 | |
CN111935441B (zh) | 一种网络状态检测方法及装置 | |
CN113301392B (zh) | 码率确定方法、装置、设备及存储介质 | |
CN114143271B (zh) | 一种基于拥塞检测的带宽估算方法及装置 | |
CN115037416A (zh) | 数据前向纠错处理方法、装置、电子设备和存储介质 | |
JPH10336626A (ja) | 映像データの転送方法および転送装置 | |
CN104426636A (zh) | 通信控制装置及通信控制方法 | |
CN117156167A (zh) | 一种融合传输***的自适应数据传输方法及装置 | |
CN116546276A (zh) | 链路带宽估计方法、装置、设备、存储介质以及程序产品 | |
CN113612649B (zh) | 往返估计 | |
CN115801639A (zh) | 一种带宽探测方法、装置、电子设备及存储介质 | |
KR102140267B1 (ko) | 적어도 둘 이상의 무선 경로들을 통해 비디오 데이터 프레임의 패킷을 전송하는 적응적 비디오 스트리밍 방법 및 시스템 | |
EP3327996A1 (en) | Method and circuit for congestion detection |
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 |