一种网络拥塞控制方法和装置与流程

文档序号:12492606阅读:259来源:国知局
一种网络拥塞控制方法和装置与流程

本发明涉及缓存管理技术,尤其涉及一种网络拥塞控制方法和装置。



背景技术:

随着网络应用规模不断扩大,网路带宽资源需求不断攀升,有限带宽容量下网络拥塞现象频繁发生,网络拥塞控制成为提升网络服务质量的关键因素。随机早期丢弃技术就是目前采用的一种网络拥塞控制方法,通过计算队列占用缓存情况来提前预判缓存空间的拥塞,当检测队列缓存占用超过阈值就随机丢弃到达的数据包来缓解拥塞,使得在数据溢出缓存空间之前进行早期丢弃,避免缓存溢出导致大量连续丢包。

当前随机早期丢弃技术的方案大致包括:预先设置分组的丢弃阈值和丢弃概率,并计算队列的缓存占用;当队列缓存占用小于设置的低缓存阈值,该队列的所有到达的分组进入缓存;当队列缓存占用处于低缓存阈值和高缓存阈值之间时,根据预设的丢弃概率对该队列到达的分组进行随机丢弃;当队列缓存占用超过高缓存阈值时,将该队列所有到达的分组全部丢弃。

当前随机早期丢弃技术均采用静态配置丢弃概率的方案,使得对配置依赖性强,静态配置无法很好的适应网络的动态变化,缓存利用率比较低。



技术实现要素:

为解决上述技术问题,本发明实施例期望提供一种网络拥塞控制方法和装置,使得对分组数据包的丢弃能够适应网络的动态变化,提高了缓存的利用率。

本发明的技术方案是这样实现的:

第一方面,本发明实施例提供一种网络拥塞控制方法,所述方法包括:当新分组到达时,获取所述新分组所在队列在所述新分组到达之后的第一缓存占 用空间;其中,所述第一缓存占用空间包括所述队列在所述新分组到达之前的第二缓存占用空间与所述新分组的长度;当所述第一缓存占用空间处于预设的第一阈值和第二阈值之间时,确定所述第一缓存占用空间对应的缓存级别;并按照预设的缓存级别与丢弃概率的对应关系确定所述第一缓存占用空间对应的丢弃概率;其中,所述第一阈值小于所述第二阈值;将所述第一缓存占用空间对应的丢弃概率与随机生成的概率阈值进行比较:当所述第一缓存占用空间对应的丢弃概率大于随机生成的概率阈值时,将所述新分组进行丢弃;当所述第一缓存占用空间对应的丢弃概率不大于随机生成的概率阈值时,将所述新分组进入所述队列缓存。

在上述方案中,当所述第一缓存占用空间小于所述第一阈值时,将所述新分组进入所述队列缓存;当所述第一缓存占用空间大于所述第二阈值时,将所述新分组进行丢弃。

在上述方案中,所述缓存级别与丢弃概率的对应关系,具体包括:所述缓存级别越高,所述缓存级别对应的丢弃概率越大。

在上述方案中,所述每个缓存级别分别对应第一阈值和第二阈值之间的一个子阈值;相应的,所述确定所述第一缓存占用空间对应的缓存级别,具体包括:当所述第一缓存占用空间处于两个缓存级别对应的子阈值区间时,所述第一缓存占用空间对应的缓存级别为两个缓存级别中较低一级的缓存级别。

在上述方案中,所述随机生成的概率阈值为在(0,1)范围内的任意生成的一个随机数。

第二方面,本发明实施例提供一种网络拥塞控制装置,所述装置包括:获取单元、确定单元和执行单元;其中,所述获取单元,用于当新分组到达时,获取所述新分组所在队列在所述新分组到达之后的第一缓存占用空间;其中,所述第一缓存占用空间包括所述队列在所述新分组到达之前的第二缓存占用空间与所述新分组的长度;所述确定单元,用于当所述第一缓存占用空间处于预设的第一阈值和第二阈值之间时,确定所述第一缓存占用空间对应的缓存级别;并按照预设的缓存级别与丢弃概率的对应关系确定所述第一缓存占用空间对应 的丢弃概率;其中,所述第一阈值小于所述第二阈值;所述执行单元,用于将所述第一缓存占用空间对应的丢弃概率与随机生成的概率阈值进行比较:当所述第一缓存占用空间对应的丢弃概率大于随机生成的概率阈值时,将所述新分组进行丢弃;当所述第一缓存占用空间对应的丢弃概率不大于随机生成的概率阈值时,将所述新分组进入所述队列缓存。

