网络拥塞避免的方法及装置的制造方法

文档序号:10615919阅读:307来源:国知局
网络拥塞避免的方法及装置的制造方法
【专利摘要】本申请提供一种网络拥塞避免的方法及装置,所述方法包括:当监测到报文进入队列时,获取当前的报文入队速度;根据所述当前的报文入队速度确定当前的报文出队速度;将队列中的报文按照所述当前的报文出队速度进行出队。应用该方法,可以实现在拥塞避免的过程中,有效地提高拥塞避免的效率,并有效地节省网络设备的资源。
【专利说明】
网络拥塞避免的方法及装置
技术领域
[0001]本申请涉及网络通信技术领域,尤其涉及网络拥塞避免的方法及装置。
【背景技术】
[0002]拥塞避免(congest1n avoidance)是指通过监视网络资源,例如队列的使用情况,在监测到拥塞有加剧的趋势时,主动丢弃报文,以调整网络的流量,从而解除网络过载。在实现拥塞避免时,当前主要使用的是WRED(Weighted Random Early Detect1n,加权随机早期检测)方案。
[0003]在WRED方案中,当某个接口开始出现拥塞时,选择性的丢弃较低优先级的报文,而不是简单地随机丢弃报文,并且为了避免对突发性的数据流造成不公正的待遇,在计算报文的丢弃概率时,采用平均队列长度与预设的低限和高限进行比较;而且,由于队列的缓存是共享的,则需要同时计算优先级队列缓存、端口缓存、设备总缓存,这三者的拥塞情况,当该三者同时发生拥塞时,根据该三者中最大的丢弃概率确定是否丢弃报文。
[0004]由上述描述可知,在采用WRED方案实现拥塞避免时,设备将在平均队列长度的计算上耗费大量资源,并且,由于队列缓存共享,设备需要计算多个方面的拥塞情况,从而导致拥塞避免的效率并不高。

【发明内容】

