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

报文转发方法、装置、电子设备及存储介质

文献发布时间:2024-04-18 20:01:30


报文转发方法、装置、电子设备及存储介质

技术领域

本申请属于计算机技术领域,具体涉及一种报文转发方法、装置、电子设备及可读存储介质。

背景技术

在相关的技术中,对流量进行转发时,一般是完全通过软件进行处理,当软件接收到报文后,通过软件流表进行查询,然后进行软件快路处理,然后再将处理后的报文发送到对应的出接口。但由于都是软件处理,会导致转发报文的时间较长,且CPU的资源消耗较大。

发明内容

鉴于上述问题,本申请提出一种报文转发方法、装置、电子设备及存储介质,以实现改善上述问题。

第一方面,本申请实施例提供了一种报文转发方法,应用于第一网卡,所述方法包括:获取待发送报文;若确定存在与所述待发送报文匹配的硬件流表,基于所述硬件流表对所述待发送报文进行修改,得到修改后的待发送报文,其中,所述硬件流表存储于所述第一网卡的硬件芯片中;若确定所述修改后的待发送报文属于跨卡流量,将所述修改后的待发送报文发送至报文转发模块,以使所述报文转发模块根据预设出接口将所述修改后的待发送报文发送给第二网卡,其中,所述报文转发模块为第一网卡和第二网卡之外的软件模块,所述预设出接口为所述第二网卡的接口。

进一步的,所述若确定存在与所述待发送报文匹配的硬件流表,基于所述硬件流表对所述待发送报文进行修改,得到修改后的待发送报文,包括:若确定所述待发送报文的报文信息与所述硬件流表中的第一匹配规则匹配,则确定存在与所述待发送报文匹配的硬件流表;根据所述硬件流表中的第二匹配规则对所述待发送报文的报文信息进行修改,得到所述修改后的待发送报文,其中,第一匹配规则为确定待发送报文与硬件流表匹配的规则,第二匹配规则为第一网卡对待发送报文进行修改的规则。

进一步的,所述方法还包括:若确定所述修改后的待发送报文不属于跨卡流量,将所述修改后的待发送报文发送至所述第一网卡的预设出接口。

进一步的,所述方法还包括:若确定不存在与所述待发送报文匹配的硬件流表,将所述待发送报文发送至报文转发模块,以使所述报文转发模块在确定所述待发送报文信息不满足预设条件的情况下,根据网络设备对应的配置信息对所述待发送报文对应的报文信息进行修改,得到修改后的待发送报文,并根据所述预设出接口将所述修改后的待发送报文发送给所述第二网卡,其中,所述网络设备为包含所述第一网卡和所述第二网卡的设备。通过上述方法,确定不存在与待发送报文匹配的硬件流表后,第一网卡无法对待发送报文进行修改,则将待发送报文发送至报文转发模块,由报文转发模块对待发送报文进行修改,从而使修改后的待发送报文能成功发送到第二网卡中。

进一步的,所述方法还包括:若确定所述不存在与所述待发送报文匹配的硬件流表,将所述待发送报文发送至报文转发模块,以使所述报文转发模块在确定所述待发送报文信息满足预设条件的情况下,根据预设出接口将所述待发送报文发送至与所述预设出接口对应的目标网卡。

第二方面,本申请实施例提供了一种报文转发方法,应用于报文转发模块,所述方法包括:接收第一网卡发送的修改后的待发送报文,所述修改后的待发送报文为所述第一网卡基于与待发送报文匹配的硬件流表,对所述待发送报文进行修改得到;若确定所述修改后的待发送报文存在跨卡标记,通过预设出接口将所述修改后的待发送报文发送至所述第二网卡。

进一步的,所述方法还包括:接收待发送报文,所述待发送报文为第一网卡确定不存在与待发送报文匹配的硬件流表后发送;若确定所述待发送报文满足预设条件,对所述待发送报文进行数据操作,得到操作后的待发送报文;若确定所述操作后的待发送报文中不存在报文转发标记,将所述操作后的待发送报文下发至所述第一网卡,以使所述第一网卡基于所述操作后的待发送报文对原始硬件流表进行更新,得到硬件流表,其中,所述报文转发标记表征对所述待发送报文属于的报文流量中的报文进行转发过后设置的标记;通过预设出接口将所述操作后的待发送报文下发至所述预设出接口对应的目标网卡。通过上述方法,第一网卡根据接收到的操作后的待发送报文确定硬件流表,若之后第一网卡再接收到待发送报文,则可以根据确定的硬件流表对接收到的待发送报文进行修改,从而使报文转发模块在之后也能准确地将修改后的待发送报文发送至目标网卡。

进一步的,所述若确定所述待发送报文满足预设条件,对所述待发送报文进行数据操作,得到操作后的待发送报文,包括:若确定所述待发送报文不存在跨卡标记,且不存在与所述待发送报文匹配的软件流表,确定所述待发送报文满足预设条件;对所述待发送报文进行慢路径处理,其中,慢路径处理为基于所述报文信息创建原始软件流表,并确定所述待发送报文对应的预设出接口,所述软件流表存储于所述报文转发模块的内存中;对所述慢路径处理后的待发送报文进行快路径处理,得到所述操作后的待发送报文,其中,快路径处理为根据网络设备对应的配置信息对所述慢路径处理后的待发送报文进行修改,并基于修改后的所述慢路径处理后的待发送报文对所述原始软件流表进行更新,得到所述软件流表。通过上述方法,根据修改后的待发送报文确定了软件流表,使得在之后再对待发送报文进行处理时,就存在与待发送报文匹配的软件流表,使得在确定存在与待发送报文匹配的软件流表后,可以直接对待发送报文进行快路径处理,从而加快了对待发送报文转发的速度。

进一步的,所述若确定所述操作后的待发送报文中不存在报文转发标记,将所述操作后的待发送报文下发至所述第一网卡,以使所述第一网卡基于所述操作后的待发送报文对原始硬件流表进行更新,得到硬件流表,包括:若确定所述操作后的待发送报文中不存在报文转发标记,提取软件流表中包括的第一匹配规则以及第二匹配规则,其中,所述软件流表位于所述操作后的待发送报文中,所述第一匹配规则以及所述第二匹配规则基于所述数据操作确定;将提取出的所述第一匹配规则以及所述第二匹配规则下发至所述第一网卡,以使所述第一网卡基于所述第一匹配规则以及所述第二匹配规则对所述原始硬件流表进行更新,得到所述硬件流表。

