掌桥专利:专业的专利平台
掌桥专利
首页

中央处理器收包处理方法、装置、电子设备和存储介质

文献发布时间:2024-04-18 19:58:21


中央处理器收包处理方法、装置、电子设备和存储介质

技术领域

本发明涉及计算机网络通信技术领域,特别是涉及一种中央处理器收包处理方法、一种中央处理器收包处理装置、一种电子设备和一种存储介质。

背景技术

交换机作为网络中的传输设备,一方面要维护管理交换芯片、网络接口、风扇电源等硬件资源,另一方面还需要识别处理各种协议报文,例如地址解析协议(AddressResolution Protocol,ARP)报文,为选择主机路由服务;开放式最短路径优先(OpenShortest Path First,OSPF)协议,用于传递路由表信息,选择最佳转发路径;远程终端协议Telnet报文,为用户管理交换机提供服务等。由于交换机的CPU(中央处理器)处理能力有限,当需要处理的协议报文增多的时候,可能会导致CPU繁忙,尤其是当网络中存在着大量攻击报文的时候,如果任由其上送CPU,则会导致CPU无法正常运行,从而使得用户访问网络失败,管理员无法正常管理交换机。

相关技术中,通过COPP(Control Plane Policing,控制平面策略)策略是针对业务需要的协议报文进行上送CPU控制,无法对某些攻击报文或者是由于软件漏洞、模块异常导致的报文上CPU进行控制,这些异常报文上送CPU时,不仅会挤占正常协议报文的CPU资源,影响CPU对于正常业务报文的响应和处理速度,还可能会攻击软件漏洞,影响交换机的正常运行,造成网络故障。

发明内容

鉴于上述问题,提出了本发明实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种中央处理器收包处理方法、一种中央处理器收包处理装置、一种电子设备和一种存储介质。

为了解决上述问题,在本发明的第一个方面,本发明实施例公开了一种中央处理器收包处理方法,包括:

获取中央处理器收包队列;

将所述中央处理器收包队列划分报文丢弃队列和报文接收队列;

响应于接收到上报报文,基于预设分配规则,将所述上报报文匹配至所述报文丢弃队列和所述报文接收队列中的一个,确定为目标收包队列;

采用所述目标收包队列将所述上报报文进行上传。

可选地,所述基于预设分配规则,将所述上报报文匹配至所述报文丢弃队列和所述报文接收队列中的一个,确定为目标收包队列的步骤包括:

基于所述上报报文的访问信息,将所述上报报文分配至所述报文丢弃队列和所述报文接收队列中的一个,确定为所述目标收包队列。

可选地,所述基于所述上报报文的访问信息,将所述上报报文分配至所述报文丢弃队列和所述报文接收队列中的一个,确定为所述目标收包队列的步骤包括:

通过预设访问控制列表匹配所述上报报文;

响应于所述上报报文与所述预设访问控制列表匹配,将所述上报报文分配至所述报文接收队列,确定所述报文接收队列为所述目标收包队列;

响应于上报报文与所述预设访问控制列表不匹配,将所述上报报文与预设中央处理器队列映射表进行匹配,将所述上报报文分配至所述报文丢弃队列和所述报文接收队列中的一个,确定为所述目标收包队列。

可选地,所述将所述上报报文与预设中央处理器队列映射表进行匹配,将所述上报报文分配至所述报文丢弃队列和所述报文接收队列中的一个,确定为所述目标收包队列的步骤包括:

响应于所述上报报文与预设中央处理器队列映射表匹配,将所述上报报文分配至所述报文接收队列,确定所述报文接收队列为所述目标收包队列;

响应于所述上报报文与预设中央处理器队列映射表不匹配,将所述上报报文分配至所述报文丢弃队列,确定所述报文丢弃队列为所述目标收包队列。

可选地,当所述目标收包队列为所述报文接收队列时,所述采用所述目标收包队列将所述上报报文进行上传的步骤包括:

依据所述上报报文确定控制平面策略信息;

将所述报文接收队列配置所述控制平面策略信息;

采用配置后的报文接收队列将所述上报报文进行上传。

可选地,当所述上报报文与所述预设访问控制列表匹配,所述依据所述上报报文确定控制平面策略信息的步骤包括:

依据所述上报报文在所述预设访问控制列表中匹配的协议类型,确定上传动作;将所述上传动作确定为所述控制平面策略信息。

可选地,所述依据所述上报报文确定控制平面策略信息的步骤还包括:

确定所述上报报文对应的限速表;

将所述限速表确定为所述控制平面策略信息。

可选地,当所述上报报文与所述预设中央处理器队列映射表匹配,所述依据所述上报报文确定控制平面策略信息的步骤包括:

依据所述上报报文在所述预设中央处理器队列映射表中匹配收包原因,配置预设中央处理器队列映射表中的高优先级表项为所述控制平面策略信息。

可选地,所述依据所述上报报文确定控制平面策略信息的步骤还包括:

依据所述高优先级表项确定队列限速数据;

将所述队列限速数据确定为所述控制平面策略信息。

可选地,当所述目标收包队列为所述报文丢弃队列时,所述采用所述目标收包队列将所述上报报文进行上传的步骤包括:

采用所述报文丢弃队列缓存所述上报报文;

清空所述报文丢弃队列的数据。

可选地,所述采用所述报文丢弃队列缓存所述上报报文的步骤包括:

对所述报文丢弃队列配置所述预设访问控制列表中的低优先级表项;

采用配置后的报文丢弃队列缓存所述上报报文。

可选地,所述方法应用于交换机,所述交换机内设有交换芯片,所述获取中央处理器收包队列的步骤包括:

获取所述交换芯片支持的中央处理器收包队列。