在上述方案中,具体还用于当所述第一缓存占用空间小于所述第一阈值时,将所述新分组进入所述队列缓存;当所述第一缓存占用空间大于所述第二阈值时,将所述新分组进行丢弃。

在上述方案中,所述确定单元,具体用于所述缓存级别越高,所述缓存级别对应的丢弃概率越大。

在上述方案中,所述每个缓存级别分别对应第一阈值和第二阈值之间的一个子阈值;相应的,所述确定单元,具体用于:当所述第一缓存占用空间处于两个缓存级别对应的子阈值区间时,将所述第一缓存占用空间对应的缓存级别确定为两个缓存级别中较低一级的缓存级别。

在上述方案中,所述随机生成的概率阈值为在(0,1)范围内的任意生成的一个随机数。

本发明实施例提供了一种网络拥塞控制方法和装置,通过对队列缓存情况进行分级,并按照队列的缓存级别对应的丢弃概率将队列到达的分组进行随机丢弃,使得对分组数据包的丢弃能够适应网络的动态变化,提高了缓存的利用率。

附图说明

图1为本发明实施例中的网络拥塞控制方法的流程示意图;

图2为本发明实施例中的网络拥塞控制装置的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清 楚、完整地描述。

实施例一

如图1所示,该方法包括:

S101:当新分组到达时,获取新分组所在队列在新分组到达之后的第一缓存占用空间;其中,所述第一缓存占用空间包括队列在新分组到达之前的第二缓存占用空间与新分组的长度。

具体来说,新分组到达缓存区后,获取新分组所在队列在新分组达到之前的缓存占用情况,即第二缓存占用空间,再计算出队列在新分组达到之后的缓存占用情况,即第一缓存占用空间。

S102:当第一缓存占用空间处于预设的第一阈值和第二阈值之间时,确定第一缓存占用空间对应的缓存级别;并按照预设的缓存级别与丢弃概率的对应关系确定所述第一缓存占用空间对应的丢弃概率;其中,第一阈值小于第二阈值。

在具体实施过程中,每个缓存级别分别对应第一阈值和第二阈值之间的一个子阈值;相应的,确定第一缓存占用空间对应的缓存级别,具体包括:当所述第一缓存占用空间处于两个缓存级别对应的子阈值区间时,所述第一缓存占用空间对应的缓存级别为两个缓存级别中较低一级的缓存级别。

在具体实施过程中,缓存级别越高,缓存级别对应的丢弃概率越大。

需要说明的是,最接近第一阈值的子阈值是第一缓存级,对应的丢弃概率是最小丢弃概率,由最小丢弃概率,根据等比递增或固定增值的规则,可以计算出其他缓存级数对应的丢弃概率。

针对子阈值,需要进一步说明的是,每个子阈值区间的大小可以是均等的,可以是逐级增大或逐级减小的,也可以根据需求任意分配。另外,第一缓存占用空间对应的缓存级越靠近第一阈值,表明当前网络的拥塞情况越轻,缓存区剩余的空间也就越大,对应的丢弃概率就越小,相反,第一缓存占用空间对应的缓存级越靠近第二阈值,表明当前网络的拥塞情况越严重,缓存区剩余的空间也就越小,对应的丢弃概率就越大。

还需要说明的是,缓存级的个数越多,随着网络拥塞情况对丢弃概率的调整就越平滑,使缓存区空间的利用率越高,对网络拥塞情况的调节作用也越好。

为了更好的适应拥塞的不同场景,缓存级的个数、缓存级空间的大小及最小丢弃概率这三个参数支持动态设置,可以根据网络情况实时进行修改,较为灵活,同时,由于只需配置缓存级的个数、缓存级空间的大小及最小丢弃概率这三个参数,对硬件资源占用较少,实用价值高。

在具体实施过程中,当第一缓存占用空间小于第一阈值时,将新分组进入所述队列缓存;当第一缓存占用空间大于第二阈值时,将新分组进行丢弃。

S103:将第一缓存占用空间对应的丢弃概率与随机生成的概率阈值进行比较:

S104:当第一缓存占用空间对应的丢弃概率大于随机生成的概率阈值时,将新分组进行丢弃。

S105:当第一缓存占用空间对应的丢弃概率不大于随机生成的概率阈值时,将新分组进入所述队列缓存。

在具体实施过程中,随机生成的概率阈值为在(0,1)范围内的任意生成的一个随机数。