第三方面,本申请实施例提供了一种报文转发装置,运行于第一网卡,所述装置包括:待发送报文获取单元、待发送报文修改单元以及待发送报文发送单元。待发送报文获取单元,用于获取待发送报文;待发送报文修改单元,用于若确定存在与所述待发送报文匹配的硬件流表,基于所述硬件流表对所述待发送报文进行修改,得到修改后的待发送报文,其中,所述硬件流表存储于所述第一网卡的硬件芯片中;待发送报文发送单元,用于若确定所述修改后的待发送报文属于跨卡流量,将所述修改后的待发送报文发送至报文转发模块,以使所述报文转发模块根据预设出接口将所述修改后的待发送报文发送给第二网卡,其中,所述报文转发模块为第一网卡和第二网卡之外的软件模块,所述预设出接口为所述第二网卡的接口。

第四方面,本申请实施例提供了一种报文转发装置,运行于报文转发模块,所述装置包括:待发送报文接收单元以及待发送报文转发单元。待发送报文接收单元,用于接收第一网卡发送的修改后的待发送报文,所述修改后的待发送报文为所述第一网卡基于与待发送报文匹配的硬件流表,对所述待发送报文进行修改得到;待发送报文转发单元,用于若确定所述修改后的待发送报文存在跨卡标记,通过预设出接口将所述修改后的待发送报文发送至所述第二网卡。

第五方面,本申请实施例提供了一种电子设备,包括一个或多个处理器以及存储器;一个或多个程序,其中所述一个或多个程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序配置用于执行上述的方法。

第六方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有程序代码,其中,在所述程序代码运行时执行上述的方法。

本申请实施例提供了一种报文转发方法、装置、电子设备及存储介质。首先对获取到的待发送报文进行修改,并判断修改后的待发送报文是否属于跨卡流量,若确定修改后的待发送报文属于跨卡流量,再将修改后的待发送报文发送至报文转发模块,由报文转发模块将接收到的修改后的待发送报文根据预设出接口发送到第二网卡中。通过上述方法,通过在确定修改后的待发送报文属于跨卡流量后,由报文转发模块将修改后的待发送报文发送至预设出接口,避免了报文转发模块对修改后的报文进行过多的处理,减少了软件处理时CPU消耗过大的问题,提高了资源利用率。

附图说明

为了更加清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见的,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1示出了本申请一实施例提出的一种报文转发方法的流程图;

图2示出了本申请一实施例提出的一种报文转发方法的应用场景图;

图3示出了本申请一实施例提出的一种报文转发方法的应用场景图;

图4示出了本申请另一实施例提出的一种报文转发方法的流程图;

图5示出了本申请再一实施例提出的一种报文转发方法的流程图;

图6示出了本申请另一实施例提出的一种报文转发方法的流程图;

图7示出了本申请另一实施例提出的一种报文转发方法的流程图;

图8示出了本申请再一实施例提出的一种报文转发方法的流程图;

图9示出了本申请再一实施例提出的一种报文转发方法的流程图;

图10示出了本申请再一实施例提出的一种报文转发方法的工作流程图;

图11示出了本申请再一实施例提出的一种报文转发方法的工作流程图;

图12示出了本申请再一实施例提出的一种报文转发装置的结构框图;

图13示出了本申请再一实施例提出的一种报文转发装置的结构框图;

图14示出了本申请实时中的用于执行本申请实施例的报文转发方法的电子设备的结构框图;

图15示出了本申请实时中的用于保存或者携带实现根据本申请实施例的报文转发方法的程序代码的存储单元。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应当理解这样使用的数据在适当的情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含,例如,包含一系列步骤或单元的过程、方法、系统、产品或服务器不必限于清楚列出的那些步骤或单元,二是可包括没有清楚地列出地或对于这些过程、方法、产品或设备固有的其它步骤或单元。

在通过网卡将接收到的报文进行转发时,一般会由网卡先将报文发送到软件端,由软件端负责将网卡上送的报文发送到出接口上。

发明人在对相关的报文转发方法的研究中发现,相关的报文转发方法,一般是当软件接收到报文后,通过软件流表查询出接口,然后进行软件快路处理,然后再将报文发送到对应的出接口。但由于都是软件处理,导致转发报文的时间较长,且CPU的资源消耗较大。

因此,发明人提出了本申请实施例中的报文转发方法、装置、电子设备以及存储介质。首先获取待发送报文,若确定存在与所述待发送报文匹配的硬件流表,基于所述硬件流表对所述待发送报文进行修改,得到修改后的待发送报文,其中,所述硬件流表存储于所述第一网卡的硬件芯片中,若确定所述修改后的待发送报文属于跨卡流量,将所述修改后的待发送报文发送至报文转发模块,以使所述报文转发模块根据预设出接口将所述修改后的待发送报文发送给第二网卡,其中,所述报文转发模块为第一网卡和第二网卡之外的软件模块,所述预设出接口为所述第二网卡的接口。通过上述方法,通过在确定修改后的待发送报文属于跨卡流量后,由报文转发模块将修改后的待发送报文发送至预设出接口,避免了报文转发模块对修改后的报文进行过多的处理,减少了软件处理时CPU消耗过大的问题,提高了资源利用率。

下面将结合附图具体描述本申请的各实施例。

请参阅图1,本申请实施例提供了一种报文转发方法,应用于第一网卡,所述方法包括:

步骤S110:获取待发送报文。

在本申请实施例中,第一网卡中存在两个接口,分别为第一接口和第二接口,当存在电子设备向第一网卡发送待发送报文时,由第一网卡中的入接口对电子设备发送的待发送报文进行接收。其中,第一网卡用于表征接收电子设备发送的待发送报文的网卡,待发送报文用于表征需要第一网卡进行转发的报文,待发送报文可以包括至少一个报文序列,一个报文序列中包括至少一个报文;入接口用于表征在第一网卡中接收电子设备发送的报文的接口。

作为一种方式,当电子设备与网卡建立通信连接后,电子设备可以向网卡传输报文,并由网卡接收电子设备传输的报文。其中,电子设备可以为计算机、智能手机以及平板电脑,在此不做具体限定。

作为一种方式,电子设备可以通过网线的方式与第一网卡建立通信连接。电子设备中的报文发送接口通过网线与第一网卡中的入接口进行连接,使得电子设备可以将待发送报文发送至报文发送接口,由报文发送接口通过网线将接收到的待发送报文传输到第一网卡中的入接口,从而使得第一网卡通过入接口接收到电子设备发送的待发送报文。

作为一种方式,电子设备可以与第一网卡建立无线通信连接,该无线通信连接可以包括蓝牙连接、WIFI连接等,在此不做具体限定。在电子设备与第一网卡建立无线通信连接后,第一网卡即可获取电子设备无线传输的待发送报文。

步骤S120:若确定存在与所述待发送报文匹配的硬件流表,基于所述硬件流表对所述待发送报文进行修改,得到修改后的待发送报文,其中,所述硬件流表存储于所述第一网卡的硬件芯片中。

