CN114979028B - 一种数据包处理方法、装置以及存储介质 - Google Patents

一种数据包处理方法、装置以及存储介质 Download PDF

Info

Publication number
CN114979028B
CN114979028B CN202110220952.4A CN202110220952A CN114979028B CN 114979028 B CN114979028 B CN 114979028B CN 202110220952 A CN202110220952 A CN 202110220952A CN 114979028 B CN114979028 B CN 114979028B
Authority
CN
China
Prior art keywords
data packet
network card
physical network
matching
preset mark
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.)
Active
Application number
CN202110220952.4A
Other languages
English (en)
Other versions
CN114979028A (zh
Inventor
戎胤
刘畅
陶云祥
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Mobile Communications Group Co Ltd
China Mobile Suzhou Software Technology Co Ltd
Original Assignee
China Mobile Communications Group Co Ltd
China Mobile Suzhou Software Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by China Mobile Communications Group Co Ltd, China Mobile Suzhou Software Technology Co Ltd filed Critical China Mobile Communications Group Co Ltd
Priority to CN202110220952.4A priority Critical patent/CN114979028B/zh
Publication of CN114979028A publication Critical patent/CN114979028A/zh
Application granted granted Critical
Publication of CN114979028B publication Critical patent/CN114979028B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/70Virtual switches

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种数据包处理方法,应用于第一设备的虚拟交换机,包括:接收待发送的第一数据包;确定所述第一数据包的处理动作是否能由物理网卡执行;若所述处理动作能由所述物理网卡执行,则将预设标记添加至所述第一数据包中,并将携带有所述预设标记的所述第一数据包发送至所述物理网卡;其中,所述预设标记与数据包的匹配域相对应,用于触发数据包的处理动作的执行。本发明在虚拟交换机对数据包的处理过程中,将物理网卡支持处理的操作交由物理网卡执行,通过信息处理效率比虚拟交换机高的物理网卡来执行部分数据包的处理动作,释放了部分软件侧的信息处理资源同时也提升了数据包的处理效率。

Description

一种数据包处理方法、装置以及存储介质
技术领域
本发明涉及云计算技术领域,尤其涉及一种数据包处理方法、装置以及存储介质。
背景技术
虚拟交换机在进行流量通信时,需要进行流量的解析和流表查找,并针对流表查找结果执行相应的匹配动作,在该过程中通常需要消耗大量的主机资源。
发明内容
本发明为了减少因为虚拟交换机与网卡支持的匹配域不完全匹配时,数据包的处理只能全部在虚拟交换机侧执行的问题,提供了一种数据包处理方法、装置以及存储介质。
本发明的技术方案是这样实现的:
本发明提供了一种数据包处理方法,应用于第一设备的虚拟交换机,包括:
接收待发送的第一数据包;
确定所述第一数据包的处理动作是否能由物理网卡执行;
若所述处理动作能由所述物理网卡执行,则将预设标记添加至所述第一数据包中,并将携带有所述预设标记的所述第一数据包发送至所述物理网卡;其中,所述预设标记与数据包的处理动作相对应,用于触发数据包的处理动作的执行。
本发明提供了一种数据包处理方法,应用于第一设备的物理网卡,包括:
接收虚拟交换机发送的第一数据包;其中,所述第一数据包中携带有预设标记;所述预设标记与数据包的处理动作相对应,用于触发数据包的处理动作的执行;
获取所述第一数据包中所携带的预设标记;
根据所述预设标记,执行所述第一数据包的处理动作。
本发明提供了一种信息处理装置,应用于第一设备的虚拟交换机,包括:
接收单元,用于接收待发送的第一数据包;
确定单元,用于确定所述第一数据包的处理动作是否能由物理网卡执行;
执行单元,用于若所述处理动作能由所述物理网卡执行,则将预设标记添加至所述第一数据包中,并将携带有所述预设标记的所述第一数据包发送至所述物理网卡;其中,所述预设标记与数据包的处理动作相对应,用于触发数据包的处理动作的执行。
本发明提供一种信息处理装置,应用于第一设备的物理网卡,包括:接收单元,用于接收虚拟交换机发送的第一数据包;其中,所述第一数据包中携带有预设标记;所述预设标记与数据包的处理动作相对应,用于触发数据包的处理动作的执行;
获取单元,用于获取所述第一数据包中所携带的预设标记;
执行单元,用于根据所述预设标记,执行所述第一数据包的处理动作。
本发明提供一种计算机存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序被处理器执行后,能够实现前述应用于第一设备的虚拟交换机中的一个或多个技术方案提供的数据包处理方法,或前述应用于第一设备的物理网卡中的一个或多个技术方案提供的数据包处理方法。
本发明实施例提供的数据包处理方法、装置以及计算机存储介质,相较于在虚拟交换机中进行数据包处理,物理网卡进行数据包处理的效率更高,虚拟交换机通过确定数据包的处理动作能够由物理网卡执行,将物理网卡能够执行处理动作的数据包下发给物理网卡进行处理,实现协调软硬件协作完成数据的处理,提升了数据包的处理效率,提升虚拟网络的处理性能。
附图说明
图1为本发明实施例提供的一种数据包处理方法的流程示意图;
图2为本发明实施例提供的另一种数据包处理方法的流程示意图;
图3为本发明实施例提供的一种信息处理装置的结构示意图;
图4为本发明实施例提供的另一种信息处理装置的结构示意图;
图5为本发明实施例提供的一种计算机存储介质的结构示意图;
图6为本发明实施例提供的一种以太网数据包处理方法的原理框架示意图;
图7为本发明实施例提供的一种以太网数据包处理方法的流程示意图;
图8为本发明实施例提供的一种以太网数据包处理方法的流程示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,所描述的实施例不应视为对本发明的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
在以下的描述中,所涉及的术语“第一\第二\第三”仅仅是是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本发明实施例能够以除了在这里图示或描述的以外的顺序实施。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本发明实施例的目的,不是旨在限制本发明。
以下结合说明书附图及具体实施例对本发明的技术方案做进一步的详细阐述。
如图1所示,本实施例提供一种数据包处理方法,应用于第一设备的虚拟交换机,包括:
步骤S110:接收待发送的第一数据包;
步骤S120:确定所述第一数据包的处理动作是否能由物理网卡执行;
步骤S130:若所述处理动作能由所述物理网卡执行,则将预设标记添加至所述第一数据包中,并将携带有所述预设标记的所述第一数据包发送至所述物理网卡;其中,所述预设标记与数据包的处理动作相对应,用于触发数据包的处理动作的执行。
在本实施例中,所述第一设备为能够进行信息的收发的电子设备,包括:笔记本电脑、台式计算机、移动电话、服务器等。
数据包的处理动作包括:转发、丢弃、修改域或排队等。预设标记能唯一标识匹配域和匹配域对应的处理动作。
本实施例提供的数据包处理方法可以应用在软件功能卸载的场景中,在虚拟交换机确定物理网卡支持的卸载特性后,虚拟交换机会将需要进行卸载处理且能在物理网卡中执行的数据包进行标记,将标记后的数据包发送至物理网卡执行处理动作。
目前虚拟交换机在进行流量通信时,需要进行流量的解析和流表查找,并针对流表查找结果执行相应的匹配动作。由于虚拟交换机位于主机内,占用主机内存,且虚拟交换机执行操作均是在软件侧实现,均需占用主机的处理器资源,因此,当虚拟交换机在通信过程中对数据包进行处理时,会消耗大量的主机资源。那么在高速/超高速以太网通信场景下,虚拟交换机的数据处理响应效率会受到主机资源的限制,虚拟网络的转发性能会受到很大的影响。
基于此,本实施例提供了一种数据包处理方法,虚拟交换机将物理网卡能够执行的第一数据包的处理动作交由物理网卡执行。本实施例通过采用物理网卡替代虚拟交换机来执行数据包的处理动作,第一方面,由于硬件的处理效率比虚拟交换机的效率高,提高了数据包处理的效率,且由于数据包在软件层和硬件层进行同步的处理,通过协调软硬件共同完成数据包的处理,再次提升了数据的处理效率。第二方面,通过利用硬件进行数据包的处理,减少了软件侧资源的占用,提升了数据处理的响应效率。
在一些实施例中,所述确定所述第一数据包的处理动作是否能由物理网卡执行,包括:
根据匹配规则,确定所述第一数据包所使用流表的匹配域是否是所述物理网卡支持的匹配域;
若所述第一数据包所使用流表的匹配域是所述物理网卡支持的匹配域,确定所述第一数据包的处理动作能由所述物理网卡执行。
流表为数据转发的依据,流表中保存了网络中各个层次的网络配置信息。流表至少包括:用于数据包匹配的匹配域以及用于指示虚拟交换机如何对数据包进行处理的处理动作。
匹配域主要包括数据的接口以及寻址地址,例如:MAC地址(Media AccessControl Address,介质访问控制地址),IP地址(Internet Protocol Address,互联网协议地址),PORT地址(端口地址)等。
利用匹配规则对第一数据包所使用流表的匹配域进行匹配,匹配成功则可以确定第一数据包的匹配域是物理网卡支持的匹配域,匹配域对应的处理动作可以由物理网卡来执行。
在一实施例中,所述匹配规则包括与所述预设标记对应的匹配域和与所述预设标记对应的处理动作。虚拟交换机将第一数据包所使用流表的匹配域与匹配规则中的匹配域进行匹配,若匹配成功,则可以确定匹配域对应的预设标记。虚拟交换机将预设标记记录在第一数据包中,并将携带有预设标记的第一数据包发送至物理网卡,让物理网卡执行第一数据包相应的处理动作。
在一些实施例中,所述方法还包括:获取物理网卡支持的匹配域和虚拟交换机支持的匹配域;
根据所述物理网卡支持的匹配域和所述虚拟交换机支持的匹配域的交集,生成所述匹配规则;其中,所述匹配规则分别存储在所述虚拟交换机和所述物理网卡中。
具体的,当虚拟交换机检测到有物理网卡接入时,虚拟交换机会自动与物理网卡进行交互,访问物理网卡所支持的匹配域寄存器,采集物理网卡支持的匹配域的集合,并将物理网卡中支持的匹配域集合与虚拟交换机中支持的匹配域集合进行自动适配,筛选出能够同时在物理网卡和虚拟交换机中支持的匹配域的集合,即物理网卡和虚拟交换机支持的匹配域集合的交集。虚拟交换机采用预设标记对该交集中的每个匹配域以及匹配域对应的处理动作进行标记,利用预设标记和匹配域的对应关系、预设标记和处理动作的对应的关系生成匹配规则,并将匹配规则分别存储于虚拟交换机和物理网卡中。如此,虚拟交换机和物理网卡可以根据存储的匹配规则对数据包进行处理。
在一实施例中,虚拟交换机会轮询检测是否有物理网卡接入虚拟交换机,当有物理网卡接入系统时,会自动和物理网卡进行交互,获取物理网卡中支持的匹配域。在一实施例中,预设标记为虚拟交换机通过内置的哈希算法根据匹配域计算的哈希值。在一实施例中,所述匹配规则还包括:与所述预设标记对应的处理动作。如此物理网卡在接收到包含预设标记的数据包能直接根据匹配规则确定数据包对应的处理动作。
在一实施例中,所述方法还包括:若所述第一数据包的处理动作不能由所述物理网卡执行,由所述虚拟交换机执行所述第一数据包的处理动作。
具体的,当物理网卡不支持第一数据包所使用流表的匹配域时,虚拟交换机将对数据表进行处理动作,不再将第一数据包下发给物理网卡执行处理动作。
在一实施例中,所述方法还包括:
接收所述物理网卡转发的第二设备的第二数据包;
若所述第二数据包携带有预设标记,根据所述预设标记执行所述第二数据包的处理动作;
若所述第二数据包没有携带预设标记,对所述第二数据包进行匹配域解析,执行所述第二数据包的处理动作。
具体的,所述第二设备为具有信息收发功能的电子设备。例如:笔记本电脑、服务器、移动电话等。当虚拟交换机接收到物理网卡发送的第二数据包时,若第二数据包含有预设标记,虚拟交换机会解析出第二数据包中的预设标记,并根据预设标记执行第二数据包所对应的处理动作。若第二数据包的预设标记为空值,虚拟交换机对第二数据包进行匹配域解析得到第二数据包的匹配域,通过查询流表规则确定第二数据包的匹配域对应的处理动作,并执行对应的处理动作。
在一实施例中,若虚拟交换机在进行第二数据包匹配域的解析过程中,发现第二数据包的匹配域是物理网卡支持的匹配域,虚拟交换机采用预设标记对第二数据包的匹配域和对应的处理动作进行标记,并将第二数据包的匹配域与预设标记的对应关系以及匹配域与处理动作的对应关系记录在匹配规则中,更新匹配规则,将更新后的匹配规则下发至物理网卡,使物理网卡中也能进行匹配规则的更新。
在一实施例中,当虚拟交换机接入不同品牌和型号的网卡时,虚拟交换机通过与接入的物理网卡进行交互,分别确定各个物网卡支持的匹配域集合,使虚拟交换机能够支持多种不同的物理网卡,根据各个物理网卡支持的匹配域,将在数据包处理过程中物理网卡能够执行的操作交由物理网卡执行,从而更加灵活的实现虚拟交换机处理信息处理过程中部分物理网卡支持的功能的卸载,实现对数据包加速处理。
在一实施例中,若虚拟交换机连接有多个物理网卡,虚拟交换机在监测到物理网卡接入时,主动获取物理网卡所支持的匹配域,并将多个物网卡所支持的匹配域以及匹配域对应的处理动作分别进行存储和标记,物理网卡也同时存储匹配域、处理动作以及标记的对应关系。该标记可以唯一标识匹配域以及对应的处理动作。当数据包的匹配域为物理网卡支持的匹配域时:在向外部设备发送数据的过程中,虚拟交换机会根据存储的匹配域和标记的对应关系,将数据包匹配域对应的标记写入数据中,并下发给支持数据包匹配域的物理网卡执行数据包的处理动作;在接收外部设备发送的数据的过程中,物理网卡接收到数据包后,对数据包进行匹配域解析,并根据匹配域以及标记的对应关系对数据包进行标记,然后将携带有标记的数据包发送至虚拟交换机,由虚拟交换机根据数据包中的标记直接执行数据包的处理动作。当物理网卡不支持的数据包的匹配域时:数据包的处理动作不能由所述物理网卡执行,数据包的处理全部由虚拟交换机完成。
本实施例提供的数据包处理方法,虚拟交换机在检测到有物理网卡接入时,自动与接入的物理网卡进行交互,获取物理网卡支持的匹配域集合,对物理网卡支持的匹配域进行标记,在虚拟交换机和物理网卡中同时存储预设标记与匹配域以及匹配域对应的处理动作三者之间的对应关系,虚拟交换机在数据包中的记录预设标记,将物理网卡支持执行的数据包的处理过程交由物理网卡执行。由于物理网卡的处理效率高于虚拟交换机的处理效率,在进行数据包收发处理时,虚拟交换机根据物理网卡自身的匹配域支持情况,自适应地跳过物理网卡支持的匹配域,只做物理网卡不支持的处理动作,提升了数据包的处理效率,且数据包的处理可以实现在虚拟交换机和物理网卡中同时执行也进一步提高了数据包的处理效率,此外由于虚拟交换机只执行物理网卡不支持的处理过程,也释放了软件侧的信息处理资源,提升了数据包处理的响应效率,提升了虚拟网络的处理性能。
如图2,本实施例提供一种数据包处理方法,其特征在于,应用于第一设备的物理网卡,包括:
步骤S210:接收虚拟交换机发送的第一数据包;其中,所述第一数据包中携带有预设标记;所述预设标记与数据包的处理动作相对应,用于触发数据包的处理动作的执行;
步骤S220:获取所述第一数据包中所携带的预设标记;
步骤S230:根据所述预设标记,执行所述第一数据包的处理动作。
在本实施例中,数据包的处理动作包括:转发、丢弃、修改域或排队等。预设标记能唯一标识匹配域和匹配域对应的处理动作。所述物理网卡在接收到虚拟交换机发送的第一数据包后,会获取第一数据包中所携带的预设标记,并根据所述预设标记执行所述预设标记所对应的处理动作。在一实施例中,若第一数据包中携带有预设标记,则会根据预设标记与处理动作的对应关系,直接执行第一数据包的处理动作。本实施例,通过采用预设标记触发物理网卡对数据包处理动作的执行,通过由物理网卡进行数据包的处理动作,提升了数据处理的效率,减轻了虚拟交换机的负担。
在一实施例中,所述方法还包括:
向虚拟交换机上报物理网卡支持的匹配域的信息;
接收并存储所述虚拟交换机根据所述匹配域的信息下发的匹配规则,其中,所述匹配规则是:根据所述物理网卡支持的匹配域和所述虚拟交换机支持的匹配域的交集生成的。
具体的,物理网卡在接入虚拟交换机后,会与虚拟交换机进行交互,将物理网卡支持的匹配域的信息发送给虚拟交换机,以便虚拟交换机知晓物理网卡所支持的特性。此外,物理网卡还会接收虚拟交换机根据物理网卡支持的匹配域和虚拟交换机支持的匹配域的交集所生成的匹配域规则,并对匹配域规则进行存储。
在一实施例中,所述匹配规则包括:与所述预设标记对应的处理动作和与所述预设标记对应的匹配域;
所述根据所述预设标记,执行所述第一数据包的处理动作,包括:
根据所述匹配规则和所述预设标记,执行与所述预设标记对应的处理动作。在物理网卡解析到第一数据包携带的预设标记后,会根据匹配规则中的处理动作与预设标记的对应关系,确定需要执行的处理动作,并对第一数据包执行处理动作。在一实施例中,物理网卡获取第一数据包携带的预设标记后,会将预设标记与预设标记对应的匹配域的对应关系进行存储。
在一实施例中,所述方法还包括:
接收第二设备发送的第二数据包;
对所述第二数据包进行匹配域解析,确定所述第二数据包的匹配域;
根据匹配规则和所述数据包的匹配域,确定所述第二数据包对应的预设标记;
在所述第二数据包中添加所述第二数据包对应的预设标记;
将携带有所述预设标记的第二数据包发送给所述虚拟交换机。
其中,第一设备和第二设备均为具有信息收发功能的电子设备。匹配域主要包括数据的接口以及寻址地址,对数据包进行匹配域解析即为确定数据包的接口和/或寻址地址等。第一设备接收第二设备发送的第二数据包时,物理网卡若支持第二数据包的匹配域,则会对第二数据包进行匹配域解析,根据解析得到的第二数据包的匹配域,在匹配规则中查找匹配域对应的预设标记,将查找到的预设标记记录到第二数据包中,并发送至虚拟交换机。在一实施例中,物理网卡解析到的第二数据包的匹配域在匹配规则中没有查找到对应的预设标记时,物理网卡会在第二数据包中记录一个空值,然后将第二数据包发送至虚拟交换机。
本实施例提供的一种数据包处理方法,物理网卡执行其支持的匹配域的数据包的匹配域解析,通过在发给虚拟交换机的数据包中添加预设标记,使虚拟交换机能直接省去数据包的匹配域解析过程,直接根据预设标记执行相应的处理动作,减少了虚拟交换机复杂的匹配域解析工作,由于物理网卡的处理效率比虚拟交换机高,通过充分利用物理网卡进行数据包的处理,减少虚拟交换机的处理工作,提升了数据包的处理效率,且通过利用硬件进行数据包的处理,减少了软件侧资源的占用,提升了数据处理的响应效率,此外也减少了因为物理网卡只支持部分匹配域,导致整个报文处理流中所有的匹配域都必须在软件协议栈中进行匹配处理的情况,降低了数据包处理对硬件性能的要求。
如图3所示,本实施例提供一种信息处理装置300,应用于第一设备的虚拟交换机,包括:
接收单元310,用于接收待发送的第一数据包;
确定单元320,用于确定所述第一数据包的处理动作是否能由物理网卡执行;
执行单元330,用于若所述处理动作能由所述物理网卡执行,则将预设标记添加至所述第一数据包中,并将携带有所述预设标记的所述第一数据包发送至所述物理网卡;其中,所述预设标记与数据包的处理动作相对应,用于触发数据包的处理动作的执行。
一些实施例中,所述确定单元具体用于:
根据匹配规则,确定所述第一数据包所使用流表的匹配域是否是所述物理网卡支持的匹配域;
若所述第一数据包所使用流表的匹配域是所述物理网卡支持的匹配域,确定所述第一数据包的处理动作能由所述物理网卡执行。
一些实施例中,所述匹配规则包括:与所述预设标记对应的匹配域和与所述预设标记对应的匹配域。
一些实施例中,所述装置还包括:
获取单元,用于获取物理网卡支持的匹配域和虚拟交换机支持的匹配域;
生成单元,用于根据所述物理网卡支持的匹配域和所述虚拟交换机支持的匹配域的交集,生成所述匹配规则;其中,所述匹配规则分别存储在所述虚拟交换机和所述物理网卡中。
一些实施例中,所述匹配规则还包括:与所述预设标记对应的处理动作。
一些实施例中,所述接收单元,还用于接收所述物理网卡转发的第二设备的第二数据包;
所述执行单元,还用于若所述第二数据包携带有预设标记,根据所述预设标记执行所述第二数据包的处理动作;
若所述第二数据包没有携带预设标记,对所述第二数据包进行匹配域解析,执行所述第二数据包的处理动作。
如图4所示,本实施例提供一种信息处理装置400,应用于第一设备的物理网卡,包括:
接收单元410,用于接收虚拟交换机发送的第一数据包;其中,所述第一数据包中携带有预设标记;所述预设标记与数据包的处理动作相对应,用于触发数据包的处理动作的执行;
获取单元420,用于获取所述第一数据包中所携带的预设标记;
执行单元430,用于根据所述预设标记,执行所述第一数据包的处理动作。
一些实施例中,所述接收单元,还用于接收所述虚拟交换机根据所述物理网卡支持的匹配域的信息下发的匹配规则;其中,所述匹配规则是:根据所述物理网卡支持的匹配域和所述虚拟交换机支持的匹配域的交集生成的;
所述装置还包括:
存储单元,用于存储所述匹配规则。
一些实施例中,所述匹配规则包括:与所述预设标记对应的处理动作;
所述执行单元,具体用于根据所述匹配规则以及所述预设标记执行与所述预设标记对应的处理动作。
一些实施例中,所述接收单元,还用于接收第二设备发送的第二数据包;
所述装置还包括:解析单元,用于对所述第二数据包进行匹配域解析,确定所述第二数据包的匹配域;
确定单元,用于根据匹配规则和所述数据包的匹配域,确定所述第二数据包对应的预设标记;
所述执行单元,还用于在所述第二数据包中添加所述第二数据包对应的预设标记;将携带有所述预设标记的第二数据包发送给所述虚拟交换机。
本发明实施例还提供一种计算机存储介质,如图5所示,该计算机存储介质500存储有计算机程序,所述计算机程序被处理器执行后,能够实现前述应用于第一设备的虚拟交换机中的一个或多个技术方案提供的数据包处理方法,或前述应用于第一设备的物理网卡中的一个或多个技术方案提供的数据包处理方法。
本发明实施例提供的计算机存储介质500包括:移动存储设备、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。可选为,所述计算机存储介质可为非瞬间存储介质。
以下结合上述实施例提供一个具体示例:
基于智能网卡实现软件功能卸载的技术正日益发展,采用软硬件结合的方法来提升封包处理效率正成为未来的趋势。但现今的智能网卡支持的功能受限,当应用在软件功能卸载的场景时,常常发生因为某一个流表匹配域硬件无法支持而导致整条流表均无法卸载的情况,此时数据包的处理都需要在软件层进行处理,即无法使用硬件可以支持的卸载功能。而硬件功能的开发周期长,难以及时覆盖所有软件提供的以太网封包处理能力。因此,需要一种能够动态适配网卡卸载特性的硬件辅助加速方法。
随着业务的增加和需求的调整,虚拟交换机所支持的流匹配域常常会随之调整。而硬件出厂之后一般无法再改变其运行逻辑和支持功能。现有技术存在如下的缺点:
1、在一个已经运行的虚拟化网络环境中,随着业务场景的丰富和变化,虚拟交换机新增的一些流匹配域会出现硬件无法卸载的情况;
2、每一条流都包含了多条规则,每一个规则又包含了多个匹配域字段,如果有任意一条规则的匹配域在物理网卡中不支持,会导致所有使用该规则的流都无法卸载;
3、由TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/网际协议)模型可知,数据包信息是分层的,处理一条数据连接,需要多条前后依赖的流进行逐级处理。当有一条规则在硬件中不支持,就会导致使用该规则的连接涉及的所有流都无法卸载,而需上送到主机上处理。
以常规的以太网报文修改动作为例,以太网报文修改是一系列修改规则的集合。如链路层需要匹配SMAC/DMAC匹配域、IP层需要匹配SIP/DIP匹配域、传输层需要匹配SPORT/DPORT匹配域等,每一层进行匹配后都需要进行相应的处理。如果网卡硬件只支持其中部分匹配域的卸载,就意味着整个报文处理流中所有的匹配域都必须在软件协议栈中进行匹配,然后再分别进行处理。
基于此,本示例提供一种以太网数据包处理方法,以解决当虚拟交换机支持的匹配域可以在网卡设备中实现时,协调软硬件共同完成数据包的处理,提升虚拟网络处理性能的问题。
图6为本示例提供的一种以太网数据包处理方法的原理框架示意图,图6中FieldP1/P2网卡设备能够支持,虚拟交换机在进行自适应后对Field P1,P2和对应的执行动作做标记,并将Field P1,P2和对应的执行动作以及标记的映射关系存储到内存,该标记可以唯一标识该Field P1,P2和对应的执行动作。在主机向外设发送数据包时,虚拟交换机会跳过Field P1/P2的匹配过程,并将Field P1/P2对应的标记记录到数据包中。然后将数据包送至网卡设备做进一步处理,网卡设备收到数据包时,会记录Field P1,P2,并从数据包中提取出标记,将两者的映射关系记录到网卡设备的存储设备中,以方便对后续收到的数据包进行查找匹配;在主机接收外设发送的数据包时,网卡设备会对收到的数据包进行解析,由于支持Field P1,P2的解析,网卡设备会解析Field P1,P2,然后会根据内置的哈希算法根据Field P1,P2在存储设备中查找对应的标记,查找到之后会将Field P1,P2对应的标记记录到数据包中,如果没查找到则在数据包中记录一个空值,之后送至虚拟交换机,此时虚拟交换机将跳过被标记为网卡设备支持卸载的Field P1,P2解析,直接从数据包中取出标记,查表找到对应的执行动作,最后执行相应的操作。执行动作包括:转发、丢弃、修改域或排队等。
本示例提供一种以太网数据包处理方法,应用于主机中的虚拟交换机和网卡设备。
如图7所示,在主机与外部设备发起通信时,该方法的步骤包括:
步骤710:虚拟交换机与网卡设备的匹配域自适应。
当主机接入网卡设备时,虚拟交换机会读取网卡设备所支持的匹配域寄存器,然后将网卡设备支持的匹配域和虚拟交换机所支持的匹配域进行比对,确定网卡设备和虚拟交换机都支持的匹配域集合,并对虚拟交换机中网卡设备支持的匹配域进行标记。
步骤720:虚拟交换机接收主机生成的指定协议的数据包。
当主机与外部发起通信时,会生成指定协议的数据包,然后发送到虚拟交换机做进一步处理,常规的处理操作如添加TCP(Transmission Control Protocol,传输控制协议)/UDP(User Datagram Protocol,用户数据协议)头,IP头,mac头,以及VxLAN(VirtualeXtensible Local Area Network,虚拟局域网)封装等等。
步骤730:虚拟交换机遍历数据包所使用的流表中的匹配域。
步骤740:网卡设备是否支持,判断数据包的匹配域是否是网卡设备支持的,对于数据包所使用流表中的每个匹配域,虚拟交换机都会根据在步骤710获取的网卡设备支持的匹配域,确定数据包的匹配域是否是网卡设备支持的。若网卡设备不支持则执行步骤750。若网卡设备支持则执行步骤760。
步骤750:虚拟交换机执行数据包的匹配域对应的执行动作。
步骤760:虚拟交换机对数据包进行标记,并且记录匹配域、执行动作以及标记之间的映射关系。
步骤770:匹配域全部匹配。判断数据包所使用的流表中的匹配域是否全部进行了匹配域匹配。若完成数据包的所有匹配域的匹配则执行步骤780,否则跳转至步骤730。
步骤780:虚拟交换机将数据包发送至网卡设备进行处理,网卡设备记录匹配域和标记之间的映射关系。具体的,虚拟交换机将标记后的数据包以及数据包的匹配域和标记之间的映射关系发送至网卡设备。
具体的,当主机接入网卡设备时,会读取网卡设备所支持的匹配域寄存器集,然后和虚拟交换机所支持的匹配域进行比对,找出网卡设备可以支持的匹配域集合;
当主机与外部发起通信时,会生成指定协议的数据包,然后发送到虚拟交换机做进一步处理。此时,虚拟交换机会根据之前网卡设备支持的匹配域集合,对网卡设备可以处理的匹配域进行标记,即对于网卡设备支持的匹配域,虚拟交换机会直接跳过执行动作,在数据包中做相应标记下发到网卡设备中,同时会在内存对相应的匹配域,对应的执行动作以及标记三者之间的映射关系进行记录,对网卡设备不支持的执行动作,则由虚拟交换机执行相应执行动作之后送至硬件设备。
网卡设备在收到虚拟交换机发来的数据包后,先根据数据包中的标记完成相应封包处理,同时会将该匹配域和标记记录到硬件设备专有的存储单元中,最后再将数据包从网口发出。
如图8所示,在外部电子设备向主机发起通信时,该方法包括:
步骤810:物理网卡接收虚拟交换机发送的映射关系并进行存储。
当主机接入网卡设备时,虚拟交换机与网卡设备进行交互,虚拟交换机将网卡设备支持的匹配域、匹配域对应的执行动作与标记之间的映射关系发送给网卡设备,网卡设备将该映射关系存储在存储单元中。
步骤820:网卡设备收到数据包,根据网卡设备支持的匹配域对数据包进行解析和标记,并将标记后的数据包发送至虚拟交换机。
步骤830:虚拟交换机遍历封包匹配域。
步骤840:数据包是否含有标记。虚拟交换机接收到网卡设备发送的数据包后,判断数据包中是否携带有标记。若数据包携带有标记,执行步骤850,否则跳转至步骤860。
步骤850:虚拟交换机查找标记对应的执行动作,执行相应的执行动作。若数据包中携带有标记,则虚拟交换机跳过匹配域的解析,查找标记对应的匹配动作,并执行相应的匹配动作。
步骤860:虚拟交换机完成数据包的匹配域解析和执行动作的执行。
步骤870:匹配域为空。判断是否已经对数据包匹配域完成了封包处理,若没有完成所有匹配域的封包处理则跳转至步骤830。
步骤880:虚拟交换机将数据包发送至上层应用。
具体的,当外部与主机发起通信时,数据包会首先进入主机网卡,主对于网卡设备支持的匹配域,会进行匹配域的解析处理,然后从网卡设备的存储单元中查找相应的匹配域的对应的标记,并将标记值记录到数据包中,如果查找不到,会将相应的空的标记值写入数据包中,然后发送到软件层的虚拟交换机;
虚拟交换机收到数据包时,会解析数据包中的标记,然后根据标记查找之前存储的匹配域,执行动作以及标记三者的映射表,查找到之后会跳过数据包的匹配域解析动作(匹配域的解析已经由网卡设备完成),然后执行标记对应的执行动作;如果标记值为空值,说明网卡设备没有进行匹配域解析,则由虚拟交换机软件侧进行匹配域解析和执行动作的执行等。数据包处理完成之后,虚拟交换机将数据包送至主机业务层。
本示例提供的以太网数据包处理方法,通过在虚拟交换机检测到网卡设备接入时,自动与网卡设备进行交互,动态获取网卡设备支持的匹配域集合,第一方面,在数据包收发处理时,虚拟交换机根据网卡设备支持的匹配域,只执行网卡设备不支持的数据包执行动作处理过程,减少了数据包处理过程中虚拟交换机的操作,释放了主机的计算和存储资源,减少非必要的CPU和内存消耗。第二方面,由于相较于在主机中进行流处理,在硬件种进行流的处理效率会更高,因此通过将网卡设备支持执行的处理过程交由物理网卡执行,提升了数据包的处理效率,同时由于可以实现在虚拟交换机和网卡设备同时对数据包进行处理,也进一步提高了数据包的处理效率,提升了虚拟网络的处理性能。第三方面,虚拟交换机通过与物理网卡交互,获取物理网卡支持的匹配域,只将网卡设备支持处理的数据包处理操作交由网卡设备执行处理,较少了虚拟交换机的匹配域与网卡设备的匹配域不一致时,无法使用网卡设备进行数据包处理的问题,降低了数据包处理对硬件的要求,更有利于应用在实际生产环境中。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本发明各实施例中的各功能单元可以全部集成在一个处理模块中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