需要说明的是,在S103之前生成一个(0,1)范围内的随机数,并将随机数与第一缓存占用空间对应的丢弃概率进行比较,丢弃概率越大,丢弃概率大于随机数的几率也就越大,反之,丢弃概率越小,丢弃概率大于随机数的几率也就越小。

进一步的,第一缓存占用空间所处的缓存级越接近第二阈值,说明当前网络的拥塞情况越严重,此时,缓存级对应的丢弃概率也较大,从而丢弃概率大于随机数的几率也就较大,使得新分组有较大的可能性被丢弃,这样,能够快速释放缓存区空间,缓解网络拥塞。相反,第一缓存占用空间所处的缓存级越低,说明当前网络的拥塞情况较轻,此时,缓存级对应的丢弃概率也较小,从而丢弃概率大于随机数的几率也就较小,使得新分组有较大的可能性正常入队列,这样,能够在较大程度上保证数据完整性,提高缓存区空间的利用率。

以上技术方案将整块缓存分散成多个缓存级来对应不同程度的网络拥塞情况,当网络拥塞较为严重时,使用较大的丢弃概率,当网络拥塞较轻时,使用较小的丢弃概率,这样就实现了通过缓存分级调整丢弃概率,自动适应网络拥塞变化。

下面以一具体实例来对上述方法进行说明:

首先,将缓存区分为8个缓存分级,两个缓存分级之间的子阈值空间大小为依次减小,最接近第一阈值的子阈值空间大小为14,后面的子阈值空间逐级减1,本队列的最小丢弃概率p=0.1,每个缓存级对应的丢弃概率是在最小丢弃概率的基础上,以级数为倍数增加的,因此,1~8级对应的缓存空间和丢弃概率如下所示:

第1缓存级:缓存空间为(14,27),丢弃概率为p=0.1;

第2缓存级:缓存空间为[27,39),丢弃概率为2*p=0.2;

第3缓存级:缓存空间为[39,50),丢弃概率为3*p=0.3;

第4缓存级:缓存空间为[50,60),丢弃概率为4*p=0.4;

第5缓存级:缓存空间为[60,69),丢弃概率为5*p=0.5;

第6缓存级:缓存空间为[69,77),丢弃概率为6*p=0.6;

第7缓存级:缓存空间为[77,84),丢弃概率为7*p=0.7;

第8缓存级:缓存空间为[84,90),丢弃概率为8*p=0.8;

其中,第一阈值为14,第二阈值为90。

然后,当新分组达到缓存区时,获取新分组所在队列在新分组到达之后的第一缓存占用空间为50。

接下来,根据队列的第一缓存占用空间可以确定当前处于第4缓存级,由此可得对应的丢弃概率为0.4。

最后,生成随机数0.8,将随机数与丢弃概率进行比较,可知丢弃概率小于随机数,因此,新分组可以正常入队。

这样,当拥塞较轻微时,使用较小的丢弃概率,可以避免丢掉过多的分组数据。

下面以另一具体实例来对本发明的技术方案进行说明:

首先,将缓存区分为6个缓存分级,两个缓存分级之间的子阈值空间大小为依次增大,最接近第一阈值的子阈值空间大小为10,后面的子阈值空间逐级加1。本队列的最小丢弃概率p=0.1,每个缓存级对应的丢弃概率是在最小丢弃概率的基础上,以固定增量Δ=0.15依次增加的,因此,1~6级对应的缓存空间和丢弃概率如下所示:

第1缓存级:缓存空间为(10,21),丢弃概率为p=0.1;

第2缓存级:缓存空间为[21,33),丢弃概率为p+Δ=0.25;

第3缓存级:缓存空间为[33,46),丢弃概率为p+2*Δ=0.4;

第4缓存级:缓存空间为[46,60),丢弃概率为p+3*Δ=0.55;

第5缓存级:缓存空间为[60,75),丢弃概率为p+4*Δ=0.7;

第6缓存级:缓存空间为[75,91),丢弃概率为p+5*Δ=0.85;

其中,第一阈值为10,第二阈值为91。

然后,当新分组达到缓存区时,获取新分组所在队列在新分组到达之后的第一缓存占用空间为90。

接下来,根据队列当前占用的缓存空间可以确定处于第6缓存级,由此可得对应的丢弃概率为0.85。

最后,生成随机数0.8,将随机数与丢弃概率进行比较,可知丢弃概率大于随机数,因此,丢弃新分组。

这时,拥塞较为严重,使用较大的丢弃概率,实现了随机早期丢弃,避免当网络中出现大量突发数据时,使用尾部算法导致突发数据中大量的数据包被丢弃的不良后果。