可选地,所述将所述中央处理器收包队列划分报文丢弃队列和报文接收队列的步骤包括:

将所述交换芯片支持的中央处理器收包队列中的一个中央处理器收包队列划分为所述报文丢弃队列;

将所述交换芯片支持的中央处理器收包队列中所述报文丢弃队列之外的中央处理器收包队列划分为所述报文接收队列。

可选地,所述方法还包括:

对所述报文接收队列分配业务需求缓存;

对所述报文丢弃队列分配零缓存。

可选地,所述对所述报文接收队列分配业务需求缓存的步骤包括:

接收预设收包缓存分配策略;

基于所述预设收包缓存分配策略,确定所述业务需求缓存对应的容量;

基于所述业务需求缓存对应的容量,对所述报文接收队列进行缓存分配。

可选地,所述基于所述业务需求缓存对应的容量,对所述报文接收队列进行缓存分配的步骤包括:

设置所述报文接收队列的固定收包缓存为所述业务需求缓存对应的容量;

设置所述报文接收队列的共享收包缓存为所述业务需求缓存对应的容量。

可选地,所述对所述报文丢弃队列分配零缓存的步骤包括:

设置所述报文丢弃队列的固定收包缓存为零;

设置所述报文丢弃队列的共享收包缓存为零。

在本发明的第二个方面,本发明实施例公开了一种中央处理器收包处理装置,包括:

获取模块,用于获取中央处理器收包队列;

划分模块,用于将所述中央处理器收包队列划分报文丢弃队列和报文接收队列;

匹配模块,用于响应于接收到上报报文,基于预设分配规则,将所述上报报文匹配至所述报文丢弃队列和所述报文接收队列中的一个,确定为目标收包队列;

上传模块,用于采用所述目标收包队列将所述上报报文进行上传。

在本发明的第三个方面,本发明实施例还公开了一种电子设备,包括处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上所述的中央处理器收包处理方法的步骤。

在本发明的第四个方面,本发明实施例还公开了一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如上所述的中央处理器收包处理方法的步骤。

本发明实施例包括以下优点:

本发明实施例通过获取中央处理器收包队列;将所述中央处理器收包队列划分报文丢弃队列和报文接收队列;响应于接收到上报报文,基于预设分配规则,将所述上报报文匹配至所述报文丢弃队列和所述报文接收队列中的一个,确定为目标收包队列;采用所述目标收包队列将所述上报报文进行上传。通过上报报文进行分类,将所有非业务需要的报文集中上送到某一个报文丢弃队列,将业务需要的报文上送至报文接收队列,将业务需要与非业务需要的报文区分开来,然后通过丢弃报文丢弃队列的所有报文,从而杜绝了非业务需要上报报文上送中央处理器的可能,可以更好地保护中央处理器的收包,避免了非业务需要报文对中央处理器资源的消耗和对软件漏洞的攻击,从而保护中央处理器。

附图说明

图1是本发明的一种中央处理器收包处理方法实施例的步骤流程图;

图2是本发明的另一种中央处理器收包处理方法实施例的步骤流程图;

图3是本发明的一种中央处理器收包处理方法示例的步骤流程图一;

图4是本发明的一种中央处理器收包处理方法示例的步骤流程图二;

图5是本发明的一种中央处理器收包处理装置实施例的结构框图;

图6是本发明实施例提供的一种电子设备的结构框图;

图7是本发明实施例提供的一种存储介质的结构框图。

具体实施方式

为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。

参照图1,示出了本发明的一种中央处理器收包处理方法实施例的步骤流程图,所述中央处理器收包处理方法具体可以包括如下步骤:

步骤101,获取中央处理器收包队列;

在本发明实施例中,首先可以获取设备中的中央处理器收包队列。中央处理器收包队列可以是硬件实现的FIFO(先进先出)队列,也可以是内存中的缓冲区。中央处理器收包队列可以缓存和管理网络数据包,确保它们以有序的方式传递给中央处理器进行处理。收包队列的大小会影响系统处理网络流量的能力,较小的队列容量可能导致丢包或拥塞;因此,本领域技术人员可以根据数据需求设置收包队列的大小。

其中,中央处理器收包队列是指交换机中交换芯片上将数据上传至中央处理器的数据缓存队列,是交换芯片上缓存队列。

步骤102,将所述中央处理器收包队列划分报文丢弃队列和报文接收队列;

对于中央处理器收包队列的大小进行划分,将中央处理器收包队列划分为报文丢弃队列和报文接收队列。报文丢弃队列用于将其缓存的网络数据包进行丢弃,报文接收队列用于将其缓存的数据上传至中央处理器中进行处理。

步骤103,响应于接收到上报报文,基于预设分配规则,将所述上报报文匹配至所述报文丢弃队列和所述报文接收队列中的一个,确定为目标收包队列;

在接收到需要上报到中央处理器的上报报文时,可以将上报报文与报文丢弃队列和报文接收队列进行匹配,基于预设分配规则,确定报文丢弃队列和报文接收队列中的一个为目标收包队列,从而实现将上报报文进行分类,将业务需要的上报报文分配至报文接收队列,将报文接收队列确定为目标收包队列进行处理;将非业务需要的上报报文分配至报文丢弃队列,将报文丢弃队列确定为目标收包队列,将非业务需要的上报报文进行丢弃。

步骤104,采用所述目标收包队列将所述上报报文进行上传。

确定了该上报报文采用的目标收包队列后,可以采用对应的目标收包队列进行相应的上传方式。当采用报文丢弃队列上报报文时,可以基于报文丢弃队列,将上报报文进行丢弃,从而避免该上报报文上传到中央处理器中。当采用报文接收队列上报报文时,采用对应的上传动作进行上传至中央处理器中,由中央处理器接收并针对上报报文进行处理。