在本申请实施例中,硬件流表为网卡中的会话控制信息,网卡中的会话控制信息包括了与待发送报文进行匹配的报文匹配信息以及对待发送报文进行修改的报文修改动作信息。在第一网卡接收到待发送报文后,在第一网卡的硬件芯片中的内存中查询存储的硬件流表,并判断查询到的硬件流表中是否存在与待发送报文匹配的硬件流表。在查询到第一网卡的内存中存在与待发送报文匹配的硬件流表后,根据与待发送报文匹配的硬件流表对该待发送报文信息进行修改,从而得到修改后的待发送报文。其中,内存中可以存储一个或多个硬件流表,若刚安装该第一网卡,则第一网卡中不存在硬件流表。

作为一种方式,当第一网卡第一次接收到待发送报文时,硬件芯片中不存在与该待发送报文匹配的硬件流表。在对该待发送报文中的第一个报文进行转发时,第一网卡会根据接收到的与该报文匹配的规则生成与该待发送报文匹配的硬件流表。在第一网卡根据该待发送报文中的第一个报文创建与该待发送报文匹配的硬件流表后,该待发送报文的第一个报文的后续报文都与该硬件流表匹配。第一网卡每创建一个硬件流表,就可以根据该硬件流表创建的时间,将该硬件流表存储在硬件芯片中的内存中,得到包含多个硬件流表的硬件流表队列。

当第一网卡需要对报文进行匹配时,将该报文与硬件流表队列中的多个硬件流表依次进行匹配,直至确定与该报文匹配的硬件流表,或者直至查询完该硬件流表队列仍无匹配的硬件流表,则在硬件流表队列中不存在与该报文匹配的硬件流表的情况下,在对该报文进行转发时创建原始硬件流表,并将创建的原始硬件流表插入到硬件流表队列的尾端,在原始硬件流表中不包括任何信息。其中,硬件流表队列用于表征记录有多个硬件流表的队列。

步骤S130:若确定所述修改后的待发送报文属于跨卡流量,将所述修改后的待发送报文发送至报文转发模块,以使所述报文转发模块根据预设出接口将所述修改后的待发送报文发送给第二网卡,其中,所述报文转发模块为第一网卡和第二网卡之外的软件模块,所述预设出接口为所述第二网卡的接口。

在本申请实施例中,待发送报文的预设出接口的位置信息位于与该待发送报文匹配的硬件流表中,通过预设出接口的位置信息,可以确定待发送报文对应的预设出接口位于第一网卡还是第二网卡。在对待发送报文进行修改后,在硬件流表中查询修改后的待发送报文对应的预设出接口的位置信息,从而确定将修改后的待发送报文发送至第一网卡或第二网卡,若确定该修改后的待发送报文的预设出接口的位置不属于第一网卡,则确定修改后的待发送报文属于跨卡流量。在确定修改后的待发送报文属于跨卡流量后,将修改后的待发送报文上送到报文转发模块,从而使得报文转发模块接收到修改后的待发送报文后,将修改后的待发送报文通过预设出接口发送到第二网卡中。其中,报文转发模块用于表征对报文进行转发的软件,跨卡流量用于表征该流量中的多个报文对应的预设出接口的位置均为非入接口对应的网卡,入接口为用于接收电子设备发送的报文的网卡接口。其中,报文转发模块为对待发送报文进行处理并转发的软件程序,该报文转发模块位于网络设备中,该网络设备中还包括有第一网卡和第二网卡,其中,网络设备可以为防火墙。

作为一种方式,可以通过判断第一网卡中的硬件流表中的标签判断待发送报文是否属于跨卡流量。在待发送报文对应的入接口为第一网卡的情况下,当报文转发模块确定了待发送报文中的第一个报文对应的预设出接口,并根据预设出接口进行转发时,会将预设出接口对应的接口信息发送至第一网卡,当第一网卡接收到接口信息后,根据接口信息确定该报文对应的预设出接口的位置是第一网卡还是第二网卡,并根据预设出接口的位置创建标签,若该报文的预设出接口的位置为第一网卡,则在与该报文对应的硬件流表中创建非跨卡标签;若该报文的预设出接口的位置为第二网卡,则在与该报文对应的硬件流表中创建跨卡标签。在对该流量中的第一个报文转发完成,并对该待发送报文中的第一个报文的后续报文进行转发时,根据对应的硬件流表中的标签是跨卡标签,还是非跨卡标签,确定该报文是否属于跨卡流量。其中,跨卡标签用于表征报文对应的流量为跨卡流量,非跨卡标签用于表征报文对应的流量为非跨卡流量,接口信息用于表征预设出接所属位置的信息。

作为一种方式,如图2以及图3所示,第一网卡和第二网卡位于网络设备中。若第一网卡和第二网卡均为智能网卡,则报文可以双向转发,即第一网卡可以将接收到的待发送报文转发到第二网卡,第二网卡也可以将接收到的待发送报文转发到第一网卡,报文的双向转发可以同时进行;若第一网卡为智能网卡,第二网卡为非智能网卡,则报文只能单向转发,即第一网卡可以将接收到的待发送报文转发到第二网卡,而第二网卡不能将接收到的待发送报文转发到第一网卡。其中,智能网卡为灵活可编程的网卡,非智能网卡为不可编程的网卡。

本申请实施例提供了一种报文转发方法,应用于第一网卡,首先获取待发送报文,若确定存在与待发送报文匹配的硬件流表,基于硬件流表对待发送报文进行修改,得到修改后的待发送报文,其中,硬件流表存储于第一网卡的硬件芯片中,若确定修改后的待发送报文属于跨卡流量,将修改后的待发送报文发送至报文转发模块,以使报文转发模块根据预设出接口将修改后的待发送报文发送给第二网卡,其中,报文转发模块为第一网卡和第二网卡之外的软件模块,预设出接口为第二网卡的接口。通过上述方法,通过在确定修改后的待发送报文属于跨卡流量后,由报文转发模块将修改后的待发送报文发送至预设出接口,避免了报文转发模块对修改后的报文进行过多的处理,减少了软件处理时CPU消耗过大的问题,提高了资源利用率。

请参阅图4,本申请实施例提供了一种报文转发方法,应用于第一网卡,所述方法包括:

步骤S210:获取待发送报文。

步骤S210具体可以参考上述实施例中的详细解释,故不在本实施例中进行赘述。

步骤S220:若确定所述待发送报文的报文信息与所述硬件流表中的第一匹配规则匹配,则确定存在与所述待发送报文匹配的硬件流表。

