一种网络设备中的缓存管理方法及装置与流程

文档序号:12492623阅读:275来源:国知局
一种网络设备中的缓存管理方法及装置与流程
本申请设计通信
技术领域
,尤其涉及一种网络设备中的缓存管理方法及装置。
背景技术
:网络设备接收报文后,需要一定的缓存对报文进行存储和调度。当存在较多的报文队列时,如何对有限的缓存进行有效的利用,是网络设备面临的一个问题。现有技术中,一般使用的缓存管理方法包括:动态缓存管理方法:网络设备将系统缓存作为共享缓存,按照先到先得的原则进行分配。报文入队前,按照先到先得的原则进行分配。动态与静态结合的缓存管理方法:同时使用静态缓存管理和动态缓存管理两种方式,分配一定的缓存空间的大小作为独享缓存,分配给各个缓存队列,剩余的缓存作为共享缓存,按照先到先得的原则进行分配。上述方法1)和2)中,缓存利用的公平性无法得到保证,部分先入队的队列发生拥塞而将共享缓存中的缓存资源耗尽,导致后续到达的不拥塞的队列,由于申请不到缓存而发生丢包。技术实现要素:本申请提供了一种缓存管理方法及设备,保证共享缓存使用的公平性,减少丢包。第一方面,本申请提供了一种缓存管理方法。所述缓存包括共享缓存区,所述共享缓存区为N个缓存队列提供共享的缓存空间,N为大于1的整数,所述N个缓存队列包括第一缓存队列。所述方法包括:首先,所述网络设备接收报文,确定所述报文对应所述第一缓存队列。然后,所述网络设备确定所述第一缓存队列当前占用的所述共享缓存区中的缓存空间的大小是否大于第一门限值。所述第一门限值为所述共享缓存区的当前剩余的缓存空间的大小乘以门限系数所得到的值。所述门限系数与所述第一缓存队列的优先级对应,所述门限系数大于0。所述共享缓存区的当前剩余的缓存空间的大小等于所述共享缓存区的配置的缓存空间的大小减去所述N个缓存对列当前占用的缓存空间的大小。如果所述网络设备确定所述第一缓存队列当前占用的所述共享缓存区中的缓存空间的大小不大于第一门限值,则将所述报文存储到所述共享缓存区中。通过设置共享缓存区中的动态缓存门限,使得网络设备的拥塞程度较低时,共享缓存中剩余的缓存较多,与各缓存队列对应的动态缓存门限较大,能充分利用缓存应对流量突发,保证缓存的使用效率。当拥塞程度较高时,严重拥塞的队列由于使用的共享缓存达到动态门限,不能继续获取共享缓存;而不拥塞的队列或拥塞程度较轻的队列,使用的共享缓存未达到动态门限,则可以继续获取共享缓存,从而可以保证共享缓存使用的公平性。并且,由于按照优先级对队列设置了不同的门限系数,在发生拥塞时,可以保证高优先级的报文优先获取缓存,避免低优先级队列的拥塞影响高优先级报文的转发。在一种可能的设计中,所述缓存还包括突发缓存区。所述方法还包括:如果所述网络设备确定所述第一缓存队列当前占用的所述共享缓存区中的缓存空间的大小大于所述第一门限值,并进一步确定所述第一缓存队列当前占用的所述缓存中的缓存空间的大小小于第二门限值,则所述网络设备所述报文存储到所述突发缓存区中。通过在缓存中设置突发缓存区,可以有效存储非拥塞队列或轻度拥塞队列的突发流量,减少非拥塞队列或轻度拥塞队列的丢包,有效提升了系统的性能。在一种可能的设计中,所述缓存还包括独享缓存区。所述独享缓存区中包括N个子独享缓存区,所述N个子独享缓存区分别为所述N个缓存队列提供独享的缓存空间。所述N个子独享缓存区与所述N个缓存队列间的映射为一一对应。所述N个子独享缓存区包括第一独享缓存区,所述第一独享缓存区为所述第一缓存队列提供独享的缓存空间。所述方法还包括:如果所述网络设备确定所述第一缓存队列当前占用的所述共享缓存区中的缓存空间的大小大于所述第一门限值,则进一步确定所述第一独享缓存区是否具有可用于存储所述报文的缓存空间。如果所述网络设备确定所述第一独享缓存区具有可用于存储所述报文的缓存空间后,则将所述报文存储到所述第一独享缓存区中。在网络设备中设置所述独享缓存区,并将独享缓存区划分为与各缓存队列所对应的多个子独享缓存区,从而为每个队列提供独享的缓存空间。对于每个缓存队列来说,当无法继续占用共享缓存区中的缓存空间时,可以使用其独享的缓存区来缓存队列中的报文,从而有效避免报文丢失。在一种可能的设计中,所述缓存还包括突发缓存区。所述方法进一步包括:如果所述网络设备确定所述第一独享缓存区不具有可用于存储所述报文的缓存空间,并进一步确定所述第一缓存队列当前占用的所述缓存中的缓存空间的大小小于第三门限值,则将所述报文存储到所述突发缓存区中。通过在所述缓存中设置突发缓存区,可以为未发生拥塞或仅发生轻度拥塞的队列提供缓存空间,有效减少了非严重拥塞的队列出现突发流量时所发生的丢包。第二方面,本申请提供了一种缓存管理装置,所述缓存包括共享缓存区,所述共享缓存区为N个缓存队列提供共享的缓存空间,N为大于1的整数,所述N个缓存队列包括第一缓存队列,所述缓存管理装置包括接收模块和处理模块。该接收模块用于接收报文。该处理模块用于确定所述报文对应所述第一缓存队列。该处理模块,还用于确定所述第一缓存队列当前占用的所述共享缓存区中的缓存空间的大小是否大于第一门限值。所述第一门限值为所述共享缓存区的当前剩余的缓存空间的大小乘以门限系数所得到的值。所述门限系数与所述第一缓存队列的优先级对应,所述门限系数大于0。所述共享缓存区的当前剩余的缓存空间的大小等于所述共享缓存区的配置的缓存空间的大小减去所述N个缓存对列当前占用的缓存空间的大小。所述处理模块,进一步用于在确定所述第一缓存队列当前占用的所述共享缓存区中的缓存空间的大小不大于第一门限值后,将所述报文存储到所述共享缓存区中。通过设置共享缓存区中的动态缓存门限,使得网络设备的拥塞程度较低时,共享缓存中剩余的缓存较多,与各缓存队列对应的动态缓存门限较大,能充分利用缓存应对流量突发,保证缓存的使用效率。当拥塞程度较高时,严重拥塞的队列由于使用的共享缓存达到动态门限,不能继续获取共享缓存;而不拥塞的队列或拥塞程度较轻的队列,使用的共享缓存未达到动态门限,则可以继续获取共享缓存,从而可以保证共享缓存使用的公平性。并且,由于按照优先级对队列设置了不同的门限系数,在发生拥塞时,可以保证高优先级的报文优先获取缓存,避免低优先级队列的拥塞影响高优先级报文的转发。在一个可能的设计中,所述缓存还包括突发缓存区,所述处理模块,进一步用于在确定所述第一缓存队列当前占用的所述缓存中的缓存空间的大小大于所述第一门限值并小于第二门限值后,将所述报文存储到所述突发缓存区中。通过在缓存中设置突发缓存区,可以有效存储非拥塞队列或轻度拥塞队列的突发流量,减少非拥塞队列或轻度拥塞队列的丢包,有效提升了系统的性能。在一个可能的设计中,所述缓存还包括独享缓存区,所述独享缓存区中包括N个子独享缓存区,所述N个子独享缓存区分别为所述N个缓存队列提供独享的缓存空间。所述N个子独享缓存区与所述N个缓存队列间的映射为一一对应。所述N个子独享缓存区包括第一独享缓存区,所述第一独享缓存区为所述第一缓存队列提供独享的缓存空间。所述处理模块,还用于在确定所述第一缓存队列当前占用的所述共享缓存区中的缓存空间的大小大于所述第一门限值后,进一步确定所述第一独享缓存区是否具有可用于存储所述报文的缓存空间。所述处理模块,进一步用于在确定所述第一独享缓存区具有可用于存储所述报文的缓存空间后,将所述报文存储到所述第一独享缓存区中。在网络设备中设置所述独享缓存区,并将独享缓存区划分为与各缓存队列所对应的多个子独享缓存区,从而为每个队列提供独享的缓存空间。对于每个缓存队列来说,当无法继续占用共享缓存区中的缓存空间时,可以使用其独享的缓存区来缓存队列中的报文,从而有效避免报文丢失。在一个可选的设计中,所述缓存还包括突发缓存区,所述处理模块,还用于在确定所述第一独享缓存区不具有可用于存储所述报文的缓存空间后,进一步确定所述第一缓存队列当前占用的所述缓存中的缓存空间的大小小于第三门限值,则将所述报文存储到所述突发缓存区中。通过在缓存中设置突发缓存区,可以有效存储非拥塞队列或轻度拥塞队列的突发流量,减少非拥塞队列或轻度拥塞队列的丢包,有效提升了系统的性能。第三方面,本申请提供了一种缓存管理装置,该装置包括:通信接口、处理器和存储器。其中通信接口、处理器以及所述存储器之间可以通过总线系统相连。该存储器用于存储程序、指令或代码,所述处理器用于执行所述存储器中的程序、指令或代码,完成前述方面设计中的方法。第四方面,本申请提供了一种通信系统,包括一种网络设备,用于执行前述方面设计中的方法,方法的具体执行步骤可以参见前述方面,此处不再赘述。第五方面,本申请实施例提供了一种计算机可读存储介质,用于存储计算机程序,该计算机程序用于执行前述方面设计的指令。附图说明为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1(a)为本申请实施例提供的一种缓存管理方法的方法流程示意图。图1(b)为本申请实施例提供的一种缓存管理方法的方法流程示意图。图1(c)为本申请实施例提供的一种缓存管理方法的方法流程示意图。图1(d)为本申请实施例提供的一种缓存管理方法的方法流程示意图。图2为本申请实施例提供的一种缓存管理装置的结构示意图。图3为本申请实施例提供的一种缓存管理装置的硬件结构示意图。具体实施方式除非有相反的说明,本申请实施例提及“第一”、“第二”以及“第三”等序数词用于对多个对象进行区分,不用于限定多个对象的顺序。下面结合图1(a)对本申请实施例提供的缓存管理方法100进行详细说明。S101、网络设备接收报文,确定所述报文对应第一缓存队列。该网络设备例如可以是路由器,交换机等设备。所述网络设备包括分类器,缓存和调度装置。该缓存包括共享缓存区,所述共享缓存区为N个缓存队列,例如,8个缓存队列,提供共享的缓存空间,N为大于1的整数。所述N个缓存队列包括第一缓存队列。网络设备接收所述报文后,首先进入分类器进行分类。分类器是一个报文处理引擎,根据报文的不同属性,例如目的IP地址,优先级等参数,进行查表处理和分发。通过所述分类器对所述报文进行分类处理,确定该报文对应所述第一缓存队列。在一个具体的实施方式中,所述网络设备接收到一个二层的VLAN帧。该VLAN帧的帧头的具体结构如表1所示:表1如表1所示,Vlan标签中包括优先级Priority字段802.1p,Priority字段的长度为3比特,这样共有8种优先级。8种优先级分别对应8个队列,例如,如表2所示:表2其中,BE、AF、EF、CS代表队列的标识码。上述各队列标识码只是对队列进行标识,队列标识码不代表服务等级的高低。在表1中采用上述队列标识码,只是为了更加直观的说明各队列优先级的相对高低。对于各队列标识码,也可以用队列1,队列2,队列3,队列4等,本申请不作限制。下面对BE、AF、EF、CS所对应的业务进行举例说明。BE:没有质量保证,一般对应于与传统的IP分组投递服务,只关注可达性,其他方面不作任何要求。IP网络中,缺省的每跳行为(英文:PerHopBehavior,PHB)就是BE。任何路由器都必须支持BEPHB。AF:代表带宽有保证、时延可控的服务,是用于视频、语音以及企业VPN等业务。如表2所示,AF被细分成4个等级,并且每个等级例如可以有3个丢弃优先级,其表达形式为:AF1x-AF4x,x表示丢弃优先级,取值为1-3。EF:代表低时延、低抖动、低丢包率,对应于实际应用中的视频、语音、会议电视等实时业务。CS:因为现网有些存量设备不支持差分服务,只解析差分服务码点(英文:DifferentiatedServicesCodePoint,DSCP)的前3个比特,为了后向兼容,标准预留了所有格式为XXX000的DSCP值,这类值就对应为CSPHB。上述队列所对应的业务分类只是例举,本领域技术人员可以根据需要灵活设置,本申请对此不做具体限定。因此,当网络设备接收到一个VLAN帧后,会根据VLAN帧头的优先级,来确定与该报文相对应的缓存队列。例如,VLAN帧头中优先级字段的值为101,则可以确定该VLAN帧对应于队列EF。在另一个具体的实施方式中,所述网络设备接收一个因特网协议(英文:InternetProtocol,IP)报文。在该IP报文的报文头中具有服务类型(英文:Typeofservice,Tos)字段,该Tos字段中已使用的6比特的标识为DSCP。每一个DSCP编码值都被映射到一个已定义的缓存队列,例如,如表3所示。通过确定报文中携带的DSCP的值,可以确定与报文对应的缓存队列。表3表3中只是示例性的说明了部分DSCP的值与缓存队列的映射关系,本申请对于DSCP的值与缓存队列的具体映射关系,不作具体限定。S102、所述网络设备确定所述第一缓存队列当前占用的所述共享缓存区中的缓存空间的大小是否大于第一门限值。在一个可选的实施方式中,可以根据第一缓存队列在共享缓存区中的字节数,来确定所述第一缓存队列当前占用的所述共享缓存区的缓存空间的大小,缓存空间的最小单位为1个字节。例如,在所述共享缓存区中,所述第一缓存队列实际长度为1518个字节,则所述第一缓存队列占用的所述共享缓存区中的缓存空间的大小为1518个字节。这种情况,可以使用字节数作为第一门限值。在另一个可选的实施方式中,可以根据该第一缓存队列当前占用的共享缓存区中的缓存切片的数量,来确定所述第一缓存队列当前占用的所述共享缓存区的缓存空间的大小,缓存空间的最小单位为一个缓存切片。例如,将所述共享缓存区的缓存资源划分多个切片,每个切片可以具有固定的大小,例如256字节。缓存存储报文时,根据每个报文的长度,分别分配1个或多个缓存切片。以单个缓存切片大小为256字节时,当共享缓存区中,第一缓存队列的实际长度为1518个字节时,则所述第一缓存队列占用的所述共享缓存区中的缓存空间的大小为6个缓存切片。这种情况,可以使用缓存切片的数量作为第一门限值。在另一个可选的实施方式中,还可以用第一缓存队列在所述共享缓存区中排队的报文的数量,来确定第一缓存队列当前占用的所述共享缓存区去的缓存空间的大小,缓存空间的最小单位为一个报文。例如,共享缓存区配置可存储的报文数量为N个,在共享缓存区中,第一缓存队列中排队的报文数量为M个,此时,所述第一缓存队列占用的所述共享缓存区中的缓存空间的大小为M个报文。这种情况下,可以使用报文的数量作为第一门限值。下文中,将以字节数作为判断缓存空间的大小的依据为例进行描述。S103、如果所述网络设备确定所述第一缓存队列当前占用的所述共享缓存区中的缓存空间的大小不大于第一门限值,则将所述报文存储到所述共享缓存区中。具体地,在所述网络设备确定所述报文对应于于该第一缓存队列后。则申请将该报文存储到该共享缓存区中。首先,网络设备需要确定在所述共享缓存区中,所述第一缓存队列当前占用的缓存空间的大小是否大于第一门限值。该第一门限值为所述共享缓存区的当前剩余的缓存空间的大小乘以第一门限系数所得到的值。所述第一门限系数与所述第一缓存队列的优先级对应,所述门限系数为大于0的常数。即所述第一门限系数为根据所述第一缓存队列的优先级所配置的大于0的百分比系数。所述共享缓存区的当前剩余的缓存空间的大小等于所述共享缓存区的配置的缓存空间的大小减去所述N个缓存对列当前占用的缓存空间的大小。对于共享缓存区中的每个缓存队列,都会配置一个相应的动态缓存门限。每个缓存队列的动态缓存门限值=所述共享缓存区的当前剩余的缓存空间的大小(也可称之为剩余共享缓存)*该缓存队列的门限系数。其中,各缓存队列的门限系数根据应用需要,可以配置不同的值。可选的,高优先级的队列,配置的门限系数较大,低优先级的队列,配置的门限系数较小。从而可以保证高优先级队列能够优先获取共享缓存。所述共享缓存区的当前剩余的缓存空间的大小是变化的数值。在所述共享缓存区中,当前剩余的缓存空间较大时,各队列对应的动态缓存门限值较大;当前剩余的缓存空间较小时,则各队列对应的动态缓存门限值较小。当一个缓存队列当前占用的共享缓存区中的缓存空间的大小不大于其动态门限值时,该缓存队列可以继续申请使用共享缓存区中的缓存空间。当一个缓存队列当前占用的缓存空间的大小大于其动态门限值时,则共享缓存区不会再为该队列分配缓存空间。举例来说,网络设备内具有8种队列,分别对应8种不同的优先级,优先级从低到高分别为0、1、2、3、4、5、6、7,各队列对应的门限系数如表4所示:队列门限系数050%160%270%380%490%5100%6110%7120%表4由表4可知,队列7的门限系数为120%,其动态缓存门限值=剩余共享缓存*120%,而队列0的门限系数为50%,则队列0的动态门限=剩余共享缓存*50%。假设,共享缓存区中配置的缓存空间的大小为800000字节,8个队列当前占用的共享缓存区中的缓存空间的大小合计为700000字节,则所述共享缓存区当前剩余的缓存空间的大小为100000字节,即剩余共享缓存为100000字节。假设队列7和队列0当前占用的共享缓存区中的缓存空间的大小均为100000字节,则队列7的动态门限值为120000字节,当前占用的共享缓存区中的缓存空间的大小不大于120000字节,则可以继续申请共享缓存区中的缓存空间。而队列0的动态门限值为50000字节,即队列0当前占用的共享缓存区中的缓存空间的大小大于50000字节,则共享缓存区不会再为队列0分配缓存空间。本申请中所述第一门限系数是指为该第一缓存队列所分配的门限系数。该第一门限值即为该第一缓存队列的动态门限值。该第一门限值是动态变化的。举例来说,该网络设备接收所述报文后,确定所述报文对应第一缓存队列。根据S102,确定在所述共享缓存区中,所述第一缓存队列当前占用的缓存空间的大小是否大于该第一门限值。假设,此时,共享缓存区的剩余缓存为100000字节,所述第一缓存队列的门限系数为100%,则此时,该第一门限值为100000字节。假设,此时,共享缓存区的剩余缓存为50000字节,则此时,该第一门限值为50000字节。即,第一门限值是随该共享缓存区的剩余共享缓存的变化而动态变化的。在网络设备接收报文时,与该报文对应的缓存队列的门限值,取决于当前的剩余共享缓存的大小。在本申请中,通过设置共享缓存区中的动态缓存门限,使得网络设备的拥塞程度较低时,共享缓存中剩余的缓存较多,与各缓存队列对应的动态缓存门限较大,能充分利用缓存应对流量突发,保证缓存的使用效率。当拥塞程度较高时,严重拥塞的队列由于使用的共享缓存达到动态门限,不能继续获取共享缓存;而不拥塞的队列或拥塞程度较轻的队列,使用的共享缓存未达到动态门限,则可以继续获取共享缓存,从而可以保证共享缓存使用的公平性。并且,由于按照优先级对队列设置了不同的门限系数,在发生拥塞时,可以保证高优先级的报文优先获取缓存,避免低优先级队列的拥塞影响高优先级报文的转发。在本申请另一个具体的实施方式中,所述缓存还可以包括突发缓存区。所述突发缓存区用于为未发生拥塞的队列提供缓存空间,以有效减少不拥塞的队列出现突发流量时所发生的丢包。如图1(b)所示,该方法100在S102后,还可以包括S104。S104、如果所述网络设备确定所述第一缓存队列当前占用的所述共享缓存区中的缓存空间的大小大于所述第一门限值,并进一步确定所述第一缓存队列当前占用的所述缓存中的缓存空间的大小小于第二门限值,则将所述报文存储到所述突发缓存区。其中,上述的第一缓存队列当前占用的缓存中的缓存空间包括该第一缓存队列在所述共享缓存区中当前占用的缓存空间。如果该第一缓存队列当前还占用了所述突发缓存区中的缓存空间,则所述第一缓存队列当前占用的缓存中的缓存空间除了包括该第一缓存队列在所述共享缓存区中当前占用的缓存空间,还包括第一缓存队列当前占用的所述突发缓存区中的缓存空间。所述第一缓存队列当前占用的所述缓存中的缓存空间的大小小于所述第二门限值表示所述第一缓存队列没有发生拥塞或发生轻度拥塞。在本申请实施例中,参照S102中的描述,可以根据第一缓存队列的字节数,第一缓存队列占用的缓存切片的数量或第一缓存队列中排队的报文的数量,来确定所述第一缓存队列当前占用的所述缓存中的缓存空间的大小是否小于所述第二门限值。具体地,在一个可选的实施方式中,根据第一缓存队列在整个缓存中的字节数,来确定第一缓存队列当前占用的所述缓存中的缓存空间的大小是否小于第二门限值。例如,在整个缓存中,第一缓存队列的实际长度为3036字节,则第一缓存队列占用的缓存中的缓存空间大小为3036字节。这种情况,可以选择合适的字节数来作为第二门限值。对于第二门限值的取值,本申请不做具体限定。在另一个具体地实施方式中,根据第一缓存队列当前占用的缓存中的缓存切片的数量,来确定第一缓存队列当前占用的所述缓存中的缓存空间的大小是否小于第二门限值。例如,将所述缓存的缓存资源划分多个切片,每个切片可以具有固定的大小,例如256字节。缓存存储报文时,根据每个报文的长度,分别分配1个或多个缓存切片。以单个缓存切片大小为256字节时,当第一缓存队列的实际长度为1518个字节时,则所述第一缓存队列占用的所述缓存中的缓存空间的大小为6个缓存切片。这种情况,可以使用缓存切片的数量作为第二门限值。对于第二门限值的取值,本申请不做具体限定。例如,将第二门限值设定为5个缓存切片,当第一缓存队列占用的缓存切片的数量小于5个时,则认为第一缓存队列未发生拥塞或仅轻度拥塞。在另一个具体的实施方式中,根据第一缓存队列中报文的数量,来确定第一缓存队列当前占用的所述缓存中的缓存空间的大小是否小于第二门限值。当第一缓存队列或者出端口的带宽足够时,报文即来即走,在缓存中停留的时间很短,第一缓存队列中的报文数量在0-1之间变化,此时可以认为队列没有发生拥塞。若第一缓存队列或出端口带宽不足,或者入口流量大于第一缓存队列或出端口的带宽时,可能导致部分报文因为带宽不足而暂时得不到调度,停留在第一缓存队列中,造成队列拥塞,报文累积,比如累积的报文的数量2个以上。这种情况下,可认为队列处于拥塞。当累积报文不超过一个预设的第二门限值时,可认为队列仅发生轻度拥塞。所述第二门限值的取值范围例如可以是5-10,本申请不做具体限定。假设第二门限值取值为5,则当第一缓存队列中累积的报文的数量不超过5时,可以申请使用突发缓存区的缓存资源。具体地,在本申请中,预先为每个缓存队列占用所述缓存的缓存空间的大小设定对应的阈值。当一个缓存队列所占用的所述缓存中的缓存空间大小不超过为该缓存队列所预设的阈值时,表示该缓存队列未发生拥塞或仅发生轻度拥塞。对于该第一缓存队列,例如可以预先设置,设定其占用所述缓存的缓存空间的大小不超过第二门限值,认定该第一缓存队列没有发生拥塞或轻度拥塞。此时,当网络设备在短时间内接收到突发流量,并确定上述突发流量均对应于该第一缓存队列,并且网络设备确定该第一缓存队列在所述共享缓存区中当前占用的缓存空间大小已经超过所述第一门限值,则所述网络设备需要进一步判断所述第一缓存队列当前占用的缓存中的缓存空间是否小于所述第二门限值。当所述网络设备确定所述第一缓存队列当前占用的缓存中的缓存空间小于所述第二门限值后,则将所述报文存储到所述突发缓存区中。可选的,在将报文存储到所述突发缓存区之前,所述网络设备确定所述突发缓存区是否具有可用于存储所述报文的缓存空间。如果所述网络设备确定所述突发缓存区具有可用于存储所述报文的缓存空间,则将所述报文存储到所述突发缓存区。通过在缓存中设置突发缓存区,可以有效存储非拥塞队列的突发流量,减少不拥塞队列的丢包,有效提升了系统的性能。本领域技术人员可以理解的是,当所述网络设备确定第一缓存队列当前占用的所述缓存中的缓存空间的大小大于该第二门限值时,可以选择将该报文丢弃。在本申请的另一个具体的实施方式中,所述缓存还包括独享缓存区,所述独享缓存区中包括N个子独享缓存区,所述N个子独享缓存区分别为所述N个缓存队列提供独享的缓存空间,所述N个子独享缓存区与所述N个缓存队列间的映射为一一对应,所述N个子独享缓存区包括第一独享缓存区,所述第一独享缓存区为所述第一缓存队列提供独享的缓存空间,如图1(c)所示,在所述S102后,所述方法100还包括S105和S106。S105、如果所述网络设备确定所述第一缓存队列当前占用的所述共享缓存区中的缓存空间的大小大于所述第一门限值,则进一步确定所述第一独享缓存区是否具有可用于存储所述报文的缓存空间。具体地,所述独享缓存区中按照一定的规则,例如平均分配的原则或者按照优先级原则,将独享缓存区的缓存空间分配给各缓存队列。该第一独享缓存区仅用于为第一缓存队列提供独享的缓存空间,即仅用于存储进入到第一缓存队列的报文。S106、如果所述网络设备确定所述第一独享缓存区具有可用于存储所述报文的缓存空间,将所述报文存储到所述第一独享缓存区中。在网络设备中设置所述独享缓存区,并将独享缓存区划分为与各缓存队列所对应的多个子独享缓存区,从而为每个队列提供独享的缓存空间。对于每个缓存队列来说,当无法继续占用共享缓存区中的缓存空间时,可以使用其独享的缓存区来缓存队列中的报文,从而有效避免报文丢失。可选的,在本申请另一个具体的实施方式中,所述缓存还包括突发缓存区,如图1(d)所示,在所述S105以后,所述方法100还包括S107和S108。S107、如果所述网络设备确定所述第一独享缓存区不具有可用于存储所述报文的缓存空间,并进一步确定所述第一缓存队列当前占用的所述缓存中的缓存空间的大小小于第三门限值,则执行S108。所述第一缓存队列当前占用的所述缓存中的缓存空间包括所述第一缓存队列当前占用的所述共享缓存区中的缓存空间以及所述第一缓存队列当前占用的所述第一独享缓存区中的缓存空间。如果该第一缓存队列当前还占用了所述突发缓存区中的缓存空间,则所述第一缓存队列当前占用的缓存中的缓存空间除了包括所述第一缓存队列当前占用的所述缓存中的缓存空间包括所述第一缓存队列当前占用的所述共享缓存区中的缓存空间以及所述第一缓存队列当前占用的所述第一独享缓存区中的缓存空间,还包括第一缓存队列当前占用的所述突发缓存区中的缓存空间。所述第一缓存队列当前占用所述缓存中的缓存空间的大小小于所述第三门限值表示所述第一缓存队列没有发生拥塞或轻度拥塞。关于第三门限值的说明与相关设置,与第二门限值相似,此处不再赘述。本领域技术人员可以理解的是,当所述网络设备确定第一缓存队列当前占用的所述缓存中的缓存空间的大小大于该第三门限值时,可以选择将该报文丢弃。S108、所述网络设备将所述报文存储到所述突发缓存区中。通过在所述缓存中设置突发缓存区,可以为未发生拥塞或仅发生轻度拥塞的队列提供缓存空间,有效减少了非严重拥塞的队列出现突发流量时所发生的丢包。为了执行上述实施例中的方法100,本申请实施例提供了一种缓存管理装置200,所述缓存包括共享缓存区,所述共享缓存区为N个缓存队列提供共享的缓存空间,N为大于1的整数,所述N个缓存队列包括第一缓存队列。参见图2,该缓存管理装置200包括接收模块201和处理模块202。接收模块201,用于接收报文。处理模块202,用于确定所述报文对应所述第一缓存队列。所述处理模块202,还用于确定所述第一缓存队列当前占用的所述共享缓存区中的缓存空间的大小是否大于第一门限值,所述第一门限值为所述共享缓存区的当前剩余的缓存空间的大小乘以门限系数所得到的值,所述门限系数与所述第一缓存队列的优先级对应,所述门限系数大于0,所述共享缓存区的当前剩余的缓存空间的大小等于所述共享缓存区的配置的缓存空间的大小减去所述N个缓存对列当前占用的缓存空间的大小。所述处理模块202,进一步用于在确定所述第一缓存队列当前占用的所述共享缓存区中的缓存空间的大小不大于第一门限值后,将所述报文存储到所述共享缓存区中。在本申请中,通过设置共享缓存区中的动态缓存门限,使得网络设备的拥塞程度较低时,共享缓存中剩余的缓存较多,与各缓存队列对应的动态缓存门限较大,能充分利用缓存应对流量突发,保证缓存的使用效率。当拥塞程度较高时,严重拥塞的队列由于使用的共享缓存达到动态门限,不能继续获取共享缓存;而不拥塞的队列或拥塞程度较轻的队列,使用的共享缓存未达到动态门限,则可以继续获取共享缓存,从而可以保证共享缓存使用的公平性。并且,由于按照优先级对队列设置了不同的门限系数,在发生拥塞时,可以保证高优先级的报文优先获取缓存,避免低优先级队列的拥塞影响高优先级报文的转发。可选的,所述缓存还包括突发缓存区,所述缓存还包括突发缓存区,所述处理模块202,进一步用于在确定所述第一缓存队列当前占用的所述缓存中的缓存空间的大小大于所述第一门限值并小于第二门限值后,将所述报文存储到所述突发缓存区中。通过在缓存中设置突发缓存区,可以有效存储非拥塞队列的突发流量,减少不拥塞队列的丢包,有效提升了系统的性能。可选的,所述缓存还包括独享缓存区,所述独享缓存区中包括N个子独享缓存区,所述N个子独享缓存区分别为所述N个缓存队列提供独享的缓存空间,所述N个子独享缓存区与所述N个缓存队列间的映射为一一对应,所述N个子独享缓存区包括第一独享缓存区,所述第一独享缓存区为所述第一缓存队列提供独享的缓存空间。所述处理模块202,还用于在确定所述第一缓存队列当前占用的所述共享缓存区中的缓存空间的大小大于所述第一门限值后,进一步确定所述第一独享缓存区是否具有可用于存储所述报文的缓存空间;所述处理模块202,进一步用于在确定所述第一独享缓存区具有可用于存储所述报文的缓存空间后,将所述报文存储到所述第一独享缓存区中。在网络设备中设置所述独享缓存区,并将独享缓存区划分为与各缓存队列所对应的多个子独享缓存区,从而为每个队列提供独享的缓存空间。对于每个缓存队列来说,当无法继续占用共享缓存区中的缓存空间时,可以使用其独享的缓存区来缓存队列中的报文,从而有效避免报文丢失。可选的,所述处理模块202,还用于在确定所述第一独享缓存区不具有可用于存储所述报文的缓存空间后,进一步确定所述第一缓存队列当前占用的所述缓存中的缓存空间的大小小于第三门限值,则将所述报文存储到所述突发缓存区中。接收模块201和处理模块202的具体工作流程参照前面方法实施例中的描述,此处不再重复。第一门限值,第一二门限值以及第三门限值的相关说明请参照方法实施例的描述,此处不再重复。在本申请中,缓存管理装置可以是一个网络设备,例如,所述网络设备可以是路由器,交换机,光传送网(英文:OpticalTransportNetwork,OTN)设备、分组传送网(英文:PacketTransportNetwork,PTN)设备或者波分复用(英文:WavelengthDivisionMultiplexing,WDM)设备。缓存管理装置也可以是网络设备中的一个部件,图3是本申请实施例提供的一种缓存管理装置400的示意图。该装置400可用于执行图1(a)-图1(d)所示的方法100。如图3所示,该装置400包括:通信接口401、处理器402和存储器403。该通信接口401、处理器402和存储器403可以通过总线系统404相连。所述存储器403用于存储包括程序、指令或代码。所述处理器402,用于执行所述存储器403中的程序、指令或代码,以控制输入接口401接收信号以完成方法100中的相关操作。应理解,在本申请实施例中,上述处理器402可以是中央处理单元(英文:CentralProcessingUnit,简称为“CPU”),还可以是其他通用处理器、数字信号处理器(英文:DigitalSignalProcessor,DSP)、专用集成电路(英文:Application-SpecificIntegratedCircuit,ASIC)、现成可编程门阵列(英文:FieldProgrammableGateArray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。存储器403可以包括只读存储器和随机存取存储器,并分别向各自对应的处理器提供指令和数据。存储器一部分还可以包括非易失性随机存取存储器。例如,存储器还可以存储设备类型的信息。总线系统404除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线系统。在实现过程中,方法100的各步骤可以通过处理器402中的硬件的集成逻辑电路或者软件形式的指令完成。结合本申请实施例所公开的定位方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质分别位于上述各存储器中,上述各处理器读取对应的存储器中的信息,结合其硬件完成上述方法100的步骤。为避免重复,这里不再详细描述。需要说明的是,图2提供的缓存管理装置200,用于实现缓存管理方法100。一个具体的实现方式中,图2中的处理模块202可以用图3中的处理器402实现,接收模块201可以由图3中的通信接口401实现。本申请还提供了一种通信系统,包括网络设备,所述通信系统用于执行1对应的实施例的方法100。通信系统包括网络设备,所述网络设包括缓存。所述缓存包括共享缓存区,所述共享缓存区为N个缓存队列提供共享的缓存空间,N为大于1的整数,所述N个缓存队列包括第一缓存队列,所述网络设备接收报文,确定所述报文对应所述第一缓存队列;所述网络设备确定所述第一缓存队列当前占用的所述共享缓存区中的缓存空间的大小是否大于第一门限值,所述第一门限值为所述共享缓存区的当前剩余的缓存空间的大小乘以门限系数所得到的值,所述门限系数与所述第一缓存队列的优先级对应,所述门限系数大于0,所述共享缓存区的当前剩余的缓存空间的大小等于所述共享缓存区的配置的缓存空间的大小减去所述N个缓存对列当前占用的缓存空间的大小;所述网络设备确定所述第一缓存队列当前占用的所述共享缓存区中的缓存空间的大小不大于第一门限值后,将所述报文存储到所述共享缓存区中。本申请各个实施例中的各功能模块可以集成在一个处理器中,也可以是各个单元单独物理存在,也可以两个或两个以上电路集成在一个电路中。上述各功能单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的。例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。所述作为分离部件说明的单元可以是或者也可以不是物理上分开的。作为单元显示的部件可以是或者也可以不是物理单元。即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。所述集成的单元如果以硬件结合软件的形式实现并作为独立的产品销售或使用时,所述软件可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案对现有技术做出贡献的部分技术特征可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的部分或全部步骤。而前述的存储介质可以是U盘、移动硬盘、只读存储器(英文:Read-OnlyMemory,ROM)、随机存取存储器(英文:RandomAccessMemory,RAM)、磁碟或者光盘。本说明书的各个部分均采用递进的方式进行描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点介绍的都是与其他实施例不同之处。尤其,对于装置和系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例部分的说明即可。应理解,在本申请的各种实施例中,上述各方法的序号的大小并不意味着执行顺序的先后,各方法的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的装置或者方法,能够以电子硬件实现。或者,能够以电子硬件和计算机软件的结合来实现。为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能。最后,需要说明的是:以上所述仅为本申请技术方案的较佳实施例而已。显然,本领域技术人员可以对本申请进行各种改动和变型。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1