本发明实施例通过获取中央处理器收包队列;将所述中央处理器收包队列划分报文丢弃队列和报文接收队列;响应于接收到上报报文,基于预设分配规则,将所述上报报文匹配至所述报文丢弃队列和所述报文接收队列中的一个,确定为目标收包队列;采用所述目标收包队列将所述上报报文进行上传。通过上报报文进行分类,将所有非业务需要的报文集中上送到某一个报文丢弃队列,将业务需要的报文上送至报文接收队列,将业务需要与非业务需要的报文区分开来,然后通过丢弃报文丢弃队列的所有报文,从而杜绝了非业务需要上报报文上送中央处理器的可能,可以更好地保护中央处理器的收包,避免了非业务需要报文对中央处理器资源的消耗和对软件漏洞的攻击,从而保护中央处理器。

参照图2,示出了本发明的另一种中央处理器收包处理方法实施例的步骤流程图,所述中央处理器收包处理方法具体可以包括如下步骤:

步骤201,获取中央处理器收包队列。

在本发明实施例中,可以获取支持的中央处理器收包队列。

具体地,所述方法应用于交换机,所述交换机内设有交换芯片,所述获取中央处理器收包队列的步骤包括:获取所述交换芯片支持的中央处理器收包队列。

具体地,在针对交换机的中央处理器进行收包保护时,可以获取交换机中交换芯片支持的全部中央处理器收包队列作为进行收包保护的中央处理器收包队列。

步骤202,将所述中央处理器收包队列划分报文丢弃队列和报文接收队列。

可以将中央处理器收包队列划分为报文丢弃队列和报文接收队列。如将全部的中央处理器收包队列划分为报文丢弃队列和报文接收队列。

在本发明的一可选实施例中,所述将所述中央处理器收包队列划分一个报文丢弃队列和至少一个报文接收队列的步骤包括:

子步骤S2021,将所述交换芯片支持的中央处理器收包队列中的一个中央处理器收包队列划分为所述报文丢弃队列;

子步骤S2022,将所述交换芯片支持的中央处理器收包队列中所述报文丢弃队列之外的中央处理器收包队列划分为所述报文接收队列。

在实际应用中,可以将交换芯片支持的全部中央处理器收包队列的其中一个中央处理器收包队列划分为报文丢弃队列。然后将交换芯片支持的全部中央处理器收包队列中除报文丢弃队列之外的中央处理器收包队列划分为报文接收队列。即交换芯片支持的全部中央处理器收包队列中的一个为报文丢弃队列,其余的则为报文接收队列。

步骤203,对所述报文接收队列分配业务需求缓存。

步骤204,对所述报文丢弃队列分配零缓存。

在本发明实施例中,可以针对报文接收队列分配业务需求缓存,以使报文接收队列可以有充足的缓存对上报报文进行缓存。针对报文丢弃队列分配零缓存,以使得报文丢弃队列无法对上报报文进行缓存,从而实现对上报报文的丢弃。

在本发明的一可选实施例中,所述对所述报文接收队列分配业务需求缓存的步骤包括:

子步骤S2041,接收预设收包缓存分配策略;

子步骤S2042,基于所述预设收包缓存分配策略,确定所述业务需求缓存对应的容量;

子步骤S2043,基于所述业务需求缓存对应的容量,对所述报文接收队列进行缓存分配。

在预设收包缓存分配策略中可以有针对报文接收队列设置有业务需求缓存对应的容量,可以接收预设收包缓存分配策略,根据预设收包缓存分配策略确定其中针对业务需求缓存进行设置的容量大小,即业务需求缓存对应的容量。对报文接收队列分配业务需求缓存对应的容量大小。其中业务需求缓存的具体大小可以根据实际业务的大小确定,本发明实施例对此不作具体限定。

具体地,所述对所述报文接收队列分配所述业务需求缓存的步骤包括:设置所述报文接收队列的固定收包缓存为所述业务需求缓存对应的容量;设置所述报文接收队列的共享收包缓存为所述业务需求缓存对应的容量。

在实际应用中,可以将报文接收队列的固定收包缓存设置为业务需求缓存对应的容量,以及将报文接收队列的共享收包缓存设置为业务需求缓存对应的容量,以使得报文接收队列可以在接收到上报报文后,进行相应的处理。

进一步地,所述对所述报文丢弃队列分配零缓存的步骤包括:设置所述报文丢弃队列的固定收包缓存为零;设置所述报文丢弃队列的共享收包缓存为零。

在实际应用中,可以将报文丢弃队列的固定收包缓存设置为另,以及将报文丢弃队列的共享收包缓存设置为零,以使报文丢弃队列针对于上报报文的缓存的字节为零,以可以丢弃该上报报文。

步骤205,响应于接收到上报报文,基于预设分配规则,将所述上报报文匹配至所述报文丢弃队列和所述报文接收队列中的一个,确定为目标收包队列。

在接收到上报报文时,可以基于预设分配规则,将上报报文与报文丢弃队列和报文接收队列进行匹配,确定报文丢弃队列和报文接收队列为目标收包队列,以进行后续的处理。

在本发明的一可选实施例中,所述将所述上报报文匹配至所述报文丢弃队列和所述报文接收队列中的一个,确定为目标收包队列的步骤包括:

子步骤S2051,基于所述上报报文的访问信息,将所述上报报文分配至所述报文丢弃队列和所述报文接收队列中的一个,确定为所述目标收包队列。

在本发明实施例中,可以基于上报报文的访问信息,确定上报报文是否为业务所需的报文,从而将上报报文分配至报文丢弃队列和报文接收队列中的一个,并确定对应的队列为目标收包队列。访问信息可以根据上报报文中特定的字段内容确定。