下面以又一具体实例来对本发明的技术方案进行说明:

首先,将缓存区分为16个缓存分级,两个缓存分级之间的子阈值空间大小均为5,本队列的最小丢弃概率p=0.1,每个缓存级对应的丢弃概率是在最小丢弃概率的基础上,以固定增量Δ=0.05依次增加的,因此,1~16级对应的缓存空间和丢弃概率如下所示:

第1缓存级:缓存空间为(5,10),丢弃概率为p=0.1;

第2缓存级:缓存空间为[10,15),丢弃概率为p+Δ=0.15;

第3缓存级:缓存空间为[15,20),丢弃概率为p+2*Δ=0.2;

第4缓存级:缓存空间为[20,25),丢弃概率为p+3*Δ=0.25;

第5缓存级:缓存空间为[25,30),丢弃概率为p+4*Δ=0.3;

第6缓存级:缓存空间为[30,35),丢弃概率为p+5*Δ=0.35;

第7缓存级:缓存空间为[35,40),丢弃概率为p+6*Δ=0.4;

第8缓存级:缓存空间为[40,45),丢弃概率为p+7*Δ=0.45;

第9缓存级:缓存空间为[45,50),丢弃概率为p+8*Δ=0.5;

第10缓存级:缓存空间为[50,55),丢弃概率为p+9*Δ=0.55;

第11缓存级:缓存空间为[55,60),丢弃概率为p+10*Δ=0.6;

第12缓存级:缓存空间为[60,65),丢弃概率为p+11*Δ=0.65;

第13缓存级:缓存空间为[65,70),丢弃概率为p+12*Δ=0.7;

第14缓存级:缓存空间为[70,75),丢弃概率为p+13*Δ=0.75;

第15缓存级:缓存空间为[75,80),丢弃概率为p+14*Δ=0.8;

第16缓存级:缓存空间为[80,85),丢弃概率为p+15*Δ=0.85;

其中,第一阈值为5,第二阈值为85。

然后,当新分组达到缓存区时,获取新分组所在队列在新分组到达之后的第一缓存占用空间为4。

接下来,可以确定队列的第一缓存占用空间小于第一阈值,因此,使新分组正常入列。

此时,缓存区的分级较细,算法的自适应能力较强,使得缓存区的利用率较高,对网络实时控制越好,能够在较大程度上避免出现严重拥塞。

实施例二

基于上述实施例相同的技术构思,参见图2,其示出了本发明实施例提供的一种网络拥塞控制装置20,该装置20包括:获取单元201、确定单元202、比较单元203、丢弃单元204和入队单元205;其中,

获取单元201,用于当新分组到达时,获取所述新分组所在队列在所述新分组到达之后的第一缓存占用空间;其中,所述第一缓存占用空间包括所述队列在所述新分组到达之前的第二缓存占用空间与所述新分组的长度;

确定单元202,用于当所述第一缓存占用空间处于预设的第一阈值和第二阈值之间时,确定所述第一缓存占用空间对应的缓存级别;并按照预设的缓存级别与丢弃概率的对应关系确定所述第一缓存占用空间对应的丢弃概率;其中,所述第一阈值小于所述第二阈值;

比较单元203,用于将所述第一缓存占用空间对应的丢弃概率与随机生成的概率阈值进行比较;

丢弃单元204,用于当所述第一缓存占用空间对应的丢弃概率大于随机生成的概率阈值时,触发丢弃单元204,将所述新分组进行丢弃;

入队单元205,用于当所述第一缓存占用空间对应的丢弃概率不大于随机生成的概率阈值时,触发入队单元205,将所述新分组进入所述队列缓存。

在上述方案中,当第一缓存占用空间小于第一阈值时,触发入队单元205,将新分组进入队列缓存;当第一缓存占用空间大于第二阈值时,触发丢弃单元204,将新分组进行丢弃。

在上述方案中,所述确定单元202,具体用于缓存级别越高,述缓存级别对应的丢弃概率越大。

在上述方案中,所述每个缓存级别分别对应第一阈值和第二阈值之间的一个子阈值;相应的,所述确定单元202,具体用于:当所述第一缓存占用空间处于两个缓存级别对应的子阈值区间时,将所述第一缓存占用空间对应的缓存级别确定为两个缓存级别中较低一级的缓存级别。

在上述方案中,所述比较单元203,具体用于随机生成的概率阈值为在(0,1)范围内的任意生成的一个随机数。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算 机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1