基于拥塞成因识别的拥塞控制方法及装置与流程

    专利2022-07-07  91


    本申请涉及互联网传输层的拥塞控制技术领域,特别涉及一种基于拥塞成因识别的拥塞控制方法及装置。



    背景技术:

    近年来,以实时视频通讯、视频会议、互动直播为代表的流媒体应用迅速普及。然而,此类应用由于需要流式地传输视频数据,往往具有较高的数据速率,占用带宽较多;同时,由于其低延迟的需求,在网络因噪声丢包时,需要采取冗余编码、重传等服务质量保障手段,而这些手段的采用导致应用本身需求更多的带宽。另一方面,当数据速率过高导致在链路上发生拥塞时,应用及时获悉拥塞发生后可以通过降低帧率、分辨率等方法降低数据速率,使视频数据能够在相应时延及时到达,而非采用冗余编码、重传等方式加剧拥塞。为了适配此类应用的带宽需求特征,需要相应的传输层拥塞控制算法为其提供适合的拥塞控制窗口。

    相关技术中,现有的拥塞控制方法,分为基于丢包的reno、cubic,以及基于数据到达速率和rtt(round-triptime,往返时延)的新型拥塞控制算法bbr算法等。基于丢包的拥塞控制算法对丢包现象非常敏感,在出现丢包后,拥塞控制算法认为发生拥塞,会立即下调拥塞控制窗口。然而对于噪声造成的丢包缺乏甄别能力,以至于当出现噪声丢包时,上层应用无法采用质量保障手段保障视频通畅,反而要降低视频清晰度,而由于噪声丢包的存在,降低清晰度并不能消除丢包,导致服务质量进一步恶化。bbr算法虽然不受丢包影响,但是噪声丢包也降低数据包到达率,从而降低测量获得的到达速率,依然会严重妨碍上层应用的数据传输。

    然而,基于现有拥塞控制算法与实时流媒体应用的不适配性,许多企业研发了私有的传输方案,这些方案往往极具侵略性,采取短时内发送大量无效数据等方式探测网络全部可用带宽并以此调节发送窗口,如若其他流采取避让措施,则严重损害网络公平性,如其他流不避让则会造成拥塞,出现丢包,导致不得不采用冗余编码等手段占用抢占来的部分带宽,从而降低原数据码率,损失服务质量,并且这种带宽的抢占行为不但浪费了网络资源,在面对传统拥塞控制算法时也侵犯了公平性,而且在发生拥塞时损害了包括自己在内所有流的服务质量,亟待改进。

    申请内容

    本申请旨在至少在一定程度上解决相关技术中的技术问题之一。

    为此,本申请的第一目的在于提出一种基于拥塞成因识别的拥塞控制方法,该方法能够在不造成拥塞丢包的前提下,为实时流媒体应用等高带宽、低延迟的上层应用提供尽可能高的带宽,有效满足用户使用求,保证实时流媒体的使用体验。

    本申请的第二个目的在于提出一种基于拥塞成因识别的拥塞控制装置。

    本申请的第三个目的在于提出一种电子设备。

    本申请的第四个目的在于提出一种非临时性计算机可读存储介质。

    为达到上述目的,本申请第一方面实施例提供一种基于拥塞成因识别的拥塞控制方法,包括以下步骤:获取当前时刻的丢包率变化值;在所述丢包率变化值大于预设丢包容忍阈值时,根据所述丢包率变化值确定的当前丢包率变化趋势、预设的窗口调整策略与前一次丢包率变化趋势分析引发丢包的原因;根据分析得到的引发丢包的原因调整拥塞窗口的大小。

    根据本申请实施例的基于拥塞成因识别的拥塞控制方法,根据当前丢包率变化趋势、窗口调整策略与前一次丢包率变化趋势有效地甄别丢包成因,从而在不造成丢包的前提下提升上层应用的网络吞吐,在不失公平性的前提下提高网络利用率,提升上层应用的用户体验,同时在面对“流氓应用”恶性竞争时能有效保障自身的带宽需求,从而能够在不造成拥塞丢包的前提下,为实时流媒体应用等高带宽、低延迟的上层应用提供尽可能高的带宽,有效满足用户使用求,保证实时流媒体的使用体验。

    另外,根据本申请上述实施例的基于拥塞成因识别的拥塞控制方法还可以具有以下附加的技术特征:

    可选地,在本申请的一个实施例中,所述丢包率变化值的计算公式为:

    其中,pk表示记录发送端发送的第k个包是否丢失,n表示数据包的数量,pk n-1表示新入队的数据包,pk-1表示刚出队的数据包。

    可选地,在本申请的一个实施例中,所述根据分析得到的引发丢包的原因调整拥塞窗口的大小,包括:若所述引发丢包的原因为拥塞丢包,则采用预设的拥塞控制算法调整所述当前拥塞窗口的大小;若所述引发丢包的原因为噪声丢包,则基于丢包率的变化改变慢启动的门限值调整所述当前拥塞窗口的大小。

    可选地,在本申请的一个实施例中,所述拥塞窗口的大小的调整公式为:

    其中,delta_l表示前一次丢包率变化趋势,delta表示当前丢包率变化趋势,loss_rate表示当前时刻,loss_rate′表示前一时刻,ssthresh表示所述门限值,α表示参数放缩窗口。

    为达到上述目的,本申请第二方面实施例提供一种基于拥塞成因识别的拥塞控制装置,包括:获取模块,用于获取当前时刻的丢包率变化值;分析模块,用于在所述丢包率变化值大于预设丢包容忍阈值时,根据所述丢包率变化值确定的当前丢包率变化趋势、预设的窗口调整策略与前一次丢包率变化趋势分析引发丢包的原因;控制模块,用于根据分析得到的引发丢包的原因调整拥塞窗口的大小。

    根据本申请实施例的基于拥塞成因识别的拥塞控制装置,根据当前丢包率变化趋势、窗口调整策略与前一次丢包率变化趋势有效地甄别丢包成因,从而在不造成丢包的前提下提升上层应用的网络吞吐,在不失公平性的前提下提高网络利用率,提升上层应用的用户体验,同时在面对“流氓应用”恶性竞争时能有效保障自身的带宽需求,从而能够在不造成拥塞丢包的前提下,为实时流媒体应用等高带宽、低延迟的上层应用提供尽可能高的带宽,有效满足用户使用求,保证实时流媒体的使用体验。

    另外,根据本申请上述实施例的基于拥塞成因识别的拥塞控制装置还可以具有以下附加的技术特征:

    可选地,在本申请的一个实施例中,所述丢包率变化值的计算公式为:

    其中,pk表示记录发送端发送的第k个包是否丢失,n表示数据包的数量,pk n-1表示新入队的数据包,pk-1表示刚出队的数据包。

    可选地,在本申请的一个实施例中,所述控制模块进一步用于当所述引发丢包的原因为拥塞丢包时,采用预设的拥塞控制算法调整所述当前拥塞窗口的大小,当所述引发丢包的原因为噪声丢包时,基于丢包率的变化改变慢启动的门限值调整所述当前拥塞窗口的大小。

    可选地,在本申请的一个实施例中,所述拥塞窗口的大小的调整公式为:

    其中,delta_l表示前一次丢包率变化趋势,delta表示当前丢包率变化趋势,loss_rate表示当前时刻,loss_rate′表示前一时刻,ssthresh表示所述门限值,α表示参数放缩窗口。

    为达到上述目的,本申请第三方面实施例提供一种电子设备,包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被设置为用于执行如上述实施例所述的基于拥塞成因识别的拥塞控制方法。

    为达到上述目的,本申请第四方面实施例提供一种非临时性计算机可读存储介质,所述非临时性计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行如上述实施例所述的基于拥塞成因识别的拥塞控制方法。

    本申请附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。

    附图说明

    本申请上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:

    图1为根据本申请实施例提供的一种基于拥塞成因识别的拥塞控制方法的流程图;

    图2为根据本申请一个具体实施例的基于拥塞成因识别的拥塞控制方法的流程图;

    图3为根据本申请实施例的基于拥塞成因识别的拥塞控制装置的示例图;

    图4为本申请实施例提供的电子设备的结构示意图

    具体实施方式

    下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本申请,而不能理解为对本申请的限制。

    下面参照附图描述根据本申请实施例提出的基于拥塞成因识别的拥塞控制方法及装置,首先将参照附图描述根据本申请实施例提出的基于拥塞成因识别的拥塞控制方法。

    具体而言,图1为本申请实施例所提供的一种基于拥塞成因识别的拥塞控制方法的流程示意图。

    如图1所示,该基于拥塞成因识别的拥塞控制方法包括以下步骤:

    在步骤s101中,获取当前时刻的丢包率变化值。

    需要说明的是,本申请实施例的第一目标为有效甄别噪声丢包和拥塞丢包,并针对不同丢包类型分别做出适应上层应用需求的窗口调整。噪声丢包是未发生拥塞时链路固有的丢包现象。

    可以理解的是,由于本申请实施例服务于具有低时延需求的上层应用,如果数据包已经超时,则重传没有意义,因此还会采用冗余编码的手段来确保即使发生丢包,数据依然能够被解码,并不要求链接完全可靠。即使如此,和拥塞控制诞生的原因相同,过多的冗余编码本身也可能导致拥塞,从而加剧丢包,又导致了更多的冗余编码,最终使链接崩溃。因此,在流媒体传输中,甄别噪声丢包和拥塞丢包极为重要。

    部分实施例中,鉴于噪声丢包与拥塞丢包相比,不会因为自身数据流发送速率增大而恶化,也不会因为自身数据流发送速率减小而好转。为了实现第一目标,本申请实施例基于噪声丢包的特性,设计了基于多步丢包率变化的状态转移机制,对reno中拥塞事件处理模块进一步优化和状态细分,在发送端区分噪声丢包与拥塞丢包,并通过合理的控制手段适配上层应用的需求。

    可选地,在本申请的一个实施例中,所述丢包率变化值的计算公式为:

    其中,pk表示记录发送端发送的第k个包是否丢失,n表示数据包的数量,pk n-1表示新入队的数据包,pk-1表示刚出队的数据包。

    举例而言,为了记录并计算链路的丢包率变化,需要维护一个先进先出的队列:

    q={pk,pk 1,…,pk n-1},

    其中,pk记录发送端发送的第k个包是否丢失,丢包则值为1,确认到达则值为0。此队列记录最近n个数据包的丢失情况,新入队的pk n-1与刚刚出队的pk-1相比较,即可计算得到当前时刻的丢包率变化δloss_ratek-1:

    在步骤s102中,在所述丢包率变化值大于预设丢包容忍阈值时,根据所述丢包率变化值确定的当前丢包率变化趋势、预设的窗口调整策略与前一次丢包率变化趋势分析引发丢包的原因。

    由于上层应用对丢包有一定的容忍能力,也就是说并不要求传输层完全可靠,因此,本申请实施例虽然可以继承reno、cubic等拥塞控制算法基于丢包的基本逻辑,但对丢包现象持容忍态度。当出现丢包,即pk n-1为0时,若pk-1也为0,则认为丢包率维持稳定,不进入拥塞处理过程;当pk-1为1时,则认为丢包率下降,并判断丢包率的变化是否超过了算法的容忍度。

    具体地,考虑到瞬时的丢包率有较大偶然性;流媒体应用的调节时隙最小为帧时长,过于频繁的调节无法与上层应用的控制时隙相匹配,并且上层应用特定等级的质量保障手段一般可以保障丢包率在一定范围内的可靠到达率。因此本申请实施例中,用loss_tolerance表示本方案对丢包率变化的容忍度,作为触发进入拥塞处理过程的阈值。当丢包率的变化低于容忍度时,不进入拥塞处理模块,而当丢包率变化超过容忍度时,则进入拥塞处理过程:

    loss_rate=∑δloss_ratek,|loss_rate|≥loss_tolerance,

    进入拥塞避免处理后,本申请实施例依据上一次进入拥塞处理过程时的丢包率变化趋势delta_l、采取的窗口调整策略以及当前的丢包率变化趋势delta三个因素来判断引发丢包的原因。delta由此时刻的loss_rate和上一个时刻的loss_rate′相减获得:

    delta=loss_rate-loss_rate′。

    在步骤s103中,根据分析得到的引发丢包的原因调整拥塞窗口的大小。

    可选地,在本申请的一个实施例中,所述根据分析得到的引发丢包的原因调整拥塞窗口的大小,包括:若所述引发丢包的原因为拥塞丢包,则采用预设的拥塞控制算法调整所述当前拥塞窗口的大小;若所述引发丢包的原因为噪声丢包,则基于丢包率的变化改变慢启动的门限值调整所述当前拥塞窗口的大小。

    可以理解的是,本申请实施例可以采用的窗口调整策略分为两类,一类在判断原因为拥塞丢包时使用,采用tcp(networkscongestioncontrol,拥塞控制算法)即可,以reno快恢复为例,一类在判断原因为噪声丢包时使用,基于丢包率的变化改变慢启动的门限值ssthresh。

    当上一次判断为拥塞丢包时,则必然的,delta_l<0,快恢复机制使拥塞窗口减半,如果之后丢包缓解,delta>0,则有可能之前发生拥塞丢包的判断正确,继续进行reno拥塞控制即可;如果delta<0,则说明拥塞窗口减小并没能让丢包缓解,属于噪声丢包,此时按照噪声丢包处理,按丢包率变化提升ssthresh,为上层应用发送重传数据和冗余数据提供足够的发送速率。

    当上一次判断为噪声丢包时:

    若判断噪声加重,delta_l<0,窗口变大;此时,若delta>0,说明提升速率造成了拥塞,判断为拥塞丢包,执行reno拥塞控制;若delta<0,说明噪声丢包缓解,按丢包率变化比率缩小ssthresh。

    若判断噪声减轻,delta_l>0,窗口变小;此时,若delta>0,说明降低速率依然发生了了拥塞,判断为噪声丢包,提升ssthresh;若delta<0,说明噪声丢包的确已经缓解,执行reno拥塞控制即可。

    可选地,在本申请的一个实施例中,所述拥塞窗口的大小的调整公式为:

    其中,delta_l表示前一次丢包率变化趋势,delta表示当前丢包率变化趋势,loss_rate表示当前时刻,loss_rate′表示前一时刻,ssthresh表示所述门限值,α表示参数放缩窗口。

    可以理解的是,上一次的拥塞原因被消去,当且仅当delta×delta_l>0时,判断为噪声丢包,以α为参数放缩窗口,反之,则采用tcpreno拥塞控制手段:

    本申请实施例的第二目标是在与侵略性较强的私有传输方案竞争时,能够使承载的上层应用保有足够量的带宽。由于此类私有传输方案的抢占性,在本申请执行时,私有传输方案造成的丢包将会被判断为噪声丢包,因此,本申请实施例可以通过将此类传输方案造成的网络恶化归类为噪声丢包,实现了第二目标。在实验中,在一定参数设置下,本申请实施例在面对高抢占的私有传输方案时能够持有更高的带宽,具有较强的对抗“流氓应用”的能力。

    与相关技术相比,本申请实施例具有以下特点:

    1)检测丢包成因,避免因噪声丢包缩小窗口,并为上层应用额外提供带宽进行重传、冗余编码等质量保障手段,保证上层应用的用户体验。

    2)在保障自身公平性的同时,面对高抢占性的传输方案有一定对抗性。通过对成因检测,提升自身窗口的同时不造成拥塞丢包,从而不损害链路通畅性;同时面对恶意应用不会一味避让,而会在避让无法改善拥塞时保障自身的带宽需求。

    3)本申请实施例的控制方法属于在线调度策略,不需要基于对未来信息的预测,可行性高。

    本领域技术人员应该理解到的是,本申请实施例的拥塞控制方法,步骤1:在发送端计算丢包率的变化,并根据其累计变化是否大于给定阈值进入步骤2;步骤2:考察步骤s1对本次丢包率变化方向的影响,并据此判断造成网络丢包的原因;步骤s3:根据判断结果调整拥塞窗口大小。

    以下列举实施例,示意性说明,以一个具体实施例对本申请实施例的拥塞控制方法的控制原理进行详细说明。

    如图2所示,在本申请的一个实施例中,在实际执行过程中,本申请实施例包括以下步骤:

    步骤s201:发送端应用程序通过传输层协议与接收端应用建立连接。

    步骤s202:在每个rtt内记录数据包的丢失情况,并维护一个先进先出的队列q用来统计丢包率:

    q={pk,pk 1,…,pk n-1},

    其中,pk表示记录发送端发送的第k个包是否丢失,丢包则值为1,确认到达则值为0。此队列记录最近n个数据包的丢失情况,每次插入最近一个包的到达情况,并在队列满后弹出最早的包到达情况。

    步骤s203:此步骤计算丢包率的变化,并根据其变化情况选择是否进入下一步骤,具体步骤如下:

    步骤s2031:在此队列每进行一次插入弹出时,计算丢包率变化:

    步骤s2032:记录丢包率的累计变化情况,当其累计变化大于给定阈值loss_tolerance时,进入下一个步骤拥塞避免,即进入拥塞避免的条件为:

    loss_rate=∑δloss_ratek,|loss_rate|≥loss_tolerance。

    步骤s204:此步骤判断造成拥塞的成因,并根据判断结果调整拥塞窗口大小,具体步骤如下:

    步骤s2041:计算当前丢包率loss_rate与上一次进入拥塞避免时丢包率loss_rate′的变化delta:

    delta=loss_rate-loss_rate′;

    步骤s2042:考察上次拥塞避免阶段的决策对本次丢包率变化方向的影响,经过条件合并,当上次丢包率变化delta_l与本次丢包率变化delta异号,即:

    delta×delta_l<0,

    判断为拥塞丢包,而当二者同号时,即:

    delta×delta_l>0,

    判断为噪声丢包。

    步骤s2043:对两种丢包分别采取不同的窗口调整方案,为了应对噪声丢包,应提高发送带宽用以重传和冗余编码,而为了应对拥塞丢包,应缩小窗口减缓拥塞:

    其中,α为窗口放缩系数,表示方案对噪声丢包的敏感程度。

    综上,能够有效地甄别丢包成因,从而在不造成丢包的前提下提升上层应用的网络吞吐,在不失公平性的前提下提高网络利用率,提升上层应用的用户体验。同时在面对“流氓应用”恶性竞争时能有效保障自身的带宽需求。

    根据本申请实施例的基于拥塞成因识别的拥塞控制方法,根据当前丢包率变化趋势、窗口调整策略与前一次丢包率变化趋势有效地甄别丢包成因,从而在不造成丢包的前提下提升上层应用的网络吞吐,在不失公平性的前提下提高网络利用率,提升上层应用的用户体验,同时在面对“流氓应用”恶性竞争时能有效保障自身的带宽需求,从而能够在不造成拥塞丢包的前提下,为实时流媒体应用等高带宽、低延迟的上层应用提供尽可能高的带宽,有效满足用户使用求,保证实时流媒体的使用体验。

    其次参照附图描述根据本申请实施例提出的xxxxx装置。

    图3是本申请实施例的基于拥塞成因识别的拥塞控制装置的方框示意图。

    如图3所示,该基于拥塞成因识别的拥塞控制装置10包括:获取模块100、分析模块200和控制模块300。

    具体地,获取模块100,用于获取当前时刻的丢包率变化值。

    分析模块200,用于在丢包率变化值大于预设丢包容忍阈值时,根据丢包率变化值确定的当前丢包率变化趋势、预设的窗口调整策略与前一次丢包率变化趋势分析引发丢包的原因。

    控制模块300,用于根据分析得到的引发丢包的原因调整拥塞窗口的大小。

    可选地,在本申请的一个实施例中,丢包率变化值的计算公式为:

    其中,pk表示记录发送端发送的第k个包是否丢失,n表示数据包的数量,pk n-1表示新入队的数据包,pk-1表示刚出队的数据包。

    可选地,在本申请的一个实施例中,控制模块300进一步用于当引发丢包的原因为拥塞丢包时,采用预设的拥塞控制算法调整当前拥塞窗口的大小,当引发丢包的原因为噪声丢包时,基于丢包率的变化改变慢启动的门限值调整当前拥塞窗口的大小。

    可选地,在本申请的一个实施例中,拥塞窗口的大小的调整公式为:

    其中,delta_l表示前一次丢包率变化趋势,delta表示当前丢包率变化趋势,loss_rate表示当前时刻,loss_rate′表示前一时刻,ssthresh表示门限值,α表示参数放缩窗口。

    需要说明的是,前述对基于拥塞成因识别的拥塞控制方法实施例的解释说明也适用于该实施例的基于拥塞成因识别的拥塞控制装置,此处不再赘述。

    根据本申请实施例的基于拥塞成因识别的拥塞控制装置,根据当前丢包率变化趋势、窗口调整策略与前一次丢包率变化趋势有效地甄别丢包成因,从而在不造成丢包的前提下提升上层应用的网络吞吐,在不失公平性的前提下提高网络利用率,提升上层应用的用户体验,同时在面对“流氓应用”恶性竞争时能有效保障自身的带宽需求,从而能够在不造成拥塞丢包的前提下,为实时流媒体应用等高带宽、低延迟的上层应用提供尽可能高的带宽,有效满足用户使用求,保证实时流媒体的使用体验。

    图4为本申请实施例提供的电子设备的结构示意图。该电子设备可以包括:

    存储器1201、处理器1202及存储在存储器1201上并可在处理器1202上运行的计算机程序。

    处理器1202执行程序时实现上述实施例中提供的基于拥塞成因识别的拥塞控制方法。

    进一步地,电子设备还包括:

    通信接口1203,用于存储器1201和处理器1202之间的通信。

    存储器1201,用于存放可在处理器1202上运行的计算机程序。

    存储器1201可能包含高速ram存储器,也可能还包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。

    如果存储器1201、处理器1202和通信接口1203独立实现,则通信接口1203、存储器1201和处理器1202可以通过总线相互连接并完成相互间的通信。总线可以是工业标准体系结构(industrystandardarchitecture,简称为isa)总线、外部设备互连(peripheralcomponent,简称为pci)总线或扩展工业标准体系结构(extendedindustrystandardarchitecture,简称为eisa)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

    可选的,在具体实现上,如果存储器1201、处理器1202及通信接口1203,集成在一块芯片上实现,则存储器1201、处理器1202及通信接口1203可以通过内部接口完成相互间的通信。

    处理器1202可能是一个中央处理器(centralprocessingunit,简称为cpu),或者是特定集成电路(applicationspecificintegratedcircuit,简称为asic),或者是被配置成实施本申请实施例的一个或多个集成电路。

    本实施例还提供一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如上的基于拥塞成因识别的拥塞控制方法。

    在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或n个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。

    此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本申请的描述中,“n个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。

    流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更n个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。

    在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或n个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(ram),只读存储器(rom),可擦除可编辑只读存储器(eprom或闪速存储器),光纤装置,以及便携式光盘只读存储器(cdrom)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。

    应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,n个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。如,如果用硬件来实现和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。

    本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。

    此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。

    上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。


    技术特征:

    1.一种基于拥塞成因识别的拥塞控制方法,其特征在于,包括以下步骤:

    获取当前时刻的丢包率变化值;

    在所述丢包率变化值大于预设丢包容忍阈值时,根据所述丢包率变化值确定的当前丢包率变化趋势、预设的窗口调整策略与前一次丢包率变化趋势分析引发丢包的原因;以及

    根据分析得到的引发丢包的原因调整拥塞窗口的大小。

    2.根据权利要求1所述的方法,其特征在于,所述丢包率变化值的计算公式为:

    其中,pk表示记录发送端发送的第k个包是否丢失,n表示数据包的数量,pk n-1表示新入队的数据包,pk-1表示刚出队的数据包。

    3.根据权利要求1所述的方法,其特征在于,所述根据分析得到的引发丢包的原因调整拥塞窗口的大小,包括:

    若所述引发丢包的原因为拥塞丢包,则采用预设的拥塞控制算法调整所述当前拥塞窗口的大小;

    若所述引发丢包的原因为噪声丢包,则基于丢包率的变化改变慢启动的门限值调整所述当前拥塞窗口的大小。

    4.根据权利要求3所述的方法,其特征在于,所述拥塞窗口的大小的调整公式为:

    其中,delta_l表示前一次丢包率变化趋势,delta表示当前丢包率变化趋势,loss_rate表示当前时刻,loss_rate′表示前一时刻,ssthresh表示所述门限值,α表示参数放缩窗口。

    5.一种基于拥塞成因识别的拥塞控制装置,其特征在于,包括:

    获取模块,用于获取当前时刻的丢包率变化值;

    分析模块,用于在所述丢包率变化值大于预设丢包容忍阈值时,根据所述丢包率变化值确定的当前丢包率变化趋势、预设的窗口调整策略与前一次丢包率变化趋势分析引发丢包的原因;以及

    控制模块,用于根据分析得到的引发丢包的原因调整拥塞窗口的大小。

    6.根据权利要求5所述的装置,其特征在于,所述丢包率变化值的计算公式为:

    其中,pk表示记录发送端发送的第k个包是否丢失,n表示数据包的数量,pk n-1表示新入队的数据包,pk-1表示刚出队的数据包。

    7.根据权利要求5所述的装置,其特征在于,所述控制模块进一步用于当所述引发丢包的原因为拥塞丢包时,采用预设的拥塞控制算法调整所述当前拥塞窗口的大小,当所述引发丢包的原因为噪声丢包时,基于丢包率的变化改变慢启动的门限值调整所述当前拥塞窗口的大小。

    8.根据权利要求7所述的装置,其特征在于,所述拥塞窗口的大小的调整公式为:

    其中,delta_l表示前一次丢包率变化趋势,delta表示当前丢包率变化趋势,loss_rate表示当前时刻,loss_rate′表示前一时刻,ssthresh表示所述门限值,α表示参数放缩窗口。

    9.一种电子设备,其特征在于,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序,以实现如权利要求1-4任一项所述的基于拥塞成因识别的拥塞控制方法。

    10.一种非临时性计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行,以用于实现如权利要求1-4任一项所述的基于拥塞成因识别的拥塞控制方法。

    技术总结
    本申请公开了一种基于拥塞成因识别的拥塞控制方法及装置,其中,方法包括以下步骤:获取当前时刻的丢包率变化值;在丢包率变化值大于预设丢包容忍阈值时,根据丢包率变化值确定的当前丢包率变化趋势、预设的窗口调整策略与前一次丢包率变化趋势分析引发丢包的原因;根据分析得到的引发丢包的原因调整拥塞窗口的大小。本申请实施例拥塞控制方法能够在不造成拥塞丢包的前提下,为实时流媒体应用等高带宽、低延迟的上层应用提供尽可能高的带宽,有效满足用户使用求,保证实时流媒体的使用体验。

    技术研发人员:崔勇;王子逸
    受保护的技术使用者:清华大学
    技术研发日:2020.11.27
    技术公布日:2021.03.12

    转载请注明原文地址:https://wp.8miu.com/read-5504.html

    最新回复(0)