Claims (11)

1.一种数据包处理方法,其特征在于,应用于第一设备的虚拟交换机,包括:
接收待发送的第一数据包;
根据匹配规则,确定所述第一数据包所使用流表的匹配域是否是物理网卡支持的匹配域;若所述第一数据包所使用流表的匹配域是所述物理网卡支持的匹配域,确定所述第一数据包的处理动作是否能由所述物理网卡执行;
若所述处理动作能由所述物理网卡执行,则将预设标记添加至所述第一数据包中,并将携带有所述预设标记的所述第一数据包发送至所述物理网卡;
其中,所述预设标记与数据包的处理动作相对应,用于触发数据包的处理动作的执行。
2.根据权利要求1所述的方法,其特征在于,所述匹配规则包括:与所述预设标记对应的匹配域和与所述预设标记对应的处理动作。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取物理网卡支持的匹配域和虚拟交换机支持的匹配域;
根据所述物理网卡支持的匹配域和所述虚拟交换机支持的匹配域的交集,生成所述匹配规则;其中,所述匹配规则分别存储在所述虚拟交换机和所述物理网卡中。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收所述物理网卡转发的第二设备的第二数据包;
若所述第二数据包携带有预设标记,根据所述预设标记执行所述第二数据包的处理动作;
若所述第二数据包没有携带预设标记,对所述第二数据包进行匹配域解析,执行所述第二数据包的处理动作。
5.一种数据包处理方法,其特征在于,应用于第一设备的物理网卡,包括:
接收虚拟交换机发送的第一数据包;其中,所述第一数据包由所述虚拟交换机基于匹配规则确定出所述第一数据包所使用流表的匹配域是物理网卡支持的匹配域,且所述第一数据包的处理动作能由所述物理网卡执行的情况下发出,所述第一数据包中携带有预设标记;所述预设标记与数据包的处理动作相对应,用于触发数据包的处理动作的执行;
获取所述第一数据包中所携带的预设标记;
根据所述预设标记,执行所述第一数据包的处理动作。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
向虚拟交换机上报物理网卡支持的匹配域的信息;
接收并存储所述虚拟交换机根据所述匹配域的信息下发的匹配规则,其中,所述匹配规则是:根据所述物理网卡支持的匹配域和所述虚拟交换机支持的匹配域的交集生成的。
7.根据权利要求6所述的方法,其特征在于,所述匹配规则包括:与所述预设标记对应的处理动作和与所述预设标记对应的匹配域;
所述根据所述预设标记,执行所述第一数据包的处理动作,包括:
根据所述匹配规则和所述预设标记,执行与所述预设标记对应的处理动作。
8.根据权利要求6所述的方法,其特征在于,所述方法还包括:
接收第二设备发送的第二数据包;对所述第二数据包进行匹配域解析,确定所述第二数据包的匹配域;
根据匹配规则和所述数据包的匹配域,确定所述第二数据包对应的预设标记;
在所述第二数据包中添加所述第二数据包对应的预设标记;
将携带有所述预设标记的第二数据包发送给所述虚拟交换机。
9.一种信息处理装置,应用于第一设备的虚拟交换机,其特征在于,包括:
接收单元,用于接收待发送的第一数据包;
确定单元,用于根据匹配规则,确定所述第一数据包所使用流表的匹配域是否是物理网卡支持的匹配域;若所述第一数据包所使用流表的匹配域是物理网卡支持的匹配域,确定所述第一数据包的处理动作是否能由所述物理网卡执行;
执行单元,用于若所述处理动作能由所述物理网卡执行,则将预设标记添加至所述第一数据包中,并将携带有所述预设标记的所述第一数据包发送至所述物理网卡;其中,所述预设标记与数据包的处理动作相对应,用于触发数据包的处理动作的执行。
10.一种信息处理装置,应用于第一设备的物理网卡,其特征在于,包括:
接收单元,用于接收虚拟交换机发送的第一数据包;其中,所述第一数据包由所述虚拟交换机基于匹配规则确定出所述第一数据包所使用流表的匹配域是物理网卡支持的匹配域,且所述第一数据包的处理动作能由所述物理网卡执行的情况下发出,所述第一数据包中携带有预设标记;所述预设标记与数据包的处理动作相对应,用于触发数据包的处理动作的执行;
获取单元,用于获取所述第一数据包中所携带的预设标记;
执行单元,用于根据所述预设标记,执行所述第一数据包的处理动作。
11.一种计算机存储介质,其特征在于,所述计算机存储介质存储有计算机程序,所述计算机程序被处理器执行后,能够实现权利要求1至4或5至8任一项所述的方法。
CN202110220952.4A 2021-02-26 2021-02-26 一种数据包处理方法、装置以及存储介质 Active CN114979028B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110220952.4A CN114979028B (zh) 2021-02-26 2021-02-26 一种数据包处理方法、装置以及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110220952.4A CN114979028B (zh) 2021-02-26 2021-02-26 一种数据包处理方法、装置以及存储介质