在本发明的一可选实施例中,所述基于所述上报报文的协议类型,将所述上报报文分配至所述报文丢弃队列和所述报文接收队列中的一个,确定为所述目标收包队列的步骤包括:

子步骤S20511,通过预设访问控制列表匹配所述上报报文;

首先,可以通过预设访问控制列表(Access Contorl List,ACL)对上报报文的类型进行匹配。该预设访问控制列表为交换芯片中的访问控制列表。其中的访问类型可以根据实际情况进行确定,本发明实施对此不作具体限定。

子步骤S20512,响应于所述上报报文与所述预设访问控制列表匹配,将所述上报报文分配至所述报文接收队列,确定所述报文接收队列为所述目标收包队列;

当上报报文与预设访问控制列表中的协议报文的特征匹配,可以确定上报报文与预设访问控制列表匹配,可以将上报报文分配至报文接收队列,确定报文接收队列为目标收包队列。

子步骤S20513,响应于上报报文与所述预设访问控制列表不匹配,将所述上报报文与预设中央处理器队列映射表进行匹配,将所述上报报文分配至所述报文丢弃队列和所述报文接收队列中的一个,确定为所述目标收包队列。

当上报报文与预设访问控制列表中的协议报文的特征都不匹配时,可以将上报报文与寄存器中的预设中央处理器队列映射表(CPU_COS_MAP表)进行匹配,进一步确定报文丢弃队列和报文接收队列中的一个为目标收包队列。其中,基于寄存器中的预设中央处理器队列映射表匹配确定的目标收包队列的优先级低于与预设访问控制列表匹配的上报报文的目标收包队列。

具体地,所述将所述上报报文与预设中央处理器队列映射表进行匹配,将所述上报报文分配至所述报文丢弃队列和所述报文接收队列中的一个,确定为所述目标收包队列的步骤包括:响应于所述上报报文与预设中央处理器队列映射表匹配,将所述上报报文分配至所述报文接收队列,确定所述报文接收队列为所述目标收包队列;响应于所述上报报文与预设中央处理器队列映射表不匹配,将所述上报报文分配至所述报文丢弃队列,确定所述报文丢弃队列为所述目标收包队列。

在采用预设中央处理器队列映射表进行匹配时,可以判断上报报文与预设中央处理器队列映射表中的收包原因表项进行匹配。当上报报文与预设中央处理器队列映射表匹配时,可以将上报报文分配至报文接收队列,以报文接收队列确定为目标收包队列。当上报报文与预设中央处理器队列映射表不匹配时,可以将上报报文分配至报文丢弃队列,以报文丢弃队列确定为目标收包队列。

步骤206,采用所述目标收包队列将所述上报报文进行上传。

可以采用上报报文对应的目标收包队列将上报报文进行上传,实现不同的收发处理。

在本发明的一可选实施例中,当所述目标收包队列为所述报文接收队列时,所述采用所述目标收包队列将所述上报报文进行上传的步骤包括:

子步骤S2061,依据所述上报报文确定控制平面策略信息;

在目标收包队列为报文接收队列时,即需要采用报文接收队列将上报报文发送至中央处理器中。可以依据上报报文确定对应的控制平面策略信息。

具体地,当所述上报报文与所述预设访问控制列表匹配,所述依据所述上报报文确定控制平面策略信息的步骤包括:依据所述上报报文在所述预设访问控制列表中匹配的协议类型,确定上传动作;将所述上传动作确定为所述控制平面策略信息。

可以依据上报报文在访问控制列表中匹配的协议类型,确定该协议对应的上传动作,并且设置该上传动作,即将上传动作确定为控制平面策略信息。

进一地,还可以确定所述上报报文对应的限速表;将所述限速表确定为所述控制平面策略信息。

并且可以为确定上报报文对应的限速表,以将该限速表绑定于报文接收队列,即将限速表确定为控制平面策略信息。其中该限速表可以为METER限速表。

此外,当所述上报报文与所述预设访问控制列表不匹配,所述依据所述上报报文确定控制平面策略信息的步骤包括:依据所述上报报文在所述预设中央处理器队列映射表中匹配收包原因,配置预设中央处理器队列映射表中的高优先级表项为所述控制平面策略信息。

此外,当上报报文与中央处理器队列映射表匹配,则确定上报报文在预设中央处理器队列映射表中匹配收包原因,并配置预设访问控制列表中的高优先级表项为控制平面策略信息。

进一地,还可以依据所述高优先级表项确定队列限速数据;将所述队列限速数据确定为所述控制平面策略信息。

并且还可以采用依据高优先级表项确定队列限速数据,采用队列限速的方式对上传进行限速,以确定队列限速数据确定为控制平面策略信息。

子步骤S2062,将所述报文接收队列配置所述控制平面策略信息;

通过对报文接收队列配置控制平面策略信息,以使报文接收队列以指定的方式进行上传,以便于管理报文接收队列。

子步骤S2063,采用配置后的报文接收队列将所述上报报文进行上传。

在配置完成后,采用配置后的报文接收队列,按照控制平面策略信息将上报报文进行上传。

在本发明的一可选实施例中,当所述目标收包队列为所述报文丢弃队列时,所述采用所述目标收包队列将所述上报报文进行上传的步骤包括:

子步骤S2064,采用所述报文丢弃队列缓存所述上报报文;

在采用报文丢弃队列作为目标收包队列时,可以将采用报文丢弃队列缓存上报报文。

具体地,所述采用所述报文丢弃队列缓存所述上报报文的步骤包括:对所述报文丢弃队列配置所述预设访问控制列表中的低优先级表项;采用配置后的报文丢弃队列缓存所述上报报文。

