CN113472700A - 报文处理方法、设备、存储介质及网卡 - Google Patents
报文处理方法、设备、存储介质及网卡 Download PDFInfo
- Publication number
- CN113472700A CN113472700A CN202111021847.4A CN202111021847A CN113472700A CN 113472700 A CN113472700 A CN 113472700A CN 202111021847 A CN202111021847 A CN 202111021847A CN 113472700 A CN113472700 A CN 113472700A
- Authority
- CN
- China
- Prior art keywords
- target
- message
- hardware module
- module
- processed
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/55—Prevention, detection or correction of errors
- H04L49/552—Prevention, detection or correction of errors by ensuring the integrity of packets received through redundant connections
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0654—Management of faults, events, alarms or notifications using network fault recovery
- H04L41/0663—Performing the actions predefined by failover planning, e.g. switching to standby network elements
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请实施例提供了一种报文处理方法、设备、存储介质及网卡。网卡包括:硬件模块设置于物理机与一服务器之间,用于通过所包括的第一流表对物理机与服务器之间的报文进行转发处理;软件模块与硬件模块通信连接,用于在物理机与服务器之间的报文未命中第一流表时,通过所包括的第二流表对报文进行转发处理;其中,硬件模块和软件模块中的至少之一的数量为至少两个,以在物理机与服务器之间生成用于对报文进行处理的至少两个互为冗余的通信链路。本申请所提供的技术方案,有效地实现了在物理机与服务器之间生成用于对报文进行处理的至少两个互为冗余的通信链路,这样在单点链路出现故障时,并不会中断数据处理流程,从而有效地提高了网卡的实用性。
Description
技术领域
本申请涉及报文技术领域,尤其涉及一种报文处理方法、设备、存储介质及网卡。
背景技术
网卡是用来允许计算机在计算机网络上进行通讯的计算机硬件,具体应用时,网卡可以配合服务器进行使用,以实现网络和存储的虚拟化功能,降低服务器的CPU占用率,提升服务器和弹性计算的数据处理性能。现有技术中,如图1所示,网卡可以包括:处理器CPU和现场可编程逻辑门阵列(Field Programmable Gate Array,简称FPGA),该网卡上行可以连接物理机或虚拟机,下行可以连接多台服务器(例如:服务器1至服务器8),形成了与多台服务器各自对应的通信链路。此时,若通信链路中任意节点(例如:CPU或FPGA)出现异常,将会导致与FPGA通信连接的服务器所对应的数据处理操作中断,扩大了故障范围,从而极大地降低系统的可用性。
发明内容
本申请实施例提供一种报文处理方法、设备、存储介质及网卡,通过冗余结构的设计增加系统的可用性,并且在单点链路出现故障时,不会导致服务器中的数据处理操作不会中断,从而有效地提高了系统的可用性。
第一方面,本申请实施例提供了一种网卡,包括:
硬件模块,设置于物理机与一服务器之间,用于通过所包括的第一流表对所述物理机与所述服务器之间的报文进行转发处理;
软件模块,与所述硬件模块通信连接,用于在所述物理机与所述服务器之间的报文未命中所述第一流表时,通过所包括的第二流表对所述报文进行转发处理;
其中,所述硬件模块和所述软件模块中的至少之一的数量为至少两个,以在所述物理机与所述服务器之间生成用于对报文进行处理的至少两个互为冗余的通信链路。
第二方面,本申请实施例提供了一种报文处理方法,包括:
获取待处理报文;
确定用于对所述待处理报文进行转发处理的所有通信链路,所有通信链路互为冗余;
在所有通信链路中,确定与所述待处理报文相对应的目标通信链路;
利用所述目标通信链路对所述待处理报文进行传输。
第三方面,本申请实施例提供了一种报文处理装置,包括:
第一获取模块,用于获取待处理报文;
第一确定模块,用于确定用于对所述待处理报文进行转发处理的所有通信链路,所有通信链路互为冗余;
所述第一确定模块,还用于在所有通信链路中,确定与所述待处理报文相对应的目标通信链路;
第一处理模块,用于利用所述目标通信链路对所述待处理报文进行传输。
第四方面,本申请实施例提供了一种电子设备,包括:存储器、处理器;所述存储器用于存储一条或多条计算机指令,所述一条或多条计算机指令被所述处理器执行时实现上述第二方面所示的报文处理方法。
第五方面,本发明实施例提供了一种计算机存储介质,用于储存计算机程序,所述计算机程序使计算机执行时实现上述第二方面所示的报文处理方法。
第六方面,本发明实施例提供了一种计算机程序产品,包括:存储有计算机指令的计算机可读存储介质,当所述计算机指令被一个或多个处理器执行时,致使所述一个或多个处理器执行上述第二方面所示的报文处理方法中的步骤。
本申请实施例提供的技术方案,通过将网卡中硬件模块和软件模块中的至少之一的数量配置为至少两个,实现了在所述物理机/虚拟机与所述服务器之间生成用于对报文进行处理的至少两个互为冗余的通信链路,这样有效地增加了网卡的可用性,并且,在通信链路中的任意一个节点出现故障时,不会中断对报文进行分析处理的过程;另外,由于上述网卡中的硬件模块和软件模块中的至少之一的数量可配置为至少两个,从而使得网卡结构的扩展性较好,具体可以根据设计需求灵活增加可支持的服务器数量,从而可以提升资源的利用率,有利于降低数据处理成本,进一步提高了网卡使用的灵活可靠性,有利于市场的推广与应用。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为相关技术提供的一种网卡的原理示意图;
图2为本申请实施例提供的一种网卡的结构示意图一;
图3为本申请实施例提供的一种网卡的结构示意图二;
图4为本申请实施例提供的一种网卡的结构示意图三;
图5为本申请实施例提供的一种报文处理方法的流程示意图;
图6为本申请实施例提供的在所有通信链路中,确定与所述待处理报文相对应的目标通信链路的流程示意图;
图7为本申请实施例提供的另一种报文处理方法的流程示意图;
图8为本申请实施例提供的又一种报文处理方法的流程示意图;
图9为本申请实施例提供的再一种报文处理方法的流程示意图;
图10为本申请实施例提供的另一种报文处理方法的流程示意图;
图11为本申请应用实施例提供的一种网卡池化系统的结构示意图;
图12为本申请实施例提供的一种报文处理装置的结构示意图;
图13为图12所示的报文处理装置所对应的电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在本申请实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义,“多种”一般包含至少两种,但是不排除包含至少一种的情况。
应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
取决于语境,如在此所使用的词语“如果”、“若”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的商品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种商品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的商品或者系统中还存在另外的相同要素。
另外,下述各方法实施例中的步骤时序仅为一种举例,而非严格限定。
下面通过一个示例性的应用场景具体说明本申请各个实施例提供的报文处理方法、装置、设备、存储介质及网卡。
图2为本申请实施例提供的一种网卡的结构示意图;参考附图2所示,本实施例提供了一种网卡,具体的,该网卡可以包括:硬件模块和软件模块;
硬件模块可以设置于物理机与一服务器之间,用于通过所包括的第一流表对物理机与服务器之间的报文进行转发处理。具体的,硬件模块可以采用现场可编程逻辑门阵列(Field Programmable Gate Array,简称FPGA)或者专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)来构成,该硬件模块可以卸载由软件模块下发的第二流表,以生成硬件模块中的第一流表,而后可以基于硬件模块中的第一流表实现报文的快转操作。
软件模块(CPU)可以与硬件模块通信连接,用于在物理机与服务器之间的报文未命中第一流表时,通过所包括的第二流表对报文进行转发处理。具体的,软件模块CPU中可以包括负责正常的VPC网络流量转发操作的虚拟交换机vswitch;具体的,软件模块可以获取待处理报文的五元组特征,并通过五元组特征查询路由表、ACL表等各种转发表,获得查询结果,而后基于查询结果和五元组特征生成第二流表。
其中,对于软件模块和硬件模块而言,硬件模块和软件模块中的至少之一的数量为至少两个,在一些实例中,硬件模块的数量为至少两个,软件模块的数量为至少两个,举例来说,如图2所示,软件模块1、软件模块2分别与硬件模块1、硬件模块2、硬件模块3和硬件模块4通信连接,上述的硬件模块1、硬件模块2、硬件模块3和硬件模块4可以通信连接有服务器1、服务器N、服务器N+1和服务器2N。此时,软件模块1与软件模块2之间互为冗余结构,硬件模块1、硬件模块2、硬件模块3和硬件模块4之间互为冗余结构,因此,网卡在软件模块层面和硬件模块层面均实现了冗余设计,这样可以在物理机与服务器之间生成用于对报文进行处理的至少两个互为冗余的通信链路。
在一些实例中,在硬件模块的数量为至少两个时,为了方便对网卡进行布局布线设置,至少两个硬件模块可以通过交换机(Switch,简称SW)与物理机通信连接,例如:硬件模块1、硬件模块2、硬件模块3和硬件模块4可以通过交换机1与物理机通信连接;硬件模块5、硬件模块6、硬件模块7和硬件模块8可以通过交换机2与物理机通信连接。相类似的,至少两个硬件模块通过交换机(图中未示出)与服务器通信连接。
另外,网卡不仅可以在软件模块层面和硬件模块层面均实现冗余设计,还能够在网卡层面实现冗余设计,即网卡中可以包括第一网卡节点和第二网卡节点,第一网卡节点可以包括上述的软件模块1、软件模块2、硬件模块1、硬件模块2、硬件模块3和硬件模块4,第二网卡节点可以包括软件模块3、软件模块4、硬件模块5、硬件模块6、硬件模块7和硬件模块8,上述的硬件模块1、硬件模块2、硬件模块3和硬件模块4可以通信连接有服务器1、服务器N、服务器N+1和服务器2N;硬件模块5、硬件模块6、硬件模块7和硬件模块8可以通信连接有服务器2N+1、服务器3N、服务器3N+1和服务器4N。此时,第一网卡节点与第二网卡节点之间互为冗余结构,即网卡在网卡层面均实现了冗余设计。这样的冗余结构设计,在软件模块层面、硬件模块层面或者网卡节点层面中的任意一个运行异常时,可以快速地切换并通过其他冗余的通信链路对报文进行转发处理,保证了报文转发的质量和效率。
在又一些实例中,如图3所示,硬件模块的数量可以为一个,软件模块的数量可以为至少两个,此时,网卡在软件模块层面实现了冗余设计,即软件模块1与硬件模块之间形成了通信链路1,软件模块2与硬件模块之间形成了通信链路2,通信链路1与通信链路2之间互为冗余,这样在物理机与服务器之间的报文未命中硬件模块中所包括的第一流表时,通过软件模块1或者软件模块2中的第二流表对报文进行转发处理,这样可以实现在任一软件模块运行异常时,可以采用冗余设计的另一软件模块来对报文进行正常的转发处理,保证了报文转发的质量和效率。
在另一些实例中,如图4所示,硬件模块的数量可以为至少两个,软件模块的数量可以为一个,此时,网卡在硬件模块层面实现了冗余设计。另外,为了方便对网卡进行布局布线设置,至少两个硬件模块通过交换机(Switch,简称SW)与物理机通信连接,例如:硬件模块1、硬件模块2、硬件模块3和硬件模块4可以通过交换机1与物理机通信连接;相类似的,至少两个硬件模块通过交换机(图中未示出)与服务器(服务器1、服务器N、服务器N+1和服务器2N)通信连接。例如:软件模块分别与硬件模块1、硬件模块2、硬件模块3和硬件模块4之间分别形成了通信链路1、通信链路2、通信链路3和通信链路4,上述的通信链路1、通信链路2、通信链路3和通信链路4之间互为冗余,这样可以实现在任一硬件模块运行异常时,可以采用冗余设计的另一硬件模块来对报文进行正常的转发处理,保证了报文转发的质量和效率。
本实施例提供的网卡,通过将网卡中硬件模块和软件模块中的至少之一的数量配置为至少两个,实现了在物理机/虚拟机与服务器之间生成用于对报文进行处理的至少两个互为冗余的通信链路,这样有效地增加了网卡的可用性,并且,在通信链路中的任意一个节点出现故障时,不会中断对报文进行分析处理的过程;另外,由于上述网卡中的硬件模块和软件模块中的至少之一的数量可配置为至少两个,从而使得网卡结构的扩展性较好,具体可以根据设计需求灵活增加可支持的服务器数量,从而可以提升资源的利用率,有利于降低数据处理成本;此外,在网卡中的硬件模块的数量为至少两个时,通过交换机可以简化至少两个硬件模块所对应的网络布局布线,从而节省了网络走线成本,进一步提高了网卡使用的灵活可靠性,有利于市场的推广与应用。
图5为本申请实施例提供的一种报文处理方法的流程示意图;参考附图5所示,本实施例提供了一种报文处理方法,该报文处理方法的执行主体具有冗余设计的网卡,该网卡能够插在物理机上,用于对物理机/虚拟机与服务器之间的报文进行转发操作。具体的,该报文处理方法可以包括:
步骤S501:获取待处理报文。
步骤S502:确定用于对待处理报文进行转发处理的所有通信链路,所有通信链路互为冗余。
步骤S503:在所有通信链路中,确定与待处理报文相对应的目标通信链路。
步骤S504:利用目标通信链路对待处理报文进行传输。
下面对上述各个步骤进行详细说明:
步骤S501:获取待处理报文。
其中,待处理报文可以是源节点发送至目标节点的报文,具体的,源节点可以为物理机/虚拟机或者服务器。在源节点为物理机/虚拟机时,源节点所发送的待处理报文是指物理机/虚拟机发送至服务器的待处理报文,此时的目标节点为服务器;在源节点为服务器时,源节点所发送的待处理报文是指服务器发送至物理机/虚拟机的待处理报文,此时的目标节点为物理机/虚拟机。需要说明的是,对于物理机或者虚拟机而言,物理机内可以根据应用场景或者使用需求启动至少两个虚拟机VM。
在源节点存在数据处理需求时,源节点可以生成待处理报文,其中,在源节点为物理机或者虚拟机时,物理机或者虚拟机可以提供用于供用户输入执行操作的接口或者端口,通过接口或者端口可以获取到用户输入的执行操作,通过执行操作可以生成待处理报文,可以理解的是,在不同的应用场景中,所产生的待处理报文可以对应有不同的功能作用,例如:用于实现数据访问操作的待处理报文、用于实现控制操作的待处理报文、用于实现响应操作的待处理报文等等。在源节点为服务器时,服务器可以响应于预设操作(用户操作或者数据处理操作)而生成待处理报文。
在源节点生成待处理报文之后,可以将待处理报文发送至网卡,从而使得网卡可以稳定地获取到待处理报文,可以理解的是,网卡所能够获取到的待处理报文的数量可以为至少两个。
步骤S502:确定用于对待处理报文进行转发处理的所有通信链路,所有通信链路互为冗余。
在获取到待处理报文之后,可以对待处理报文进行分析处理,以确定用于对待处理报文进行转发处理的所有通信链路。在一些实例中,确定用于对所述待处理报文进行转发处理的所有通信链路可以包括:获取与所述待处理报文相对应的目标节点;基于所述目标节点,确定用于对所述待处理报文进行转发处理的所有通信链路。
其中,确定与待处理报文相对应的目标节点可以包括:获取待处理报文所对应的五元组,基于五元组确定与待处理报文相对应的目标节点。具体的,在获取到待处理报文之后,可以提取待处理报文的五元组,即源IP地址、目的IP地址、协议号、源端口、目的端口,而后可以基于五元组中的目的IP地址和目的端口来确定与待处理报文相对应的目标节点。可以理解的是,在源节点为物理机或虚拟机时,目标节点可以为服务器;在源节点为服务器时,目标节点可以为物理机或虚拟机。
由于通信链路是指由源节点到目标节点之间能够进行数据通信的链路,并且本实施例中的网卡可以实现为具有冗余设计的网卡,该网卡可以在软件模块层面、硬件模块层面等冗余设计,因此,源节点与目标节点之间可以形成多条通信链路,并且多条通信链路之间互为冗余,如图2所示。
在确定与待处理报文相对应的目标节点之后,可以基于目标节点的端口来确定与目标节点相对应的所有通信链路,所有通信链路互为冗余。具体的,可以通过目标节点的接收端口来确定与目标节点和源节点通信连接的所有硬件模块,而后确定与各个硬件模块相连接的所有软件模块,从而可以确定位于源节点和目标节点之间、由所有硬件模块和软件模块所构成的通信链路,任意两个通信链路之间互为冗余。
步骤S503:在所有通信链路中,确定与待处理报文相对应的目标通信链路。
在获取到所有通信链路之后,可以在所有通信链路中确定一用于对待处理报文进行转发处理的目标通信链路。在一些实例中,在所有通信链路均处于正常运行状态时,可以将任一通信链路确定为与待处理报文相对应的目标通信链路。在另一些实例中,在所有通信链路中存在运行异常的通信链路时,则可以在运行正常的通信链路中,确定一与待处理报文相对应的目标通信链路,从而有效地保证了基于目标通信链路对待处理报文进行转发处理的稳定可靠性。
当然的,确定目标通信链路的实现方式并不限于上述所例举的实现方式,本领域技术人员也可以采用其他的方式来确定目标通信链路,只要能够保证对目标通信链路进行确定的准确可靠性即可,在此不再赘述。
步骤S504:利用目标通信链路对待处理报文进行传输。
在确定目标通信链路之后,可以利用目标通信链路将待处理报文发送至目标节点,从而实现了利用目标通信链路对待处理报文进行传输操作。需要说明的是,目标通信链路可以仅包括位于源节点和目标节点之间的硬件模块,例如:在待处理报文命中位于硬件模块中的第一流表时,则可以直接基于第一流表将待处理报文转发至目标节点,这样实现了对待处理报文的快转操作。或者,目标通信链路可以包括位于源节点和目标节点之间的软件模块和硬件模块,例如:在待处理报文未命中位于硬件模块中的第一流表时,硬件模块可以将待处理报文发送至软件模块,并利用软件模块中所包括的第二流表将待处理报文转发至目标节点,从而有效地保证了对待处理报文进行转发的稳定可靠性。
在目标节点获取到待处理报文之后,可以基于待处理报文进行相对应的数据处理操作,例如:在待处理报文是用于实现数据访问操作的待处理报文,则通过目标节点可以实现相对应的数据访问操作;在待处理报文为用于实现控制操作的待处理报文,则通过目标节点可以实现相对应的控制操作;在待处理报文为用于实现响应操作的待处理报文,则通过目标节点可以实现相对应的数据响应操作等等。
本实施例提供的报文处理方法,通过获取待处理报文,确定用于对所述待处理报文进行转发处理的所有通信链路,而后在所有通信链路中,确定与所述待处理报文相对应的目标通信链路,并利用所述目标通信链路对所述待处理报文进行传输,有效地实现了对待处理报文进行转发操作,并且由于用于对待处理报文进行处理的所有通信链路互为冗余,这样在通信链路中的单个节点出现故障时不会中断数据处理流程,保证了报文处理的质量和效率,进一步提高了报文处理方法的实用性,有利于市场的推广与应用。
图6为本申请实施例提供的在所有通信链路中,确定与所述待处理报文相对应的目标通信链路的流程示意图;参考附图6所示,本实施例提供了一种确定目标通信链路的实现方式,具体的,本实施例中的在所有通信链路中,确定与待处理报文相对应的目标通信链路可以包括:
步骤S601:获取与待处理报文相对应的哈希值。
在获取待处理报文之后,为了能够准确地对待处理报文进行分析处理的质量和效率,可以获取与待处理报文相对应的哈希值。具体的,获取与待处理报文相对应的哈希值可以包括:获取与待处理报文相对应的五元组;基于五元组来确定哈希值,从而有效地保证了对与待处理报文相对应的哈希值进行确定的准确可靠性。
步骤S602:基于哈希值,在所有通信链路中确定目标通信链路。
在获取到哈希值之后,可以基于哈希值在所有通信链路中确定目标通信链路,在一些实例中,在目标通信链路包括用于与源节点通信连接的交换机、和/或用于与目标节点通信连接的交换机时,基于哈希值,在所有通信链路中确定目标通信链路可以包括:获取与所有通信链路相对应的至少两个交换机,至少两个交换机包括:用于与源节点通信连接的交换机、和/或用于与目标节点通信连接的交换机;基于哈希值,确定与待处理报文相对应的第一端口信息;在至少两个交换机中,将与第一端口信息相对应的交换机确定为目标交换机,目标交换机用于生成目标通信链路。
其中,在通信链路包括交换机时,可以通过所有通信链路所对应的传输接口获取与所有通信链路相对应的至少两个交换机,并且,至少两个交换机可以包括用于与源节点通信连接的交换机,和/或用于与目标节点通信连接的交换机。可以理解的是,在一些实例中,与所有通信链路通信连接的至少两个交换机可以是与源节点通信连接的交换机;在又一些实例中,与所有通信链路通信连接的至少两个交换机可以是与目标节点通信连接的交换机;在另一些实例中,与所有通信链路通信连接的至少两个交换机可以包括与源节点通信连接的交换机和与目标节点通信连接的交换机。
另外,在获取到哈希值之后,可以对哈希值进行分析处理,以确定与待处理报文相对应的第一端口信息,具体的,确定与待处理报文相对应的第一端口信息可以包括:获取用于确定端口信息的映射信息,利用映射信息对哈希值进行分析处理,以确定与待处理报文相对应的第一端口信息。或者,获取用于对哈希值进行分析处理的机器学习模型,利用机器学习模型对哈希值进行分析处理,以确定与待处理报文相对应的第一端口信息,从而有效地保证了对第一端口信息进行确定的准确可靠性。
对于与所有通信链路相对应的至少两个交换机而言,每个交换机可以对应有各自对应的端口信息,不同的交换机可以对应有不同的端口信息。因此,在获取到与待处理报文相对应的第一端口信息之后,可以在至少两个交换机中,将与第一端口信息相对应的交换机确定为目标交换机,所获得的目标交换机用于生成目标通信链路,从而有效地实现了对目标通信链路中的至少一部分进行确定。
本实施例中,在目标通信链路包括用于与源节点通信连接的交换机,和/或用于与目标节点通信连接的交换机时,通过获取与待处理报文相对应的哈希值,而后基于哈希值在所有通信链路中确定用于目标通信链路的目标交换机,从而有效地保证了对目标通信链路进行确定的准确可靠性。
图7为本申请实施例提供的另一种报文处理方法的流程示意图;参考附图7所示,在将与第一端口信息相对应的交换机确定为目标交换机之后,本实施例中的方法还可以包括:
步骤S701:获取与目标交换机通信连接的至少两个硬件模块。
由于用于对待处理报文进行传输处理的目标通信链路不仅可以包括目标交换机,还可以包括与目标交换机通信连接的目标硬件模块。因此,在将与第一端口信息相对应的交换机确定为目标交换机之后,可以确定用于生成目标通信链路的目标硬件模块,目标硬件模块用于对待处理报文进行转发处理。具体的,为了能够准确地获取用于生成目标通信链路的目标硬件模块,在获取到目标交换机之后,可以获取与目标交换机通信连接的至少两个硬件模块。
需要说明的是,对于硬件模块而言,硬件模块可以对应有两种运行状态,即正常状态和异常状态,为了能够保证对目标通信链路进行确定的准确可靠性,所获取到的与目标交换机通信连接的至少两个硬件模块各自的运行状态可以均为正常状态,此时,获取与目标交换机通信连接的至少两个硬件模块可以包括:获取与目标交换机通信连接的硬件模块的运行状态;在硬件模块处于异常状态时,则将处于异常状态的硬件模块删除,获得与目标交换机通信连接的至少两个硬件模块,至少两个硬件模块的运行状态均为正常状态。
具体的,获取与目标交换机通信连接的硬件模块的运行状态可以包括:获取用于标识硬件模块的运行状态的标识信息,通过标识信息来确定硬件模块的运行状态,例如:在标识信息为“1”时,则确定硬件模块的运行状态为正常状态;在标识信息为“0”时,则确定硬件模块的运行状态为异常状态。或者,获取与目标交换机通信连接的硬件模块的运行状态可以包括:利用心跳机制来获取硬件模块的运行状态,在获取到硬件模块所返回的心跳数据包时,则确定硬件模块的运行状态为正常状态;在未获取到硬件模块所返回的心跳数据包时,则确定硬件模块的运行状态为异常状态。
在获取与目标交换机通信连接的硬件模块的运行状态之后,可以识别出处于异常状态的硬件模块和处于正常状态的硬件模块,在硬件模块处于异常状态时,则将处于异常状态的硬件模块删除,从而可以获得与目标交换机通信连接的至少两个硬件模块,至少两个硬件模块的运行状态均为正常状态,这样有效地保证了对与目标交换机通信连接的至少两个硬件模块进行获取的准确可靠性,并且还能够保证所获取到的至少两个硬件模块均处于正常运行状态,这样进一步提高了对目标通信链路进行确定的准确可靠性。
步骤S702:通过目标交换机确定与待处理报文相对应的第二端口信息。
在获取到目标交换机和待处理报文之后,可以通过目标交换机来确定与待处理报文相对应的第二端口信息,该第二端口信息用于确定目标硬件模块。具体的,通过目标交换机确定与待处理报文相对应的第二端口信息可以包括:目标交换机获取与待处理报文相对应的五元组,基于五元组确定哈希值;基于哈希值确定与待处理报文相对应的第二端口信息,本实施例中基于哈希值来确定第二端口信息的具体实现方式与上述实施例中的基于哈希值来确定第一端口信息的具体实现方式相类似,具体可参考上述陈述内容,在此不再赘述。
步骤S703:在至少两个硬件模块中,将与第二端口信息相对应的硬件模块确定为目标硬件模块,目标硬件模块和目标交换机用于生成目标通信链路。
对于用于生成所有通信链路相对应的至少两个硬件模块而言,每个硬件模块可以对应有各自对应的端口信息,不同的硬件模块可以对应有不同的端口信息。因此,在获取到与待处理报文相对应的第二端口信息之后,可以在至少两个硬件模块中,将与第二端口信息相对应的硬件模块确定为目标硬件模块,所获得的目标交换机和目标硬件模块用于生成目标通信链路。在待处理报文命中目标硬件模块中包括的流表时,即可以利用上述流表直接对待处理报文进行转发处理,实现了对待处理报文的快转操作,此时,目标通信链路可以仅包括目标硬件模块和目标交换机,通过上述过程即实现了对目标通信链路进行确定的准确可靠性。
在待处理报文未命中目标硬件模块中包括的流表时,即不可以利用上述流表直接对待处理报文进行转发处理,此时,需要利用软件模块中的流表对待处理报文进行转发操作,继而目标通信链路不仅包括目标硬件模块和目标交换机,还包括软件模块,因此,通过上述过程即实现了对目标通信链路的一部分进行确定的准确可靠性。
本实施例中,在目标通信链路包括交换机和与交换机通信连接的硬件模块时,在将与第一端口信息相对应的交换机确定为目标交换机之后,通过获取与目标交换机通信连接的至少两个硬件模块,而后通过目标交换机确定与待处理报文相对应的第二端口信息,并在至少两个硬件模块中,将与第二端口信息相对应的硬件模块确定为目标硬件模块,从而有效地保证了对目标通信链路中的至少一部分进行确定的准确可靠性。
图8为本申请实施例提供的又一种报文处理方法的流程示意图;参考附图8所示,本实施例中的方法还可以包括:
步骤S801:获取目标通信链路中的目标硬件模块的运行状态。
步骤S802:在目标硬件模块处于异常状态时,则删除目标硬件模块所对应的通信链路。
在确定目标通信链路之后,可以基于目标通信链路对待处理报文进行转发操作,需要注意的是,在基于目标通信链路对待处理报文进行转发操作的过程中,目标通信链路中的目标硬件模块可能出现异常,在目标硬件模块处于异常状态时,不仅与目标硬件模块所对应的目标通信链路无法进行正常的报文转发操作,并且与目标硬件模块所对应的其他通信链路无法进行正常的报文转发操作。因此,为了能够保证利用通信链路对报文进行转发操作的稳定可靠性,可以获取目标通信链路中的目标硬件模块的运行状态,具体的,“获取目标通信链路中的目标硬件模块的运行状态”的具体实现方式和实现效果与上述实施例中的“获取与目标交换机通信连接的硬件模块的运行状态” 的具体实现方式和实现效果相类似,具体可参考上述陈述内容,在此不再赘述。
在确定与目标通信链路相对应的目标硬件模块处于异常状态时,则可以删除目标硬件模块所对应的通信链路,这样可以保证系统中所包括的通信链路均处于正常状态,进而保证了对待处理报文进行分析处理的质量和效率。
举例来说,通信链路包括链路1、链路2、链路3和链路4,在目标通信链路为链路3时,链路3可以包括目标硬件模块3,该目标硬件模块3可以对应于链路3和链路4,在利用链路3对待处理报文进行分析处理的过程中,可以实时获取链路3中所包括的目标硬件模块3的运行状态,在目标硬件模块3的运行状态为异常状态时,则可以将与目标硬件模块3所对应的所有通信链路删除,即将目标硬件模块3所对应的链路3和链路4删除,从而可以获得处于正常状态的链路1和链路2,有效地保证了通信链路对待处理报文进行分析处理的质量和效率。
本实施例中,通过获取目标通信链路中的目标硬件模块的运行状态,在目标硬件模块处于异常状态时,则删除目标硬件模块所对应的通信链路,从而可以获得所有处于正常状态的通信链路,这样有效地保证了通信链路对待处理报文进行分析处理的质量和效率。
图9为本申请实施例提供的再一种报文处理方法的流程示意图;参考附图9所示,在将与第二端口信息相对应的硬件模块确定为目标硬件模块之后,本实施例中的方法还可以包括:
步骤S901:在待处理报文未命中目标硬件模块中的流表时,则获取与目标硬件模块通信连接的至少两个软件模块。
在将与第二端口信息相对应的硬件模块确定为目标硬件模块之后,可以检测待处理报文是否命中目标硬件模块中的流表,具体的,检测待处理报文是否命中目标硬件模块中的流表可以包括:确定与待处理报文相对应的五元组(源IP地址、目的IP地址、协议号、源端口、目的端口)以及执行操作信息,基于五元组以及执行操作检测待处理报文是否命中目标硬件模块中的流表;在流表中包括与待处理报文相对应的五元组以及执行操作时,则确定待处理报文命中目标硬件模块中的流表;在目标硬件模块中的流表中不包括与待处理报文相对应的五元组以及执行操作时,则确定待处理报文未命中目标硬件模块中的流表。
在待处理报文未命中目标硬件模块中的流表时,则需要将待处理报文转发至软件模块进行处理,即此时的目标通信链路包括与目标硬件模块通信连接的目标软件模块,为了能够准确地对目标软件模块进行确定,可以先获取与目标硬件模块通信连接的至少两个软件模块。
需要说明的是,对于软件模块而言,软件模块可以对应有两种运行状态,即正常状态和异常状态,为了能够保证对目标通信链路进行确定的准确可靠性,所获取到的与目标硬件模块通信连接的至少两个软件模块各自的运行状态可以均为正常状态,此时,获取与目标硬件模块通信连接的至少两个软件模块可以包括:获取与目标硬件模块通信连接的软件模块的运行状态;在软件模块处于异常状态时,则将处于异常状态的软件模块删除,获得与目标硬件模块通信连接的至少两个软件模块,至少两个软件模块的运行状态均为正常状态。
具体的,在确定目标硬件模块之后,可以获取与目标硬件模块进行通信连接的软件模块的运行状态,上述的软件模块可以是指与目标硬件模块进行通信连接的所有软件模块,相对应的,软件模块的运行状态是指所有软件模块各自对应的运行状态。在一些实例中,获取与目标硬件模块通信连接的软件模块的运行状态可以包括:获取用于标识软件模块的运行状态的标识信息,通过标识信息来确定软件模块的运行状态,例如:在标识信息为“1”时,则确定软件模块的运行状态为正常状态;在标识信息为“0”时,则确定软件模块的运行状态为异常状态。或者,获取与目标硬件模块通信连接的软件模块的运行状态可以包括:利用心跳机制来获取软件模块的运行状态,在获取到软件模块所返回的心跳包时,则确定软件模块的运行状态为正常状态;在未获取到软件模块所返回的心跳包时,则确定软件模块的运行状态为异常状态。
在获取与目标硬件模块通信连接的软件模块的运行状态之后,可以识别出处于异常状态的软件模块和处于正常状态的软件模块,在软件模块处于异常状态时,则将处于异常状态的软件模块删除,从而可以获得与目标硬件模块通信连接的至少两个软件模块,至少两个软件模块的运行状态均为正常状态,这样有效地保证了对与目标硬件模块通信连接的至少两个软件模块进行获取的准确可靠性,并且还能够保证所获取到的至少两个软件模块均处于正常运行状态,这样进一步提高了对目标通信链路进行确定的准确可靠性。
当然的,获取与目标硬件模块通信连接的至少两个软件模块的实现方式并不限于上述实现方式,本领域技术人员也可以采用其他的方式来获取与目标硬件模块通信连接的至少两个软件模块,只要能够保证对获取与目标硬件模块通信连接的至少两个软件模块进行确定的准确可靠性即可,在此不再赘述。
步骤S902:通过目标硬件模块,确定与待处理报文相对应的第三端口信息。
在获取到目标硬件模块和待处理报文之后,可以通过目标硬件模块来确定与待处理报文相对应的第三端口信息,该第三端口信息用于确定目标软件模块。具体的,通过目标硬件模块确定与待处理报文相对应的第三端口信息可以包括:目标硬件模块获取与待处理报文相对应的五元组,基于五元组确定哈希值;基于哈希值确定与待处理报文相对应的第三端口信息,本实施例中基于哈希值来确定第三端口信息的具体实现方式与上述实施例中的基于哈希值来确定第一端口信息的具体实现方式相类似,具体可参考上述陈述内容,在此不再赘述。
步骤S903:在至少两个软件模块中,将与第三端口信息相对应的软件模块确定为目标软件模块,目标软件模块、目标硬件模块和目标交换机用于生成目标通信链路。
对于用于生成所有通信链路相对应的至少两个软件模块而言,每个软件模块可以对应有各自对应的端口信息,不同的软件模块可以对应有不同的端口信息。因此,在获取到与待处理报文相对应的第三端口信息之后,可以在至少两个软件模块中,将与第三端口信息相对应的软件模块确定为目标软件模块,所获得的目标交换机、目标硬件模块和目标软件模块用于生成目标通信链路,即此时的目标通信链路包括目标交换机、目标硬件模块和目标软件模块,通过上述过程即实现了对目标通信链路进行确定的准确可靠性。
本实施例中,在目标通信链路包括交换机、与交换机通信连接的硬件模块以及与硬件模块通信连接的软件模块时,在将与第二端口信息相对应的硬件模块确定为目标硬件模块之后,且在待处理报文未命中目标硬件模块中的流表时,通过获取与目标硬件模块通信连接的至少两个软件模块,而后通过目标硬件模块确定与待处理报文相对应的第三端口信息,并在至少两个软件模块中,将与第三端口信息相对应的软件模块确定为目标软件模块,从而有效地保证了对目标通信链路的全部进行确定的准确可靠性。
图10为本申请实施例提供的另一种报文处理方法的流程示意图;参考附图10所示,本实施例中的方法还可以包括:
步骤S1001:获取目标通信链路中的目标软件模块的运行状态。
步骤S1002:在目标软件模块处于异常状态时,则将目标软件模块更新为与目标硬件模块通信连接的其他任一处于正常状态的软件模块,并删除目标软件模块所对应的通信链路。
在确定目标通信链路之后,可以基于目标通信链路对待处理报文进行转发操作,需要注意的是,在基于目标通信链路对待处理报文进行转发操作的过程中,目标通信链路中的目标软件模块可能出现异常状态,在目标软件模块处于异常状态时,不仅与目标软件模块所对应的目标通信链路无法进行正常的报文转发操作,并且与目标软件模块所对应的其他通信链路无法进行正常的报文转发操作。因此,为了能够保证利用通信链路对报文进行转发操作的稳定可靠性,可以获取目标通信链路中的目标软件模块的运行状态,具体的,“获取目标通信链路中的目标软件模块的运行状态”的具体实现方式和实现效果与上述实施例中的“获取与目标交换机通信连接的硬件模块的运行状态” 的具体实现方式和实现效果相类似,具体可参考上述陈述内容,在此不再赘述。
在确定目标软件模块处于异常状态时,则说明目标软件模块无法正常地对待处理报文进行分析处理,此时,为了保证对待处理报文进行分析处理的质量和效率,可以将目标软件模块更新为与目标硬件模块通信连接的其他任一处于正常状态的软件模块,并删除目标软件模块所对应的通信链路,这样可以保证报文转发系统中所包括的通信链路均处于正常运行状态,可以提高对待处理报文进行分析处理的质量和效率。
举例来说,通信链路包括链路10、链路20、链路30和链路40,在目标通信链路为链路20时,链路20可以包括目标软件模块2,该目标软件模块2可以对应于链路10和链路20,在利用链路20对待处理报文进行分析处理的过程中,可以实时获取链路20中所包括的目标软件模块2的运行状态,在目标软件模块2的运行状态为异常状态时,则说明目标软件模块2无法正常对待处理报文进行分析处理,此时,为了保证对待处理报文进行分析处理的质量和效率,可以将目标软件模块2更新为目标软件模块1,而后将与目标软件模块2所对应的所有通信链路删除,即将目标软件模块2所对应的链路10和链路20删除,从而可以获得处于正常状态的链路30和链路40,有效地保证了通信链路对待处理报文进行分析处理的质量和效率。
本实施例中,通过获取目标通信链路中的目标软件模块的运行状态,在目标软件模块处于异常状态时,则将目标软件模块更新为与目标硬件模块通信连接的其他任一处于正常状态的软件模块,并删除目标软件模块所对应的通信链路,这样有效地保证了通信链路对待处理报文进行分析处理的质量和效率。
具体应用时,以CPU作为软件模块,FPGA或者ASIC作为硬件模块,CPU的数量为4个,FPGA的数量为8个为例,本应用实施例提供了一种针对网卡池化系统的报文转发方法,上述的网卡池化系统可以对接至少两个服务器,至少两个服务器可以按需配置IO资源,这样有利于提升资源利用率,降低数据处理的平均处理资源,同时可以降低IO资源的冗余度,有利于提升系统的可用性。
其中,参考附图11所示,网卡池化系统可以包括:交换机SW1和交换机SW2,SW1和SW2分别与FPGA1、FPGA2、FPGA3、FPGA4、FPGA5、FPGA6、FPGA7和FPGA8通信连接,FPGA1、FPGA2、FPGA3和FPGA4与CPU1和CPU2通信连接,FPGA5、FPGA6、FPGA7和FPGA8与CPU3和CPU4通信连接。需要说明的是,CPU和FPGA(or ASIC)的数量并不限于上述所例举的数量,并且,CPU和FPGA不限于标准的接口速率,本领域技术人员可以根据具体的应用场景或者应用需求进行配置。
另外,对于一个物理机和服务器1而言,CPU1与CPU2之间构成冗余结构,FPGA1(或者ASIC1)与FPGA2(或者ASIC2)之间构成冗余结构,下行的服务器的端口可以分别接到冗余设计的FPGA(或者ASIC)上,从而有效地实现了在数据流上构成冗余的架构,此时,若通信链路中的任意节点出现异常时,通过冗余设计的其他通信链路可以继续对报文进行处理操作。
具体的,针对网卡池化系统的报文转发方法可以包括以下步骤:
步骤1:获取由物理机发送至服务器的待处理报文。
步骤2:提取待处理报文的五元组,基于五元组计算哈希值,根据哈希值映射第一端口,第一端口用于在SW1和SW2中确定一个目标SW,例如:与第一端口相对应的目标SW为SW2。
步骤3:将待处理报文传输至第一端口所对应的SW2,SW2可以根据哈希值映射第二端口,第二端口用于在FPGA1、FPGA2、FPGA3和FPGA4中确定一个目标FPGA,例如:与第二端口相对应的目标FPGA为FPGA3。
步骤4:SW2将待处理报文传输至FPGA3,检测待处理报文是否命中FPGA3中的流表,在待处理报文命中FPGA3中的流表时,则可以利用FPGA3中的流表直接对待处理报文进行快转操作,具体的,可以确定与待处理报文相对应的目标服务器,例如,在目标服务器为服务器2N时,可以将待处理报文由FPGA3发送至服务器2N。
步骤5:在待处理报文未命中FPGA3中的流表时,则需要利用软件模块对待处理报文进行分析处理,具体的,FPGA3可以根据哈希值映射第三端口,第三端口用于在CPU3和CPU4中确定一个目标CPU,例如:与第三端口相对应的目标CPU为CPU4。
步骤6:FPGA3将待处理报文传输至CPU4,而后可以利用CPU4中的流表直接对待处理报文进行转发操作,具体的,可以确定与待处理报文相对应的目标服务器,例如,在目标服务器为服务器2N时,可以将待处理报文由CPU4发送至服务器2N。
此外,在针对网卡池化系统中任一FPGA出现故障时,具体的,本实施例中的方法还可以包括:
步骤11:检测网卡池化系统中各个FPGA的运行状态;
通过物理机的下行通信链路的运行状态或者心跳机制来检测FPGA的运行状态,例如:在利用心跳机制来检测各个FPGA的运行状态时,若在预设时间段内获取到FPGA所返回的状态反馈信息,则确定FPGA处于正常状态;若在预设时间段内未获取到FPGA所返回的状态反馈信息,则确定FPGA处于异常状态。
步骤12:在FPGA出现故障或者处于升级状态的过程中,可以将该FPGA标记为故障标识;
步骤13:将具有故障标识的FPGA删除,以保证对待处理报文进行分析处理的质量和效率。
在FPGA出现故障或者处于升级状态的过程中,可以通知服务器/物理机上的CPU/SW, 并将具有故障标识的FPGA删除,使得后续的流量不再发送至FPGA进行分析处理, 并可以将在处理的报文丢弃,而后选择处于正常状态的通信链路对其他的报文进行分析处理,这样可以保证对报文进行分析处理的质量和效率。
在针对网卡池化系统中任一CPU出现故障时,具体的,本实施例中的方法还可以包括:
步骤21:检测网卡池化系统中各个CPU的运行状态;
其中,FPGA可以通过心跳机制来检测CPU的运行状态,具体的,在预设时间段内获取到CPU所返回的状态反馈信息时,则确定CPU处于正常状态;在预设时间段内未获取到CPU所返回的状态反馈信息时,则确定CPU处于异常状态。
步骤22:在CPU出现故障时,可以将处理报文转发至另一个处于正常状态的CPU,并可以将出现故障的CPU添加故障标识;
步骤23:将具有故障标识的CPU删除,以保证对待处理报文进行分析处理的质量和效率。
本应用实施例提供的技术方案,通过冗余设计的CPU和FPGA,有效地扩大了资源池,提升了资源利用率,降低了数据处理成本,并且使得可支持的服务器数量能够灵活增加,同时提升了系统的可用性;另外,由于本技术方案中的CPU和FPGA采用冗余设计方式,增加系统的可用性,在通信链路中的任意一个节点出现故障时,不会中断对报文进行分析处理的过程,并且使得系统的扩展性较高,具体可以根据设计需求灵活增加可支持的服务器数量;从而可以提升资源的利用率,有利于降低数据处理成本;此外,在网卡中的硬件模块的数量为至少两个时,通过交换机可以简化至少两个硬件模块所对应的网络布局布线,从而节省了网络走线成本,进一步提高了该技术方案使用的灵活可靠性,有利于市场的推广与应用。
图12为本申请实施例提供的一种报文处理装置的结构示意图;参考附图12所示,本实施例提供了一种报文处理装置,该报文处理装置用于执行上述图5所示的报文处理方法,具体实现时,该报文处理装置可以实现一网卡。具体的,该报文处理装置可以包括:
第一获取模块11,用于获取待处理报文;
第一确定模块12,用于确定用于对待处理报文进行转发处理的所有通信链路,所有通信链路互为冗余;
第一确定模块12,还用于在所有通信链路中,确定与待处理报文相对应的目标通信链路;
第一处理模块13,用于利用目标通信链路对所述待处理报文进行传输。
在一些实例中,在第一确定模块12在所有通信链路中,确定与待处理报文相对应的目标通信链路时,该第一确定模块12用于执行:获取与待处理报文相对应的哈希值;基于哈希值,在所有通信链路中确定目标通信链路。
在一些实例中,在第一确定模块12基于哈希值,在所有通信链路中确定目标通信链路时,该第一确定模块12用于执行:获取与所有通信链路相对应的至少两个交换机,至少两个交换机包括:用于与源节点通信连接的交换机、和/或用于与目标节点通信连接的交换机;基于哈希值,确定与待处理报文相对应的第一端口信息;在至少两个交换机中,将与第一端口信息相对应的交换机确定为目标交换机,目标交换机用于生成目标通信链路。
在一些实例中,在将与第一端口信息相对应的交换机确定为目标交换机之后,本实施例中的第一获取模块11、第一确定模块12和第一处理模块13还用于执行以下步骤:
第一获取模块11,用于获取与目标交换机通信连接的至少两个硬件模块;
第一确定模块12,用于通过目标交换机确定与待处理报文相对应的第二端口信息;
第一处理模块13,用于在至少两个硬件模块中,将与第二端口信息相对应的硬件模块确定为目标硬件模块,目标硬件模块和目标交换机用于生成目标通信链路。
在一些实例中,在第一获取模块11获取与目标交换机通信连接的至少两个硬件模块时,该第一获取模块11用于执行:获取与目标交换机通信连接的硬件模块的运行状态;在硬件模块处于异常状态时,则将处于异常状态的硬件模块删除,获得与目标交换机通信连接的至少两个硬件模块,至少两个硬件模块的运行状态均为正常状态。
在一些实例中,本实施例中的第一获取模块11和第一处理模块13还用于执行以下步骤:
第一获取模块11,用于获取目标通信链路中的目标硬件模块的运行状态;
第一处理模块13,用于在目标硬件模块处于异常状态时,则删除目标硬件模块所对应的通信链路。
在一些实例中,在将与第二端口信息相对应的硬件模块确定为目标硬件模块之后,本实施例中的第一获取模块11、第一确定模块12和第一处理模块13还用于执行以下步骤:
第一获取模块11,用于在待处理报文未命中目标硬件模块中的流表时,则获取与目标硬件模块通信连接的至少两个软件模块;
第一确定模块12,用于通过目标硬件模块,确定与待处理报文相对应的第三端口信息;
第一处理模块13,用于在至少两个软件模块中,将与第三端口信息相对应的软件模块确定为目标软件模块,目标软件模块、目标硬件模块和目标交换机用于生成目标通信链路。
在一些实例中,在第一获取模块11获取与目标硬件模块通信连接的至少两个软件模块时,该第一获取模块11用于执行:获取与目标硬件模块通信连接的软件模块的运行状态;在软件模块处于异常状态时,则将处于异常状态的软件模块删除,获得与目标硬件模块通信连接的至少两个软件模块,至少两个软件模块的运行状态均为正常状态。
在一些实例中,本实施例中的第一获取模块11和第一处理模块13还用于执行以下步骤:
第一获取模块11,用于获取目标通信链路中的目标软件模块的运行状态;
第一处理模块13,用于在目标软件模块处于异常状态时,则将目标软件模块更新为与目标硬件模块通信连接的其他任一处于正常状态的软件模块,并删除目标软件模块所对应的通信链路。
图12所示装置可以执行图5-图11所示实施例的方法,本实施例未详细描述的部分,可参考对图5-图11所示实施例的相关说明。该技术方案的执行过程和技术效果参见图5-图11所示实施例中的描述,在此不再赘述。
在一个可能的设计中,图12所示报文处理装置的结构可实现为一电子设备,该电子设备可以是手机、平板电脑、服务器等各种设备。如图13所示,该电子设备可以包括:第一处理器21和第一存储器22。第一存储器22用于存储相对应电子设备执行上述图5-图11所示实施例中提供的报文处理方法的程序,第一处理器21被配置为用于执行第一存储器22中存储的程序。
程序包括一条或多条计算机指令,一条或多条计算机指令被第一处理器21执行时能够实现如下步骤:获取待处理报文;确定用于对待处理报文进行转发处理的所有通信链路,所有通信链路互为冗余;在所有通信链路中,确定与待处理报文相对应的目标通信链路;利用目标通信链路对待处理报文进行传输。
进一步的,第一处理器21还用于执行前述图5-图11所示实施例中的全部或部分步骤。
其中,电子设备的结构中还可以包括第一通信接口23,用于电子设备与其他设备或通信网络通信。
另外,本发明实施例提供了一种计算机存储介质,用于储存电子设备所用的计算机软件指令,其包含用于执行上述图5-图11所示方法实施例中报文处理方法所涉及的程序。
此外,本发明实施例提供了一种计算机程序产品,包括:存储有计算机指令的计算机可读存储介质,当计算机指令被一个或多个处理器执行时,致使一个或多个处理器执行上述图5-图11所示方法实施例中报文处理方法中的步骤。
以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助加必需的通用硬件平台的方式来实现,当然也可以通过硬件和软件结合的方式来实现。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以计算机产品的形式体现出来,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程设备的处理器以产生一个机器,使得通过计算机或其他可编程设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器 (CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器 (RAM) 和/或非易失性内存等形式,如只读存储器 (ROM) 或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存 (PRAM)、静态随机存取存储器 (SRAM)、动态随机存取存储器 (DRAM)、其他类型的随机存取存储器 (RAM)、只读存储器 (ROM)、电可擦除可编程只读存储器 (EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘 (DVD) 或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体 (transitory media),如调制的数据信号和载波。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
Claims (14)
1.一种网卡,其特征在于,包括:
硬件模块,设置于物理机与一服务器之间,用于通过所包括的第一流表对所述物理机与所述服务器之间的报文进行转发处理;
软件模块,与所述硬件模块通信连接,用于在所述物理机与所述服务器之间的报文未命中所述第一流表时,通过所包括的第二流表对所述报文进行转发处理;
其中,所述硬件模块和所述软件模块中的至少之一的数量为至少两个,以在所述物理机与所述服务器之间生成用于对报文进行处理的至少两个互为冗余的通信链路。
2.根据权利要求1所述的网卡,其特征在于,在所述硬件模块的数量为至少两个时,至少两个硬件模块通过交换机与所述物理机通信连接。
3.一种报文处理方法,其特征在于,包括:
获取待处理报文;
确定用于对所述待处理报文进行转发处理的所有通信链路,所有通信链路互为冗余;
在所有通信链路中,确定与所述待处理报文相对应的目标通信链路;
利用所述目标通信链路对所述待处理报文进行传输。
4.根据权利要求3所述的方法,其特征在于,在所有通信链路中,确定与所述待处理报文相对应的目标通信链路,包括:
获取与所述待处理报文相对应的哈希值;
基于所述哈希值,在所有通信链路中确定所述目标通信链路。
5.根据权利要求4所述的方法,其特征在于,基于所述哈希值,在所有通信链路中确定所述目标通信链路,包括:
获取与所有通信链路相对应的至少两个交换机,所述至少两个交换机包括:用于与源节点通信连接的交换机、和/或用于与目标节点通信连接的交换机;
基于所述哈希值,确定与所述待处理报文相对应的第一端口信息;
在至少两个交换机中,将与所述第一端口信息相对应的交换机确定为目标交换机,所述目标交换机用于生成所述目标通信链路。
6.根据权利要求5所述的方法,其特征在于,在将与所述第一端口信息相对应的交换机确定为目标交换机之后,所述方法还包括:
获取与所述目标交换机通信连接的至少两个硬件模块;
通过所述目标交换机确定与所述待处理报文相对应的第二端口信息;
在至少两个硬件模块中,将与所述第二端口信息相对应的硬件模块确定为目标硬件模块,所述目标硬件模块和所述目标交换机用于生成所述目标通信链路。
7.根据权利要求6所述的方法,其特征在于,获取与所述目标交换机通信连接的至少两个硬件模块,包括:
获取与所述目标交换机通信连接的硬件模块的运行状态;
在所述硬件模块处于异常状态时,则将处于异常状态的硬件模块删除,获得与所述目标交换机通信连接的至少两个硬件模块,所述至少两个硬件模块的运行状态均为正常状态。
8.根据权利要求6所述的方法,其特征在于,所述方法还包括:
获取所述目标通信链路中的目标硬件模块的运行状态;
在所述目标硬件模块处于异常状态时,则删除所述目标硬件模块所对应的通信链路。
9.根据权利要求6所述的方法,其特征在于,在将与所述第二端口信息相对应的硬件模块确定为目标硬件模块之后,所述方法还包括:
在所述待处理报文未命中所述目标硬件模块中的流表时,则获取与所述目标硬件模块通信连接的至少两个软件模块;
通过所述目标硬件模块,确定与所述待处理报文相对应的第三端口信息;
在至少两个软件模块中,将与所述第三端口信息相对应的软件模块确定为目标软件模块,所述目标软件模块、目标硬件模块和所述目标交换机用于生成所述目标通信链路。
10.根据权利要求9所述的方法,其特征在于,获取与所述目标硬件模块通信连接的至少两个软件模块,包括:
获取与所述目标硬件模块通信连接的软件模块的运行状态;
在所述软件模块处于异常状态时,则将处于异常状态的软件模块删除,获得与所述目标硬件模块通信连接的至少两个软件模块,所述至少两个软件模块的运行状态均为正常状态。
11.根据权利要求9所述的方法,其特征在于,所述方法还包括:
获取所述目标通信链路中的目标软件模块的运行状态;
在所述目标软件模块处于异常状态时,则将所述目标软件模块更新为与所述目标硬件模块通信连接的其他任一处于正常状态的软件模块,并删除所述目标软件模块所对应的通信链路。
12.一种电子设备,其特征在于,包括:存储器、处理器;所述存储器用于存储一条或多条计算机指令,所述一条或多条计算机指令被所述处理器执行时实现如权利要求3-11中任意一项所述的报文处理方法。
13.一种计算机存储介质,其特征在于,用于储存计算机程序,所述计算机程序使计算机执行时实现如权利要求3-11中任意一项所述的报文处理方法。
14.一种计算机程序产品,其特征在于,包括:存储有计算机指令的计算机可读存储介质,当所述计算机指令被一个或多个处理器执行时,致使所述一个或多个处理器执行权利要求3-11中任意一项所述的报文处理方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111021847.4A CN113472700B (zh) | 2021-09-01 | 2021-09-01 | 报文处理方法、设备、存储介质及网卡 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111021847.4A CN113472700B (zh) | 2021-09-01 | 2021-09-01 | 报文处理方法、设备、存储介质及网卡 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113472700A true CN113472700A (zh) | 2021-10-01 |
CN113472700B CN113472700B (zh) | 2022-02-25 |
Family
ID=77868018
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111021847.4A Active CN113472700B (zh) | 2021-09-01 | 2021-09-01 | 报文处理方法、设备、存储介质及网卡 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113472700B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114036080A (zh) * | 2021-11-09 | 2022-02-11 | 许昌许继软件技术有限公司 | 一种显示终端使用通信串口升级程序的方法及装置 |
CN116074131A (zh) * | 2022-11-29 | 2023-05-05 | 阿里云计算有限公司 | 一种数据处理方法、智能网卡和电子设备 |
WO2024055523A1 (zh) * | 2022-09-15 | 2024-03-21 | 苏州元脑智能科技有限公司 | 一种报文转发方法、装置、设备及非易失性可读存储介质 |
CN118473835A (zh) * | 2024-07-15 | 2024-08-09 | 河南嵩山实验室产业研究院有限公司洛阳分公司 | 基于fpga的动态可重构系统的网络安全架构及实现方法 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140025826A1 (en) * | 2012-07-17 | 2014-01-23 | Huawei Technologies Co., Ltd. | Method and apparatus for creating network devices |
CN107528711A (zh) * | 2016-06-22 | 2017-12-29 | 华为技术有限公司 | 一种数据传输方法、装置以及网元 |
CN108170533A (zh) * | 2017-12-27 | 2018-06-15 | 杭州迪普科技股份有限公司 | 报文的处理方法及装置、计算机可读存储介质 |
CN109831341A (zh) * | 2019-03-19 | 2019-05-31 | 中国电子科技集团公司第三十六研究所 | 一种冗余双网卡的快速切换方法及装置 |
CN112737914A (zh) * | 2020-12-28 | 2021-04-30 | 北京天融信网络安全技术有限公司 | 报文处理方法、装置、网络设备及可读存储介质 |
CN112866111A (zh) * | 2019-11-28 | 2021-05-28 | 北京京东尚科信息技术有限公司 | 流表管理的方法和装置 |
CN113206793A (zh) * | 2021-03-15 | 2021-08-03 | 新华三信息安全技术有限公司 | 一种数据流转发方法及装置 |
CN113271245A (zh) * | 2021-05-21 | 2021-08-17 | 平安科技(深圳)有限公司 | 报文处理方法、装置、网卡及计算机可读存储介质 |
WO2021164398A1 (zh) * | 2020-02-20 | 2021-08-26 | 华为技术有限公司 | 报文处理系统、方法、机器可读存储介质以及程序产品 |
CN113326228A (zh) * | 2021-07-30 | 2021-08-31 | 阿里云计算有限公司 | 基于远程直接数据存储的报文转发方法、装置及设备 |
-
2021
- 2021-09-01 CN CN202111021847.4A patent/CN113472700B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140025826A1 (en) * | 2012-07-17 | 2014-01-23 | Huawei Technologies Co., Ltd. | Method and apparatus for creating network devices |
CN107528711A (zh) * | 2016-06-22 | 2017-12-29 | 华为技术有限公司 | 一种数据传输方法、装置以及网元 |
CN108170533A (zh) * | 2017-12-27 | 2018-06-15 | 杭州迪普科技股份有限公司 | 报文的处理方法及装置、计算机可读存储介质 |
CN109831341A (zh) * | 2019-03-19 | 2019-05-31 | 中国电子科技集团公司第三十六研究所 | 一种冗余双网卡的快速切换方法及装置 |
CN112866111A (zh) * | 2019-11-28 | 2021-05-28 | 北京京东尚科信息技术有限公司 | 流表管理的方法和装置 |
WO2021164398A1 (zh) * | 2020-02-20 | 2021-08-26 | 华为技术有限公司 | 报文处理系统、方法、机器可读存储介质以及程序产品 |
CN112737914A (zh) * | 2020-12-28 | 2021-04-30 | 北京天融信网络安全技术有限公司 | 报文处理方法、装置、网络设备及可读存储介质 |
CN113206793A (zh) * | 2021-03-15 | 2021-08-03 | 新华三信息安全技术有限公司 | 一种数据流转发方法及装置 |
CN113271245A (zh) * | 2021-05-21 | 2021-08-17 | 平安科技(深圳)有限公司 | 报文处理方法、装置、网卡及计算机可读存储介质 |
CN113326228A (zh) * | 2021-07-30 | 2021-08-31 | 阿里云计算有限公司 | 基于远程直接数据存储的报文转发方法、装置及设备 |
Non-Patent Citations (3)
Title |
---|
刘阳: "调度系统中双冗余网卡的设计", 《农村电气化》 * |
李婧等: "网络物理接口的冗余设计", 《科技风》 * |
汪晋宽、等: "《自动控制系统工程设计》", 30 September 2006 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114036080A (zh) * | 2021-11-09 | 2022-02-11 | 许昌许继软件技术有限公司 | 一种显示终端使用通信串口升级程序的方法及装置 |
WO2024055523A1 (zh) * | 2022-09-15 | 2024-03-21 | 苏州元脑智能科技有限公司 | 一种报文转发方法、装置、设备及非易失性可读存储介质 |
CN116074131A (zh) * | 2022-11-29 | 2023-05-05 | 阿里云计算有限公司 | 一种数据处理方法、智能网卡和电子设备 |
CN116074131B (zh) * | 2022-11-29 | 2024-09-20 | 阿里云计算有限公司 | 一种数据处理方法、智能网卡和电子设备 |
CN118473835A (zh) * | 2024-07-15 | 2024-08-09 | 河南嵩山实验室产业研究院有限公司洛阳分公司 | 基于fpga的动态可重构系统的网络安全架构及实现方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113472700B (zh) | 2022-02-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113472700B (zh) | 报文处理方法、设备、存储介质及网卡 | |
US10728175B2 (en) | Adaptive service chain management | |
CN108900353B (zh) | 故障告警方法及终端设备 | |
CN104247376B (zh) | 云存储的文件上传方法、客户端、应用服务器及云存储系统 | |
CN108289034B (zh) | 一种故障发现方法和装置 | |
US20200142788A1 (en) | Fault tolerant distributed system to monitor, recover and scale load balancers | |
CN108075934B (zh) | 一种网络质量监控方法、装置及系统 | |
US10686807B2 (en) | Intrusion detection system | |
CN107707628B (zh) | 用于传输数据处理请求的方法和装置 | |
JP2018503275A (ja) | アプリケーショントポロジ関係を探索するための方法、装置、およびシステム | |
US9710122B1 (en) | Customer support interface | |
CN113472900B (zh) | 报文处理方法、设备、存储介质及计算机程序产品 | |
CN110442610A (zh) | 负载均衡的方法、装置、计算设备以及介质 | |
US9626214B2 (en) | Establishing redundant connections for virtual machine | |
US9720755B2 (en) | Information processing device | |
CN110727942B (zh) | 用于恶意软件检测的存储器跟踪 | |
US20180054379A1 (en) | Technologies for simulating service degradation in a software defined network | |
US10402252B1 (en) | Alternative event reporting for peripheral devices | |
CN113687940B (zh) | 负载均衡方法、装置及物理机 | |
CN114640553A (zh) | 一种报文处理方法及装置 | |
CN110474787B (zh) | 一种节点故障检测方法和装置 | |
CN111435320B (zh) | 一种数据处理方法及其装置 | |
US20190141123A1 (en) | Non-transitory computer-readable storage medium, process distribution apparatus and process distribution method | |
CN114866398B (zh) | 网络故障诊断方法及装置 | |
US20230262146A1 (en) | Analyzing network data for debugging, performance, and identifying protocol violations using parallel multi-threaded processing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |