CN113271245A - 报文处理方法、装置、网卡及计算机可读存储介质 - Google Patents
报文处理方法、装置、网卡及计算机可读存储介质 Download PDFInfo
- Publication number
- CN113271245A CN113271245A CN202110557592.7A CN202110557592A CN113271245A CN 113271245 A CN113271245 A CN 113271245A CN 202110557592 A CN202110557592 A CN 202110557592A CN 113271245 A CN113271245 A CN 113271245A
- Authority
- CN
- China
- Prior art keywords
- message
- vxlan
- network card
- virtual network
- 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
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4641—Virtual LANs, VLANs, e.g. virtual private networks [VPN]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4208—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a system bus, e.g. VME bus, Futurebus, Multibus
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/36—Flow control; Congestion control by determining packet size, e.g. maximum transfer unit [MTU]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/25—Mapping addresses of the same type
- H04L61/2503—Translation of Internet protocol [IP] addresses
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请涉及数据处理技术领域,提供一种报文处理方法、装置、网卡及计算机可读存储介质,包括:获取待处理报文,并确定待处理报文是否为VxLAN报文;若待处理报文为VxLAN报文,则对VxLAN报文解封装,得到第一报文;确定第一报文对应的目标虚拟网卡,并通过目标虚拟网卡将第一报文发送给Nginx服务器;获取Nginx服务器发送的第二报文,第二报文是Nginx服务器运行目标虚拟网卡对应的Nginx实例对第一报文进行地址转换处理得到的;对第二报文封装,得到第一VxLAN报文,向对应的网络设备发送第一VxLAN报文。提高了Nginx服务器对VxLAN报文处理的效率。本申请还涉及区块链、人工智能技术领域。
Description
技术领域
本申请涉及数据处理技术领域,尤其涉及一种报文处理方法、装置、网卡及计算机可读存储介质。
背景技术
Nginx作为业界开源的七层负载均衡产品,其优异的性能得到了业界广泛的认可。在云计算虚拟化场景下,可以将不同的Nginx部署到同一台网络功能虚拟化(NetworkFunctions Virtualization,NFV)设备上,通过虚拟扩展局域网(Virtual ExtensibleLocal Area Network,VxLAN)报文头部中虚拟网络标识将分属于不同虚拟私有云的流量分流到各自对应的Nginx中进行处理,以达到不同虚拟私有云流量相互隔离的效果。
由于Nginx只处理VxLAN隧道内部的报文,所以Nginx在接收到带VxLAN报文之后会通过内核的VxLAN接口对接收到的VxLAN报文进行解封装处理,Nginx处理后的报文需要通过VxLAN发送到远端的设备,在这之前还需要对报文进行VxLAN封装,目前常用封装方式是基于内核协议栈或者虚拟交换机(Open VSwitch,OVS)的虚拟扩展局域网报文封装和解封装,但是这种方式对设备的CPU消耗较大。
发明内容
本申请的主要目的在于提供一种报文处理方法、装置、网卡及计算机可读存储介质,旨在提高对VxLAN报文处理的效率。
第一方面,本申请提供一种报文处理方法,应用于物理网卡,所述物理网卡与Nginx服务器连接,所述Nginx服务器部署有多个Nginx实例,所述物理网卡创建有每个所述Nginx实例对应的虚拟网卡,所述方法包括:
获取待处理报文,并确定所述待处理报文是否为虚拟扩展局域网VxLAN报文;
若所述待处理报文为VxLAN报文,则对所述VxLAN报文进行解封装,得到第一报文;
从多个所述虚拟网卡中确定所述第一报文对应的目标虚拟网卡,并通过所述目标虚拟网卡将所述第一报文发送给所述Nginx服务器;
获取所述Nginx服务器发送的第二报文,所述第二报文是所述Nginx服务器运行所述目标虚拟网卡对应的Nginx实例对所述第一报文进行地址转换处理得到的;
对所述第二报文进行封装,得到第一VxLAN报文,并向所述第一VxLAN报文中的目标IP地址对应的网络设备发送所述第一VxLAN报文。
第二方面,本申请还提供一种报文处理装置,应用于物理网卡,所述物理网卡与Nginx服务器连接,所述Nginx服务器部署有多个Nginx实例,所述物理网卡创建有每个所述Nginx实例对应的虚拟网卡,所述报文处理装置包括:
第一获取模块,用于获取待处理报文;
确定模块,用于确定所述待处理报文是否为虚拟扩展局域网VxLAN报文;
报文解封装模块,用于对所述VxLAN报文进行解封装,得到第一报文;
所述确定模块,还用于从多个所述虚拟网卡中确定所述第一报文对应的目标虚拟网卡,并通过所述目标虚拟网卡将所述第一报文发送给所述Nginx服务器;
报文封装模块,用于对第二报文进行封装,得到第一VxLAN报文;
发送模块,用于向所述第一VxLAN报文中的目标IP地址对应的网络设备发送所述第一VxLAN报文。
第三方面,本申请还提供一种物理网卡,所述物理网卡与Nginx服务器连接,所述Nginx服务器部署有多个Nginx实例,所述物理网卡创建有每个所述Nginx实例对应的虚拟网卡,所述物理网卡包括处理器、存储器、以及存储在所述存储器上并可被所述处理器执行的计算机程序,其中所述计算机程序被所述处理器执行时,实现如如上的报文处理方法的步骤。
第四方面,本申请还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,其中所述计算机程序被处理器执行时,实现如上述的报文处理方法的步骤。
本申请提供一种报文处理方法、装置、网卡及计算机可读存储介质,本申请获取待处理报文,并确定待处理报文是否为虚拟扩展局域网VxLAN报文;若待处理报文为VxLAN报文,则对VxLAN报文进行解封装,得到第一报文;从多个所述虚拟网卡中确定第一报文对应的目标虚拟网卡,并通过目标虚拟网卡将第一报文发送给Nginx服务器;获取Nginx服务器发送的第二报文,第二报文是所述Nginx服务器运行目标虚拟网卡对应的Nginx实例对第一报文进行地址转换处理得到的;对第二报文进行封装,得到第一VxLAN报文,并向第一VxLAN报文中的目标IP地址对应的网络设备发送第一VxLAN报文。通过物理网卡对VxLAN报文进行解封装和封装,可以减少Nginx服务器对的CPU资源的消耗。
附图说明
为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种报文处理方法的步骤流程示意图;
图2为本申请实施例提供的另一种报文处理方法的步骤流程示意图;
图3为本申请实施例提供的一种报文处理装置的示意性框图;
图4为本申请实施例提供的另一种报文处理装置的示意性框图;
图5为本申请实施例提供的另一种报文处理装置的示意性框图;
图6为本申请实施例提供的一种物理网卡的结构示意性框图。
本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
附图中所示的流程图仅是示例说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解、组合或部分合并,因此实际执行的顺序有可能根据实际情况改变。
本申请实施例提供一种报文处理方法、装置、网卡及计算机可读存储介质。其中,该报文处理方法可应用于物理网卡中,该物理网卡可以是ISA接口网卡、PCI接口网卡和PCI-X总线网卡等等类型的网卡。
下面结合附图,对本申请的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。
请参照图1,图1为本申请实施例提供的一种报文处理方法的步骤流程示意图。
如图1所示,该报文处理方法包括步骤S101至步骤S105。
步骤S101、获取待处理报文,并确定所述待处理报文是否为虚拟扩展局域网VxLAN报文。
获取待处理报文,从待处理报文中提取待处理报文的头部字段信息;若头部字段信息中存在VxLAN头部字段,则确定待处理报文为VxLAN报文;若头部字段信息中不存在VxLAN头部字段,则确定待处理报文不为VxLAN报文。其中,VxLAN头部字段可以是24比特的虚拟网络标识,当然也可以定义为其他的字段,本申请对此不做具体限定。通过对待处理报文的头部字段信息进行识别,可以准确的确定待处理报文是否为VxLAN报文。
需要说明的是,待处理报文可以是服务器发出的,也可以是用户设备发出的,当然也可以是物理网卡发送的,本申请对此不做具体限定。
示例性的,获取服务器发送的待处理报文1、待处理报文2、待处理报文3、待处理报文4和待处理报文5,分别提取待处理报文1、待处理报文2、待处理报文3、待处理报文4和待处理报文5的头部字段信息,其中,待处理报文2和待处理报文4的头部字段中包括24比特的虚拟网络标识,则确定待处理报文2和待处理报文4为VxLAN报文。
步骤S102、若所述待处理报文为VxLAN报文,则对所述VxLAN报文进行解封装,得到第一报文。
在确定待处理报文为VxLAN报文后,获取服务器发送的TC(TrafficControl,流量控制器)命令,根据该TC命令对VxLAN报文进行解封装,得到第一报文。
具体地,根据TC命令将VxLAN报文外层网络标识和DST MAC地址丢弃,以完成对VxLAN报文的解封装,得到第一报文。
步骤S103、从多个所述虚拟网卡中确定所述第一报文对应的目标虚拟网卡,并通过所述目标虚拟网卡将所述第一报文发送给所述Nginx服务器。
其中,物理网卡与Nginx服务器连接,Nginx服务器部署有多个Nginx实例,物理网卡创建有每个Nginx实例对应的虚拟网卡。
在一实施例中,在对VxLAN报文解封装之后,得到包括内层数据的第一报文,从第一报文中提取VxLAN网络标识和数据传输局域网DST MAC地址;根据VxLAN网络标识和DSTMAC地址,从多个所述虚拟网卡中确定目标虚拟网卡。根据第一报文中的VxLAN网络标识和DST MAC地址可以准确的确定目标虚拟网卡。
在一实施例中,根据VxLAN网络标识和DST MAC地址,从多个所述虚拟网卡中确定目标虚拟网卡的方式可以为:获取预设的VxLAN网络标识和DST MAC地址与虚拟网卡之间的流转映射关系表,从该预设的VxLAN网络标识和DST MAC地址与虚拟网卡之间的流转映射关系表中查找与VxLAN网络标识和DST MAC地址对应的虚拟网卡,得到目标虚拟网卡。其中,该预设的VxLAN网络标识和DST MAC地址与虚拟网卡之间的流转映射关系表是预先建立好的映射关系表,该映射关系表的建立可以根据实际情况进行建立,本申请对此不做具体限定。
在一实施例中,在确定第一报文的目标虚拟网卡之后,将该第一报文存入目标虚拟网卡,目标虚拟网卡将该第一报文发送给Nginx服务器,以使该Nginx服务器中对应目标虚拟网卡的Nginx实例对第一报文进行处理。
在一实施例中,当Nginx服务器接收到物理网卡发送的第一报文之后,从多个Nginx实例中确定目标Nginx实例,并运行目标Nginx实例对第一报文进行地址转换处理,得到第二报文。通过目标Nginx实例可以快速的对第一报文进行地址转换处理,得到第二报文。
在一实施例中,从多个Nginx实例中确定目标Nginx实例的方式可以为:从多个虚拟网卡中确定第一报文对应的目标虚拟网卡;将多个Nginx实例中与目标虚拟网卡对应的Nginx实例确定为目标Nginx实例。通过找到与目标虚拟网卡对应的Nginx实例,可以准确的确定目标Nginx实例。
在一实施例中,运行目标Nginx实例对第一报文进行地址转换处理,得到第二报文的方式可以为:获取第一报文中待转换IP地址,获取待转换IP地址与替换IP地址之前的映射关系表,根据待转换IP地址和映射关系表,确定替换IP地址,将第一报文中的待转换IP地址替换成替换IP地址,得到第二报文,并将该第二报文发送至物理网卡。
步骤S104、获取所述Nginx服务器发送的第二报文。
其中,第二报文是Nginx服务器运行目标虚拟网卡对应的Nginx实例对第一报文进行地址转换处理得到的。具体地,运行目标Nginx实例对第一报文进行地址转换处理,得到第二报文的方式可以为:获取第一报文中待转换IP地址,获取待转换IP地址与替换IP地址之前的映射关系表,根据待转换IP地址和映射关系表,确定替换IP地址,将第一报文中的待转换IP地址替换成替换IP地址,得到第二报文。
步骤S105、对所述第二报文进行封装,得到第一VxLAN报文,并向所述第一VxLAN报文中的目标IP地址对应的网络设备发送所述第一VxLAN报文。
获取待接收第二报文的网络设备,并获取该网络设备的IP地址,得到目标IP地址,目标虚拟网卡根据目标IP地址对该第二报文进行封装,得到第一VxLAN报文。将第一VxLAN报文发送给目标IP地址对应的网络设备,以完成VxLAN报文的传输。
在一实施例中,如图2所示,向所述第一VxLAN报文中的目标IP地址对应的网络设备发送所述第一VxLAN报文之前,还包括步骤S106至步骤S107。
步骤S106、获取所述第一VxLAN报文的报文长度和VxLAN隧道能够传输报文的最大报文长度。
其中,该VxLAN隧道能够传输报文的最大报文长度是预先根据实际情况设置好的报文长度,例如,该VxLAN隧道能够传输报文的最大报文长度可以是1440字节。
在一实施例中,获取第一VxLAN报文的报文长度的方式可以为:获取第一VxLAN报文中Ethernet头长度、VxLAN头字节长度、UDP头字节长度、IP头字节长度和DATA域长度,将Ethernet头长度、VxLAN头字节长度、UDP头字节长度、IP头字节长度和DATA域长度加和得到第一VxLAN报文的报文长度。
示例性的,第一VxLAN报文中DATA域长度为14字节、VxLAN头字节长度为8字节、UDP头字节长度为8字节、IP头字节长度为20字节和DATA域长度为1000字节,将DATA域长度为14字节、VxLAN头字节长度为8字节、UDP头字节长度为8字节、IP头字节长度为20字节和DATA域长度为1000字节进行加和,得到第一VxLAN报文的报文长度为1060字节长度。
步骤S107、若所述报文长度小于或等于所述最大报文长度,则向所述第一VxLAN报文中的目标IP地址对应的网络设备发送所述第一VxLAN报文。
当确定第一VxLAN报文的报文长度小于或等于最大报文长度,则向第一VxLAN报文中的目标IP地址对应的网络设备发送第一VxLAN报文,以完成VxLAN报文的传输。
在一实施例中,若报文长度大于最大报文长度,则对第二报文进行分片,得到多个第三报文;对多个第三报文进行封装,得到多个第二VxLAN报文;向每个第二VxLAN报文中的目标IP地址对应的网络设备发送对应的第二VxLAN。当报文长度大于最大报文长度,对第二报文分片,并将分片得到多个第三报文发送至对应的网络设备,防止因报文长度大于最大报文长度,报文传输失败。
示例性的,第一VxLAN报文的报文长度为1500字节,最大报文长度为1440字节,第一VxLAN报文的报文长度1500字节大于最大报文长度1440字节,则对第二报文进行二分分片,得到两个第三报文,对两个第三报文进行报文封装得到两个第二VxLAN报文,向两个第二VxLAN报文中的目标IP地址对应的网络设备发送对应的第二VxLAN,以完成第二VxLAN报文的传输。
上述实施例提供的报文处理方法,获取待处理报文,并确定待处理报文是否为虚拟扩展局域网VxLAN报文;若待处理报文为VxLAN报文,则对VxLAN报文进行解封装,得到第一报文;从多个所述虚拟网卡中确定第一报文对应的目标虚拟网卡,并通过目标虚拟网卡将第一报文发送给Nginx服务器;获取Nginx服务器发送的第二报文,第二报文是所述Nginx服务器运行目标虚拟网卡对应的Nginx实例对第一报文进行地址转换处理得到的;对第二报文进行封装,得到第一VxLAN报文,并向第一VxLAN报文中的目标IP地址对应的网络设备发送第一VxLAN报文。通过物理网卡对VxLAN报文进行解封装和封装,可以减少Nginx服务器对的CPU资源的消耗。
请参阅图3,图3为本申请实施例提供的一种报文处理装置的示意性框图。
如图3所示,报文处理装置200应用于物理网卡,所述物理网卡与Nginx服务器连接,所述Nginx服务器部署有多个Nginx实例,所述物理网卡创建有每个所述Nginx实例对应的虚拟网卡,所述报文处理装置200包括:
第一获取模块210,用于获取待处理报文;
确定模块220,用于确定所述待处理报文是否为虚拟扩展局域网VxLAN报文;
报文解封装模块230,用于对所述VxLAN报文进行解封装,得到第一报文;
所述确定模块220,还用于从多个所述虚拟网卡中确定所述第一报文对应的目标虚拟网卡,并通过所述目标虚拟网卡将所述第一报文发送给所述Nginx服务器;
报文封装模块240,用于对第二报文进行封装,得到第一VxLAN报文;
发送模块250,用于向所述第一VxLAN报文中的目标IP地址对应的网络设备发送所述第一VxLAN报文。
在一实施例中,所述确定模块220,还用于:
从所述待处理报文中提取所述待处理报文的头部字段信息;
若所述头部字段信息中存在VxLAN头部字段,则确定所述待处理报文为VxLAN报文;
若所述头部字段信息中不存在VxLAN头部字段,则确定所述待处理报文不为VxLAN报文。
在一实施例中,所述确定模块220,还用于:
从所述第一报文中提取VxLAN网络标识和数据传输局域网DST MAC地址;
根据所述VxLAN网络标识和所述DST MAC地址,从多个所述虚拟网卡中确定所述目标虚拟网卡。
在一实施例中,所述确定模块220,还用于:
获取预设的VxLAN网络标识和DST MAC地址,与虚拟网卡之间的流转映射关系表;
从所述流转映射关系表中查询与所述VxLAN网络标识和所述DST MAC地址对应的虚拟网卡,得到所述目标虚拟网卡。
在一实施例中,如图4所示,报文处理装置200还包括第二获取模块260,其中:
所述第二获取模块260,用于获取所述第一VxLAN报文的报文长度和VxLAN隧道能够传输报文的最大报文长度;
发送模块250,用于若所述报文长度小于或等于所述最大报文长度,则向所述第一VxLAN报文中的目标IP地址对应的网络设备发送所述第一VxLAN报文。
在一实施例中,如图5所示,报文处理装置200还包括报文分片模块270,其中:
所述报文分片模块270,用于若所述报文长度大于所述最大报文长度,则对所述第二报文进行分片,得到多个第三报文;
报文封装模块240,用于对多个所述第三报文进行封装,得到多个第二VxLAN报文;
发送模块250,用于向每个所述第二VxLAN报文中的目标IP地址对应的网络设备发送对应的所述第二VxLAN报文。
需要说明的是,所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述报文处理装置的具体工作过程,可以参考前述报文处理方法实施例中的对应过程,在此不再赘述。
请参阅图6,图6为本申请实施例提供的一种物理网卡的结构示意性框图。
如图6所示,所述物理网卡300与Nginx服务器连接,所述Nginx服务器部署有多个Nginx实例,所述物理网卡300创建有每个所述Nginx实例对应的虚拟网卡,该物理网卡包括通过系统总线301连接的处理器302和存储器303,其中,存储器303可以包括非易失性存储介质和内存储器。
非易失性存储介质可存储计算机程序。该计算机程序包括程序指令,该程序指令被执行时,可使得处理器执行任意一种报文处理方法。
处理器302用于提供计算和控制能力,支撑整个物理网卡的运行。
内存储器为非易失性存储介质中的计算机程序的运行提供环境,该计算机程序被处理器执行时,可使得处理器302执行任意一种报文处理方法。
本领域技术人员可以理解,图6中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的物理网卡的限定,具体的物理网卡可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
应当理解的是,该总线301比如为I2C(Inter-integrated Circuit)总线,存储器303可以是Flash芯片、只读存储器(ROM,Read-Only Memory)磁盘、光盘、U盘或移动硬盘等,处理器302可以是中央处理单元(Central Processing Unit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。其中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
其中,在一个实施例中,所述处理器用于运行存储在存储器中的计算机程序,以实现如下步骤:
获取待处理报文,并确定所述待处理报文是否为虚拟扩展局域网VxLAN报文;
若所述待处理报文为VxLAN报文,则对所述VxLAN报文进行解封装,得到第一报文;
从多个所述虚拟网卡中确定所述第一报文对应的目标虚拟网卡,并通过所述目标虚拟网卡将所述第一报文发送给所述Nginx服务器;
获取所述Nginx服务器发送的第二报文,所述第二报文是所述Nginx服务器运行所述目标虚拟网卡对应的Nginx实例对所述第一报文进行地址转换处理得到的;
对所述第二报文进行封装,得到第一VxLAN报文,并向所述第一VxLAN报文中的目标IP地址对应的网络设备发送所述第一VxLAN报文。
在一个实施例中,所述处理器在实现所述确定所述待处理报文是否为虚拟扩展局域网VxLAN报文时,用于实现:
从所述待处理报文中提取所述待处理报文的头部字段信息;
若所述头部字段信息中存在VxLAN头部字段,则确定所述待处理报文为VxLAN报文;
若所述头部字段信息中不存在VxLAN头部字段,则确定所述待处理报文不为VxLAN报文。
在一个实施例中,所述处理器在实现所述从多个所述虚拟网卡中确定所述第一报文对应的目标虚拟网卡时,用于实现:
从所述第一报文中提取VxLAN网络标识和数据传输局域网DST MAC地址;
根据所述VxLAN网络标识和所述DST MAC地址,从多个所述虚拟网卡中确定所述目标虚拟网卡。
在一实施例中,所述处理器在实现所述所述根据所述VxLAN网络标识和所述DSTMAC地址,从多个所述虚拟网卡中确定所述目标虚拟网卡时,用于实现:
获取预设的VxLAN网络标识和DST MAC地址,与虚拟网卡之间的流转映射关系表;
从所述流转映射关系表中查询与所述VxLAN网络标识和所述DST MAC地址对应的虚拟网卡,得到所述目标虚拟网卡。
在一实施例中,所述处理器在实现所述所述向所述第一VxLAN报文中的目标IP地址对应的网络设备发送所述第一VxLAN报文之前,还用于实现:
获取所述第一VxLAN报文的报文长度和VxLAN隧道能够传输报文的最大报文长度;
若所述报文长度小于或等于所述最大报文长度,则向所述第一VxLAN报文中的目标IP地址对应的网络设备发送所述第一VxLAN报文。
在一实施例中,所述处理器还用于实现:
若所述报文长度大于所述最大报文长度,则对所述第二报文进行分片,得到多个第三报文;
对多个所述第三报文进行封装,得到多个第二VxLAN报文;
向每个所述第二VxLAN报文中的目标IP地址对应的网络设备发送对应的所述第二VxLAN报文。
需要说明的是,所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述物理网卡的具体工作过程,可以参考前述报文处理方法实施例中的对应过程,在此不再赘述。
本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序中包括程序指令,所述程序指令被执行时所实现的方法可参照本申请报文处理方法的各个实施例。
其中,所述计算机可读存储介质可以是前述实施例所述的物理网卡或Nginx服务器的内部存储单元,例如所述物理网卡或Nginx服务器的硬盘或内存。所述计算机可读存储介质也可以是所述物理网卡或Nginx服务器的外部存储设备,例如所述物理网卡或Nginx服务器上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(SecureDigital,SD)卡,闪存卡(Flash Card)等。
进一步地,所述计算机可读存储介质可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等;存储数据区可存储根据区块链节点的使用所创建的数据等。
本发明所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
应当理解,在此本申请说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本申请。如在本申请说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种报文处理方法,其特征在于,应用于物理网卡,所述物理网卡与Nginx服务器连接,所述Nginx服务器部署有多个Nginx实例,所述物理网卡创建有每个所述Nginx实例对应的虚拟网卡,所述方法包括:
获取待处理报文,并确定所述待处理报文是否为虚拟扩展局域网VxLAN报文;
若所述待处理报文为VxLAN报文,则对所述VxLAN报文进行解封装,得到第一报文;
从多个所述虚拟网卡中确定所述第一报文对应的目标虚拟网卡,并通过所述目标虚拟网卡将所述第一报文发送给所述Nginx服务器;
获取所述Nginx服务器发送的第二报文,所述第二报文是所述Nginx服务器运行所述目标虚拟网卡对应的Nginx实例对所述第一报文进行地址转换处理得到的;
对所述第二报文进行封装,得到第一VxLAN报文,并向所述第一VxLAN报文中的目标IP地址对应的网络设备发送所述第一VxLAN报文。
2.根据权利要求1所述的报文处理方法,其特征在于,所述确定所述待处理报文是否为虚拟扩展局域网VxLAN报文,包括:
从所述待处理报文中提取所述待处理报文的头部字段信息;
若所述头部字段信息中存在VxLAN头部字段,则确定所述待处理报文为VxLAN报文;
若所述头部字段信息中不存在VxLAN头部字段,则确定所述待处理报文不为VxLAN报文。
3.根据权利要求1所述的报文处理方法,其特征在于,所述从多个所述虚拟网卡中确定所述第一报文对应的目标虚拟网卡,包括:
从所述第一报文中提取VxLAN网络标识和数据传输局域网DST MAC地址;
根据所述VxLAN网络标识和所述DST MAC地址,从多个所述虚拟网卡中确定所述目标虚拟网卡。
4.根据权利要求3所述的报文处理方法,其特征在于,所述根据所述VxLAN网络标识和所述DST MAC地址,从多个所述虚拟网卡中确定所述目标虚拟网卡,包括:
获取预设的VxLAN网络标识和DST MAC地址,与虚拟网卡之间的流转映射关系表;
从所述流转映射关系表中查询与所述VxLAN网络标识和所述DST MAC地址对应的虚拟网卡,得到所述目标虚拟网卡。
5.根据权利要求1-4中任一项所述的报文处理方法,其特征在于,所述向所述第一VxLAN报文中的目标IP地址对应的网络设备发送所述第一VxLAN报文之前,还包括:
获取所述第一VxLAN报文的报文长度和VxLAN隧道能够传输报文的最大报文长度;
若所述报文长度小于或等于所述最大报文长度,则向所述第一VxLAN报文中的目标IP地址对应的网络设备发送所述第一VxLAN报文。
6.根据权利要求5所述的报文处理方法,其特征在于,所述方法还包括:若所述报文长度大于所述最大报文长度,则对所述第二报文进行分片,得到多个第三报文;
对多个所述第三报文进行封装,得到多个第二VxLAN报文;
向每个所述第二VxLAN报文中的目标IP地址对应的网络设备发送对应的所述第二VxLAN报文。
7.一种报文处理装置,其特征在于,应用于物理网卡,所述物理网卡与Nginx服务器连接,所述Nginx服务器部署有多个Nginx实例,所述物理网卡创建有每个所述Nginx实例对应的虚拟网卡,所述报文处理装置包括:
第一获取模块,用于获取待处理报文;
确定模块,用于确定所述待处理报文是否为虚拟扩展局域网VxLAN报文;
报文解封装模块,用于对所述VxLAN报文进行解封装,得到第一报文;
所述确定模块,还用于从多个所述虚拟网卡中确定所述第一报文对应的目标虚拟网卡,并通过所述目标虚拟网卡将所述第一报文发送给所述Nginx服务器;
报文封装模块,用于对第二报文进行封装,得到第一VxLAN报文;
发送模块,用于向所述第一VxLAN报文中的目标IP地址对应的网络设备发送所述第一VxLAN报文。
8.根据权利要求7所述的报文处理装置,其特征在于,所述确定模块还用于:
从所述待处理报文中提取所述待处理报文的头部字段信息;
若所述头部字段信息中存在VxLAN头部字段,则确定所述待处理报文为VxLAN报文;
若所述头部字段信息中不存在VxLAN头部字段,则确定所述待处理报文不为VxLAN报文。
9.一种物理网卡,其特征在于,所述物理网卡与Nginx服务器连接,所述Nginx服务器部署有多个Nginx实例,所述物理网卡创建有每个所述Nginx实例对应的虚拟网卡,所述物理网卡包括处理器、存储器、以及存储在所述存储器上并可被所述处理器执行的计算机程序,其中所述计算机程序被所述处理器执行时,实现如权利要求1至6中任一项所述的报文处理方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,其中所述计算机程序被处理器执行时,实现如权利要求1至6中任一项所述的报文处理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110557592.7A CN113271245B (zh) | 2021-05-21 | 2021-05-21 | 报文处理方法、装置、网卡及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110557592.7A CN113271245B (zh) | 2021-05-21 | 2021-05-21 | 报文处理方法、装置、网卡及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113271245A true CN113271245A (zh) | 2021-08-17 |
CN113271245B CN113271245B (zh) | 2023-04-07 |
Family
ID=77232290
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110557592.7A Active CN113271245B (zh) | 2021-05-21 | 2021-05-21 | 报文处理方法、装置、网卡及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113271245B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113472700A (zh) * | 2021-09-01 | 2021-10-01 | 阿里云计算有限公司 | 报文处理方法、设备、存储介质及网卡 |
CN114006955A (zh) * | 2021-10-28 | 2022-02-01 | 深信服科技股份有限公司 | 一种数据处理方法、装置、设备及可读存储介质 |
CN115022217A (zh) * | 2022-06-14 | 2022-09-06 | 深信服科技股份有限公司 | 一种网卡检测方法、装置及电子设备和存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104350714A (zh) * | 2014-05-29 | 2015-02-11 | 华为技术有限公司 | 一种报文转发方法和VxLAN网关 |
CN105162674A (zh) * | 2015-10-16 | 2015-12-16 | 上海斐讯数据通信技术有限公司 | 一种物理机访问虚拟网络的方法及网卡 |
CN105207873A (zh) * | 2015-08-31 | 2015-12-30 | 华为技术有限公司 | 一种报文处理方法和装置 |
CN107770031A (zh) * | 2017-10-26 | 2018-03-06 | 郑州云海信息技术有限公司 | 一种可扩展虚拟局域网vxlan报文处理方法和装置 |
CN108282391A (zh) * | 2018-01-11 | 2018-07-13 | 新华三技术有限公司 | 一种vxlan报文分片方法和装置 |
-
2021
- 2021-05-21 CN CN202110557592.7A patent/CN113271245B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104350714A (zh) * | 2014-05-29 | 2015-02-11 | 华为技术有限公司 | 一种报文转发方法和VxLAN网关 |
CN105207873A (zh) * | 2015-08-31 | 2015-12-30 | 华为技术有限公司 | 一种报文处理方法和装置 |
CN105162674A (zh) * | 2015-10-16 | 2015-12-16 | 上海斐讯数据通信技术有限公司 | 一种物理机访问虚拟网络的方法及网卡 |
CN107770031A (zh) * | 2017-10-26 | 2018-03-06 | 郑州云海信息技术有限公司 | 一种可扩展虚拟局域网vxlan报文处理方法和装置 |
CN108282391A (zh) * | 2018-01-11 | 2018-07-13 | 新华三技术有限公司 | 一种vxlan报文分片方法和装置 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113472700A (zh) * | 2021-09-01 | 2021-10-01 | 阿里云计算有限公司 | 报文处理方法、设备、存储介质及网卡 |
CN114006955A (zh) * | 2021-10-28 | 2022-02-01 | 深信服科技股份有限公司 | 一种数据处理方法、装置、设备及可读存储介质 |
CN114006955B (zh) * | 2021-10-28 | 2023-09-05 | 深信服科技股份有限公司 | 一种数据处理方法、装置、设备及可读存储介质 |
CN115022217A (zh) * | 2022-06-14 | 2022-09-06 | 深信服科技股份有限公司 | 一种网卡检测方法、装置及电子设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113271245B (zh) | 2023-04-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113271245B (zh) | 报文处理方法、装置、网卡及计算机可读存储介质 | |
US10931580B2 (en) | Packet processing method and network device | |
CN112422393B (zh) | 可扩展虚拟局域网报文发送方法、计算机设备和可读介质 | |
US11902156B2 (en) | Method for generating segment list, method for forwarding packet, device, and system in SRv6 network | |
JP6034979B2 (ja) | パケット転送方法と装置及びデータセンターネットワーク | |
WO2015062529A1 (en) | Packet forwarding in data center network | |
JP6032278B2 (ja) | Lan多重化装置 | |
US9774532B2 (en) | Information processing system, information processing apparatus and control method of information processing system | |
US20160028860A1 (en) | Method for parsing network packets having future defined tags | |
CN113132202B (zh) | 一种报文传输方法及相关设备 | |
CN111614580B (zh) | 一种数据转发方法、装置及设备 | |
EP3618393B1 (en) | Packet forwarding | |
US10367657B2 (en) | Bridge port extender | |
CN107483369B (zh) | 一种报文处理方法及虚拟交换机 | |
CN113645120A (zh) | 报文处理方法、线卡、设备及存储介质 | |
JP6222505B2 (ja) | 入力パラメータを生成するための方法および装置 | |
CN113141338B (zh) | 一种消息生成方法、处理方法及装置 | |
CN114827057B (zh) | 通信方法以及通信系统 | |
CN106856454A (zh) | 一种报文转发的方法、设备及系统 | |
CN114765567B (zh) | 通信方法和通信系统 | |
EP4175261A1 (en) | Parsing component, packet parsing method, forwarding chip, and network device | |
CN109672593B (zh) | PPPoE报文处理方法、装置及宽带远程接入服务器 | |
CN114301960A (zh) | 集群非对称流量的处理方法及装置、电子设备及存储介质 |
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 |