在本申请实施例中,待发送报文包括报文头和数据部分,报文头可以包括源端口、目的端口、源IP以及目的IP,数据部分包括需要发送的数据。当获取到待发送报文后,确定待发送报文对应的报文五元组信息作为待发送报文的报文信息,并将报文五元组信息与硬件芯片中存储的多个硬件流表各自对应的第一匹配规则依次进行匹配,若确定多个硬件流表各自对应的第一匹配规则中存在与报文五元组信息匹配的第一匹配规则,则确定该第一匹配规则对应的硬件流表为与该待发送报文匹配的硬件流表。其中,报文五元组信息,包括:源端口、目的端口、源IP、目的IP以及传输层协议,第一匹配规则为用于确定待发送报文与硬件流表匹配的规则。

作为一种方式,可以根据硬件流表中包括的字段确定该硬件流表是否与待发送报文匹配。例如,硬件流表的第一匹配规则中包括基础字段、匹配字段和动作字段三部分,在基础字段、匹配字段和动作字段中又有多个字段。根据待发送报文的报文五元组信息与第一匹配规则的匹配字段进行匹配,若确定匹配字段中与报文五元组信息相关的字段与报文五元组信息相同,则确定待发送报文的报文信息与硬件流表的第一匹配规则匹配,即确定待发送报文与硬件流表匹配。例如,待发送报文的报文五元组信息为源IP:1.1.1.1,目的IP:3.3.3.3,源端口:80,目的端口:80,协议号:6;第一匹配规则中的匹配字段分别为匹配源IP字段:1.1.1.1,匹配目的IP字段:3.3.3.3,匹配源端口字段:80,匹配目的端口字段:80,匹配协议号字段:6,其中,源IP对应于匹配源IP字段,目的IP对应于匹配目的IP字段,源端口对应于匹配源端口字段,目的端口对应于匹配目的端口字段,协议号对应于匹配协议号字段,则确定待发送报文的报文五元组信息与硬件流表的第一匹配规则匹配,即确定待发送报文与硬件流表匹配。

步骤S230:根据所述硬件流表中的第二匹配规则对所述待发送报文的报文信息进行修改,得到所述修改后的待发送报文,其中,第一匹配规则为确定待发送报文与硬件流表匹配的规则,第二匹配规则为第一网卡对待发送报文进行修改的规则。

在本申请实施例中,在确定待发送报文与硬件流表的第一匹配规则匹配后,根据硬件流表中的第二匹配规则对待发送报文信息进行处理,从而得到处理后的待发送报文。其中,处理可以包括修改MAC、修改IP、添加VLAN、修改出接口等,在此不做具体限定。

作为一种方式,待发送报文根据硬件流表的第一匹配规则中包括的匹配字段对报文信息进行匹配后,可以根据第二匹配规则中包括的动作字段对报文信息进行修改,从而得到修改后的待发送报文。例如,动作字段为修改源MAC 00:00:00:00:00:03,修改目的MAC00:00:00:00:01:02,则相应将待发送报文的源MAC修改为00:00:00:00:00:03,将待发送报文的目的MAC修改为00:00:00:00:01:02。

步骤S240:判断所述修改后的待发送报文是否属于跨卡流量,若属于,则执行步骤S250;若不属于,则执行步骤S260。

步骤S250:若确定所述修改后的待发送报文属于跨卡流量,将所述修改后的待发送报文发送至报文转发模块,以使所述报文转发模块根据预设出接口将所述修改后的待发送报文发送给第二网卡,其中,所述报文转发模块为第一网卡和第二网卡之外的软件模块,所述预设出接口为所述第二网卡的接口。

在本申请实施例中,在根据硬件流表对待发送报文修改完成后,查询该硬件流表中该待发送报文对应的预设出接口,若确定预设出接口不是位于第一网卡中的接口,则确定修改后的待发送报文属于跨卡流量,将查询到的待发送报文对应的预设出接口的信息在该待发送报文的报文头中进行设置,并将修改后的待发送报文发送至第一网卡和第二网课之外的报文转发模块,由报文转发模块根据接收到的修改后的待发送报文的报文头中的预设出接口的信息,确定将修改后的待发送报文转发到第二网卡中的预设出接口中。

步骤S260:若确定所述修改后的待发送报文不属于跨卡流量,将所述修改后的待发送报文发送至所述第一网卡的预设出接口。

在本申请实施例中,在根据硬件流表对待发送报文修改完成后,查询该硬件流表中该待发送报文对应的预设出接口,若确定预设出接口是位于第一网卡中的接口,则确定修改后的待发送报文不属于跨卡流量,则直接通过硬件芯片将修改后的待发送报文发送至第一网卡中的预设出接口中。

示例性的,步骤S210-步骤S260可以如图5所示,当第一网卡的入接口接收到待发送报文后,首先查询硬件芯片的内存中是否存在于接收到的待发送报文匹配的硬件流表,若未查询到,则直接将待发送报文发送至报文转发模块;若查询到存在于待发送报文匹配的硬件流表,则根据查询的硬件流表中的第二匹配规则对待发送报文进行修改,并判断修改后的待发送报文中是否属于跨卡流量,若不属于跨卡流量,则表明该修改后的待发送报文对应的预设出接口为第一网卡中的另一个接口,由硬件芯片直接将修改后的待发送报文发送到第一网卡中的预设出接口;若属于跨卡流量,则表明该修改后的待发送报文对应的预设出接口为第二网卡中的接口,由第一网卡将修改后的待发送报文发送至报文转发模块,由报文转发模块对接收到的修改后的待发送报文进行转发处理。

本申请实施例提供的一种报文转发方法,应用于第一网卡,首先获取待发送报文,然后若确定待发送报文的报文信息与硬件流表中的第一匹配规则匹配,则确定存在与待发送报文匹配的硬件流表,再根据硬件流表中的第二匹配规则对待发送报文的报文信息进行修改,得到修改后的待发送报文,其中,第一匹配规则为确定待发送报文与硬件流表匹配的规则,第二匹配规则为第一网卡对待发送报文进行修改的规则,然后判断修改后的大发送报文是否属于跨卡流量,若属于,则将修改后的待发送报文发送至报文转发模块,以使报文转发模块根据预设出接口将修改后的待发送报文发送给第二网卡,其中,报文转发模块为第一网卡和第二网卡之外的软件模块,预设出接口为第二网卡的接口;若不属于,则将修改后的待发送报文发送至第一网卡的预设出接口。通过上述方法,通过确定待发送报文与硬件流表匹配,且根据硬件流表修改后的待发送报文属于跨卡流量,确定修改后的待发送报文的预设出接口位于第二网卡,由报文转发模块直接将修改后的待发送报文发送到预设出接口,减少软件处理时CPU消耗过大的问题,提高资源利用率。

请参阅图6,本申请实施例提供了一种报文转发方法,应用于第一网卡,所述方法包括:

步骤S310:获取待发送报文。

步骤S310具体可以参考上述实施例中的详细解释,故不在本实施例中进行赘述。