Publications (2)

Publication Number Publication Date
CN114979028A CN114979028A (zh) 2022-08-30
CN114979028B true CN114979028B (zh) 2024-02-23

Family

ID=82972857

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110220952.4A Active CN114979028B (zh) 2021-02-26 2021-02-26 一种数据包处理方法、装置以及存储介质

Country Status (1)

Country Link
CN (1) CN114979028B (zh)

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013142041A1 (en) * 2012-03-21 2013-09-26 Microsoft Corporation Offloading packet processing for networking device virtualization
CN103905309A (zh) * 2012-12-28 2014-07-02 中国电信股份有限公司 虚拟机之间的数据交换方法和系统
CN105245456A (zh) * 2015-10-20 2016-01-13 浪潮(北京)电子信息产业有限公司 一种云服务器内卸载sdn虚拟网络功能的方法和系统
CN106605399A (zh) * 2014-09-25 2017-04-26 英特尔公司 用于将虚拟服务端点卸载到网络接口卡的技术
WO2018071176A1 (en) * 2016-10-13 2018-04-19 Alcatel-Lucent Usa Inc. Generalized packet processing offload in a datacenter
CN109479028A (zh) * 2016-08-03 2019-03-15 华为技术有限公司 网络接口卡、计算设备以及数据包处理方法
CN109496409A (zh) * 2017-12-27 2019-03-19 华为技术有限公司 一种数据传送的方法和虚拟交换机
CN110912825A (zh) * 2018-09-18 2020-03-24 阿里巴巴集团控股有限公司 一种报文的转发方法、装置、设备及系统
CN111740910A (zh) * 2020-06-19 2020-10-02 联想(北京)有限公司 一种报文处理方法、装置、网络传输设备及报文处理系统

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013142041A1 (en) * 2012-03-21 2013-09-26 Microsoft Corporation Offloading packet processing for networking device virtualization
CN103905309A (zh) * 2012-12-28 2014-07-02 中国电信股份有限公司 虚拟机之间的数据交换方法和系统
CN106605399A (zh) * 2014-09-25 2017-04-26 英特尔公司 用于将虚拟服务端点卸载到网络接口卡的技术
CN105245456A (zh) * 2015-10-20 2016-01-13 浪潮(北京)电子信息产业有限公司 一种云服务器内卸载sdn虚拟网络功能的方法和系统
CN109479028A (zh) * 2016-08-03 2019-03-15 华为技术有限公司 网络接口卡、计算设备以及数据包处理方法
WO2018071176A1 (en) * 2016-10-13 2018-04-19 Alcatel-Lucent Usa Inc. Generalized packet processing offload in a datacenter
CN109496409A (zh) * 2017-12-27 2019-03-19 华为技术有限公司 一种数据传送的方法和虚拟交换机
CN110912825A (zh) * 2018-09-18 2020-03-24 阿里巴巴集团控股有限公司 一种报文的转发方法、装置、设备及系统
CN111740910A (zh) * 2020-06-19 2020-10-02 联想(北京)有限公司 一种报文处理方法、装置、网络传输设备及报文处理系统