可以将报文丢弃队列配置预设访问控制列表中的低优先级表项,从而使得将报文丢弃队列的处理优先级最低,不影响报文接收队列的处理。然后再采用报文丢弃队列缓存上报报文。

子步骤S2065,清空所述报文丢弃队列的数据。

由于报文丢弃队列的缓存容量为零,即可以将报文丢弃队列的数据进行清空丢弃,从而不对非业务需求的上报报文进行上传,保护中央处理器。

为了使本领域技术人员可以更好的理解本发明的实施过程,以下举出示例进行说明:

参照图3,步骤301,获取交换芯片支持的CPU收包队列,预留1个CPU收包队列,标识为默认丢弃队列,其它队列标识为报文接收队列。CPU收包队列位于交换芯片的CPU端口,报文从业务端口进入在被确定要被送到CPU处理时,需要由DMA控制器将报文送到系统内存的包缓存区域,而在此之前,先要经过交换芯片CPU端口出队列的缓存调度。通常交换芯片具备多个CPU端口出队列,报文被送到CPU口时,进入哪个队列,可以在交换芯片内部通过配置来指定,比如用ACL匹配报文设置动作修改报文的CPU队列,用CPU_COS_MAP(CPU队列映射表)匹配报文内部优先级或收包原因修改报文的CPU队列。

步骤302,MMU(Memory Management Unit,内存管理单元)配置模块给CPU收包队列分配缓存。CPU收包队列缓存使用的是交换芯片内部的缓存,对于上送CPU的报文,在被DMA控制器送到系统内存前,需要经过CPU端口出队列的缓存调度,如果该队列的可用收包缓存无法满足该报文的需要时,则该报文就会直接丢弃。CPU口的收包队列的缓存通常分为固定缓存和共享缓存两部分,对于默认丢弃队列,需要将固定缓存和共享缓存都设置为0,这样就会导致进入该队列的报文由于没有可用的缓存而被丢弃,就没有后续的调度送往CPU了。对于其它正常的收包队列,则按照业务的需要合理分配固定缓存和共享缓存。

步骤303,对于业务需要的协议报文,通过设置交换芯片匹配报文送到CPU处理。将业务需要的协议报文进行分类,如ARP、LACP、IP2ME、SFLOW(协议)等,优选通过ACL识别匹配,如ARP、LACP、IP2ME,可以通过ACL匹配协议报文的特征,设置动作将其上送到CPU,同时绑定METER限速表,对协议报文上送CPU的速率进行限制。对于ACL无法匹配的协议报文,如SFLOW,通过芯片寄存器将其上送到CPU。通过ACL匹配的协议报文,可以通过ACL设置动作修改报文进入CPU口的收包队列,而通过芯片寄存器匹配的报文,则可以通过设置CPU_COS_MAP(CPU队列映射表)匹配报文收包原因修改报文进入CPU口的收包队列。对于通过芯片寄存器匹配的报文,对于其进入的CPU队列绑定POLIER进行速率限制。

步骤304,对于非业务需要的报文,通过设置交换芯片将其送到CPU的丢弃队列。对于非业务需要的报文,无法匹配步骤103中预设的协议限速策略,设置CPU_COS_MAP表,下发一条最低优先级的表项,匹配任意内部优先级,任意收包原因,设定其动作修改报文的CPU队列为预设的丢弃队列。

进一步地,可以参照图4,步骤401,报文从业务端口进入交换机。

步骤402,报文是否命中COPP策略设定的芯片的ACL规则,如果命中,则执行步骤406处理,否则,执行步骤403处理。

步骤403,报文是否命中COPP策略设定的上送CPU的芯片寄存器,如果命中,则执行步骤407处理,否则,执行步骤404处理。

步骤404,报文未命中COPP制定的上送CPU的策略,查看是否由于其它原因上送CPU,如果是,则执行步骤405处理,否则,执行步骤408处理。

步骤405,报文由于其它原因上送CPU,命中CPU_COS_MAP表中的最低优先级表项,该表项修改报文的CPU队列为默认的丢弃队列,报文进入该队列后,由于没有收包缓存而被丢弃。

步骤406,报文根据ACL设定的CPU收包队列进入指定的CPU收包队列缓存。

步骤407,报文匹配CPU_COS_MAP表中的高优先级表项获取到CPU收包队列,进入指定的CPU收包队列缓存。

步骤408,报文不满足上送CPU的条件,其目的不是CPU,则执行数据平面的转发逻辑。

步骤409,报文为业务需要的协议报文,按照预设的策略进行缓存调度送往CPU处理。

通过将CPU收包队列进行分类,分为收包接受队列和收包丢弃队列;由MMU管理模块根据业务需要给收包接受队列分配合适的收包缓存,而对于收包丢弃队列,则分配0收包缓存;对于业务需要的协议报文,优选通过芯片ACL匹配识别协议报文,设置动作将报文上送CPU,同时修改报文上送CPU的队列为正常接收队列,并绑定METER限速表对协议报文上送CPU的速率进行控制;对于无法通过ACL匹配的协议报文,选择通过芯片寄存器将其上送到CPU,并设置交换芯片的CPU_COS_MAP表(CPU收包队列映射表)匹配寄存器上送CPU的收包原因修改协议报文上送CPU的队列为正常接收队列,并对报文进入的CPU队列设置队列限速;而对于非业务需要却由于其它原因上送CPU的报文,则设置CPU_COS_MAP表,下发最低优先级的表项,该表项匹配任意报文,修改报文上送CPU的队列为默认丢弃队列,由于它的优先级最低,所以它实际生效的是除协议收包策略以外的所有上CPU的报文。通过这种方式,将非业务需要的协议报文,集中送到CPU收包丢弃队列中,由于获取不到收包缓存而被丢弃,阻止其继续送往CPU。杜绝了非业务需要的报文对CPU资源的消耗和对软件漏洞的攻击,避免了可能造成的网络故障。