步骤S320:判断是否存在于所述待发送报文匹配的硬件流表,若不存在,则执行步骤S330;若存在,则执行步骤S340。

步骤S330:若确定不存在与所述待发送报文匹配的硬件流表,将所述待发送报文发送至报文转发模块,以使所述报文转发模块在确定所述待发送报文信息不满足预设条件的情况下,根据网络设备对应的配置信息对所述待发送报文对应的报文信息进行修改,得到修改后的待发送报文,并根据所述预设出接口将所述修改后的待发送报文发送给所述第二网卡,其中,所述网络设备为包含所述第一网卡和所述第二网卡的设备。

在本申请实施例中,当待发送报文中的报文的传输速度很快时,可能存在待发送报文中的第一个报文已经转发完成,而第一网卡还未根据接收到的第一匹配规则和第二匹配规则创建硬件流表的情况。因此,在确定不存在与待发送报文匹配的硬件流表时,直接将待发送报文上送至报文转发模块,报文转发模块判断此时待发送报文不满足预设条件,从而根据网络设备对应的配置信息对待发送报文进行修改,从而得到修改后的待发送报文。并将修改后的待发送报文通过预设出接口发送至第二网卡中。

示例性的,若报文转发模块接收到的待发送报文中包括的源MAC为00:00:00:00:01:01,目的MAC为00:00:00:00:01:01,其中,源MAC为与入接口连接的电子设备对应的MAC,目的MAC为第一网卡中的入接口对应的MAC。在报文转发模块接收到该待发送报文后,根据ARP(地址解析协议,Address Resolution Protocol)请求确定目的IP对应的MAC,目的IP对应的MAC为00:00:00:00:01:02,同时确定预设出接口对应的MAC,预设出接口对应的MAC为00:00:00:00:00:03,从而将待发送报文的源MAC修改为预设出接口对应的MAC,将待发送报文对应的目的MAC修改为目的IP对应的MAC,即修改后的源MAC为00:00:00:00:00:03,修改后的目的MAC为00:00:00:00:01:02。

步骤S340:根据所述硬件流表中的第二匹配规则对所述待发送报文的报文信息进行修改,得到所述修改后的待发送报文,其中,第一匹配规则为确定待发送报文与硬件流表匹配的规则,第二匹配规则为第一网卡对待发送报文进行修改的规则。

步骤S350:判断所述修改后的待发送报文是否属于跨卡流量,若属于,则执行步骤S360;若不属于,则执行步骤S370。

步骤S360:若确定所述修改后的待发送报文属于跨卡流量,将所述修改后的待发送报文发送至报文转发模块,以使所述报文转发模块根据预设出接口将所述修改后的待发送报文发送给第二网卡,其中,所述报文转发模块为第一网卡和第二网卡之外的软件模块,所述预设出接口为所述第二网卡的接口。

步骤S370:若确定所述修改后的待发送报文不属于跨卡流量,将所述修改后的待发送报文发送至所述第一网卡的预设出接口。

步骤S340-步骤S370具体可以参考上述实施例中的详细解释,故不在本实施例中进行赘述。

本申请实施例提供的一种报文转发方法,应用于第一网卡,首先在获取待发送报文之后判断是否存在于待发送报文匹配的硬件流表,若不存在,则将待发送报文发送至报文转发模块,由报文转发模块在不满足预设条件的情况下对待发送报文的报文信息进行修改,并将修改后的待发送报文发送至第二网卡;若存在,则根据第二匹配规则对待发送报文进行修改,并判断修改后的待发送报文是否属于跨卡流量,若属于,则将修改后的待发送发送至报文转发模块,由报文转发模块根据预设出接口直接将修改后的待发送报文发送至第二网卡;若不属于,则将修改后的待发送报文发送至第一网卡中的预设出接口。通过上述方法,通过在确定与待发送报文匹配的硬件流表,并根据硬件流表对待发送报文进行修改后,同时确定该待发送报文属于跨卡流量,通过报文转发模块将修改后的待发送报文发送至第二网卡,从而减少软件处理时CPU消耗过大的问题,提高资源利用率。

请参阅图7,本申请实施例提供了一种报文转发方法,应用于第一网卡,所述方法包括:

步骤S410:获取待发送报文。

步骤S410具体可以参考上述实施例中的详细解释,故不在本实施例中进行赘述。

步骤S420:若确定所述不存在与所述待发送报文匹配的硬件流表,将所述待发送报文发送至报文转发模块,以使所述报文转发模块在确定所述待发送报文信息满足预设条件的情况下,根据预设出接口将所述待发送报文发送至与所述预设出接口对应的目标网卡。

在本申请实施例中,预设条件为确定待发送报文中不存在跨卡标记,且报文转发模块中不存在与该待发送报文匹配的软件流表。当确定不存在于待发送报文匹配的硬件流表时,则确定第一网卡第一次接收该待发送报文,此时第一网卡还未创建于该待发送报文匹配的硬件流表。当第一网卡接收到待发送报文后,在硬件芯片中的内存中查询存储的硬件流表中是否存在与接收到的待发送报文匹配的硬件流表,若确定在内存中未查询到与待发送报文匹配的硬件流表,且判断待发送报文满足预设条件,在确定待发送报文对应的预设出接口后,根据预设出接口将待发送报文发送至与预设出接口对应的目标网卡,并创建一个原始硬件流表,此时该原始硬件流表中不包括任何数据。其中,若确定预设出接口位于第一网卡中,则目标网卡为第一网卡;若确定预设出接口位于第二网卡中,则目标网卡为第二网卡。

本申请实施例提供的一种报文转发方法,应用于第一网卡,在确定不存在与接收到的待发送报文匹配的硬件流表的情况下,将待发送报文发送至报文转发模块中,由报文转发模块在确定待发送报文满足预设条件的情况下,将待发送报文发送至与预设出接口对应的目标网卡中。使得在不存在与待发送报文匹配的硬件流表的情况下,由报文转发模块确定预设出接口,从而能成功将待发送报文发送至第二网卡。

请参阅图8,本申请实施例提供了一种报文转发方法,应用于报文转发模块,所述方法包括:

步骤S510:接收第一网卡发送的修改后的待发送报文,所述修改后的待发送报文为所述第一网卡基于与待发送报文匹配的硬件流表,对所述待发送报文进行修改得到。

在本申请实施例中,当第一网卡根据与待发送报文匹配的硬件流表对待发送报文进行修改,得到修改后的待发送报文后,将修改后的待发送报文上报到报文转发模块中,由报文转发模块接收该修改后的待发送报文。

步骤S520:若确定所述修改后的待发送报文存在跨卡标记,通过预设出接口将所述修改后的待发送报文发送至所述第二网卡。