Also Published As

Publication number Publication date
CN114979028A (zh) 2022-08-30

Similar Documents

Publication Publication Date Title
CN108924274B (zh) 域名系统dns处理方法、装置、存储介质及电子设备
CN110635933B (zh) 用于管理sdn的网络的装置、控制方法及记录介质
CN114025021B (zh) 一种跨Kubernetes集群的通信方法、系统、介质和电子设备
CN111345008B (zh) 移动边缘主机服务通知方法和装置
WO2020228038A1 (zh) 域名处理方法、装置、电子设备以及存储介质
CN106603345B (zh) 监控应用程序使用流量的方法、装置及终端
CN113839862B (zh) Mclag邻居之间同步arp信息的方法、系统、终端及存储介质
US20170155741A1 (en) Server, method, and system for providing service data
CN114157710A (zh) 通信策略配置方法、装置、存储介质及设备
CN107070719B (zh) 一种设备管理方法和装置
CN114039930B (zh) 数据包处理方法及系统
CN107249038A (zh) 业务数据转发方法及系统
CN114979028B (zh) 一种数据包处理方法、装置以及存储介质
CN114793223A (zh) Dns记录的存储方法、装置、存储介质及电子设备
CN114785733B (zh) 一种实现跨vpc网络流量转发中会话溯源的方法
CN114500418B (zh) 数据统计方法及相关装置
CN113259271B (zh) 报文交换方法和报文交换系统
CN116192740A (zh) 流表卸载方法、装置、电子设备及可读存储介质
CN116032614A (zh) 容器网络微隔离方法、装置、设备和介质
CN107959824A (zh) 一种监控视频处理方法、物理服务器及存储介质
CN112291212A (zh) 静态规则的管理方法、装置、电子设备和存储介质
CN115996203B (zh) 网络流量分域方法、装置、设备和存储介质
CN116033536B (zh) 发射功率调整方法及无线路由器
WO2024066503A1 (zh) 服务调用方法及装置
CN114553834B (zh) 5g核心网和ims网络的交互方法及装置

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