[0005]有鉴于此,本申请提供一种网络拥塞避免的方法及装置,以实现在拥塞避免的过程中,有效地提高拥塞避免的效率,并有效地节省网络设备的资源。
[0006]具体地,本申请是通过如下技术方案实现的:
[0007]根据本申请实施例的第一方面,提供一种网络拥塞避免的方法,所述方法包括:
[0008]当监测到报文进入队列时,获取当前的报文入队速度;
[0009]根据所述当前的报文入队速度确定当前的报文出队速度;
[0010]将队列中的报文按照所述当前的报文出队速度进行出队。
[0011]可选的,所述根据所述当前的报文入队速度确定当前的报文出队速度,包括:
[0012]将所述当前的报文入队速度作为所述当前的报文出队速度。
[0013]可选的,所述根据所述当前的报文入队速度确定当前的报文出队速度,包括:
[0014]当监测到当前的报文入队速度,相较于前一次的报文入队速度增大时,按照预设的第一规则增大当前的报文出队速度;
[0015]当监测到当前的报文入队速度,相较于前一次的报文入队速度减小时,按照预设的第二规则减小当前的报文出队速度。
[0016]可选的,所述队列具有独立缓存。
[0017]可选的,所述方法还包括:
[0018]根据所述队列的当前队列长度计算所述队列对应的报文丢弃概率;
[0019]所述根据所述队列的当前队列长度计算所述队列对应的报文丢弃概率,包括:
[0020]当所述队列的当前队列长度不大于预设最低阈值时,确定所述队列对应的报文丢弃概率为O;
[0021]当所述队列的当前队列长度不小于预设的最高阈值时,确定所述队列对应的报文丢弃概率为I;
[0022]当所述队列的当前队列长度介于所述最低阈值与最高阈值之间时,根据预设的函数关系,以及所述最低阈值和最高阈值,计算得出所述队列对应的报文丢弃概率。
[0023]根据本申请实施例的第二方面,提供一种网络拥塞避免的装置,所述装置包括:
[0024]获取单元,用于当监测到报文进入队列时,获取当前的报文入队速度;
[0025]确定单元,用于根据所述当前的报文入队速度确定当前的报文出队速度;
[0026]处理单元,用于将队列中的报文按照所述当前的报文出队速度进行出队。
[0027]可选的,所述确定单元,具体用于:
[0028]将所述当前的报文入队速度作为所述当前的报文出队速度。
[0029]可选的,所述确定单元,具体用于:
[0030]当监测到当前的报文入队速度,相较于前一次的报文入队速度增大时,按照预设的第一规则增大当前的报文出队速度;
[0031]当监测到当前的报文入队速度,相较于前一次的报文入队速度减小时,按照预设的第二规则减小当前的报文出队速度。
[0032]可选的,所述队列具有独立缓存。
[0033]可选的,所述装置还包括:
[0034]计算单元,用于根据所述队列的当前队列长度计算所述队列对应的报文丢弃概率;
[0035]所述计算单元,具体用于:当所述队列的当前队列长度不大于预设最低阈值时,确定所述队列对应的报文丢弃概率为O;
[0036]当所述队列的当前队列长度不小于预设的最高阈值时,确定所述队列对应的报文丢弃概率为I;
[0037]当所述队列的当前队列长度介于所述最低阈值与最高阈值之间时,根据预设的函数关系,以及所述最低阈值和最高阈值,计算得出所述队列对应的报文丢弃概率。
[0038]由上述实施例可见,通过当监测到报文进入队列时,获取当前的报文入队速度;并根据该当前的报文入队速度确定当前的报文出队速度,以将队列中的报文按照所述当前的报文出队速度进行出队。可以使得队列中缓存的突发流量及时出队,队列的长度可以反映出实际的拥塞情况。从而,相较于现有技术而言,省去了计算队列平均长度的过程,有效地节省了网络设备的资源,并且,由于只需计算队列的报文丢弃概率,从而,有效地提高了拥塞避免的效率。
【附图说明】
[0039]图1A为本申请网络拥塞避免的方法的一个实施例流程图;
[0040]图1B示例了报文丢弃概率与当前队列长度之间的函数关系;
[0041]图2为本申请网络拥塞避免的装置所在网络设备的一种硬件结构图;
[0042]图3为本申请网络拥塞避免的装置的一个实施例框图;
[0043]图4为本申请网络拥塞避免的装置的另一个实施例框图。
【具体实施方式】
[0044]这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
[0045]在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
[0046]应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
[0047]现有技术中,大多使用WRED方案实现网络拥塞避免。在WRED方案中,由于队列的缓存是共享的,因此,通常使用平均队列长度确定队列对应的报文丢弃率。计算平均队列长度的公式为:
[0048]平均队列长度=(以前的平均队列长度X(l-l/(2n))) + (当前队列长度X (I/(2n)))
[0049]其中,η表示平均队列长度对队列长度变化的敏感度,可以为某一固定值,并且,为了确保报文丢弃概率的准确性,需要周期性的计算平均队列长度,计算平均队列长度的周期可以为8?256us。
[0050]当确定平均队列长度之后,则可以根据平均队列长度、预设的最高阈值(Qx_maxThr)、预设的最低阈值(Qx_minThr)、以及概率分母(Qx_MPD)之间的函数关系,确定报文的丢弃概率。
[0051]由于队列的缓存是共享的,那么,网络设备的一个端口的所有队列的总缓存将大于该端口的实际可用缓存,而且所有端口的总缓存将大于该网络设备实际可提供的缓存。从而,在队列缓存未达到严重拥塞时,端口缓存可能已严重不足,在端口缓存未达到严重拥塞时,设备总缓存可能已严重不足。因此,在WRED方案中,需要分别计算队列缓存、端口缓存、设备总缓存这三者的拥塞情况,当该三者同时发生拥塞时,根据该三者中最大的报文丢弃概率确定是否丢弃报文。
[0052]由上述描述可知,在采用WRED方案实现拥塞避免时,由于网络设备需周期性地计算平均队列长度,从而耗费大量资源;并且,由于网络设备需要计算多个方面的拥塞情况,从而导致拥塞避免的效率并不高。为了解决以上问题,本申请提供一种网络拥塞避免的方法及装置,以实现在拥塞避免的过程中,有效地提高拥塞避免的效率,并有效地节省资源。
[0053]为了使本领域技术人员尽可能详尽地了解本申请所提供的网络拥塞避免的方法,提供如下实施例进行说明。
[0054]请参考图1A,为本申请网络拥塞避免的方法的一个实施例流程图,该流程可以包括以下步骤:
[0055]步骤SlOl:当监测到报文进入队列时,获取当前的报文入队速度。
[0056]通常情况下,正常的网络流量中可能会包含大量的突发流量。在该种情况下,单位时间内,进入队列的报文较多,将导致在该单位时间内,报文的入队速度也较大。
[0057]在本申请中,可以通过某种技术手段,例如令牌桶技术,获取当前的报文入队速度。具体是如何使用令牌桶技术获取当前的报文入队速度的,可以参见现有技术中的描述,本申请对此不再作详细赘述。
[0058]步骤S102:根据所述当前的报文入队速度确定当前的报文出队速度。
[0059]在一个可选的实现方式中,可以将步骤SlOl中所获取到的当前的报文入队速度作为当前的报文出队速度。通过该种处理,可以使得报文的入队和出队同速进行,从而,可以使得队列中的突发流量较快的出队,避免突发流量对队列的长度造成影响。
[0060]在另一个可选的实现方式中,还可以根据步骤SlOl中获取到的当前的报文入队速度调整当前的报文出队速度。具体可以包括:
[0061]当监测到当前的报文入队速度,相较于前一次的报文入队速度增大时,按照预设的第一规则增大当前的报文出队速度;
[0062]当监测到当前的报文入队速度,相较于前一次的报文入队速度减小时,按照预设的第二规则减小当前的报文出队速度。
[0063]例如,当监测到当前的报文入队速度,相较于前一次的报文入队速度有所增大时,可以按照50%的比例增大当前的报文出队速度,那么,增大后的当前的报文出队速度=(1+50%)*当前的报文出队速度。又例如,当监测到当前的报文入队速度,相较于前一次的报文入队速度有所减小时,可以按照50%的比例减小当前的报文出队速度,那么,减小后的当前的报文出队速度= (1-50%)*当前的报文出队速度。
[0064]可以理解的是,上述两种实现方式仅仅作为根据所述当前的报文入队速度确定当前的报文出队速度的举例,本申请中,对具体的确定当前的报文出队速度的方式不作限制。
[0065]步骤S103:将队列中的报文按照所述当前的报文出队速度进行出队。
[0066]需要说明的是,本申请中的队列具有独立缓存,即每两个队列之间的缓存互不共享。从而,队列的实际长度则可以体现出当前该队列的拥塞状态了,而且可以不再去计算平均队列长度,从而,节省了网络设备的资源。如下,将介绍本申请中是如何根据队列的当前队列长度(Qx_curQ)计算该队列对应的报文丢弃概率。
[0067]请参见图1B,示例了报文丢弃概率与当前队列长度之间的函数关系。
[0068]如图1B中所示,当队列的当前队列长度(Qx_CUrQ)不大于预设最低阈值(Qx_minThr)时,获取到的该队列对应的报文丢弃概率为O;
[0069 ]当队列的当前队列长度(Qx_curQ)不小于预设的最高阈值(Qx_maxThr)时,获取到的该队列对应的报文丢弃概率为I;
[°07°]当队列的当前队列长度(Qx_curQ)介于预设的最低阈值(Qx_minThr)与最高阈值(QxjnaxThr)之间时,该队列对应的报文丢弃概率是关于当前队列长度的函数:
[0071 ] f(Qx_curQ) = (Qx_curQ-Qx_minThr)/((Qx_maxThr-Qx_minThr)*Qx_MPD)
[0072]此外,在本申请中,按照如上描述的步骤对队列中的报文进行出队的同时,也可以保留现有技术中的调度发包流程,即每隔预设周期,仍可以执行现有技术中的调度发包流程,对队列中的报文进行出队。需要说明的是,本申请中的预设周期相对于现有技术中而言,可以设置地较大一些,即降低执行现有技术中的调度发包流程的频率。通过该种操作,有效地保证对队列中的报文进行出队的效率,并且,还可以减少空闲周期的数量,节省网络设备的性能。
[0073]上述所描述的“空闲周期”是指,在当前所执行的调度发包流程中,并未执行报文出队操作。例如,队列中没有报文,从而未执行报文出队操作;又例如,队列中存在报文,但由于某种原因,例如限速等原因,并不能执行报文出队操作。从而导致调度发包流程无效,浪费了网络设备的性能。
[0074]由上述实施例可见,通过当监测到报文进入队列时,获取当前的报文入队速度;并根据该当前的报文入队速度确定当前的报文出队速度,以将队列中的报文按照所述当前的报文出队速度进行出队。可以使得队列中缓存的突发流量及时出队,队列的长度可以反映出实际的拥塞情况。从而,相较于现有技术而言,省去了计算队列平均长度的过程,有效地节省了网络设备的资源,并且,由于只需计算队列的报文丢弃概率,从而,有效地提高了拥塞避免的效率。
[0075]与前述网络拥塞避免的方法的实施例相对应,本申请还提供了网络拥塞避免的装置的实施例。
[0076]本申请网络拥塞避免的装置的实施例可以应用在网络设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在网络设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图2所示,为本申请网络拥塞避免的装置所在网络设备的一种硬件结构图,除了图2所示的处理器21、内存22、网络接口23、以及非易失性存储器24之外,实施例中装置所在的网络设备通常根据该网络设备的实际功能,还可以包括其他硬件,对此不再赘述。
[0077]请参考图3,为本申请网络拥塞避免的装置的一个实施例框图,该装置可以包括:获取单元31、确定单元32、处理单元33。
[0078]其中,该获取单元31,可以用于当监测到报文进入队列时,获取当前的报文入队速度;
[0079]该确定单元32,可以用于根据所述当前的报文入队速度确定当前的报文出队速度;
[0080]该处理单元33,可以用于将队列中的报文按照所述当前的报文出队速度进行出队。
[0081 ]在一实施例中,该确定单元32,可以具体用于:
[0082]将所述当前的报文入队速度作为所述当前的报文出队速度。
[0083]在另一实施例中,该确定单元32,可以具体用于:
[0084]当监测到当前的报文入队速度,相较于前一次的报文入队速度增大时,按照预设的第一规则增大当前的报文出队速度;
[0085]当监测到当前的报文入队速度,相较于前一次的报文入队速度减小时,按照预设的第二规则减小当前的报文出队速度。
[0086]在又一实施例中,所述队列具有独立缓存。
[0087]请参考图4,为本申请网络拥塞避免的装置的另一个实施例框图,该图4所示的装置,在上述图3所示装置的基础上,还可以包括计算单元34。
[0088]该计算单元34,可以用于根据所述队列的当前队列长度计算所述队列对应的报文丢弃概率。
[0089]在一实施例中,该计算单元34,可以具体用于:当所述队列的当前队列长度不大于预设最低阈值时,确定所述队列对应的报文丢弃概率为O ;
[0090]当所述队列的当前队列长度不小于预设的最高阈值时,确定所述队列对应的报文丢弃概率为I;
[0091]当所述队列的当前队列长度介于所述最低阈值与最高阈值之间时,根据预设的函数关系,以及所述最低阈值和最高阈值,计算得出所述队列对应的报文丢弃概率。
[0092]上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
[0093]对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
[0094]以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
【主权项】
1.一种网络拥塞避免的方法,其特征在于,所述方法包括: 当监测到报文进入队列时,获取当前的报文入队速度; 根据所述当前的报文入队速度确定当前的报文出队速度; 将队列中的报文按照所述当前的报文出队速度进行出队。2.根据权利要求1所述的方法,其特征在于,所述根据所述当前的报文入队速度确定当前的报文出队速度,包括: 将所述当前的报文入队速度作为所述当前的报文出队速度。3.根据权利要求1所述的方法,其特征在于,所述根据所述当前的报文入队速度确定当前的报文出队速度,包括: 当监测到当前的报文入队速度,相较于前一次的报文入队速度增大时,按照预设的第一规则增大当前的报文出队速度; 当监测到当前的报文入队速度,相较于前一次的报文入队速度减小时,按照预设的第二规则减小当前的报文出队速度。4.根据权利要求1?3任一所述的方法,其特征在于,所述队列具有独立缓存。5.根据权利要求4所述的方法,其特征在于,所述方法还包括: 根据所述队列的当前队列长度计算所述队列对应的报文丢弃概率; 所述根据所述队列的当前队列长度计算所述队列对应的报文丢弃概率,包括: 当所述队列的当前队列长度不大于预设最低阈值时,确定所述队列对应的报文丢弃概率为O; 当所述队列的当前队列长度不小于预设的最高阈值时,确定所述队列对应的报文丢弃概率为I; 当所述队列的当前队列长度介于所述最低阈值与最高阈值之间时,根据预设的函数关系,以及所述最低阈值和最高阈值,计算得出所述队列对应的报文丢弃概率。6.一种网络拥塞避免的装置,其特征在于,所述装置包括: 获取单元,用于当监测到报文进入队列时,获取当前的报文入队速度; 确定单元,用于根据所述当前的报文入队速度确定当前的报文出队速度; 处理单元,用于将队列中的报文按照所述当前的报文出队速度进行出队。7.根据权利要求6所述的装置,其特征在于,所述确定单元,具体用于: 将所述当前的报文入队速度作为所述当前的报文出队速度。8.根据权利要求6所述的装置,其特征在于,所述确定单元,具体用于: 当监测到当前的报文入队速度,相较于前一次的报文入队速度增大时,按照预设的第一规则增大当前的报文出队速度; 当监测到当前的报文入队速度,相较于前一次的报文入队速度减小时,按照预设的第二规则减小当前的报文出队速度。9.根据权利要求6?8任一所述的装置,其特征在于,所述队列具有独立缓存。10.根据权利要求9所述的装置,其特征在于,所述装置还包括: 计算单元,用于根据所述队列的当前队列长度计算所述队列对应的报文丢弃概率;所述计算单元,具体用于:当所述队列的当前队列长度不大于预设最低阈值时,确定所述队列对应的报文丢弃概率为O ; 当所述队列的当前队列长度不小于预设的最高阈值时,确定所述队列对应的报文丢弃概率为I; 当所述队列的当前队列长度介于所述最低阈值与最高阈值之间时,根据预设的函数关系,以及所述最低阈值和最高阈值,计算得出所述队列对应的报文丢弃概率。
【文档编号】H04L12/863GK105978821SQ201610578006
【公开日】2016年9月28日
【申请日】2016年7月21日
【发明人】杨金良
【申请人】杭州迪普科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1