在本申请实施例中,当第一网卡根据硬件流表确定修改后的待发送报文对应的预设出接口位于第二网卡时,则为修改后的待发送报文添加跨卡标记;若确定修改后的待发送报文对应的预设出接口位于第二网卡,则不为修改后的待发送报文添加跨卡标记。若确定修改后的待发送报文存在跨卡标记,则确定预设出接口位于第二网卡中,因此直接通过预设出接口将修改后的待发送报文发送给至第二网卡,从而减少了报文转发模块对报文的处理时间,降低了CPU的消耗。

本申请实施例提供的一种报文转发方法,应用于报文转发模块,首先接收第一网卡发送的修改后的待发送报文,修改后的待发送报文为第一网卡基于与待发送报文匹配的硬件流表,对待发送报文进行修改得到,若确定修改后的待发送报文存在跨卡标记,通过预设出接口将修改后的待发送报文发送至第二网卡。通过上述方法,通过由报文转发模块根据预设出接口将接收到的修改后的待发送报文直接发送到第二网卡中,减少软件处理时CPU消耗过大的问题,提高资源利用率。

请参阅图9,本申请实施例提供了一种报文转发方法,应用于报文转发模块,所述方法包括:

步骤S610:接收待发送报文,所述待发送报文为第一网卡确定不存在与待发送报文匹配的硬件流表后发送。

在本申请实施例中,当第一网卡确定不存在与待发送报文匹配的硬件流表后,向报文转发模块发送该待发送报文,从而使报文转发模块接收该待发送报文。

步骤S620:若确定所述待发送报文满足预设条件,对所述待发送报文进行数据操作,得到操作后的待发送报文。

步骤S630:若确定所述操作后的待发送报文中不存在报文转发标记,将所述操作后的待发送报文下发至所述第一网卡,以使所述第一网卡基于所述操作后的待发送报文对原始硬件流表进行更新,得到硬件流表,其中,所述报文转发标记表征对所述待发送报文属于的报文流量中的报文进行转发过后设置的标记。

在本申请实施例中,若报文转发模块确定操作后的待转发报文中不存在报文转发标记,则确定操作后的待发送报文中包括的待发送报文为所属报文流量中的第一个报文,并将操作后的待发送报文下发到第一网卡中。在第一网卡接收到操作后的待发送报文后,根据操作后的待发送报文对原始硬件流表进行更新,从而得到硬件流表。其中,原始硬件流表为网卡创建的不包括匹配规则的流表。

步骤S640:通过预设出接口将所述操作后的待发送报文下发至所述预设出接口对应的目标网卡。

在本申请实施例中,在进行数据操作时,可以确定操作后的待发送报文对应的预设出接口,从而使报文转发模块通过确定的预设出接口将操作后的待发送报文下发到与预设出接口对应的目标网卡中。

本申请实施例提供的一种报文转发方法,应用于报文转发模块,首先接收待发送报文,待发送报文为第一网卡确定不存在与待发送报文匹配的硬件流表后发送,若确定待发送报文满足预设条件,对待发送报文进行数据操作,得到操作后的待发送报文,若确定操作后的待发送报文中不存在报文转发标记,将操作后的待发送报文下发至所述第一网卡,以使第一网卡基于操作后的待发送报文对原始硬件流表进行更新,得到硬件流表,其中,报文转发标记表征对待发送报文属于的报文流量中的报文进行转发过后设置的标记,然后通过预设出接口将操作后的待发送报文下发至所述预设出接口对应的目标网卡,通过上述方法,通过根据操作后的待发送报文确定硬件流表,使得对后续的待发送报文进行处理时能加快转发速度。

请参阅图10,本申请实施例提供了一种报文转发方法,应用于报文转发模块,所述方法包括:

步骤S710:接收待发送报文,所述待发送报文为第一网卡确定不存在与待发送报文匹配的硬件流表后发送。

步骤S720:若确定所述待发送报文不存在跨卡标记,且不存在与所述待发送报文匹配的软件流表,确定所述待发送报文满足预设条件。

在本申请实施例中,软件流表为报文转发模块中的会话控制信息,报文转发模块中的会话控制信息包括了与待发送报文进行匹配的报文匹配信息。在接收到待发送报文后,检查接收到的待发送报文的报文头中是否包括了跨卡标记,若确定待发送报文的报文头中不存在跨卡标记,再检查报文转发模块的内存中包括的软件流表中是否有与待发送报文匹配的软件流表,若同时确定在报文转发模块的内存中也不存在与待发送报文匹配的软件流表,则确定该待发送报文满足预设条件。

作为一种方式,报文转发模块每创建一个软件流表,则将创建的软件流表根据创建的时间依次存储到报文转发模块的内存中,得到软件流表队列。当报文转发模块对待发送报文进行软件流表的匹配时,根据软件流表队列中的多个软件流表依次对待发送报文进行匹配,直至确定对待发送报文匹配成功,或者直至对查询完该软件流表队列仍无匹配的软件流表。

步骤S730:对所述待发送报文进行慢路径处理,其中,慢路径处理为基于所述报文信息创建原始软件流表,并确定所述待发送报文对应的预设出接口,所述软件流表存储于所述报文转发模块的内存中。

在本申请实施例中,在确定接收到的待发送报文满足预设条件后,开始对待发送报文进行数据操作处理,其中,该数据操作包括慢路径处理以及快路径处理。先对接收到的待发送报文进行慢路径处理,得到慢路径处理后的待发送报文。

其中,在对待发送报文进行慢路径处理时,先根据待发送报文对应的报文信息创建原始软件流表,同时通过查询路由的方式确定待发送报文对应的预设出接口的位置。

示例性的,若确定待发送报文的报文信息中包括的报文五元组信息分别为源IP:1.1.1.1,目的IP:3.3.3.3,源端口:80,目的端口:80,协议号:6,则根据该待发送报文对应的报文五元组信息创建原始软件流表中第一匹配规则包括的字段,例如,根据源IP创建匹配源IP字段,根据目的IP创建匹配目的IP字段,根据源端口创建匹配源端口字段,根据目的端口创建匹配目的端口字段,根据协议号创建匹配协议号字段,且匹配源IP字段为1.1.1.1,匹配目的IP字段为3.3.3.3,匹配源端口字段为80,匹配目的端口字段为80,匹配协议号字段为6,将根据报文五元组信息创建的匹配源IP字段、匹配目的IP字段、匹配源地址字段、匹配目的地址字段以及匹配协议号字段作为原始软件流表中的第一匹配规则,并确定原始软件流表创建完成。

步骤S740:对所述慢路径处理后的待发送报文进行快路径处理,得到所述操作后的待发送报文,其中,快路径处理为根据网络设备对应的配置信息对所述慢路径处理后的待发送报文进行修改,并基于修改后的所述慢路径处理后的待发送报文对所述原始软件流表进行更新,得到所述软件流表。

