CN114363256A - 基于网卡的报文解析方法以及相关装置 - Google Patents
基于网卡的报文解析方法以及相关装置 Download PDFInfo
- Publication number
- CN114363256A CN114363256A CN202011043083.4A CN202011043083A CN114363256A CN 114363256 A CN114363256 A CN 114363256A CN 202011043083 A CN202011043083 A CN 202011043083A CN 114363256 A CN114363256 A CN 114363256A
- Authority
- CN
- China
- Prior art keywords
- message
- information
- virtual machine
- network card
- machine manager
- 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.)
- Pending
Links
- 238000004458 analytical method Methods 0.000 title claims abstract description 118
- 238000012545 processing Methods 0.000 claims abstract description 258
- 238000000034 method Methods 0.000 claims abstract description 105
- 230000008569 process Effects 0.000 claims abstract description 62
- 238000004891 communication Methods 0.000 claims description 10
- 230000006870 function Effects 0.000 description 19
- 238000010586 diagram Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 6
- 239000002184 metal Substances 0.000 description 5
- 230000009286 beneficial effect Effects 0.000 description 4
- 238000004590 computer program Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 239000008358 core component Substances 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000006855 networking Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提供了一种基于网卡的报文解析方法,该方法涉及网卡和虚拟机管理器,应用于云计算场景中。在该方法中,网卡能够解析收到的报文以获得该报文的解析信息,并在一定条件下将前述报文和解析信息均发送至虚拟机管理器中,以使得该虚拟机管理器中的多个报文处理模块能够直接根据前述解析信息进行报文处理,而无需前述各个报文处理模块分别再次对该报文进行解析。因此,能够减少报文处理过程中虚拟机管理器侧对报文解析的次数,以减小虚拟机管理器侧CPU的处理开销。
Description
技术领域
本申请实施例涉及数据处理领域,尤其涉及一种基于网卡的报文解析方法以及相关装置。
背景技术
智能网卡(smart network interface controller,Smart NIC),是一种具有高级转发特性的网络接口控制器,能够对网络报文进行处理。例如,报文转发、报文修改、报文校验和计算、报文聚合及切片等处理。该智能网卡常与虚拟机管理器结合应用,降低虚拟机管理器侧的CPU负荷,进而提升虚拟机管理器的整体处理能力。
在传统技术中,智能网卡留有一部分计算实例,能够对报文进行报文转发等简单的报文处理。但是,该智能网卡的处理能力有限,存在无法处理部分报文的情况。因此,需要将前述报文转发给虚拟机管理器进行处理,导致该智能网卡对降低虚拟机管理器侧的CPU负荷的效果不佳。因此,目前急需一种能够更有效利用智能网卡以优化报文处理流程的方案。
发明内容
本申请实施例提供了一种基于网卡的报文解析方法以及相关装置,用于减少报文处理过程中虚拟机管理器侧对报文解析的次数,以减小虚拟机管理器侧CPU的处理开销。
第一方面,本申请提供了一种基于网卡的报文解析方法,该方法涉及网卡和虚拟机管理器,应用于云计算场景中。在该方法中,该网卡解析收到的报文以获取该报文的解析信息。然后,该网卡将根据前述解析信息判断该报文是否满足预设条件,当根据确定该报文的解析信息不满足预设条件时,该网卡将该解析信息和该报文发送至虚拟机管理器。然后,该虚拟机管理器提供该解析信息至该虚拟机管理器中的多个报文处理模块,以使得前述多个报文处理模块中的每个报文处理模块根据该解析信息对该报文进行对应的报文处理。
本实施例中,由于,网卡能够解析报文以获得该报文的解析信息,并在确定该报文的解析信息不满足预设条件时将前述报文和解析信息均发送至虚拟机管理器中,以使得该虚拟机管理器中的多个报文处理模块能够直接根据前述解析信息进行报文处理,而无需前述各个模块分别再次对该报文进行解析。因此,能够减少报文处理过程中虚拟机管理器侧对报文解析的次数,以减小虚拟机管理器侧CPU的处理开销。
在一种可选的实施方式中,该报文来自于与该网卡直通的虚拟机;或者,该报文来自于与该网卡连接的交换机。
在一种可选的实施方式中,前述预设条件为该网卡查询到与该解析信息相关的报文处理规则。
其中,与该解析信息相关的报文处理规则,可以理解为,该解析信息中的部分或全部与网卡中的某个报文处理规则相关。应理解的是,该报文处理规则可以以表的形式或者其它形式存储于前述网卡中。在一种具体的实施方式中,前述报文处理规则存储于流表中,该流表包括至少一个流,该流表中的流即为前述报文处理规则。
在一种可选的实施方式中,该方法还包括:当该报文的解析信息满足该预设条件时,该网卡根据该报文处理规则处理该报文。
本实施方式中,前述网卡不仅能够对该报文进行解析,还能够基于该解析信息查询报文的处理规则,以使得在查询到与该解析信息相关的处理规则之后,该网卡可以对该报文进行处理。也就是说,本实施方式能够将该报文的部分处理任务交由该网卡执行,而不是将所有的关于该报文的处理任务都交由虚拟机管理器中的报文处理模块执行。因此,能够以减小虚拟机管理器侧CPU的处理开销。
示例性的,前述报文处理规则包括对报文进行二层安全检验、查询该报文的源地址和目的地址以及将该报文转发至目的地址等,具体此处不做限定。
在一种可选的实施方式中,该解析信息包括关键信息;该网卡包括流表,该流表包括至少一个流,该流用于指示报文处理规则。此外,该方法还包括:该网卡根据该关键信息查询该流表;当根据该关键信息未查找到与该关键信息对应的流时,该网卡确定该报文的解析信息不满足该预设条件。
本实施方式中,网卡能够将解析信息中的关键信息作为索引依据在前述流表中查找与该关键信息对应的流。若未能查询到与该关键信息对应的流,则该网卡将前述解析信息和报文均发送至虚拟机管理器,以使得该虚拟机管理器根据该解析信息对该报文进行处理。
在一种可选的实施方式中,该虚拟机管理器提供该解析信息至该虚拟机管理器中的多个报文处理模块之前,该方法还包括:该虚拟机管理器存储该解析信息。
本实施方式中,该虚拟机管理器能够存储前述解析信息,因此,该虚拟机管理器中的各个报文处理模块能够根据各个模块的需求获取前述解析信息。此时,该虚拟机管理器中的各个报文处理模块无需对该报文进行解析处理,而是可以直接利用来自前述网卡的解析信息。
在一种可选的实施方式中,该虚拟机管理器提供该解析信息至该虚拟机管理器中的多个报文处理模块之前,该方法还包括:该虚拟机管理器将该解析信息分类存储至多个数据结构,每个该数据结构包含该解析信息的一部分信息,每个该数据结构包含不同类型的信息,该报文处理模块用于根据至少一个该数据结构对该报文进行处理。
本实施方式中,为了便于虚拟机管理器中的各个报文处理模块获取前述各个报文处理模块所需的解析信息,该虚拟机管理器可以将前述解析信息分类存储至多个数据结构中。也可以理解为,将前述解析信息转换为报文处理模块能够识别的格式,有利于提高各个报文处理模块获取解析信息以对报文进行处理的效率。
在一种可选的实施方式中,该数据结构包括指示信息,该指示信息用于指示该数据结构携带的解析信息的类型。
本实施方式中,提出前述数据结构还包括指示信息,该指示信息用于指示该数据结构携带的解析信息的类型。于是,该虚拟机管理器中的各个报文处理模块根据前述指示信息即可获知该数据结构中存储的内容。也可以理解为,前述报文处理模块可以采用前述指示信息查询该报文处理模块所需的解析信息。因此,有利于提高报文处理模块获取解析信息的效率,进而有利于提高虚拟机管理器对报文处理的效率。
在一种可选的实施方式中,该关键信息包括源IP地址、源端口信息、目的IP地址、目的端口信息或传输层协议中的一项或多项。
在一种可选的实施方式中,该报文处理模块为二层安全模块、访问控制列表ACL模块、转发模块或卸载模块中的任意一项。
第二方面,本申请提供了一种基于网卡的报文解析方法,该方法涉及网卡和虚拟机管理器,应用于云计算场景中。在该方法中,该网卡将收到的报文发送至虚拟机管理器;该虚拟机管理器对该报文进行解析以获取该报文的解析信息,并提供该解析信息至该虚拟机管理器中的多个报文处理模块,其中,该多个报文处理模块用于根据该解析信息对该报文进行对应的报文处理。
应当理解的是,本实施例中的网卡可以是没有解析功能的普通网卡,也可以是有解析功能但是并未使能该解析功能的智能网卡,具体此处不做限定。
本实施例中,网卡未对该报文进行解析,而是将该报文转发至虚拟机管理器中,由虚拟机管理器对该报文进行统一解析以获得该报文的解析信息,并直接将该解析信息提供至该虚拟机管理器中的各个报文处理模块进行报文处理使用。在此过程中,该虚拟机管理器仅对该报文解析了一次,该虚拟机管理器中的各个报文处理模块直接利用前述解析信息而不会再次对该报文进行解析。因此,能够减少报文处理过程中虚拟机管理器侧对报文解析的次数,以减小虚拟机管理器侧CPU的处理开销。
在一种可选的实施方式中,该报文来自于与该网卡直通的虚拟机;或者,该报文来自于与该网卡连接的交换机。
在一种可选的实施方式中,该虚拟机管理器提供该解析信息至该虚拟机管理器中的多个报文处理模块之前,该方法还包括:该虚拟机管理器将该解析信息分类存储至多个数据结构,每个该数据结构包含该解析信息的一部分信息,每个该数据结构包含不同类型的信息,该报文处理模块用于根据至少一个该数据结构对该报文进行处理。
本实施方式中,为了便于虚拟机管理器中的各个报文处理模块获取前述各个报文处理模块所需的解析信息,该虚拟机管理器可以将前述解析信息分类存储至多个数据结构中。也可以理解为,将前述解析信息转换为报文处理模块能够识别的格式,有利于提高各个报文处理模块获取解析信息以对报文进行处理的效率。
在一种可选的实施方式中,该数据结构包括指示信息,该指示信息用于指示该数据结构携带的解析信息的类型。
本实施方式中,提出前述数据结构还包括指示信息,该指示信息用于指示该数据结构携带的解析信息的类型。于是,该虚拟机管理器中的各个报文处理模块根据前述指示信息即可获知该数据结构中存储的内容。也可以理解为,前述报文处理模块可以采用前述指示信息查询该报文处理模块所需的解析信息。因此,有利于提高报文处理模块获取解析信息的效率,进而有利于提高虚拟机管理器对报文处理的效率。
在一种可选的实施方式中,该报文处理模块为二层安全模块、访问控制列表ACL模块、转发模块或卸载模块中的任意一项。
第三方面,本申请提供了一种服务器,该服务器包括网卡和虚拟机管理器。其中,网卡,用于接收报文,并解析该报文以获取该报文的解析信息,并且,当根据该解析信息确定该报文不满足预设条件时,将该解析信息和该报文发送至虚拟机管理器。此外,该虚拟机管理器,用于提供该解析信息至该虚拟机管理器中的多个报文处理模块,其中,该多个报文处理模块用于根据该解析信息对该报文进行对应的报文处理。
在一种可选的实施方式中,该报文来自于与该网卡直通的虚拟机;或者,该报文来自于与该网卡连接的交换机。
在一种可选的实施方式中,该预设条件为该网卡查询到与该解析信息相关的报文处理规则。
在一种可选的实施方式中,该网卡,还用于当该报文的解析信息满足该预设条件时,根据该报文处理规则处理该报文。
在一种可选的实施方式中,该解析信息包括关键信息;该网卡包括流表,该流表包括至少一个流,该流用于指示报文处理规则;该网卡,还用于根据该关键信息查询该流表,并且,当根据该关键信息未查找到与该关键信息对应的流时,确定该报文的解析信息不满足该预设条件。
在一种可选的实施方式中,该虚拟机管理器还用于存储该解析信息。
在一种可选的实施方式中,该虚拟机管理器具体用于将该解析信息分类存储至多个数据结构,每个该数据结构包含该解析信息的一部分信息,每个该数据结构包含不同类型的信息,该报文处理模块用于根据至少一个该数据结构对该报文进行处理。
在一种可选的实施方式中,该数据结构包括指示信息,该指示信息用于指示该数据结构携带的解析信息的类型。
在一种可选的实施方式中,该关键信息包括源IP地址、源端口信息、目的IP地址、目的端口信息或传输层协议中的一项或多项。
在一种可选的实施方式中,该报文处理模块为二层安全模块、访问控制列表ACL模块、转发模块或卸载模块中的任意一项。
第四方面,本申请提供了一种服务器,该服务器包括网卡和虚拟机管理器。其中,网卡,用于接收报文,并将该报文发送至虚拟机管理器。此外,该虚拟机管理器,用于对该报文进行解析以获取该报文的解析信息,并提供该解析信息至该虚拟机管理器中的多个报文处理模块,其中,该多个报文处理模块用于根据该解析信息对该报文进行对应的报文处理。
在一种可选的实施方式中,该报文来自于与该网卡直通的虚拟机;或者,该报文来自于与该网卡连接的交换机。
在一种可选的实施方式中,该虚拟机管理器,具体用于将该解析信息分类存储至多个数据结构,每个该数据结构包含该解析信息的一部分信息,每个该数据结构包含不同类型的信息,该报文处理模块用于根据至少一个该数据结构对该报文进行处理。
在一种可选的实施方式中,该数据结构包括指示信息,该指示信息用于指示该数据结构携带的解析信息的类型。
在一种可选的实施方式中,该报文处理模块为二层安全模块、访问控制列表ACL模块、转发模块或卸载模块中的任意一项。
第五方面,本申请提供了一种网卡,该网卡包括解析器和嵌入式交换器。其中,解析器,用于获取报文,并解析所述报文以获取所述报文的解析信息,所述报文来自与所述网卡直通的虚拟机;嵌入式交换机,用于将所述解析信息和所述报文发送至虚拟机管理器。
在一种可选的实施方式中,所述解析信息包括关键信息;所述嵌入式交换机包括流表,所述流表包括至少一个流,所述流用于指示报文处理规则;所述嵌入式交换机,还用于根据所述关键信息查询所述流表,并且,当根据所述关键信息未查找到与所述关键信息对应的流时,确定所述报文的解析信息不满足所述预设条件。
在一种可选的实施方式中,所述关键信息包括源IP地址、源端口信息、目的IP地址、目的端口信息或传输层协议中的一项或多项。
第六方面,本申请提供了一种报文处理装置,该报文处理装置包括处理模块、存储模块和网络接口。其中,网络接口连接网卡,存储模块存储程序,该处理模块调用前述程序以使得实现前述第一方面或第二方面中网卡和虚拟机管理器所涉及的功能。
第七方面,本申请实施例提供了一种裸金属服务器,该裸金属服务器兼具虚拟机弹性和物理机性能的计算类服务器,用于为核心数据库、关键应用系统、高性能计算、大数据等业务提供卓越的计算性能以及数据安全。该裸金属服务器包括处理模块和收发模块。其中,该处理模块可以是处理器,该收发模块可以是输入输出设备或网络接口。该裸金属服务器还可以包括存储模块,该存储模块可以是存储器;该存储模块用于存储指令,该处理模块执行该存储模块所存储的指令,以使该裸金属服务器执行前述第一方面或第二方面中网卡和虚拟机管理器所涉及的功能。
第八方面,本申请实施例提供了一种物理机,该物理机用于运行前述网卡和虚拟机管理器,并基于前述第一方面或第二方面中的网卡和虚拟机管理器对报文进行处理。该物理机包括处理模块和收发模块。其中,该处理模块可以是处理器,该收发模块可以是输入输出设备或网络接口。该物理机还可以包括存储模块,该存储模块可以是存储器;该存储模块用于存储指令,该处理模块执行该存储模块所存储的指令,以使该物理机执行前述第一方面或第二方面中网卡和虚拟机管理器所涉及的功能。
从以上技术方案可以看出,本申请实施例具有以下优点:
本申请实施例中,由于,网卡能够解析报文以获得该报文的解析信息,并在报文的解析信息不满足预设条件时将前述报文和解析信息均发送至虚拟机管理器中,以使得该虚拟机管理器中的多个报文处理模块能够直接根据前述解析信息进行报文处理,而无需前述各个模块分别再次对该报文进行解析。因此,能够减少报文处理过程中虚拟机管理器侧对报文解析的次数,以减小虚拟机管理器侧CPU的处理开销。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例。
图1为本申请实施例中基于网卡的报文解析方法的一个应用场景图;
图2为本申请实施例中基于网卡的报文解析方法的一个流程图;
图3为本申请实施例中基于网卡的报文解析方法的另一个流程图;
图4为本申请实施例中基于网卡的报文解析方法的另一个应用场景图;
图5为本申请实施例提出的报文处理装置的一个实施例示意图;
图6为本申请实施例提出的报文处理装置的另一个实施例示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
本申请实施例提供了一种基于网卡的报文解析方法以及相关装置,用于减少报文处理过程中虚拟机管理器侧对报文解析的次数,以减小虚拟机管理器侧CPU的处理开销。
为便于理解,下面先对本申请实施例所涉及的部分技术术语进行解释:
虚拟机(virtual machine):指通过软件模拟且具有硬件系统功能的运行在一个完全隔离环境中的计算机系统。该虚拟机运行于实体计算机中,在实体计算机中能够完成的工作在虚拟机中都能够实现。常见的虚拟机有:Java虚拟机、Linux虚拟机和windows虚拟机。本实施例中的虚拟机可以是上述任意一种虚拟机。
虚拟机管理器(Hypervisor):又称为虚拟机监视器(virtual machine monitor,VMM),是用来建立与执行虚拟机的软件、固件或硬件。一种运行在基础物理服务器和操作系统之间的中间软件层,可允许多个操作系统和应用共享硬件。
嵌入式交换机(embedded switch,eSwitch):位于智能网卡中,是智能网卡处理报文转发逻辑的核心部件,用于加速特定场景的网络处理逻辑。一般地,由硬件厂商基于业务定制的专用集成电路(application specific integrated circuit,ASIC)芯片实现。
虚拟交换机(virtual switch,vSwitch):是实现虚拟机管理器对报文进行处理的虚拟装置。该虚拟机管理器中的各个报文处理模块可以位于该虚拟交换机中。一般地,不同的报文处理模块对报文的处理操作不同,前述多个报文处理模块可以串行地对某一报文进行处理。
快速数据路径(fast data path):快速转发路径的一种学术定义,通常是性能较快的转发路径。在智能网卡场景下,指的是报文通过网卡等硬件加速转发的数据路径。
慢速数据路径(slow data path):慢速转发路径的一种学术定义,通常是处理复杂逻辑,性能较慢的数据转发路径。在智能网卡场景下,指的是报文通过虚拟交换机转发的数据路径。
未命中上送(miss upcall):描述快速、慢速转发路径分离设计场景下,快速路径查表未命中,继而上送给慢速转发路径的一种行为。
下面对本申请实施例提出的基于网卡的报文解析方法所适应的应用场景和系统架构进行介绍:
本申请实施例提出的基于网卡的报文解析方法可以应用于云计算场景中。例如,两个虚拟机之间通过网卡加速报文转发处理以卸载主机CPU处理负荷的场景。如图1所示,在该场景中,由主机运行的虚拟机管理器管理了至少一个虚拟机(例如,虚拟机1和虚拟机2),前述虚拟机之间存在通信需求。为了提高前述虚拟机之间进行通信的效率,运行该虚拟机管理器的主机还配置了网卡,该网卡用于卸载该主机的CPU的处理负荷。当其中一个虚拟机(例如,虚拟机1)向另一个虚拟机(例如,虚拟机2)传输报文时,该虚拟机1将采用直通方式将报文发送至前述网卡。若该网卡具备处理该报文的能力,则由该网卡中的嵌入式交换机对该报文进行处理,并将处理后的报文通过直通方式传输至虚拟机2;若该网卡不具备处理该报文的能力,则该网卡将前述报文传输至虚拟机管理器,由该虚拟机管理器中的虚拟交换机进行处理,然后,再将处理后的报文转发给该网卡,再由该网卡通过直通方式将该报文传输至虚拟机2。但是,若将前述报文转发给虚拟机管理器进行处理,会再次占用虚拟机管理器侧的CPU资源,导致该网卡对降低虚拟机管理器侧的CPU负荷的效果不佳。
应当理解的是,除了前述应用场景,该基于网卡的报文解析方法还可以用于处理来自外部交换机的报文的场景。也就是说,本申请所介绍的报文可以来自于与该网卡直通的虚拟机,也可以来自于与该网卡连接的交换机。在后续实施例中,以报文可以来自于与该网卡直通的虚拟机为例进行介绍。
对此,本申请提供了一种基于网卡的报文解析方法,能够更有效地利用网卡降低虚拟机管理器侧的CPU负荷,优化报文处理流程。
如图2所示,为本申请提出的基于网卡的报文解析方法的一种实施例,在该方法中,服务器中的网卡和虚拟机管理器将执行如下步骤:
步骤201、网卡接收虚拟机发送的报文。
本实施例中,若一个虚拟机需要向另一个虚拟机传输报文,并且,这两个虚拟机之间也能够通过网卡加速报文转发处理,则该网卡可以接收前述虚拟机发送的报文。其中,该报文携带了需要传输至另一个虚拟机的信息(或数据)。示例性的,该报文可以为源网际互连协议(internet protocol,IP)报文。
此外,该网卡直通至该虚拟机,也就是说,该虚拟机通过直通技术将前述报文传输至该网卡。前述直通技术指直接存储器访问(direct memory access,DMA)技术,该虚拟机将前述报文发送给网卡的过程可以不受CPU干预。
步骤202、网卡解析该报文以获取该报文的解析信息。
本实施例中,该网卡具备解析能力,也就是说,该网卡能够对该报文进行解析操作。其中,该解析操作可以理解为分析该报文的报文头,以获得隧道信息、二层信息、源IP地址、源端口信息、目的IP地址、目的端口信息或传输层协议等信息。应当理解的是,当前述报文的格式不同时,该网卡对该报文的解析操作也将不同,具体此处不做限定。
在一种可选的实施方式中,该网卡为智能网卡(smart network interfacecontroller,Smart NIC)。该智能网卡包含嵌入式交换机(embedded switch,eSwitch)。该嵌入式交换机是智能网卡处理报文转发逻辑的核心部件,用于加速特定场景的网络处理逻辑。
本实施例中,将该网卡对该报文进行解析操作而获得的信息(或数据)称为解析信息,该解析信息也被称为元数据(metadata)、中介数据或中继数据,是用于描述数据的数据(data about data),主要是描述数据属性(property)的信息,用来支持如指示存储位置、历史数据、资源查找以及文件记录等功能。
可选的,前述解析信息包括关键信息(key),该关键信息为该解析信息中比较重要的信息,该关键信息可以作为查询流表的索引依据。示例性的,该关键信息包括源IP地址、源端口信息、目的IP地址、目的端口信息或传输层协议中的一项或多项。可选的,该关键信息还可以包括隧道信息以及二层信息等,具体此处不做限定。
可选的,前述网卡还包括流表(flow table),该网卡中存储有一个或多个流表。该流表包括至少一个流,该流表中的流用于指示报文处理规则,并且,不同的流指示不同的报文处理规则。此外,前述关键信息与前述流表中的部分流存在对应关系,因此,前述关键信息可以作为查询前述流表中的流的索引依据。可选的,前述流表位于前述嵌入式交换机中。
步骤203、网卡判断该报文的解析信息是否满足预设条件。
其中,该预设条件为该网卡查询到与该报文的解析信息相关的报文处理规则。由于,该报文的解析信息来自于前述报文,因此,也可以理解为,该预设条件为该网卡查询到与该报文相关的报文处理规则。
本实施例中,当网卡确定该报文的解析信息满足预设条件时,该网卡执行步骤204;当网卡确定该报文的解析信息不满足预设条件时,该网卡执行步骤205。
具体地,该网卡采用该解析信息查询该网卡中存储的报文处理规则,若存在与该报文的解析信息相关的报文处理规则,则网卡确定该报文的解析信息满足预设条件。
在一种具体的实施方式中,前述网卡包括流表(flow table),该流表中的流用于指示报文处理规则,并且,该解析信息包括关键信息(key)。此时,该网卡可以根据该关键信息查询前述流表。当根据该关键信息未查找到与该关键信息对应的流时,该网卡确定该报文的解析信息不满足该预设条件。可选的,若该网卡中包含嵌入式交换机,则由该嵌入式交换机根据该关键信息查询前述流表,当根据该关键信息未查找到与该关键信息对应的流时,则确定该报文的解析信息不满足该预设条件。
步骤204、网卡根据报文处理规则处理该报文。
本实施例中,当前述网卡确定该报文的解析信息满足预设条件时,该网卡根据报文处理规则处理该报文。可以理解为,该网卡恰好具备处理该报文的能力,于是,该网卡可以直接对报文进行处理而无需虚拟机管理器介入。此时,该网卡将不再执行后续步骤205和步骤206。在实际应用中,将由网卡直接对报文进行处理的路径(或方式)称为快速数据路径(fast data path)。
可选的,若该网卡中包含嵌入式交换机,则由该嵌入式交换机根据前述报文处理规则处理该报文。
步骤205、网卡将该解析信息和该报文发送至虚拟机管理器。
本实施例中,当前述网卡确定该报文的解析信息不满足预设条件时,则说明该网卡中不包含处理该报文的报文处理规则,于是需要虚拟机管理器介入对前述报文进行处理。此时,由于,该网卡已对该报文进行了解析并获得了该报文的解析信息,因此,该网卡可以将该解析信息和该报文均发送至虚拟机管理器。此时,该虚拟机管理器在收到前述报文之后,便不需要对该报文进行解析,而是直接采用该网卡发送的报文的解析信息对报文进行处理。具体处理方式请参阅步骤206。在实际应用中,将由网卡将报文准发至虚拟机管理器中的虚拟机进行处理的路径(或方式)称为慢速数据路径(slow data path)。
在一种具体的实施方式中,该网卡将通过直接内存访问(direct memory access,DMA)的方式将前述解析信息和报文传输至虚拟机管理器。可选的,该虚拟机管理器包含虚拟交换机(virtual switch,vSwitch),该虚拟机交换机利用收包接口接收来自前述网卡的数据。
还应理解的是,网卡根据关键信息未在流表中查找到对应的流的情况也被称为未命中(miss),此时,该网卡将前述报文发送至虚拟机管理器的过程也被称为未命中上送(miss upcall),也就是说,快速路径查表未命中,继而上送给慢速转发路径的一个行为。
步骤206、该虚拟机管理器提供该解析信息至该虚拟机管理器中的多个报文处理模块。
其中,前述报文处理模块指能够根据该解析信息对该报文进行对应的报文处理的功能模块。示例性的,该报文处理模块可以为二层安全(layer two security,L2-security)模块、访问控制列表(access control list,ACL)模块、转发(forward)模块或卸载(offload)模块等,具体此处不做限定。还应理解的是,一般地,前述各个报文处理模块将串行地对该报文进行处理。例如,依次由前述二层安全模块、访问控制列表ACL模块以及转发模块分别对该报文进行处理。
在一种可选的实施方式中,该虚拟机管理器在收到前述解析信息之后,该虚拟机管理器将存储该解析信息,以便前述报文处理模块能够随时获取前述解析信息。本实施方式中,该虚拟机管理器能够存储前述解析信息,因此,该虚拟机管理器中的各个报文处理模块能够根据各个模块的需求获取前述解析信息。此时,该虚拟机管理器中的各个报文处理模块无需对该报文进行解析处理,而是可以直接利用来自前述网卡的解析信息。
具体地,该报文处理模块在处理前述报文的过程中,会获取该报文处理模块处理该报文所需要的解析信息(包括关键信息)。然后,该报文处理模块采用前述关键信息查询该报文处理模块中的流表。示例性的,该流表可以为转发表或状态处理表。当该报文处理模块查询到处理该报文的处理规则后,该报文处理模块便采用前述解析信息和报文处理规则对该报文进行处理。
示例性的,以控制列表ACL模块为例进行介绍。该控制列表ACL模块对前述报文进行处理的过程中,该控制列表ACL模块会获取前述解析信息中该控制列表ACL模块所需要的关键信息。然后,根据前述关键信息查询该控制列表ACL模块中的流表,该流表中包含多个报文的关于访问控制的处理规则。然后,该控制列表ACL模块根据前述关于访问控制的处理规则对前述报文进行处理。
在另一种可选的实施方式中,该虚拟机管理器将该解析信息分类存储至多个数据结构,并将前述解析信息以数据结构的形式提供至虚拟机管理器中的各个报文处理模块。其中,每个数据结构包含该解析信息的一部分信息,每个该数据结构包含不同类型的信息。该报文处理模块根据对该报文处理的需要获取前述一个或多个数据结构中的信息,以对该报文进行处理。本实施方式中,为了便于虚拟机管理器中的各个报文处理模块获取前述各个报文处理模块所需的解析信息,该虚拟机管理器可以将前述解析信息分类存储至多个数据结构中。也可以理解为,将前述解析信息转换为报文处理模块能够识别的格式,有利于提高各个报文处理模块获取解析信息以对报文进行处理的效率。
可选的,该数据结构包括指示信息,该指示信息用于指示该数据结构携带的解析信息的类型。于是,该虚拟机管理器中的各个报文处理模块根据前述指示信息即可获知该数据结构中存储的内容。也可以理解为,前述报文处理模块可以采用前述指示信息查询该报文处理模块所需的解析信息。因此,有利于提高报文处理模块获取解析信息的效率,进而有利于提高虚拟机管理器对报文处理的效率。
可选的,该虚拟机管理器中包含一个虚拟解析器,该虚拟解析器位于前述虚拟交换机中,该虚拟解析器能够对来自收包接口的解析信息进行分类整理,可以理解为,将前述解析信息转换为易于报文处理模块识别的信息(或数据),有利于提高各个报文处理模块获取解析信息以对报文进行处理的效率。
本实施例中,由于,网卡能够解析报文以获得该报文的解析信息,并在未命中时将前述报文和解析信息均发送至虚拟机管理器中,以使得该虚拟机管理器中的多个报文处理模块能够直接根据前述解析信息进行报文处理,而无需前述各个模块分别再次对该报文进行解析。因此,能够减少报文处理过程中虚拟机管理器侧对报文解析的次数,以减小虚拟机管理器侧CPU的处理开销。
如图3所示,为本申请提出的基于网卡的报文解析方法的另一种实施例,服务器中的网卡和虚拟机管理器将执行如下步骤:
步骤301、网卡接收虚拟机发送的报文。
本实施例中,步骤301与前述步骤201类似,具体请参阅前述步骤201。
步骤302、网卡将该报文发送至虚拟机管理器。
本实施例中,该网卡不具备解析能力,或者,该网卡具备解析能力但并未使能该解析功能。因此,该网卡将该报文转发至虚拟机管理器,交由该虚拟机管理器进行处理。
步骤303、虚拟机管理器对该报文进行解析以获取该报文的解析信息。
具体地,该虚拟机管理器将对该报文进行统一解析,以获取该报文的解析信息。
可选的,该虚拟机管理器包含虚拟解析器,该虚拟解析器具备解析功能。该虚拟解析器对该报文进行解析以获得前述解析信息。
可选的,前述解析信息包括关键信息(key),该关键信息包括源IP地址、源端口信息、目的IP地址、目的端口信息或传输层协议中的一项或多项。
可选的,前述虚拟解析器还将根据前述关键信息查询流表,以获取与该关键信息对应的报文处理规则。
步骤304、虚拟机管理器提供该解析信息至该虚拟机管理器中的多个报文处理模块。
其中,前述报文处理模块指能够根据该解析信息对该报文进行对应的报文处理的功能模块。具体地,请参阅前述步骤206中的相关介绍。
在一种可选的实施方式中,该虚拟机管理器在收到前述解析信息之后,该虚拟机管理器将存储该解析信息,以便前述报文处理模块能够随时获取前述解析信息。
在另一种可选的实施方式中,该虚拟机管理器将该解析信息分类存储至多个数据结构。其中,每个数据结构包含该解析信息的一部分信息,每个该数据结构包含不同类型的信息。该报文处理模块根据对该报文处理的需要获取前述一个或多个数据结构中的信息,以对该报文进行处理。
可选的,该数据结构包括指示信息,该指示信息用于指示该数据结构携带的解析信息的类型。
可选的,该虚拟机管理器中包含一个虚拟解析器,该虚拟解析器位于前述虚拟交换机中,该虚拟解析器能够对来自收包接口的解析信息进行分类整理,可以理解为,将前述解析信息转换为易于报文处理模块识别的信息(或数据)。因此,该虚拟机管理器中的各个报文处理模块能够根据各个模块的需求获取经前述虚拟解析器分离整理的解析信息,而无需对该报文进行解析处理,有利于提高各个报文处理模块获取解析信息以对报文进行处理的效率。
本实施例中,由于,虚拟机管理器能够统一解析报文以获得该报文的解析信息,并将解析信息直接提供给虚拟机管理器中的多个报文处理模块使用,以使得前述报文处理模块能够直接根据前述解析信息进行报文处理,而无需前述各个模块分别再次对该报文进行解析。因此,能够减少报文处理过程中虚拟机管理器侧对报文解析的次数,以减小虚拟机管理器侧CPU的处理开销。
下面结合具体场景对前述基于网卡的报文解析方法进行介绍,如图4所示,为为云计算场景中客户虚拟机之间通过智能网卡加速通信的组网模型。在该组网模型中,客户虚拟机0(Guest VM0)运行服务端应用(Server APP),以接收来自客户虚拟机1(Guest VM1)运行的客户端应用(Client APP)的请求报文。待该客户虚拟机0对该请求报文进行处理之后,该服务端应用将向客户虚拟机1运行的客户端应用回复响应报文。
具体地,Guest VM1的Client APP请求报文通过直通链路到达网卡中的嵌入式交换机中,该嵌入式交换机对该请求报文进行解析以获得该请求报文的元数据(metadata),并根据该元数据中的key查找嵌入式交换机的流表。由于,前述客户虚拟机1和客户虚拟机0之间在新建流的情况下,嵌入式交换机(eSwitch)中的流表不足以支持处理前述请求报文。因此,若基于该请求报文的元数据中的key查找流表,则将有较大概率无法命中。若未命中,则嵌入式交换机将触发未命中上送(miss upcall),即采用虚拟功能VF模块(例如,虚拟功能VF1和虚拟功能VF1’)通过上送通道将元数据(metadata)和包数据(packet data)(即该报文)均发送至前述虚拟机管理器中的虚拟交换器中。该虚拟交换器中的虚拟解析器将对前述元数据进行分类整理得到多个数据结构。其中,前述多个数据结构中的每个数据结构存储有不同的元数据。该虚拟交换机中的报文处理模块将采用前述数据结构中的元数据依次对前述请求报文进行处理。然后,将处理后的报文从对应的端口发送至网卡中的嵌入式交换机,该嵌入式交换机采用虚拟功能VF模块(例如,虚拟功能VF0和虚拟功能VF0’)通过直通链路将前述处理后的请求报文传输至Guest VM0的Server APP。同理,Guest VM0的Server APP接收到请求报文之后,将请求数据以报文的方式经过类似的过程发送至GuestVM1的Client APP。由此,实现两个虚拟机之间的报文加速传输。
其中,前述虚拟功能VF可以是虚拟的接口或通道,用于传输前述报文。前述虚拟功能VF可以由单根输入/输出虚拟化(single-root I/O virtualization,SR-IOV)技术或其他虚拟化技术实现,具体此处不做限定。当前述虚拟功能VF为虚拟接口时,该虚拟接口能够实现与前述物理接口相同的功能。
本实施例中,由于,网卡中的嵌入式交换机能够解析报文以获得该报文的解析信息(即元数据),并在未命中时将前述报文和解析信息(即元数据)均发送至虚拟机管理器维护的虚拟交换机中,并由虚拟解析器对前述元数据进行整理分类至多个数据结构,以使得该虚拟交换机中的多个报文处理模块能够直接采用前述数据结构中的元数据进行报文处理,而无需前述各个模块分别再次对该报文进行解析。因此,能够减少报文处理过程中虚拟机管理器侧对报文解析的次数,以减小虚拟机管理器侧CPU的处理开销。
下面将本申请中基于网卡的报文解析方法涉及的设备进行介绍:
如图5所示,为本申请实施例提供了一种报文处理装置50的结构示意图。该报文处理装置50可以是物理机,前述图2和图3对应的方法实施例中虚拟机管理器运行于前述报文处理装置50中。
该报文处理装置50包括至少一个处理器501和至少一个存储器502。应当理解的是,图5仅示出了一个处理器501和一个存储器502。
其中,该处理器501可以是通用中央处理单元(central processing unit,CPU)、微处理器、网络处理器(network processor,NP)或特定应用集成电路(application-specific integrated circuit),或一个或多个用于控制本申请方案的程序执行的集成电路。前述处理器501可以是一个单核(single-CPU)处理器,也可以是一个多核(multi-CPU)处理器。处理器501可以指一个或多个装置、电路和/或用于处理数据(例如计算机程序指令)的处理核。此外,该处理器501可以是个单独的半导体芯片,也可以跟其他电路一起集成为一个半导体芯片,例如,可以跟其他电路(如编解码电路、硬件加速电路或各种总线和接口电路)构成一个片上系统(system-on-a-chip,SoC),或者也可以作为一个特殊应用集成电路(application specific integrated circuit,ASIC)的内置处理器集成在所述ASIC当中,该集成了处理器的ASIC可以单独封装或者也可以跟其他电路封装在一起。
此外,前述存储器502可以是只读存储器(read-only memory,ROM),也可以是可存储静态信息和指令的其他类型的静态存储设备,也可以是随机存取存储器(random accessmemory,RAM),也可以是可存储信息和指令的其他类型的动态存储设备,还可以是电可擦可编程只读存储器(electrically erasable programmable read-only memory,EEPROM),具体此处不做限定。该存储器502可以是独立存在,但与前述处理器501相连。可选的,该存储器502也可以和前述处理器501集成于一体。例如,集成于一个或多个芯片之内。
此外,该存储器502还用于存储执行本申请实施例的技术方案的程序代码。前述程序代码可以由处理器501来控制执行,被执行的各类计算机程序代码也可被视为是处理器501的驱动程序。于是,前述处理器501可以运行前述虚拟机管理器,用于提供该解析信息至该虚拟机管理器中的多个报文处理模块,其中,该多个报文处理模块用于根据该解析信息对该报文进行对应的报文处理。
此外,该报文处理装置50还包括网卡(图未示),该网卡可以集成于前述处理器501中,也可以是独立存在,但与前述处理器501相连。该网卡用于接收虚拟机发送的报文并解析该报文以获取该报文的解析信息。可选的,该网卡还用于当根据该解析信息确定该报文不满足预设条件时,将该解析信息和该报文发送至虚拟机管理器。
可选的,该报文处理装置50还包括通信接口503,该通信接口503用于与其他报文处理装置或网络设备进行通信。可选的,前述网卡可以是外置网卡,该网卡通过通信接口503与前述处理器501连接。
如图6所示,为本申请实施例提供了一种报文处理装置60的结构示意图。该报文处理装置60可以是服务器、大型计算设备或者大型管理设备,具体此处不做限定。前述图2和图3对应的方法实施例均可以基于图6所示的报文处理装置60的结构。
该报文处理装置60包括多个功能模块,前述各个功能模块可以集成在一个处理单元中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
具体地,该报文处理装置60包括收发模块601和处理模块602。
收发模块601,用于接收虚拟机发送的报文并解析该报文以获取该报文的解析信息。
处理模块602,用于当根据该解析信息确定该报文不满足预设条件时,将该解析信息和该报文发送至虚拟机管理器。
该处理模块602,还用于提供该解析信息至该虚拟机管理器中的多个报文处理模块,其中,该多个报文处理模块用于根据该解析信息对该报文进行对应的报文处理。
在一种可选的实施方式中,该处理模块602,还用于当所述报文的解析信息满足所述预设条件时,根据所述报文处理规则处理所述报文。
在另一种可选的实施方式中,该处理模块602,还用于根据所述关键信息查询所述流表。
在另一种可选的实施方式中,该处理模块602,还用于当根据所述关键信息未查找到与所述关键信息对应的流时,确定所述报文的解析信息不满足所述预设条件。
在另一种可选的实施方式中,该处理模块602,还用于将所述解析信息分类存储至多个数据结构,每个所述数据结构包含所述解析信息的一部分信息,每个所述数据结构包含不同类型的信息,所述报文处理模块用于根据至少一个所述数据结构对所述报文进行处理。其中,数据结构包括指示信息,所述指示信息用于指示所述数据结构携带的解析信息的类型。
在上述实施例中,该报文处理装置60中的各个功能模块可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,该报文处理装置60中的各个功能模块可以全部或部分地以计算机程序产品的形式实现。此时,若该报文处理装置60中的各个功能模块以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来。例如,作为该计算机软件产品存储在一个存储介质中,该计算机软件产品包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read onlymemory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (28)
1.一种基于网卡的报文解析方法,其特征在于,包括:
网卡接收报文,并解析所述报文以获取所述报文的解析信息;
当确定所述报文的解析信息不满足预设条件时,所述网卡将所述解析信息和所述报文发送至虚拟机管理器;
所述虚拟机管理器提供所述解析信息至所述虚拟机管理器中的多个报文处理模块,其中,所述多个报文处理模块用于根据所述解析信息对所述报文进行对应的报文处理。
2.根据权利要求1所述的方法,其特征在于,所述报文来自于与所述网卡直通的虚拟机;或者,所述报文来自于与所述网卡连接的交换机。
3.根据权利要求1或2所述的方法,其特征在于,所述预设条件为所述网卡查询到与所述解析信息相关的报文处理规则。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
当所述报文的解析信息满足所述预设条件时,所述网卡根据所述报文处理规则处理所述报文。
5.根据权利要求1至4中任意一项所述的方法,其特征在于,所述解析信息包括关键信息;所述网卡包括流表,所述流表包括至少一个流,所述流用于指示报文处理规则;
所述方法还包括:
所述网卡根据所述关键信息查询所述流表;
当根据所述关键信息未查找到与所述关键信息对应的流时,所述网卡确定所述报文的解析信息不满足所述预设条件。
6.根据权利要求1至5中任意一项所述的方法,其特征在于,所述虚拟机管理器提供所述解析信息至所述虚拟机管理器中的多个报文处理模块之前,所述方法还包括:
所述虚拟机管理器存储所述解析信息。
7.根据权利要求1至6中任意一项所述的方法,其特征在于,所述虚拟机管理器提供所述解析信息至所述虚拟机管理器中的多个报文处理模块之前,所述方法还包括:
所述虚拟机管理器将所述解析信息分类存储至多个数据结构,每个所述数据结构包含所述解析信息的一部分信息,每个所述数据结构包含不同类型的信息,所述报文处理模块用于根据至少一个所述数据结构对所述报文进行处理。
8.根据权利要求7所述的方法,其特征在于,所述数据结构包括指示信息,所述指示信息用于指示所述数据结构携带的解析信息的类型。
9.根据权利要求5所述的方法,其特征在于,所述关键信息包括源网际互连协议IP地址、源端口信息、目的IP地址、目的端口信息或传输层协议中的一项或多项。
10.根据权利要求1至9中任意一项所述的方法,其特征在于,所述报文处理模块为二层安全模块、访问控制列表ACL模块、转发模块或卸载模块中的任意一项。
11.一种基于网卡的报文解析方法,其特征在于,包括:
网卡接收报文,并将所述报文发送至虚拟机管理器;
所述虚拟机管理器对所述报文进行解析以获取所述报文的解析信息,并提供所述解析信息至所述虚拟机管理器中的多个报文处理模块,其中,所述多个报文处理模块用于根据所述解析信息对所述报文进行对应的报文处理。
12.根据权利要求11所述的方法,其特征在于,所述报文来自于与所述网卡直通的虚拟机;或者,所述报文来自于与所述网卡连接的交换机。
13.根据权利要求11或12所述的方法,其特征在于,所述虚拟机管理器提供所述解析信息至所述虚拟机管理器中的多个报文处理模块之前,所述方法还包括:
所述虚拟机管理器将所述解析信息分类存储至多个数据结构,每个所述数据结构包含所述解析信息的一部分信息,每个所述数据结构包含不同类型的信息,所述报文处理模块用于根据至少一个所述数据结构对所述报文进行处理。
14.根据权利要求13所述的方法,其特征在于,所述数据结构包括指示信息,所述指示信息用于指示所述数据结构携带的解析信息的类型。
15.根据权利要求11至14中任意一项所述的方法,其特征在于,所述报文处理模块为二层安全模块、访问控制列表ACL模块、转发模块或卸载模块中的任意一项。
16.一种服务器,其特征在于,包括:
网卡,用于接收报文;
所述网卡,还用于解析所述报文以获取所述报文的解析信息,并且,当确定所述报文的解析信息不满足预设条件时,将所述解析信息和所述报文发送至虚拟机管理器;
所述虚拟机管理器,用于提供所述解析信息至所述虚拟机管理器中的多个报文处理模块,其中,所述多个报文处理模块用于根据所述解析信息对所述报文进行对应的报文处理。
17.根据权利要求16所述的服务器,其特征在于,所述报文来自于与所述网卡直通的虚拟机;或者,所述报文来自于与所述网卡连接的交换机。
18.根据权利要求16或17所述的服务器,其特征在于,所述预设条件为所述网卡查询到与所述解析信息相关的报文处理规则。
19.根据权利要求16至18中任意一项所述的服务器,其特征在于,所述解析信息包括关键信息;所述网卡包括流表,所述流表包括至少一个流,所述流用于指示报文处理规则;
所述网卡,还用于根据所述关键信息查询所述流表,并且,当根据所述关键信息未查找到与所述关键信息对应的流时,确定所述报文的解析信息不满足所述预设条件。
20.根据权利要求16至19中任意一项所述的服务器,其特征在于,所述虚拟机管理器,还用于将所述解析信息分类存储至多个数据结构,每个所述数据结构包含所述解析信息的一部分信息,每个所述数据结构包含不同类型的信息,所述报文处理模块用于根据至少一个所述数据结构对所述报文进行处理。
21.根据权利要求20所述的服务器,其特征在于,所述数据结构包括指示信息,所述指示信息用于指示所述数据结构携带的解析信息的类型。
22.一种服务器,其特征在于,包括:
网卡,用于接收报文,并将所述报文发送至虚拟机管理器;
所述虚拟机管理器,用于对所述报文进行解析以获取所述报文的解析信息,并提供所述解析信息至所述虚拟机管理器中的多个报文处理模块,其中,所述多个报文处理模块用于根据所述解析信息对所述报文进行对应的报文处理。
23.根据权利要求22所述的服务器,其特征在于,所述报文来自于与所述网卡直通的虚拟机;或者,所述报文来自于与所述网卡连接的交换机。
24.根据权利要求22或23所述的服务器,其特征在于,所述虚拟机管理器,还用于将所述解析信息分类存储至多个数据结构,每个所述数据结构包含所述解析信息的一部分信息,每个所述数据结构包含不同类型的信息,所述报文处理模块用于根据至少一个所述数据结构对所述报文进行处理。
25.根据权利要求24所述的服务器,其特征在于,所述数据结构包括指示信息,所述指示信息用于指示所述数据结构携带的解析信息的类型。
26.一种报文处理装置,其特征在于,包括处理器和存储器,所述存储器存储有程序指令,所述处理器执行所述程序指令以实现权利要求1至10或11至15中任意一项所述的方法。
27.一种网卡,其特征在于,包括:
解析器,用于获取报文,并解析所述报文以获取所述报文的解析信息,所述报文来自于与所述网卡直通的虚拟机或与所述网卡连接的交换机;
嵌入式交换机,用于将所述解析信息和所述报文发送至虚拟机管理器。
28.根据权利要求27所述的网卡,其特征在于,所述解析信息包括关键信息;所述嵌入式交换机包括流表,所述流表包括至少一个流,所述流用于指示报文处理规则;
所述嵌入式交换机,还用于根据所述关键信息查询所述流表,并且,当根据所述关键信息未查找到与所述关键信息对应的流时,确定所述报文的解析信息不满足所述预设条件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011043083.4A CN114363256A (zh) | 2020-09-28 | 2020-09-28 | 基于网卡的报文解析方法以及相关装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011043083.4A CN114363256A (zh) | 2020-09-28 | 2020-09-28 | 基于网卡的报文解析方法以及相关装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114363256A true CN114363256A (zh) | 2022-04-15 |
Family
ID=81089830
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011043083.4A Pending CN114363256A (zh) | 2020-09-28 | 2020-09-28 | 基于网卡的报文解析方法以及相关装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114363256A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115567446A (zh) * | 2022-07-07 | 2023-01-03 | 华为技术有限公司 | 报文转发方法、装置、计算设备及卸载卡 |
WO2024067336A1 (zh) * | 2022-09-26 | 2024-04-04 | 杭州阿里云飞天信息技术有限公司 | 报文处理方法、可编程网卡设备、物理服务器及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101557420A (zh) * | 2009-03-31 | 2009-10-14 | 北京航空航天大学 | 虚拟机监控器高效网络通信的实现方法 |
CN103139253A (zh) * | 2011-11-30 | 2013-06-05 | 华为技术有限公司 | 实现网卡卸载功能的方法、网卡、主机系统及网络设备 |
WO2014023003A1 (zh) * | 2012-08-09 | 2014-02-13 | 华为技术有限公司 | 控制数据传输的方法、装置和系统 |
CN109074330A (zh) * | 2016-08-03 | 2018-12-21 | 华为技术有限公司 | 网络接口卡、计算设备以及数据包处理方法 |
CN109479028A (zh) * | 2016-08-03 | 2019-03-15 | 华为技术有限公司 | 网络接口卡、计算设备以及数据包处理方法 |
CN110912825A (zh) * | 2018-09-18 | 2020-03-24 | 阿里巴巴集团控股有限公司 | 一种报文的转发方法、装置、设备及系统 |
CN111698167A (zh) * | 2020-04-01 | 2020-09-22 | 新华三大数据技术有限公司 | 一种报文处理方法及装置 |
-
2020
- 2020-09-28 CN CN202011043083.4A patent/CN114363256A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101557420A (zh) * | 2009-03-31 | 2009-10-14 | 北京航空航天大学 | 虚拟机监控器高效网络通信的实现方法 |
CN103139253A (zh) * | 2011-11-30 | 2013-06-05 | 华为技术有限公司 | 实现网卡卸载功能的方法、网卡、主机系统及网络设备 |
WO2014023003A1 (zh) * | 2012-08-09 | 2014-02-13 | 华为技术有限公司 | 控制数据传输的方法、装置和系统 |
CN109074330A (zh) * | 2016-08-03 | 2018-12-21 | 华为技术有限公司 | 网络接口卡、计算设备以及数据包处理方法 |
CN109479028A (zh) * | 2016-08-03 | 2019-03-15 | 华为技术有限公司 | 网络接口卡、计算设备以及数据包处理方法 |
CN110912825A (zh) * | 2018-09-18 | 2020-03-24 | 阿里巴巴集团控股有限公司 | 一种报文的转发方法、装置、设备及系统 |
CN111698167A (zh) * | 2020-04-01 | 2020-09-22 | 新华三大数据技术有限公司 | 一种报文处理方法及装置 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115567446A (zh) * | 2022-07-07 | 2023-01-03 | 华为技术有限公司 | 报文转发方法、装置、计算设备及卸载卡 |
WO2024007844A1 (zh) * | 2022-07-07 | 2024-01-11 | 华为技术有限公司 | 报文转发方法、装置、计算设备及卸载卡 |
WO2024067336A1 (zh) * | 2022-09-26 | 2024-04-04 | 杭州阿里云飞天信息技术有限公司 | 报文处理方法、可编程网卡设备、物理服务器及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109074330B (zh) | 网络接口卡、计算设备以及数据包处理方法 | |
US8191069B2 (en) | Method of monitoring performance of virtual computer and apparatus using the method | |
CN115037575A (zh) | 报文处理的方法和装置 | |
US11677686B2 (en) | Packet forwarding method, apparatus, device, and system | |
CN112929299B (zh) | 基于fpga加速卡的sdn云网络实现方法、装置及设备 | |
US11509530B2 (en) | Impartial buffering in stream processing | |
US20170003997A1 (en) | Compute Cluster Load Balancing Based on Memory Page Contents | |
CN110851371B (zh) | 报文处理方法及相关设备 | |
CN112217747A (zh) | 网络接口卡、计算设备以及数据包处理方法 | |
CN114363256A (zh) | 基于网卡的报文解析方法以及相关装置 | |
US10735253B2 (en) | Alarm information reporting method and apparatus | |
CN115150328B (zh) | 一种流表硬件卸载方法、设备及介质 | |
CN106603409B (zh) | 一种数据处理系统、方法及设备 | |
CN114726788A (zh) | 应用于dpu的报文传输方法及相关装置 | |
CN112511438B (zh) | 一种利用流表转发报文的方法、装置及计算机设备 | |
US20230029796A1 (en) | Stateful service processing method and apparatus | |
CN116074131A (zh) | 一种数据处理方法、智能网卡和电子设备 | |
US8914467B2 (en) | Information processing apparatus, system, and storage medium | |
CN111404705B (zh) | 一种sdn的优化方法、装置及计算机可读存储介质 | |
US10374893B1 (en) | Reactive non-blocking input and output for target device communication | |
US20170010915A1 (en) | Performing processing tasks using an auxiliary processing unit | |
US11963085B2 (en) | Systems and methods for determining routing data based on explicit congestion notifications and active queue management enabled network devices | |
US11671350B1 (en) | Data request servicing using multiple paths of smart network interface cards | |
JP2016099972A (ja) | プロセスマイグレーション方法及びクラスタシステム | |
US11695700B2 (en) | Information processing apparatus, computer-readable recording medium storing overload control program, and overload control method |
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 |