需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。

参照图5,示出了本发明的一种中央处理器收包处理装置实施例的结构框图,所述中央处理器收包处理装置具体可以包括如下模块:

获取模块501,用于获取中央处理器收包队列;

划分模块502,用于将所述中央处理器收包队列划分报文丢弃队列和报文接收队列;

匹配模块503,用于响应于接收到上报报文,基于预设分配规则,将所述上报报文匹配至所述报文丢弃队列和所述报文接收队列中的一个,确定为目标收包队列;

上传模块504,用于采用所述目标收包队列将所述上报报文进行上传。

在本发明的一可选实施例中,所述匹配模块503包括:

匹配子模块,用于基于所述上报报文的访问信息,将所述上报报文分配至所述报文丢弃队列和所述报文接收队列中的一个,确定为所述目标收包队列。

在本发明的一可选实施例中,所述匹配子模块包括:

匹配单元,用于通过预设访问控制列表匹配所述上报报文;

第一响应单元,用于响应于所述上报报文与所述预设访问控制列表匹配,将所述上报报文分配至所述报文接收队列,确定所述报文接收队列为所述目标收包队列;

第二响应单元,用于响应于上报报文与所述预设访问控制列表不匹配,将所述上报报文与预设中央处理器队列映射表进行匹配,将所述上报报文分配至所述报文丢弃队列和所述报文接收队列中的一个,确定为所述目标收包队列。

在本发明的一可选实施例中,所述第二响应单元包括:

第一响应子单元,用于响应于所述上报报文与预设中央处理器队列映射表匹配,将所述上报报文分配至所述报文接收队列,确定所述报文接收队列为所述目标收包队列;

第二响应子单元,用于响应于所述上报报文与预设中央处理器队列映射表不匹配,将所述上报报文分配至所述报文丢弃队列,确定所述报文丢弃队列为所述目标收包队列。

在本发明的一可选实施例中,所述上传模块504包括:

控制平面策略子模块,用于依据所述上报报文确定控制平面策略信息;

第一配置子模块,用于将所述报文接收队列配置所述控制平面策略信息;

上传子模块,用于采用配置后的报文接收队列将所述上报报文进行上传。

在本发明的一可选实施例中,当所述上报报文与所述预设访问控制列表匹配,所述控制平面策略子模块包括:

第一上传动作单元,用于依据所述上报报文在所述预设访问控制列表中匹配的协议类型,确定上传动作;将所述上传动作确定为所述控制平面策略信息。

在本发明的一可选实施例中,所述控制平面策略子模块还包括:

限速表单元,用于确定所述上报报文对应的限速表;

第一控制平面策略单元,用于将所述限速表确定为所述控制平面策略信息。

在本发明的一可选实施例中,当所述上报报文与所述预设访问控制列表匹配,所述控制平面策略子模块包括:

第二上传动作单元,用于依据所述上报报文在所述预设中央处理器队列映射表中匹配收包原因,配置预设中央处理器队列映射表中的高优先级表项为所述控制平面策略信息。

在本发明的一可选实施例中,所述控制平面策略子模块还包括:

队列限速单元,用于依据所述高优先级表项确定队列限速数据;

第二控制平面策略单元,用于将所述队列限速数据确定为所述控制平面策略信息。

在本发明的一可选实施例中,当所述目标收包队列为所述报文丢弃队列时,所述上传模块504包括:

缓存子模块,用于采用所述报文丢弃队列缓存所述上报报文;

丢弃子模块,用于清空所述报文丢弃队列的数据。

在本发明的一可选实施例中,所述缓存子模块包括:

丢弃配置单元,用于对所述报文丢弃队列配置所述预设访问控制列表中的低优先级表项;

丢弃单元,用于采用配置后的报文丢弃队列缓存所述上报报文。

在本发明的一可选实施例中,所述装置应用于交换机,所述交换机内设有交换芯片,所述获取模块501包括:

获取子模块,用于获取所述交换芯片支持的中央处理器收包队列。

在本发明的一可选实施例中,所述划分模块502包括:

第一划分子模块,用于将所述交换芯片支持的中央处理器收包队列中的一个中央处理器收包队列划分为所述报文丢弃队列;

第二划分子模块,用于将所述交换芯片支持的中央处理器收包队列中所述报文丢弃队列之外的中央处理器收包队列划分为所述报文接收队列。

在本发明的一可选实施例中,所述装置还包括:

第一分配模块,用于对所述报文接收队列分配业务需求缓存;

第二分配模块,用于对所述报文丢弃队列分配零缓存。

在本发明的一可选实施例中,所述第一分配模块包括:

接收子模块,用于接收预设收包缓存分配策略;

容量确定子模块,用于基于所述预设收包缓存分配策略,确定所述业务需求缓存对应的容量;

第一分配子模块,用于基于所述业务需求缓存对应的容量,对所述报文接收队列进行缓存分配。

在本发明的一可选实施例中,所述第一分配子模块包括:

第一设置单元,用于设置所述报文接收队列的固定收包缓存为所述业务需求缓存对应的容量;

第二设置单元,用于设置所述报文接收队列的共享收包缓存为所述业务需求缓存对应的容量。

在本发明的一可选实施例中,所述第二分配模块包括:

第三设置单元,用于设置所述报文丢弃队列的固定收包缓存为零;

第四设置单元,用于设置所述报文丢弃队列的共享收包缓存为零。

对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

参照图6,本发明实施例还提供了一种电子设备,包括:

处理器601和存储介质602,所述存储介质602存储有所述处理器601可执行的计算机程序,当电子设备运行时,所述处理器601执行所述计算机程序,以执行如本发明实施例任一项所述的中央处理器收包处理方法。所述中央处理器收包处理方法具体可以包括:

获取中央处理器收包队列;

将所述中央处理器收包队列划分报文丢弃队列和报文接收队列;

响应于接收到上报报文,基于预设分配规则,将所述上报报文匹配至所述报文丢弃队列和所述报文接收队列中的一个,确定为目标收包队列;

采用所述目标收包队列将所述上报报文进行上传。

可选地,所述基于预设分配规则,将所述上报报文匹配至所述报文丢弃队列和所述报文接收队列中的一个,确定为目标收包队列的步骤包括:

基于所述上报报文的访问信息,将所述上报报文分配至所述报文丢弃队列和所述报文接收队列中的一个,确定为所述目标收包队列。

可选地,所述基于所述上报报文的访问信息,将所述上报报文分配至所述报文丢弃队列和所述报文接收队列中的一个,确定为所述目标收包队列的步骤包括:

通过预设访问控制列表匹配所述上报报文;

响应于所述上报报文与所述预设访问控制列表匹配,将所述上报报文分配至所述报文接收队列,确定所述报文接收队列为所述目标收包队列;

响应于上报报文与所述预设访问控制列表不匹配,将所述上报报文与预设中央处理器队列映射表进行匹配,将所述上报报文分配至所述报文丢弃队列和所述报文接收队列中的一个,确定为所述目标收包队列。

可选地,所述将所述上报报文与预设中央处理器队列映射表进行匹配,将所述上报报文分配至所述报文丢弃队列和所述报文接收队列中的一个,确定为所述目标收包队列的步骤包括:

响应于所述上报报文与预设中央处理器队列映射表匹配,将所述上报报文分配至所述报文接收队列,确定所述报文接收队列为所述目标收包队列;

响应于所述上报报文与预设中央处理器队列映射表不匹配,将所述上报报文分配至所述报文丢弃队列,确定所述报文丢弃队列为所述目标收包队列。

可选地,当所述目标收包队列为所述报文接收队列时,所述采用所述目标收包队列将所述上报报文进行上传的步骤包括:

依据所述上报报文确定控制平面策略信息;

将所述报文接收队列配置所述控制平面策略信息;

采用配置后的报文接收队列将所述上报报文进行上传。

可选地,当所述上报报文与所述预设访问控制列表匹配,所述依据所述上报报文确定控制平面策略信息的步骤包括:

依据所述上报报文在所述预设访问控制列表中匹配的协议类型,确定上传动作;将所述上传动作确定为所述控制平面策略信息。

可选地,所述依据所述上报报文确定控制平面策略信息的步骤还包括:

确定所述上报报文对应的限速表;

将所述限速表确定为所述控制平面策略信息。

可选地,当所述上报报文与所述预设中央处理器队列映射表匹配,所述依据所述上报报文确定控制平面策略信息的步骤包括:

依据所述上报报文在所述预设中央处理器队列映射表中匹配收包原因,配置预设中央处理器队列映射表中的高优先级表项为所述控制平面策略信息。

可选地,所述依据所述上报报文确定控制平面策略信息的步骤还包括:

依据所述高优先级表项确定队列限速数据;

将所述队列限速数据确定为所述控制平面策略信息。

可选地,当所述目标收包队列为所述报文丢弃队列时,所述采用所述目标收包队列将所述上报报文进行上传的步骤包括:

采用所述报文丢弃队列缓存所述上报报文;

清空所述报文丢弃队列的数据。

可选地,所述采用所述报文丢弃队列缓存所述上报报文的步骤包括:

对所述报文丢弃队列配置所述预设访问控制列表中的低优先级表项;

采用配置后的报文丢弃队列缓存所述上报报文。

可选地,所述方法应用于交换机,所述交换机内设有交换芯片,所述获取中央处理器收包队列的步骤包括:

获取所述交换芯片支持的中央处理器收包队列。

可选地,所述将所述中央处理器收包队列划分报文丢弃队列和报文接收队列的步骤包括:

将所述交换芯片支持的中央处理器收包队列中的一个中央处理器收包队列划分为所述报文丢弃队列;

将所述交换芯片支持的中央处理器收包队列中所述报文丢弃队列之外的中央处理器收包队列划分为所述报文接收队列。

可选地,所述方法还包括:

对所述报文接收队列分配业务需求缓存;

对所述报文丢弃队列分配零缓存。

可选地,所述对所述报文接收队列分配业务需求缓存的步骤包括:

接收预设收包缓存分配策略;

基于所述预设收包缓存分配策略,确定所述业务需求缓存对应的容量;

基于所述业务需求缓存对应的容量,对所述报文接收队列进行缓存分配。

可选地,所述基于所述业务需求缓存对应的容量,对所述报文接收队列进行缓存分配的步骤包括:

设置所述报文接收队列的固定收包缓存为所述业务需求缓存对应的容量;

设置所述报文接收队列的共享收包缓存为所述业务需求缓存对应的容量。

可选地,所述对所述报文丢弃队列分配零缓存的步骤包括:

设置所述报文丢弃队列的固定收包缓存为零;

设置所述报文丢弃队列的共享收包缓存为零。

其中,存储器可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。

上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

参照图7,本发明实施例还提供了一种计算机可读存储介质701,所述存储介质701上存储有计算机程序,所述计算机程序被处理器运行时执行如本发明实施例任一项所述的中央处理器收包处理方法。所述中央处理器收包处理方法具体可以包括如下步骤:

获取中央处理器收包队列;

将所述中央处理器收包队列划分报文丢弃队列和报文接收队列;

响应于接收到上报报文,基于预设分配规则,将所述上报报文匹配至所述报文丢弃队列和所述报文接收队列中的一个,确定为目标收包队列;

采用所述目标收包队列将所述上报报文进行上传。

可选地,所述基于预设分配规则,将所述上报报文匹配至所述报文丢弃队列和所述报文接收队列中的一个,确定为目标收包队列的步骤包括:

基于所述上报报文的访问信息,将所述上报报文分配至所述报文丢弃队列和所述报文接收队列中的一个,确定为所述目标收包队列。

可选地,所述基于所述上报报文的访问信息,将所述上报报文分配至所述报文丢弃队列和所述报文接收队列中的一个,确定为所述目标收包队列的步骤包括:

通过预设访问控制列表匹配所述上报报文;

响应于所述上报报文与所述预设访问控制列表匹配,将所述上报报文分配至所述报文接收队列,确定所述报文接收队列为所述目标收包队列;

响应于上报报文与所述预设访问控制列表不匹配,将所述上报报文与预设中央处理器队列映射表进行匹配,将所述上报报文分配至所述报文丢弃队列和所述报文接收队列中的一个,确定为所述目标收包队列。

可选地,所述将所述上报报文与预设中央处理器队列映射表进行匹配,将所述上报报文分配至所述报文丢弃队列和所述报文接收队列中的一个,确定为所述目标收包队列的步骤包括:

响应于所述上报报文与预设中央处理器队列映射表匹配,将所述上报报文分配至所述报文接收队列,确定所述报文接收队列为所述目标收包队列;

响应于所述上报报文与预设中央处理器队列映射表不匹配,将所述上报报文分配至所述报文丢弃队列,确定所述报文丢弃队列为所述目标收包队列。

可选地,当所述目标收包队列为所述报文接收队列时,所述采用所述目标收包队列将所述上报报文进行上传的步骤包括:

依据所述上报报文确定控制平面策略信息;

将所述报文接收队列配置所述控制平面策略信息;

采用配置后的报文接收队列将所述上报报文进行上传。

可选地,当所述上报报文与所述预设访问控制列表匹配,所述依据所述上报报文确定控制平面策略信息的步骤包括:

依据所述上报报文在所述预设访问控制列表中匹配的协议类型,确定上传动作;将所述上传动作确定为所述控制平面策略信息。

可选地,所述依据所述上报报文确定控制平面策略信息的步骤还包括:

确定所述上报报文对应的限速表;

将所述限速表确定为所述控制平面策略信息。

可选地,当所述上报报文与所述预设中央处理器队列映射表匹配,所述依据所述上报报文确定控制平面策略信息的步骤包括:

依据所述上报报文在所述预设中央处理器队列映射表中匹配收包原因,配置预设中央处理器队列映射表中的高优先级表项为所述控制平面策略信息。

可选地,所述依据所述上报报文确定控制平面策略信息的步骤还包括:

依据所述高优先级表项确定队列限速数据;

将所述队列限速数据确定为所述控制平面策略信息。

可选地,当所述目标收包队列为所述报文丢弃队列时,所述采用所述目标收包队列将所述上报报文进行上传的步骤包括:

采用所述报文丢弃队列缓存所述上报报文;

清空所述报文丢弃队列的数据。

可选地,所述采用所述报文丢弃队列缓存所述上报报文的步骤包括:

对所述报文丢弃队列配置所述预设访问控制列表中的低优先级表项;

采用配置后的报文丢弃队列缓存所述上报报文。

可选地,所述方法应用于交换机,所述交换机内设有交换芯片,所述获取中央处理器收包队列的步骤包括:

获取所述交换芯片支持的中央处理器收包队列。

可选地,所述将所述中央处理器收包队列划分报文丢弃队列和报文接收队列的步骤包括:

将所述交换芯片支持的中央处理器收包队列中的一个中央处理器收包队列划分为所述报文丢弃队列;

将所述交换芯片支持的中央处理器收包队列中所述报文丢弃队列之外的中央处理器收包队列划分为所述报文接收队列。

可选地,所述方法还包括:

对所述报文接收队列分配业务需求缓存;

对所述报文丢弃队列分配零缓存。

可选地,所述对所述报文接收队列分配业务需求缓存的步骤包括:

接收预设收包缓存分配策略;

基于所述预设收包缓存分配策略,确定所述业务需求缓存对应的容量;

基于所述业务需求缓存对应的容量,对所述报文接收队列进行缓存分配。

可选地,所述基于所述业务需求缓存对应的容量,对所述报文接收队列进行缓存分配的步骤包括:

设置所述报文接收队列的固定收包缓存为所述业务需求缓存对应的容量;

设置所述报文接收队列的共享收包缓存为所述业务需求缓存对应的容量。

可选地,所述对所述报文丢弃队列分配零缓存的步骤包括:

设置所述报文丢弃队列的固定收包缓存为零;

设置所述报文丢弃队列的共享收包缓存为零。

本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。

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

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

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

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

尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。

以上对本发明所提供的中央处理器收包处理方法、装置、电子设备和存储介质,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

相关技术
  • 日志信息处理方法、装置、电子设备及可读存储介质
  • 数据处理方法、装置、计算机可读存储介质和电子设备
  • 三维模型处理方法和装置、电子设备、计算机可读存储介质
  • 路由数据处理方法、装置、电子设备及存储介质
  • 信息处理方法及装置、电子设备和存储介质
  • 组网下指令包的处理方法、装置、电子设备以及存储介质
  • 一种软件包处理方法、装置、电子设备以及存储介质
技术分类

06120116481419