在本申请实施例中,慢路径处理后的待发送报文中包括待发送报文、软件流表以及预设出接口的相关信息。在对待发送报文进行慢路径处理后,对慢路径处理后的待发送报文进行快路径处理,从而得到操作后的待发送报文。

其中,在对慢路径处理后的待发送报文进行快路径处理中,会获取报文转发模块中的配置信息,并根据获取到的配置信息来对慢路径处理后的待发送报文中的待发送报文进行修改,得到修改后的待发送报文,并根据修改后的待发送报文对原始软件流表进行更新,即将修改的内容作为第二匹配规则添加到原始软件流表中,从而得到软件流表。

步骤S750:若确定所述操作后的待发送报文中不存在报文转发标记,提取软件流表中包括的第一匹配规则以及第二匹配规则,其中,所述软件流表位于所述操作后的待发送报文中,所述第一匹配规则以及所述第二匹配规则基于所述数据操作确定。

在本申请实施例中,操作后的待发送报文中包括修改后的待发送报文、软件流表以及预设出接口的相关信息。在对待发送待发送报文完成数据操作后,检查操作后的待发送报文中包括的软件流表中是否存在有报文转发标记。若确定在软件流表中不存在报文转发标记,则确定该修改后的待发送报文为待发送报文中的第一个报文,即在该修改后的待发送报文之前不存在有待发送报文中的报文转发到第二网卡中。在确定不存在有报文转发标记后,提取软件流表中包括的第一匹配规则和第二匹配规则。

作为一种方式,若修改后的待转发报文为待发送报文的第一个报文,则在对该修改后的待发送报文进行转发时,与该修改后的待发送报文匹配的软件流表中不存在与该修改后的待发送报文对应的报文转发标记。而当报文转发模块将修改后的待发送报文通过预设出接口转发到第二网卡后,会在与修改后的待发送报文匹配的软件流表中添加报文转发标记,当报文转发模块对该待发送报文中的第一个报文的后续报文进行转发时,即可通过判断软件流表中存在该报文转发标记,进而可以直接将后续报文通过预设出接口转发到第二网卡中。

步骤S760:将提取出的所述第一匹配规则以及所述第二匹配规则下发至所述第一网卡,以使所述第一网卡基于所述第一匹配规则以及所述第二匹配规则对所述原始硬件流表进行更新,得到所述硬件流表。

在本申请实施例中,报文转发模块将提取出的第一匹配规则和第二匹配规则下发到第一网卡中,由第一网卡根据接收到的第一匹配规则和第二匹配规则对预先创建的原始硬件流表进行更新,从而得到硬件流表,使得该硬件流表中包括第一网卡接收到的第一匹配规则和第二匹配规则。

示例性的,第一网卡接收到的第一匹配规则为匹配源IP字段为1.1.1.1,匹配目的IP字段为3.3.3.3,匹配源端口字段为80,匹配目的端口字段为80,匹配协议号字段为6,第二匹配规则为修改源MAC 00:00:00:00:00:03,修改目的MAC 00:00:00:00:01:02,则第一网卡将接收到的第一匹配规则以及第二匹配规则下发至原始硬件流表,从而得到硬件流表,使得硬件流表中也包括有第一网卡接收到的第一匹配规则和第二匹配规则。

步骤S770:通过预设出接口将所述操作后的待发送报文下发至所述预设出接口对应的目标网卡。

步骤S770具体可以参考上述实施例中的详细解释,故不在本实施例中进行赘述。

示例性的,步骤S710-步骤S770可以如图11所示,当第一网卡的第一接口接收到待发送报文后,判断硬件芯片中不存在于待发送报文匹配的硬件流表,则将待发送报文发送至报文转发模块。当报文转发模块在接收到第一网卡发送的待发送报文后,判断不存在跨卡标记,且不存在与该待发送报文匹配的软件流表,则先对待发送报文进行慢路径处理,然后对慢路径处理后的待发送报文进行快路径处理,从而得到操作后的待发送报文,并确定预设出接口为第二网卡中的第三接口,然后再确定操作后的待发送报文中不存在报文转发标记,则提取操作后的待发送报文中包括的第一匹配规则和第二匹配规则,并将提取出的第一匹配规则和第二匹配规则发送到第一网卡中,由第一网卡根据接收到的第一匹配规则和第二匹配规则确定硬件流表,最后将操作后的待发送报文根据预设出接口发送到第二网卡中。

本申请实施例提供的一种报文转发方法,应用于报文转发模块,确定接收到的待发送报文中不存在跨卡标记,同时不存在匹配的软件流表,则对该待发送报文进行慢路径处理以及快路径处理,从而得到操作后的待发送报文,若确定操作后的待发送报文中不存在有报文转发标记,则提取操作后的待发送报文中包括的软件流表中的第一匹配规则和第二匹配规则,并将第一匹配规则和第二匹配规则发送到第一网卡,从而使得第一网卡根据接收到得第一匹配规则和第二匹配规则得到硬件流表,同时由报文转发模块将操作后的待发送报文下发到与预设出接口对应的目标网卡中,通过上述方法,确定了软件流表和硬件流表,使得在对后续的待发送报文进行转发时,能加快转发速度。

请参阅图12,本申请实施例提供了一种报文转发装置800,运行于第一网卡,所述装置800包括:

待发送报文获取单元810,用于获取待发送报文。

待发送报文修改单元820,用于若确定存在与所述待发送报文匹配的硬件流表,基于所述硬件流表对所述待发送报文进行修改,得到修改后的待发送报文,其中,所述硬件流表存储于所述第一网卡的硬件芯片中。

作为一种方式,待发送报文修改单元820还用于若确定所述待发送报文的报文信息与所述硬件流表中的第一匹配规则匹配,则确定存在与所述待发送报文匹配的硬件流表;根据所述硬件流表中的第二匹配规则对所述待发送报文的报文信息进行修改,得到所述修改后的待发送报文,其中,第一匹配规则为确定待发送报文与硬件流表匹配的规则,第二匹配规则为第一网卡对待发送报文进行修改的规则。

可选的,待发送报文修改单元820还用于若确定不存在与所述待发送报文匹配的硬件流表,将所述待发送报文发送至报文转发模块,以使所述报文转发模块在确定所述待发送报文信息不满足预设条件的情况下,根据网络设备对应的配置信息对所述待发送报文对应的报文信息进行修改,得到修改后的待发送报文,并根据所述预设出接口将所述修改后的待发送报文发送给所述第二网卡,其中,所述网络设备为包含所述第一网卡和所述第二网卡的设备。

可选的,待发送报文修改单元820还用于若确定所述不存在与所述待发送报文匹配的硬件流表,将所述待发送报文发送至报文转发模块,以使所述报文转发模块在确定所述待发送报文信息满足预设条件的情况下,根据预设出接口将所述待发送报文发送至与所述预设出接口对应的目标网卡。

待发送报文发送单元830,用于若确定所述修改后的待发送报文属于跨卡流量,将所述修改后的待发送报文发送至报文转发模块,以使所述报文转发模块根据预设出接口将所述修改后的待发送报文发送给第二网卡,其中,所述报文转发模块为第一网卡和第二网卡之外的软件模块,所述预设出接口为所述第二网卡的接口。

作为一种方式,待发送报文发送单元830还用于若确定所述修改后的待发送报文不属于跨卡流量,将所述修改后的待发送报文发送至所述第一网卡的预设出接口。

请参阅图13,本申请实施例提供了一种报文转发装置900,运行于报文转发模块,所述装置900包括:

待发送报文接收单元910,用于接收第一网卡发送的修改后的待发送报文,所述修改后的待发送报文为所述第一网卡基于与待发送报文匹配的硬件流表,对所述待发送报文进行修改得到。

作为一种方式,待发送报文接收单元910还用于接收待发送报文,所述待发送报文为第一网卡确定不存在与待发送报文匹配的硬件流表后发送。

待发送报文转发单元920,用于若确定所述修改后的待发送报文存在跨卡标记,通过预设出接口将所述修改后的待发送报文发送至所述第二网卡。

作为一种方式,待发送报文转发单元920还用于若确定所述待发送报文满足预设条件,对所述待发送报文进行数据操作,得到操作后的待发送报文;若确定所述操作后的待发送报文中不存在报文转发标记,将所述操作后的待发送报文下发至所述第一网卡,以使所述第一网卡基于所述操作后的待发送报文对原始硬件流表进行更新,得到硬件流表,其中,所述报文转发标记表征对所述待发送报文属于的报文流量中的报文进行转发过后设置的标记;通过预设出接口将所述操作后的待发送报文下发至所述预设出接口对应的目标网卡。

可选的,待发送报文转发单元920还用于若确定所述待发送报文不存在跨卡标记,且不存在与所述待发送报文匹配的软件流表,确定所述待发送报文满足预设条件;对所述待发送报文进行慢路径处理,其中,慢路径处理为基于所述报文信息创建原始软件流表,并确定所述待发送报文对应的预设出接口,所述软件流表存储于所述报文转发模块的内存中;对所述慢路径处理后的待发送报文进行快路径处理,得到所述操作后的待发送报文,其中,快路径处理为根据网络设备对应的配置信息对所述慢路径处理后的待发送报文进行修改,并基于修改后的所述慢路径处理后的待发送报文对所述原始软件流表进行更新,得到所述软件流表。

可选的,待发送报文转发单元920还用于若确定所述操作后的待发送报文中不存在报文转发标记,提取软件流表中包括的第一匹配规则以及第二匹配规则,其中,所述软件流表位于所述操作后的待发送报文中,所述第一匹配规则以及所述第二匹配规则基于所述数据操作确定;将提取出的所述第一匹配规则以及所述第二匹配规则下发至所述第一网卡,以使所述第一网卡基于所述第一匹配规则以及所述第二匹配规则对所述原始硬件流表进行更新,得到所述硬件流表。

需要说明的是,本申请中装置实施例与前述方法实施例是互相对应的,装置实施例中具体的原理可以参见前述方法实施例中的内容,此处不再赘述。

下面将结合图14对本申请提供的一种电子设备进行说明。

请参阅图14,基于上述的数据处理方法、装置,本申请实施例还提供了另一种可以执行前述数据处理方式的电子设备1000。电子设备1000包括相互耦合的一个或多个(图中仅示出一个)处理器1002、存储器1004以及网络模块1006。其中,该存储器1004中存储有可以执行前述实施例中内容的程序,而处理器1002可以执行该存储器1004中存储的程序。

其中,处理器1002可以包括一个或者多个处理核。处理器1002利用各种接口和线路连接整个电子设备1000内的各个部分,通过运行或执行存储在存储器1004内的指令、程序、代码集或指令集,以及调用存储在存储器1004内的数据,执行服务器1000的各种功能和处理数据。可选地,处理器1002可以采用数字信号处理(Digital SignalProcessing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable Logic Array,PLA)中的至少一种硬件形式来实现。处理器1002可集成中央处理器(Central Processing Unit,CPU)、图像处理器(Graphics Processing Unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责显示内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器1002中,单独通过一块通信芯片进行实现。

存储器1004可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory)。存储器1004可用于存储指令、程序、代码、代码集或指令集。存储器1004可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于实现至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现下述各个方法实施例的指令等。存储数据区还可以存储电子设备1000在使用中所创建的数据(比如电话本、音视频数据、聊天记录数据)等。

所述网络模块1006用于接收以及发送电磁波,实现电磁波与电信号的相互转换,从而与通讯网络或者其他设备进行通讯,例如和音频播放设备进行通讯。所述网络模块1006可包括各种现有的用于执行这些功能的电路元件,例如,天线、射频收发器、数字信号处理器、加密/解密芯片、用户身份模块(SIM)卡、存储器等等。所述网络模块1006可与各种网络如互联网、企业内部网、无线网络进行通讯或者通过无线网络与其他设备进行通讯。上述的无线网络可包括蜂窝式电话网、无线局域网或者城域网。例如,网络模块1006可以与基站进行信息交互。

请参考图15,其示出了本申请实施例提供的一种计算机可读存储介质的结构框图。该计算机可读介质1100中存储有程序代码,所述程序代码可以被处理器调用执行上述方法实施例中所描述的方法。

计算机可读存储介质1100可以是诸如闪存、EEPROM(电可擦除可编程只读存储器)、EPROM、硬盘或者ROM之类的电子存储器。可选地,计算机可读存储介质1100包括非易失性计算机可读介质(non-transitory computer-readable storage medium)。计算机可读存储介质1100具有执行上述方法中的任何方法步骤的程序代码1110的存储空间。这些程序代码可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。程序代码1110可以例如以适当形式进行压缩。

本申请实施例提供了一种报文转发方法、装置、电子设备以及存储介质。本报文转发方法包括:获取待发送报文;若确定存在与待发送报文匹配的硬件流表,基于硬件流表对待发送报文进行修改,得到修改后的待发送报文;若确定修改后的待发送报文属于跨卡流量,将修改后的待发送报文发送至报文转发模块,以使报文转发模块根据预设出接口将修改后的待发送报文发送给第二网卡,预设出接口为第二网卡的接口。通过在确定修改后的待发送报文属于跨卡流量后,由报文转发模块将修改后的待发送报文发送至预设出接口,避免了报文转发模块对修改后的报文进行过多的处理,减少了软件处理时CPU消耗过大的问题,提高了资源利用率。

上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本发明的保护之内。

技术分类

06120116556296