专利名称:报文缓存管理方法及系统的制作方法
技术领域:
本发明涉及网络通信技术领域,尤其涉及一种报文缓存管理方法及系统。
背景技术:
现有技术中路由交换芯片结构如图1所示,网络交换芯片分为上行方向报文处理引擎、流量管理引擎和下行方向报文处理引擎。报文在上行方向处理引擎中根据报文头部携带的外部优先级字段(如802. lp、DSCP等)映射得到交换芯片内部处理优先级。流量管理引擎接收到报文后,根据内部优先级映射得到报文的流分类索引号。流量管理引擎继而可以根据流分类索引号,对不同的应用提供差异化的缓存资源分配和管理。现有网络交换芯片中报文缓存管理方法将缓存空间分割为最小资源保证区和资源共享区两个功能区。最小资源保证区确保每个端口和流分类能够获得一定的缓存资源, 资源共享区得缓存资源在所有端口和流分类之间共享。然而,现有网络交换芯片只将整个缓存空间划分为两个功能区,无法满足网络应用的发展要求,主要表现在
(1)在端口流控和PFC功能启用时,从此端口或流分类进来的报文,仍然可能面临缓存资源不够而被丢包的问题;
(2)不支持虚拟化方案。随着数据中心三网融合技术的推进,存储网络和hfiniBand 网络流量将由廉价的以太网承载。这就要求交换设备能够对三种网络流量进行区别对待。 另外,虚拟化还表现在,将一台物理设备虚拟成多台逻辑设备,例如,一台48个端口的交换设备被虚拟化成两台M个端口的逻辑设备。在两台逻辑设备上运行独立的控制进程,在芯片数据通道上,两台逻辑设备的资源被隔离,互不影响;
(3)缺乏一个控制不同端口和流分类之间公平分配资源的控制机制。缓存管理方法不能适应网络拥塞状态的变化,在资源利用率和公平性之间找不到平衡点。鉴于上述问题,有必要提供一种新的报文缓存管理方法及系统。
发明内容
本发明的目的在于提供一种提高缓存利用率的报文缓存管理方法及系统。本发明的一种报文缓存管理方法,所述方法包括以下步骤
51、流量管理引擎接收到报文;
52、入口缓存资源管理模块对报文进行资源管理和报文接纳控制;
53、出口缓存资源管理模块对报文进行资源管理和报文接纳控制;
54、若入口缓存资源管理和出口缓存资源管理都通过,则将报文存储到MMU共享缓存; 否则,拒绝报文存储到MMU共享缓存并丢弃到达报文。作为本发明的进一步改进,所述MMU共享缓存被划分为若干单元长度相同的存储分片单元。作为本发明的进一步改进,所述入口缓存资源管理模块将MMU共享缓存划分为最小资源保证区、资源共享区、流控和PFC专用资源区以及关键资源区。作为本发明的进一步改进,所述步骤S2具体为
521、入口缓存资源管理模块接收到报文;
522、最小资源保证区根据入端口数量划分成若干每个入端口要保证的最小资源区;
523、在每个入端口要保证的最小资源区内,按照此入端口内的流分类数量划分此入端口下每个流分类要保证的资源下限;
524、报文使用最小资源保证区的缓存资源进行缓存;
525、若最小资源保证区的缓存资源被用尽,报文依次经过入端口下流分类资源上限约束检查、入端口资源上限约束检查、虚拟子空间资源上限约束检查、以及整体缓存资源上限约束检查,若四层约束检查全部通过,报文从共享资源区申请得到相应数量的缓存单元;
526、若四层约束检查失败,判断报文是否属于关键报文,若是,从关键资源区申请缓存单元;
527、若四层约束检查失败,判断端口下是否使能了流控或者相应优先级使能了PFC,若是,从流控和PFC专用资源区申请缓存单元。作为本发明的进一步改进,所述步骤S23还包括
5231、入口资源管理模块根据当前缓存资源的利用率评估当前的拥塞级别;
5232、根据拥塞级别动态调节每个入端口以及入端口下每个流分类在资源共享区的资源使用上限。作为本发明的进一步改进,所述出口缓存资源管理模块将MMU共享缓存划分为 最小资源保证区、资源共享区以及关键资源区。作为本发明的进一步改进,所述步骤S3具体为
531、出口缓存资源管理模块接收到报文;
532、最小资源保证区根据出端口数量划分成若干每个出端口要保证的最小资源区;
533、在每个出端口要保证的最小资源区内,按照此出端口内队列组和业务队列数量划分此出端口下每个队列组和业务队列的资源下限;
534、报文使用最小资源保证区的缓存资源进行缓存;
535、若最小资源保证区的缓存资源被用尽,报文依次经过业务队列资源上限约束检查、队列组资源上限约束检查、出端口资源上限约束检查、虚拟子空间资源上限约束检查、 以及整体缓存资源上限约束检查,若五层约束检查全部通过,报文从共享资源区申请得到相应数量的缓存单元;
536、若五层约束检查失败,判断报文是否属于关键报文,若是,从关键资源区申请缓存单元。作为本发明的进一步改进,所述步骤S33还包括
5331、出口资源管理模块根据当前缓存资源的利用率评估当前的拥塞级别;
5332、根据拥塞级别动态调节每个出端口以及出端口下每个队列组和业务队列在资源共享区的资源使用上限。作为本发明的进一步改进,所述步骤S4后还包括
流量管理引擎调度器按照调度算法选中相关联的业务队列;
将业务队列队头的报文从MMU共享缓存的存储地址从队列中取出,并根据存储地址访问MMU共享缓存获取整个报文信息;
入口缓存资源管理模块和出口缓存资源管理模块同时归还入口资源和出口资源。对应地,一种根据报文缓存管理系统,所述系统包括流量管理引擎,所述流量管理引擎包括
入口缓存资源管理模块,基于入端口和流分类资源使用情况对报文进行资源管理和接纳控制;
出口缓存资源管理模块,基于出端口和业务队列资源使用情况对报文进行资源管理和接纳控制;
MMU共享缓存,用于缓存入口缓存资源管理模块和出口缓存资源管理模块约束检查通过的报文。本发明的有益效果是本发明提出了缓存空间虚拟化方法,同时改进了共享资源管理方法,能够实时评估拥塞级别并据此动态调节各个端口和流分类在共享资源区的资源使用上限。在缓存利用率低的情况下,允许单个端口和流分类占用绝大部分缓存资源;当缓存利用率非常高时,能够通过这种动态调节机制,合理地在各个端口和流分类之间分配缓存资源,提高公平性。
图1为网络交换芯片的结构示意图。图2为本发明一实施方式中报文缓存管理方法的流程图。图3为图2中步骤S2的具体流程图。图4为本发明一实施方式中入口资源管理虚拟子空间划分和功能区划分示意图。图5为本发明一实施方式中入口资源管理虚拟子空间内层次化资源约束门限值示意图。图6为本发明一实施方式中入口资源管理流程图。图7为本发明一实施方式中入口资源管理拥塞级别评估流程图。图8为本发明一实施方式中入口资源管理拥塞级别评估示意图。图9为图2中步骤S3的具体流程图。图10为本发明一实施方式中出口资源管理虚拟子空间划分和功能区划分示意图。图11为本发明一实施方式中出口资源管理虚拟子空间内层次化资源约束门限值示意图。图12为本发明一实施方式中出口资源管理流程图。图13为本发明一实施方式中出口资源管理拥塞级别评估流程图。图14为本发明一实施方式中报文缓存管理系统示意图。图15为本发明一实施方式中报文缓存管理系统的流量管理引擎示意图。
具体实施例方式以下将结合附图所示的各实施方式对本发明进行详细描述。但这些实施方式并不限制本发明,本领域的普通技术人员根据这些实施方式所做出的结构、方法、或功能上的变换均包含在本发明的保护范围内。参图2所示为本发明一实施方式中报文缓存管理方法流程图,其包括以下步骤
51、流量管理引擎接收到报文;
52、入口缓存资源管理模块对报文进行资源管理和报文接纳控制。基于报文的入端口进行资源管理和报文接纳控制;
53、出口缓存资源管理模块对报文进行资源管理和报文接纳控制。基于报文的出端口进行资源管理和报文接纳控制;
54、若入口缓存资源管理和出口缓存资源管理都通过,则将报文存储到MMU共享缓存; 否则,拒绝报文存储到MMU共享缓存并丢弃到达报文。当且仅当两个级别的资源管理都通过后,报文才被接纳并存储到共享缓存中,否则丢弃该到达的报文。上述步骤中,MMU共享缓存的资源管理分为两个级别对报文进行接纳控制。第一个级别基于报文的入端口进行资源管理和报文接纳控制,称为入口缓存资源管理,第二个级别基于报文的出端口进行资源管理和报文接纳控制,称为出口缓存资源管理。当且仅当两个级别的资源管理都通过后,报文才被接纳并存储到共享缓存中,否则丢弃该到达的报文。其中,上述MMU共享缓存空间按照某个单元长度被划分为许多存储分片单元。当报文长度小于存储分片单元长度时,报文只要使用一个存储分片单元;当报文长度为存储单元分片长度的N倍时,报文需要使用N个存储分片单元;当报文长度不为存储单元分片长度的整数倍,而是介于存储单元分片长度的N倍和N+1倍之间时,报文需要使用N+1个存储分片单元。MMU共享缓存空间的资源分配和报文接纳控制基于划分后的存储分片单元数量进行控制和管理。进一步地,参图3所示,步骤S2具体为
521、入口缓存资源管理模块接收到报文;
522、最小资源保证区根据入端口数量划分成若干每个入端口要保证的最小资源区;
523、在每个入端口要保证的最小资源区内,按照此入端口内的流分类数量划分此入端口下每个流分类要保证的资源下限;
524、报文使用最小资源保证区的缓存资源进行缓存;
525、若最小资源保证区的缓存资源被用尽,报文依次经过入端口下流分类资源上限约束检查、入端口资源上限约束检查、虚拟子空间资源上限约束检查、以及整体缓存资源上限约束检查,若四层约束检查全部通过,报文从共享资源区申请得到相应数量的缓存单元;
526、若四层约束检查失败,判断报文是否属于关键报文,若是,从关键资源区申请缓存单元;
527、若四层约束检查失败,判断端口下是否使能了流控或者相应优先级使能了PFC,若是,从流控和PFC专用资源区申请缓存单元。针对上述步骤,结合图4至图8所示,对入口资源管理模块对报文进行资源管理和报文接纳控制进行进一步说明。参图4所示为入口资源管理虚拟子空间划分和功能区划分示意图,入口缓存资源管理模块将整个MMU共享缓存被划分成若干个功能区并对这些功能去进行分区管理。入口缓存资源管理模块接收到报文后,根据报文的入端口和内部优先级映射出报文的流分类索引号,进而根据入端口和流分类索引号映射出虚拟子空间索引号。入口资源管理模块从虚拟子空间、入端口和流分类三个层次进行层次化的资源约束管理和接纳控制。优选地,在本实施方式中上述入口缓存资源管理模块将MMU共享缓存划分为最小资源保证区、资源共享区、流控和PFC专用资源区以及关键资源区。其中,关键资源区从整个MMU共享缓存空间中全局预留出一块小空间,该功能区预留给关键报文,如BPDU、0SPF等协议控制报文使用。当且仅当报文所属的虚拟子空间中, 其对应的入端口和流分类所保证的最小资源已经被用完并且已经达到最大资源上限的情况下使用该功能区。保证在拥塞情况下,不丢失网络交换设备系统控制平面上的连接和业务上的连续性,普通数据报文禁止使用关键资源区。流控和PFC专用区功能区可以视每个虚拟子空间的需要决定是否划分这一功能区,在其他实施方式中也可以不包括流控和PFC专用资源区。此功能区用于在流控或者PFC XOFF帧送出开始到上游交换设备或者上游工作站设备对XOFF帧作出响应并暂停发流的这段时间内,在最小资源保证区和资源共享区中的缓存资源被用尽的前提下使用该功能区的资源存储这段时间内管道上正在传输的报文,满足流控和PFC功能不丢包的特殊要求。参图5所示为入口资源管理虚拟子空间内层次化资源约束门限值示意图,在虚拟子空间内的最小资源保证区进一步按照入端口号和流分类索引号进行细分。首先,最小资源保证区根据入端口数量划分成若干个每入端口要保证的最小资源区。进而,在每个入端口要保证的最小资源区内,按照此入端口内的流分类数量进一步划分此入端口下每个流分类要保证的最小资源数量。报文先使用最小资源保证区中的资源,当最小资源保证区中的资源已经使用完之后,再从资源共享区中申请资源。最小资源保证区为每个端口的各个流分类保证一定数量的存储分片单元,满足数据通道上的线速转发能力。参图8所示,结合上述步骤S2广S27内容,对入口资源管理提供层次化的资源使用约束管理进行进一步说明。报文优先使用最小资源保证区的缓存资源,当最小资源保证区的缓存资源被用尽后,从共享区申请缓存资源。普通报文是否能够从共享资源区申请到资源,需要依次经过入端口下流分类资源上限约束检查、入端口资源上限约束检查、虚拟子空间资源上限约束检查、以及整体缓存资源上限约束检查,当且仅当这四层约束检查全部通过,报文才能从共享资源区申请得到相应数量的缓存单元。对于端口下使能了流控或者相应优先级使能了 PFC的情况下,如果这四层约束检查失败,还可以从流控和PFC资源专用区申请缓存单元。对于关键报文(如BPDU、OSPF等一些重要控制协议报文),如果这四层约束检查失败,还可以从关键资源区申请缓存单元。如果报文通过资源约束检查,则从相应功能区取走相应数量的缓存单元;否则,入口资源管理模块拒绝存储该报文。报文通过入口资源管理后,下一步进入出口资源管理。参图7所示,上述步骤S23还包括
5231、入口资源管理模块根据当前缓存资源的利用率评估当前的拥塞级别;
5232、根据拥塞级别动态调节每个入端口以及入端口下每个流分类在资源共享区的资源使用上限。资源共享区被所有入端口共享使用。缺省情况下,每个入端口的资源使用上限可以配置为该虚拟子空间资源共享区的大小,入端口下每个流分类的资源使用上限之间可以根据优先级别的不同进行差异化配置。在所有其他入端口都不使用该资源共享区的前提下,单个入端口可以占用资源共享区的所有资源,提高缓存资源的利用率和吸收突发流量的能力。当有多个端口竞争共享区的缓存资源时,则采用上述步骤S231、S232进行动态调节,根据资源占用率动态地调节每个入端口、以及入端口下每个流分类在资源共享区的资源使用上限,保证不同入端口、以及相同入端口下不同流分类在资源共享区能够公平合理地使用共享区资源。如图8所示,入口管理资源根据当前缓存资源的利用率来评估当前的拥塞级别。在本实施方式中列举了 8个拥塞级别的情况,0表示拥塞级别最低,对应缓存利用率最低的情况;7表示拥塞级别最高,对应缓存利用率最高的情况。每个入端口以及入端口下流分类在共享资源区的资源使用上限根据拥塞级别动态变化。初始状态下,所有资源使用上限对应拥塞级别0,当拥塞加重,拥塞级别升高时,这些资源使用上限都需要适当下调,下调方法或者是基于算术方法(比如拥塞每提高一级,资源使用上限变为一半),或是采用寄存器灵活配置每个拥塞级别的资源使用上限。结合图9至图13所示,对入口资源管理模块对报文进行资源管理和报文接纳控制进行进一步说明。参图10所示为出口缓存资源功能区示意图,和入口缓存资源管理类似,出口缓存资源管理模块将整个MMU共享缓存划分成若干个功能区进行分区管理。因为出口资源不需要触发流控和PFC X0N/X0FF帧的发送,所以不需要设置流控和PFC专用资源区。参图9所示,上述步骤S3具体为
531、出口缓存资源管理模块接收到报文;
532、最小资源保证区根据出端口数量划分成若干每个出端口要保证的最小资源区;
533、在每个出端口要保证的最小资源区内,按照此出端口内队列组和业务队列数量划分此出端口下每个队列组和业务队列的资源下限;
534、报文使用最小资源保证区的缓存资源进行缓存;
535、若最小资源保证区的缓存资源被用尽,报文依次经过业务队列资源上限约束检查、队列组资源上限约束检查、出端口资源上限约束检查、虚拟子空间资源上限约束检查、 以及整体缓存资源上限约束检查,若五层约束检查全部通过,报文从共享资源区申请得到相应数量的缓存单元;
536、若五层约束检查失败,判断报文是否属于关键报文,若是,从关键资源区申请缓存单元。上述步骤和入口缓存资源管理相类似,但和入口缓存资源管理不同的是,出口缓存资源层次化资源约束的对象不同。在出口缓存资源管理中,被约束的对象是出端口(报文目的端口)、队列组(用户)和业务队列。如图11所示,在出口缓存资源管理虚拟子空间内, 每个业务队列在最小资源保证区被分配一定数量的缓存资源,用于保证线速转发。在资源共享区中,每个出端口、队列组(用户)和业务队列单独设定一个资源上限。这些资源共享区中的资源上限也是根据拥塞级别动态调节的。其调节方法可以参考入口资源管理中资源上限的动态调节。出口资源缓存管理进行层次化的资源约束检查,确保缓存资源在各个出端口、队列组(用户)和业务队列之间有效、合理公平的利用。参图12所示,结合上述步骤S3广S36内容,对出口资源管理提供层次化的资源使用约束管理进行进一步说明。报文优先使用最小资源保证区的缓存资源,当最小资源保证区的缓存资源被用尽后,从共享区申请缓存资源。普通报文是否能够从共享资源区申请到资源,需要依次经过业务队列资源上限约束检查、队列组资源上限约束检查、出端口资源上限约束检查、虚拟子空间资源上限约束检查、以及整体缓存资源上限约束检查,当且仅当这五层约束检查全部通过,报文才能从共享资源区申请得到相应数量的缓存单元。对于关键报文(如BPDU.0SPF等一些重要控制协议报文),如果这五层约束检查失败,还可以从关键资源区申请缓存单元。如果报文通过资源约束检查,则从相应功能区取走相应数量的缓存单元;否则,出口资源管理模块拒绝存储该报文,并通知缓存资源管理器释放事先在入口缓存资源管理阶段获取的缓存单元,并丢弃到达报文。报文通过出口资源管理后,由缓存资源管理器将报文存入MMU共享缓存中,并将报文在MMU共享缓存中的地址送往业务队列。参图13所示,上述步骤S33还包括
5331、出口资源管理模块根据当前缓存资源的利用率评估当前的拥塞级别;
5332、根据拥塞级别动态调节每个出端口以及出端口下每个队列组和业务队列在资源共享区的资源使用上限。资源共享区被所有出端口共享使用。缺省情况下,每个出端口的资源使用上限可以配置为该虚拟子空间资源共享区的大小,出端口下每个队列组和业务队列在资源共享区的资源使用上限之间可以根据优先级别的不同进行差异化配置。在所有其他出端口都不使用该资源共享区的前提下,单个出端口可以占用资源共享区的所有资源。当有多个端口竞争共享区的缓存资源时,则采用上述步骤S331、S332进行动态调节,根据资源占用率动态地调节每个出端口、以及出端口下每个队列组和业务队列在资源共享区的资源使用上限, 保证不同出端口、以及出端口下每个队列组和业务队列在资源共享区能够公平合理地使用共享区资源。出口管理资源根据当前缓存资源的利用率来评估当前的拥塞级别。参图8所示,在本实施方式中列举了 8个拥塞级别的情况,0表示拥塞级别最低,对应缓存利用率最低的情况;7表示拥塞级别最高,对应缓存利用率最高的情况。每个出端口、以及出端口下每个队列组和业务队列在共享资源区的资源使用上限根据拥塞级别动态变化。初始状态下,所有资源使用上限对应拥塞级别0,当拥塞加重,拥塞级别升高时,这些资源使用上限都需要适当下调,下调方法或者是基于算术方法(比如拥塞每提高一级,资源使用上限变为一半),或是采用寄存器灵活配置每个拥塞级别的资源使用上限。优选地,上述步骤S4后还包括
流量管理引擎调度器按照调度算法选中相关联的业务队列;
将业务队列队头的报文从MMU共享缓存的存储地址从队列中取出,并根据存储地址访问MMU共享缓存获取整个报文信息;
入口缓存资源管理模块和出口缓存资源管理模块同时归还入口资源和出口资源。流量管理引擎调度器按照一定的调度算法对其关联的业务队列进行服务和报文调度。当某个业务队列被调度器选中时,该业务队列队头的报文在MMU共享缓存的存储地址从队列中取出来,并根据存储地址访问MMU共享缓存获取整个报文的载荷。同时,缓存资源管理器被通知归还该报文的存储资源,存储资源需要同时归还入口资源和出口资源。 报文从MMU共享缓存中取出来之后,送给下行方向报文处理引擎进行报文头编辑和其他处理,并最终从目的端口发送到链路上。上述步骤中,对于普通数据报文,入口资源和出口资源优先归还给此报文相应虚拟子空间内的资源共享区,其次是最小资源保证区。对于关键报文,应该是优先归还给关键资源区。特别地,在入口资源管理中,如果此报文所属入端口启用了流控机制或者此报文所属流分类启用了 PFC功能,应该优先将资源归还给流控和PFC专用资源区。参图14所示,一种报文缓存管理系统,其特征在于所述系统包括流量管理引擎 100,所述流量管理引擎100包括
入口缓存资源管理模块101,基于入端口和流分类资源使用情况对报文进行资源管理和接纳控制;
出口缓存资源管理模块102,基于出端口和业务队列资源使用情况对报文进行资源管理和接纳控制;
MMU共享缓存103,用于缓存入口缓存资源管理模块和出口缓存资源管理模块约束检查通过的报文。图1所示为包括上述流量管理引擎100的网络交换芯片10,结合图15,报文从入端口进入网络交换芯片10,在交换芯片上行方向报文处理引擎200中为报文映射内部优先级。该内部优先级标识了报文在网络交换芯片10中被处理的优先级别。继而,交换芯片上行方向报文处理引擎200根据报文目的地址查找转发表,获取报文下一跳的目的端口号, 并将报文送达流量管理引擎100。流量管理引擎100接收到报文后,根据MMU共享缓存的使用情况接纳控制到达的报文。如果报文被接纳,则将报文存储到MMU共享缓存103并将报文存储到MMU的地址送往队列中;否则丢弃该到达的报文。流量管理引擎100中的调度器根据一定的调度策略和算法实施队列调度,从队列中取得报文在MMU共享缓存中的存储地址并将报文从MMU共享缓存中取出送往交换芯片下行方向报文处理引擎。下行方向报文处理引擎300对报文进行编辑并将其从目的端口送出。本发明提供的报文缓存管理方法及系统有如下优点
针对输入端口和输入端口进行两级接纳控制,提供高效的共享数据包缓存管理; 整个数据包缓存空间被划分成若干个虚拟子空间,每个虚拟子空间管理本空间内的资源,提供设备虚拟化能力;
在每个虚拟子空间内,基于端口和流分类进行层次化的最小资源保证和最大资源约束。最小资源保证每个端口以及每个端口下的流分类能够获得足够的资源用于线速转发, 最大资源约束限制拥塞情况下每个端口以及每个端口下的流分类可以获得的最大资源数量;
在每个虚拟子空间内,根据当前缓存资源使用情况实时评估拥塞级别,根据拥塞级别动态调节各个被管理对象的最大资源使用上限,达到在各个被管理对象之间公平分配缓存资源的目的;
在每个虚拟子空间内,设定动态调节的端口流控门限值和端口 PFC门限值; 设置专用的关键报文缓冲区,在网络拥塞情况下,为网络控制报文提供可用的缓存资源,保证协议连接的持续性和交换设备之间的相互可达;
为流控和PFC设置专用的资源区,保证流控和PFC XOFF帧送出后,设备预留有足够的缓存资源接纳上游设备在响应XOFF帧这段时间内管道上的报文,保证流控和PFC XOFF帧送出后设备不丢弃相应数据源的报文的特性。为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备 (可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施方式或者实施方式的某些部分所述的方法。以上所描述的装置实施方式仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施方式方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。本申请可用于众多通用或专用的计算系统环境或配置中。例如个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施方式中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。上文所列出的一系列的详细说明仅仅是针对本发明的可行性实施方式的具体说明,它们并非用以限制本发明的保护范围,凡未脱离本发明技艺精神所作的等效实施方式或变更均应包含在本发明的保护范围之内。
权利要求
1.一种报文缓存管理方法,其特征在于,所述方法包括以下步骤51、流量管理引擎接收到报文;52、入口缓存资源管理模块对报文进行资源管理和报文接纳控制;53、出口缓存资源管理模块对报文进行资源管理和报文接纳控制;54、若入口缓存资源管理和出口缓存资源管理都通过,则将报文存储到MMU共享缓存; 否则,拒绝报文存储到MMU共享缓存并丢弃到达报文。
2.根据权利要求1所述的方法,其特征在于,所述MMU共享缓存被划分为若干单元长度相同的存储分片单元。
3.根据权利要求1所述的方法,其特征在于,所述入口缓存资源管理模块将MMU共享缓存划分为最小资源保证区、资源共享区、流控和PFC专用资源区以及关键资源区。
4.根据权利要求3所述的方法,其特征在于,所述步骤S2具体为521、入口缓存资源管理模块接收到报文;522、最小资源保证区根据入端口数量划分成若干每个入端口要保证的最小资源区;523、在每个入端口要保证的最小资源区内,按照此入端口内的流分类数量划分此入端口下每个流分类要保证的资源下限;524、报文使用最小资源保证区的缓存资源进行缓存;525、若最小资源保证区的缓存资源被用尽,报文依次经过入端口下流分类资源上限约束检查、入端口资源上限约束检查、虚拟子空间资源上限约束检查、以及整体缓存资源上限约束检查,若四层约束检查全部通过,报文从共享资源区申请得到相应数量的缓存单元;526、若四层约束检查失败,判断报文是否属于关键报文,若是,从关键资源区申请缓存单元;527、若四层约束检查失败,判断端口下是否使能了流控或者相应优先级使能了PFC,若是,从流控和PFC专用资源区申请缓存单元。
5.根据权利要求4所述的方法,其特征在于,所述步骤S23还包括5231、入口资源管理模块根据当前缓存资源的利用率评估当前的拥塞级别;\5232、根据拥塞级别动态调节每个入端口以及入端口下每个流分类在资源共享区的资源使用上限。
6.根据权利要求1所述的方法,其特征在于,所述出口缓存资源管理模块将MMU共享缓存划分为最小资源保证区、资源共享区以及关键资源区。
7.根据权利要求6所述的方法,其特征在于,所述步骤S3具体为\531、出口缓存资源管理模块接收到报文;\532、最小资源保证区根据出端口数量划分成若干每个出端口要保证的最小资源区;\533、在每个出端口要保证的最小资源区内,按照此出端口内队列组和业务队列数量划分此出端口下每个队列组和业务队列的资源下限;\534、报文使用最小资源保证区的缓存资源进行缓存;\535、若最小资源保证区的缓存资源被用尽,报文依次经过业务队列资源上限约束检查、队列组资源上限约束检查、出端口资源上限约束检查、虚拟子空间资源上限约束检查、 以及整体缓存资源上限约束检查,若五层约束检查全部通过,报文从共享资源区申请得到相应数量的缓存单元;S36、若五层约束检查失败,判断报文是否属于关键报文,若是,从关键资源区申请缓存单元。
8.根据权利要求7所述的方法,其特征在于,所述步骤S33还包括5331、出口资源管理模块根据当前缓存资源的利用率评估当前的拥塞级别;5332、根据拥塞级别动态调节每个出端口以及出端口下每个队列组和业务队列在资源共享区的资源使用上限。
9.根据权利要求1所述的方法,其特征在于,所述步骤S4后还包括流量管理引擎调度器按照调度算法选中相关联的业务队列;将业务队列队头的报文从MMU共享缓存的存储地址从队列中取出,并根据存储地址访问MMU共享缓存获取整个报文信息;入口缓存资源管理模块和出口缓存资源管理模块同时归还入口资源和出口资源。
10.一种根据权利要求1所述的报文缓存管理系统,其特征在于所述系统包括流量管理引擎,所述流量管理引擎包括入口缓存资源管理模块,基于入端口和流分类资源使用情况对报文进行资源管理和接纳控制;出口缓存资源管理模块,基于出端口和业务队列资源使用情况对报文进行资源管理和接纳控制;MMU共享缓存,用于缓存入口缓存资源管理模块和出口缓存资源管理模块约束检查通过的报文。
全文摘要
本发明提供了一种报文缓存管理方法,其包括以下步骤S1、流量管理引擎接收到报文;S2、入口缓存资源管理模块对报文进行资源管理和报文接纳控制;S3、出口缓存资源管理模块对报文进行资源管理和报文接纳控制;S4、若入口缓存资源管理和出口缓存资源管理都通过,则将报文存储到MMU共享缓存;否则,拒绝报文存储到MMU共享缓存并丢弃到达报文。本发明提出了缓存空间虚拟化方法,同时改进了共享资源管理方法,能够实时评估拥塞级别并据此动态调节各个端口和流分类在共享资源区的资源使用上限。
文档编号H04L12/56GK102404213SQ20111036760
公开日2012年4月4日 申请日期2011年11月18日 优先权日2011年11月18日
发明者廖继平, 荣亮, 许俊, 郑晓阳 申请人:盛科网络(苏州)有限公司