CN115037575A - 报文处理的方法和装置 - Google Patents

报文处理的方法和装置 Download PDF

Info

Publication number
CN115037575A
CN115037575A CN202210657267.2A CN202210657267A CN115037575A CN 115037575 A CN115037575 A CN 115037575A CN 202210657267 A CN202210657267 A CN 202210657267A CN 115037575 A CN115037575 A CN 115037575A
Authority
CN
China
Prior art keywords
message
flow table
entry
packet
indication information
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
Application number
CN202210657267.2A
Other languages
English (en)
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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN202210657267.2A priority Critical patent/CN115037575A/zh
Publication of CN115037575A publication Critical patent/CN115037575A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4633Interconnection of networks using encapsulation techniques, e.g. tunneling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4641Virtual LANs, VLANs, e.g. virtual private networks [VPN]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • H04L45/021Ensuring consistency of routing table updates, e.g. by using epoch numbers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/38Flow based routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/42Centralised routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2483Traffic characterised by specific attributes, e.g. priority or QoS involving identification of individual flows
    • 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)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请提供了一种报文处理方法及相关装置,包括:获取包括第一指示信息的第一报文,第一指示信息用于指示第一报文对应的数据流,根据第一指示信息从集成流表中确定目标流表项;该集成流表包含至少一个流表项,每个流表项包括统一匹配项和综合行为项,统一匹配项用于唯一标识一条数据流,目标流表项为至少一个流表项中统一匹配项标识的数据流与第一指示信息指示的数据流相同的流表项;根据目标流表项包括的综合行为项对第一报文执行操作。上述方法能够减少流表占用的存储空间,在网卡存储空间有限的情况下,网卡可以存储更多的流表,提高了报文与硬件流表的匹配命中率,进而提高了报文处理效率。

Description

报文处理的方法和装置
本申请是分案申请,原申请的申请号是201711428818.3,原申请日是2017年12月26日,原申请的全部内容通过引用结合在本申请中。
技术领域
本申请涉及通信领域,尤其涉及一种报文处理的方法和装置。
背景技术
传统数据中心,一台服务器或主机运行一个操作系统,服务器与物理交换机相连,由物理交换机实现不同主机之间的数据转发。在计算虚拟化后,一台主机被虚拟化成多台虚拟机,同一主机内的虚拟机通过虚拟交换机,例如通过开放虚拟交换机(open virtualswitch,OVS)实现数据转发。通常,数据流通过网卡进入虚拟交换机,当一个新数据流的报文在首次流入虚拟交换机时,虚拟交换机会分析该数据流的报文,并确定如何处理该报文,最后将对该报文的处理过程记录下来并生成相关的流表项,填充到软件流表中。当该数据流的后续报文流入虚拟交换机时,虚拟交换机时在软件流表中会根据报文的信息从软件流表中命中对应的流表项,继而直接执行流表项中指示的行为,以完成对报文的处理,比如对报文封装或解封装后通过网卡转发给其它设备。
可以看出,流表的匹配及流表项的行为执行过程直接影响到虚拟交换机的报文处理性能。为了提高报文处理效率,现有技术将软件流表卸载到网卡上,生成硬件流表,并实现软件流表和硬件流表之间的同步,当报文经过网卡时,网卡直接根据报文的信息在硬件流表命中对应的硬件流表项,进而根据命中的硬件流表项对报文进行相应处理,不再将报文转发至虚拟交换机,从而可以提高报文处理效率。
然而,由于虚拟网络拓扑相对复杂,继而可能存在多张多级流表,数据报文在进入主机后往往需要完成多次流表的查找匹配,导致处理效率降低。另外,由于网卡的存储空间有限,难以存储大量的硬件流表,即,硬件流表只能维护软件流表中的一部分流表项,这将导致硬件流表的匹配命中率下降,进而使得部分数据包仍需上送至虚拟交换机进行处理,也降低了报文处理效率。因此,现有技术中基于虚拟交换机的报文处理效率仍有待提高。
发明内容
本申请提供了一种报文处理的方法和装置,用于提高报文处理效率,尤其是在网卡的存储空间有限的情况下提高报文的处理效率。
一方面,提供了一种报文处理方法,包括:报文处理装置获取第一报文,第一报文包括第一指示信息,第一指示信息用于指示第一报文对应的数据流,其中,所述报文处理装置存储有集成流表,集成流表包含至少一个流表项,至少一个流表项中的每个流表项包括统一匹配项和综合行为项,统一匹配项用于唯一标识一条数据流,综合行为项用于指示对统一匹配项标识的数据流中的报文执行的至少一个操作;根据第一指示信息从集成流表中确定目标流表项,目标流表项为至少一个流表项中统一匹配项标识的数据流与第一指示信息指示的数据流相同的流表项;根据目标流表项包括的综合行为项对第一报文执行所述至少一个操作。本申请实施例提供的方法,基于新型的流表,即集成流表进行报文处理,由于集成流表中的一个统一匹配项可以唯一确定一条数据流,因此可以将多次流表匹配查找归一为一次流表查找,提升了流表匹配效率,同时也减少了对存储空间的占用,在网卡存储空间有限的情况下,网卡可以存储更多的流表,提高了报文与硬件流表的匹配命中率,从而提高了报文处理效率。
在一种可能的实现方式中,报文处理装置通过提取该报文的特征信息来生成统一匹配项,以唯一标识该报文所在数据流(或连接);同时,通过跟踪某一数据流的报文在虚拟交换机中所经历的所有流表和连接跟踪(connection track,CT)表,记录该报文所命中的所有流表项所指示的行为项,并将这些行为项进行综合编排成一条综合行为项,然后根据统一匹配项和综合行为项生成一条集成流表项,并将生成的集成流表项加入集成流表。由于统一匹配项可以唯一标识一条数据流(或一条连接),而其对应的综合行为项描述了对该数据流的每个报文执行的所有操作或行为,这样可以将虚拟交换机的多级流表的多个流表项集成为集成流表中的一条集成流表项,充分节省了存储空间,使得更多的流表项可以在有限的硬件存储空间中存储,继而可以提高流表命中率,同时也可以将多次流表匹配查找归一为一次流表查找,提升了查找匹配速度,进而提高了报文处理效率。
在一种可能的实现方式中,在综合编排成综合行为项时,可以将记录的所有行为项中的一些冗余的行为去除,进而可以进一步提升报文处理效率。
在一种可能的实现方式中,根据第一指示信息从集成流表项中确定目标流表项之前,所述方法还包括:获取第二报文,该第二报文包括第二指示信息,该第二指示信息用于指示第二报文对应的数据流,第二报文对应的数据流与第一报文对应的数据流相同;根据第二报文包括的第二指示信息生成统一匹配项。在发送第一报文之前,可以根据第二报文携带的第二指示信息生成统一匹配项,并生成目标流表项,由于第二报文对应的数据流与第一报文对应的数据流相同,该统一匹配项可用于匹配第一报文,当获取到第一报文后,无需再将第一报文发送至软件环境,可以根据存储在网卡中的目标流表项处理第一报文,从而提高了第一报文的处理效率。
在一种可能的实现方式中,根据第一指示信息从集成流表项中确定目标流表项之前,所述方法还包括:将所述第二报文发送给所述报文处理装置中的虚拟交换机;所述虚拟交换机对所述第二报文执行至少一个操作以完成所述第二报文的转发;根据所述虚拟交换机对所述第二报文执行的至少一个操作生成所述综合行为项。由于第二报文对应的数据流与第一报文对应的数据流相同,因此,转发第二报文所需执行的操作与转发第一报文所需执行的操作相同,在本实施例中,综合行为项包括转发第二报文所需执行的操作的信息,从而可以一次确定发送第一报文所需的操作,无需多次查找行为项,提高了第一报文的转发效率。
在一种可能的实现方式中,所述根据发送第二报文执行的操作生成综合行为项,包括:从所述虚拟交换机对所述第二报文执行的至少一个操作中确定冗余操作,所述冗余操作为通过所述报文处理装置的网卡转发所述第二报文时不需要执行的操作;生成所述综合行为项,所述综合行为项包括用于指示所述虚拟交换机对所述第二报文执行的至少一个操作中除所述冗余操作之外的其它操作的信息。在本实施例中,通过删除综合行为项中的冗余操作信息,减少了流表占用的存储空间,在网卡存储空间有限的情况下,网卡可以存储更多的流表,提高了报文与硬件流表的匹配命中率,从而提高了报文转发效率。
在一种可能的实现方式中,第二报文为第二报文对应的数据流中的首个报文。
在一种可能的实现方式中,统一匹配项包括与第一指示信息指示的数据流对应的源因特网协议(internet protocol,IP)地址、源端口号、目的IP地址、目的端口号、传输层协议号和子网标识符。通过上述六个信息可以标识可以唯一确定一条数据流,本申请的实施例不限于此,其它可以唯一确定一条数据流的信息也可以作为统一匹配项。
在一种可能的实现方式中,目标流表项为硬件流表中的流表项,所述综合行为项包括用于指示连接跟踪(connection track,CT)操作和扩展虚拟局域网(virtualextensible local area network,VxLAN)封装操作的信息,所述根据目标流表项包括的综合行为项对第一报文执行所述至少一个操作,包括:根据综合行为项中指示CT操作的信息对第一报文执行CT操作;根据综合行为项中指示VxLAN封装操作的信息对经过CT操作后的第一报文执行VxLAN封装操作以生成第三报文;对第三报文执行发送操作。
在一种可能的实现方式中,在生成硬件流表中流表项的综合行为项时,可以去除冗余操作以减小统一流表项的大小,例如,发送第二报文的过程中可能需要对第二报文执行添加和删除内部虚拟局域网(virtual local area network,VLAN)标签的操作,原因是第二报文在软件环境中被发送的过程中需要经过多个网桥,因此需要执行添加和删除内部VLAN标签的操作,在硬件环境中,第一报文在被发送过程中无需经过多个网桥,因此,添加和删除内部VLAN标签的操作没有意义,属于冗余操作,可以在生成综合行为项时去除该两个行为。
第二方面,提供了一种报文处理装置,该装置可以实现上述第一方面或第一方面的任一种实现方式所涉及的方法的执行主体的功能,所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的单元或模块。
在一种可能的设计中,该装置包括处理器和通信接口,该处理器被配置为支持该装置执行上述第一方面所涉及的方法中相应的功能。该通信接口用于支持该装置与其它通信设备之间的通信。该装置还可以包括存储器,该存储器用于与处理器耦合,其保存该装置必要的程序指令和数据。
第三方面,提供了一种计算机可读存储介质,该计算机可读存储介质中存储了计算机程序,该计算机程序被处理单元或处理器执行时,使得报文处理装置执行上述第一方面或第一方面的任一种实现方式所涉及的方法。
第四方面,提供了一种芯片,其中存储有指令,当其在报文处理装置上运行时,使得该芯片执行上述第一方面或第一方面的任一种实现方式所涉及的方法。
第五方面,提供了一种计算机程序产品,该计算机程序产品包括:计算机程序,当该计算机程序被发送报文的装置的通信单元或通信接口、以及处理单元或处理器运行时,使得报文处理装置执行上述第一方面或第一方面的任一种实现方式所涉及的方法。
第六方面,提供了一种网卡,所述网卡包括存储单元、处理单元和通信单元;所述存储单元用于存储集成流表,集成流表包含至少一个流表项,该至少一个流表项中的每个流表项包括统一匹配项和综合行为项,统一匹配项用于唯一标识一条数据流,综合行为项用于指示对统一匹配项标识的数据流中的报文执行的至少一个操作,所述通信单元用于获取第一报文,第一报文包括第一指示信息,第一指示信息用于指示第一报文对应的数据流;所述处理单元用于根据第一指示信息从集成流表中确定目标流表项,目标流表项为至少一个流表项中统一匹配项标识的数据流与第一指示信息指示的数据流相同的流表项,以及用于根据目标流表项包括的综合行为项对第一报文执行操作。
第七方面,提供了一种卸载引擎,用于根据第二报文包括的所述指示信息生成统一匹配项,根据虚拟交换机对所述第二报文执行的至少一个操作生成综合行为项,以及根据所述统一匹配项和所述综合行为项生成流表项,并将生成的流表项加入集成流表。
在一种可能的实现方式中,所述虚拟交换机用于对所述第二报文执行至少一个操作以完成所述第二报文的转发。
在一种可能的实现方式中,所述统一匹配项包括与所述第二报文对应的数据流的源因特网协议IP地址、源端口号、目的IP地址、目的端口号、传输层协议号和子网标识符。
在一种可能的实现方式中,所述卸载引擎具体用于:从所述虚拟交换机对所述第二报文执行的至少一个操作中确定冗余操作,所述冗余操作为通过所述报文处理装置的网卡转发所述第二报文时不需要执行的操作;生成所述综合行为项,所述综合行为项包括用于指示所述虚拟交换机对所述第二报文执行的至少一个操作中除所述冗余操作之外的其它操作的信息。
在一种可能的实现方式中,所述卸载引擎被集成到虚拟交换机中。
第八方面,提供了一种报文处理装置,包括上述第六方面所描述的网卡,以及上述第七方面或第七方面的任一种实现方式所描述的卸载引擎。
第九方面,提供了一种计算机可读存储介质,该计算机可读存储介质中存储了计算机程序,该计算机程序被处理单元或处理器执行时,实现上述第六方面所描述的网卡的功能,或者上述第七方面或第七方面的任一可能的实现方式所描述的卸载引擎的功能。
第十方面,提供了一种计算机程序产品,该计算机程序产品包括:计算机程序,当该计算机程序被网卡的通信单元或通信接口、以及处理单元或处理器运行时,使得网卡实现上述第六方面的功能。
附图说明
图1是本申请实施例提供的一种虚拟网络系统的示意图;
图2是虚拟网络系统中的一个节点的示意图;
图3是虚拟网络系统中的一个节点的另一种示意图;
图4本申请提供的一种报文处理装置的示意图;
图5是本申请提供的一种报文处理方法的示意图;
图6是本申请提供的集成流表项的示意图;
图7是本申请提供的另一种报文处理方法的示意图;
图8是本申请提供的一种生成硬件集成流表项的方法的示意图;
图9是本申请提供的另一种报文处理装置的示意图;
图10是本申请提供的再一种报文处理装置的示意图。
具体实施方式
下面将结合附图,对本申请中的技术方案进行描述。本申请实施例提供一种基于集成流表的报文处理的方法和装置,可典型地应用于使用虚拟交换机进行数据转发的虚拟网络系统。虚拟交换机是用于虚拟机之间数据包交换的软件应用程序,也称为软交换机。下面以开放虚拟交换机(open virtual switch,OVS)为例对本申请各个实施例提供的报文处理的方法和装置进行描述。可以理解的是,本申请提供的基于集成流表的报文处理的方法和装置还适用于使用其它类型的虚拟交换机的网络系统。
图1是一种使用OVS的虚拟网络系统的示意图。
节点1、节点2和节点3分别为三台安装有OVS软件并配置有网卡(networkinterface card,NIC)的物理主机或服务器,三个节点通过物理交换机107传输信息,每个节点均拥有完整的软件和硬件,为了简洁,图1仅示例性地画出了节点1包括的软件和硬件。
如图1所示,节点1的硬件包括中央处理器101(central processing unit,CPU)、存储器102和网卡103,节点1的软件包括OVS 104、虚拟机(virtual machine,VM)105和VM106,节点1上的VM 105和VM 106通过OVS 104和网卡103与其它节点通信。
上述虚拟网络系统仅是举例说明,适用于本申请的虚拟网络系统不限于此,例如,节点1还可以安装容器或者其它虚拟操作系统软件,节点的数量还可以是其它数量,每个节点所包括的硬件也都不限于图1所示的硬件。
图2示出了图1所示的虚拟网络系统中的节点1进行报文处理的基本过程示意图。
参照图2,OVS 104包括在用户空间(userspace)206中运行的虚拟交换组件203,比如ovs-vswitchd,以及在内核空间204运行的内核模块201。虚拟交换组件203主要负责用于实现数据交换和流表功能,是OVS 104的核心组件。在一个实施例中,虚拟交换组件203可以实现为一个或一组用户态守护进程。流表是描述何种数据流的报文要经过何种处理并记录处理执行次数的表,由流表项组成。流表项用于具体描述如何处理某种特定类型的数据报文,一个流表项中通常包含匹配项(也称为“匹配键值”)、行为项以及流表项超时时间等内容。内核模块201用于根据流表对报文执行特定操作,比如对报文进行特定处理后转发处理后的报文。虚拟交换组件203通过特定通信协议,比如net link协议直接和内核模块201进行通信。当一条数据流的首个报文到达网卡103时,网卡103将该报文发送至OVS 104,由于该报文为该数据流中首个到达网卡103的报文,位于OVS 104的内核空间204中的软件流表202没有该报文对应的流表项,因此,内核模块201将该报文发送至用户空间206中的虚拟交换组件203,虚拟交换组件203会分析报文携带的信息,决定如何处理该报文,报文处理完成之后虚拟交换组件203将处理的过程记录下来并生成相应的流表项,填充在软件流表202中;当该数据流的后续报文从网卡103流入时,内核模块201根据该报文的特征信息,比如五元组信息(源IP地址、源端口号、目的IP地址、目的端口号和传输层协议号),可以在软件流表202中命中对应的流表项,进而执行该流表项所描述的行为(也可称为“操作”),例如向指定端口输出、打上或剥除VLAN Tag、打上或剥除VxLAN头、修改数据包头、跳转至其他流表、丢弃以及执行CT行为等。因此,报文无需再进入用户空间206,能够更快地被处理。通常,经过用户空间的报文处理过程可以称为“慢速路径”,不经过用户空间,而直接在内核空间基于软件流表匹配进行报文处理的过程可以称为“快速路径”。
为了进一步提高报文处理的速度,可以将软件流表的匹配操作卸载到硬件上,即在硬件,比如网卡中存储硬件流表,并实现软件流表和硬件流表之间的同步,继而将原本在内核空间执行的流表匹配操作卸载到硬件中实现,提高了报文处理速度。如图3所示,网卡103中存储有硬件流表302,该硬件流表302和位于内核空间204的软件流表202保持同步。当报文从网卡103流入后,在网卡103存储的硬件流表302中匹配命中相应的流表项,进而执行流表项所指示的行为。因此,报文无需发送给OVS 104处理,直接在网卡103上被处理,因而能够提高报文处理的速度。
然而,在公有云等应用场景中,虚拟网络拓扑相对复杂,继而存在多张多级流表,报文在进入网卡后需要完成多次流表的匹配,比较耗时;与此同时,在网卡存储空间极其有限的情况下,难以将所有软件流表都在网卡中存储,从而导致一部分数据流的报文无法在硬件流表中命中相应的流表项,也就是说,硬件流表的匹配命中率低于软件流表,一部分报文仍然需要通过内核空间204中的内核模块201进行处理,从而降低了报文的处理效率,而增加网卡的存储空间将会带来制造成本的上升,无法取得流表命中率和存储空间使用量的平衡。
有鉴于此,本申请实施例根据虚拟网络的典型应用场景,比如公有云场景,设计了一种新型的流表结构,即集成流表。通过卸载引擎跟踪某一数据流的报文在OVS中所经历的所有流表和连接跟踪(connection track,CT)表,记录该报文所命中的所有流表项所指示的行为项,并将这些行为项进行综合编排成一条综合行为项。同时,通过特殊设计的统一匹配项来唯一标识一条数据流(或一条连接),避免一条数据流存在多种匹配键值而增加流表项数目。然后根据统一匹配项和综合行为项生成一条集成流表项,并将生成的集成流表项加入集成流表。通过该集成流表,可以将多次流表匹配查找归一为一次流表查找,提升了流表匹配效率,同时也减少了对存储空间的占用。
进一步地,本申请实施例还提供了生成集成流表,以及基于集成流表进行报文处理的方法,主要包括以下核心流程:
(1)报文从外部网络流入网卡后,网卡根据报文的特征信息在其维护的集成流表中查找对应的流表项。如果没有命中,则将报文转发至OVS进行处理。在OVS对报文进行处理的同时,卸载引擎跟踪报文的处理过程,记录其所经过的所有流表和CT表,依次记录该报文被执行的流表项行为和CT行为。
(2)在记录完报文的处理过程后,提取报文的子网标识符,结合报文的子网标识符以及五元组信息以生成集成流表项的统一匹配项。将记录的行为进行统一编排,去除不必要的行为并对可以合并的行为进行整合,生成一个综合行为,作为集成流表项的综合行为项。通过建立统一匹配项和综合行为项的关联关系,最终构造一条完整的集成流表项,并将其添加到集成流表中。集成流表可以卸载到网卡,即存储在网卡的存储器中。
(3)后续报文从外部网络流入网卡后,网卡根据该报文的特征信息在集成流表中查找对应的流表项。如果命中,则网卡直接根据命中的集成流表项的综合行为项对报文进行处理,无需将报文上送至OVS进行处理。
本发明实施例使用将OVS中多级流表的多个流表项集成为集成流表中的一条集成流表项,减少了对存储空间的占用;在硬件存储资源有限的情况下,可以存储更多的流表项,继而使得更多的数据流可以命中集成流表中的流表项,保证数据处理效率。
图4示出了一个基于集成流表403进行报文处理的报文处理装置400的示例,报文处理装置400可以是图1所示的节点1、节点2和节点3中的任意一个节点。如图4所示,报文处理装置400包括网卡402、卸载引擎407以及由硬件(例如,CPU和存储器)实现的OVS 440,卸载引擎407用于跟踪报文在OVS 440中所经历的软件流表405和CT表406,将执行的全部流表行为和CT行为进行综合编排,生成一条包括统一匹配项和综合行为项的集成流表项,最后将该集成流表项加入集成流表403,后续的报文进入网卡后,若匹配命中该集成流表403中的集成流表项,则根据该集成流表项进行处理。
在一个实施例中,集成流表403可以由OVS 440维护,例如,集成流表403位于OVS440的内核空间404。当网卡402接收到一报文后,将其转发给OVS 440,OVS 440根据该报文的信息在其维护的集成流表中匹配命中对应的流表项,进而对该报文执行相应的操作。通过该集成流表,OVS 440可以将多次流表匹配查找归一为一次流表查找,提升了流表匹配效率。
在另一个实施例中,为了提高流表查询的速度,集成流表403可以存储在网卡402集成的存储器上,也可以存储在网卡402外接的存储器上,即集成流表403为硬件集成流表。当网卡402接收到一报文后,直接根据该报文的信息在其维护的硬件集成流表中匹配命中对应的流表项,进而对该报文执行相应的操作,无需将报文转发给OVS处理,大大提高了报文处理速度。
需要说明的是,图4所示的卸载引擎407是OVS 440的内核空间404中的软件模块或程序,该模块或程序被处理器执行时实现相应的功能。在一个实施例中,卸载引擎407的功能可以集成到OVS 440的内核模块中。可以理解的是,本申请实施例提供的卸载引擎407还可以实现为OVS 440的用户空间404中的软件模块或程序,比如集成在用户空间404的虚拟交换组件中;或者,卸载引擎407还可以以硬件的形式实现,比如实现为处理器,数字信号处理器(digital signal processor,DSP),专用集成电路(application-specificintegrated circuit,ASIC),现场可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合,本申请对此不做限定。
基于上述报文处理装置400,下面将详细介绍利用集成流表对报文进行处理的相关技术细节。
图5是本申请提供的一种基于集成流表处理报文的方法的示意性流程图。该方法500包括:
S510,报文处理装置400获取一报文(下文称之为“第一报文”),第一报文包括第一指示信息,第一指示信息用于指示第一报文对应的数据流,其中,所述报文处理装置400存储有集成流表,集成流表包含至少一个流表项,至少一个流表项中的每个流表项包括统一匹配项和综合行为项,统一匹配项用于唯一标识一条数据流,综合行为项用于指示对统一匹配项标识的数据流中的报文执行的至少一个操作;第一报文对应的数据流具体是指第一报文所属的数据流。
S520,根据第一指示信息从集成流表中确定目标流表项,目标流表项为至少一个流表项中统一匹配项标识的数据流与第一指示信息指示的数据流相同的流表项。
S530,根据目标流表项包括的综合行为项对第一报文执行所述至少一个操作。
作为一个示例,步骤S510-S530可以由网卡402执行,作为另一个示例,步骤S510-S530可以由OVS 440执行。
第一报文可以是报文处理装置400获取的任意一个报文,例如可以是报文处理装置400通过网卡402从其它通信设备接收的报文,也可以是安装在报文处理装置400中的VM生成的报文。报文的指示信息用于指示报文所属的数据流的特征信息,指示信息具体可以是报文的报头中携带的某几个字段,这些字段是同属于一条数据流中的所有报文都携带的,即同属于同一数据流的报文具有相同的指示信息。在一个实施例中,报文的指示信息可以是源IP地址(SIP)、源端口号(SPORT)、目的IP地址(DIP)、目的端口号(DPORT)、传输层协议号(IP type)和子网标识符,通过这些信息可以唯一确定一条数据流(也可称为“连接”),本申请的实施例不限于此,其它可以唯一确定一条数据流的信息也可以作为第一指示信息。
方法500中的“唯一标识”指的是统一匹配项A仅对应数据流A’,并且,数据流A’仅对应统一匹配项A,也就是说,当集成流表包括多个集成流表项时,该多个集成流表项与多条数据流一一对应。
上述子网标识符可以是VLAN标识(identifier,ID)、VxLAN网络标识符(VxLANnetwork identifier,VNI)或输入端口号,但适用于本申请的子网标识符不限于此,当存在多层子网时,上述子网标识符为多个子网标识符叠加后的结果。
报文处理装置400获取到第一报文之后根据第一报文携带的第一指示信息从流表中确定目标流表项,确定目标流表项的方法例如是比较第一指示信息与流表项的统一匹配项是否相同,当统一匹配项与第一指示信息相同时,该流表项即为目标流表项,当统一匹配项与第一指示信息相异时,该流表项为非目标流表项,上述相异包括部分相异和全部相异。
由于仅需一次匹配即可确定第一报文对应的流表项,因此,本申请提供的流表项称为集成流表项,相应地,由集成流表项组成的流表称为集成流表。
图6示出了本申请提供的一种集成流表项的结构示意图。
如图6所示,该集成流表项包括统一匹配项和综合行为项,在一个实施例中,综合行为项所指示的操作(也可称为“行为”)包括但不限于以下至少一种:CT、数据包修改(packet modification)、网络地址转换(network address translation,NAT)、打上隧道标签(tunnel push)、剥除隧道标签(tunnel pop)、打上内部VLAN标签(VLAN push)、剥除内部VLAN标签(VLAN pop)、输出(output)和丢弃(drop)。
该集成流表项还可以包括超时信息(timeout)、CT信息(CTinfo)以及计数信息(counter)等统计信息。
图6所示的集成流表项可以是软件流表中的流表项,也可以是硬件流表中的流表项,即集成流表可以为软件集成流表,也可以为硬件集成流表。
上述示例仅是举例说明,本申请对集成流表项的具体内容不做限定,任何可以用于匹配确定第一指示信息所指示的数据流的信息都可以称为统一匹配项,综合行为项的内容也不限于图6所示的内容,综合行为项可以指示一个或多个操作,此外,本申请对集成流表中集成流表项的数量不做限定。
综上所述,本申请实施例通过删除流表项的匹配项中与匹配数据流无关的信息,保留与匹配数据流相关的信息,即,生成统一匹配项,从而减少了流表占用的存储空间,在存储空间有限的情况下,可以存储更多的流表,提高了报文与硬件流表的匹配命中率。此外,由于可以根据统一匹配项直接确定数据流,因此,报文仅需一次匹配即可确定目标流表项,提高了报文处理的效率。
可选地,根据第一指示信息确定目标流表项之前,方法500还包括:
S501,获取第二报文,该第二报文包括第二指示信息,该第二指示信息用于指示第二报文对应的数据流,第二报文对应的数据流具体是指第二报文所属的数据流。其中,第二报文可以是报文处理装置400通过网卡402从其它设备接收的报文,也可以是报文处理装置400生成的报文。例如,报文处理装置400在接收第一报文之前接收到了第二报文,第二报文与第一报文为属于相同的数据流的不同报文。
S502,根据第二报文包括的第二指示信息生成统一匹配项;
S503,报文处理装置400通过OVS440对第二报文执行一个或多个操作以完成第二报文的转发;具体地,OVS 440可以根据其内核空间404中的一个或多个软件流表405,以及CT表406对第二报文执行一个或多个操作。其中,报文处理装置400具体可以通过OVS440的内核模块(图4中未示出)来对报文执行上述一个或多个操作。
S504,根据OVS440对第二报文执行的操作生成综合行为项。
需要说明的是,生成统一匹配项和综合行为项的过程,即步骤S502和S504可以由卸载引擎407来实施。卸载引擎407可以集成在OVS 440中,也可以实现为一个独立的软件模块或硬件模块。
具体地,在一个实施例中,卸载引擎407通过提取第二报文的第二指示信息以生成统一匹配项。示例性地,卸载引擎407可以提取第二报文的子网标识符及五元组信息,如果有多层子网则都依次提取出来,然后将子网标识符与五元组信息进行组合,以得到一统一匹配项,该统一匹配项可以唯一标识第二报文所属的数据流(与第一报文所属的数据流相同)。
由于第二报文与第一报文属于同一数据流,因此,转发第二报文所需执行的操作与转发第一报文所需执行的操作相同。在一个实施例中,卸载引擎407记录OVS440转发第二报文过程中所执行的流表项行为和CT行为,并将记录的行为进行统一编排,以去除不必要的行为并对可以合并的行为进行整合,从而生成一个综合行为项。最终,卸载引擎407根据生成的统一匹配项和综合行为项构造出一条完整的集成流表项,并将该集成流表项添加到集成流表403中。
在一个实施例中,报文处理装置400可以通过用户空间406中的虚拟交换组件403分析第二报文携带的信息,决定如何处理第二报文,卸载引擎407根据S502及S504描述的方法生成与集成流表项,填充在位于内核空间404的软件集成流表中,当第二报文所属数据流的后续报文(例如,第一报文)从网卡流入时,根据该报文的指示信息即可在软件集成流表中命中该集成流表项,进而根据该集成流表项对报文进行相应处理,报文无需再进入用户空间406,能够更快地被处理。
在另一个实施例中,卸载引擎407生成集成流表项并将该集成流表项填充至位于内核空间404的软件集成流表之后,可以将该软件集成流表卸载至网卡,即存储到网卡402的存储器中,当后续报文(例如,第一报文)从网卡402流入时,根据该报文的指示信息即可在网卡402存储的集成流表中命中该集成流表项,进而根据该集成流表项对报文进行相应处理,报文无需再进入OVS 440,能够更快地被处理。
在一个实施例中,卸载引擎407具体可以通过如下方式来生成综合行为项:
S505,从OVS440对第二报文执行的操作中确定相对于仅通过网卡402发送第二报文执行的操作的冗余操作,这里的冗余操作,即为直接通过网卡402转发第二报文时不需要执行的操作。
S506,生成所述综合行为项,所述综合行为项包括用于指示OVS440对第二报文执行的操作的信息,且所述综合行为项不包括用于指示所述冗余操作的信息,即生成的综合行为项包括用于指示OVS440对第二报文执行的操作中除上述冗余操作之外的其它操作的信息。
例如,OVS 440转发第二报文的过程中可能需要对第二报文执行添加和删除内部VLAN标签的操作,原因是第二报文在软件环境(即,虚拟交换机)中被发送的过程中需要经过多个网桥,因此需要执行添加和删除内部VLAN标签的操作,在硬件环境(即,网卡)中,第一报文在被发送过程中无需经过多个网桥,因此,添加和删除内部VLAN标签的操作没有意义,属于冗余操作,可以在生成综合行为项时去除该两个行为。
在本实施例中,通过删除综合行为项中的冗余操作信息,减少了流表占用的存储空间,在网卡存储空间有限的情况下,网卡可以存储更多的流表,提高了报文与硬件流表的匹配命中率,从而提高了报文处理效率。
在一个实施例中,目标流表项为硬件流表中的流表项,综合行为项包括用于指示CT操作和VxLAN封装操作的信息,所述根据目标流表项包括的综合行为项对第一报文执行所述至少一个操作,包括:
S531,根据综合行为项中指示CT操作的信息对第一报文执行CT操作。
S532,根据综合行为项中指示VxLAN封装操作的信息对经过CT操作后的第一报文执行VxLAN封装操作以生成第三报文。
S533,对第三报文执行发送操作。
在本实施例中,由网卡对第一报文执行操作,由于网卡中存储的硬件流表不包括冗余操作信息,因此,本实施例能够提高处理第一报文的效率。
本申请实施例还提供了报文处理装置400基于集成流表进行报文处理的一个更具体的示例。
如图7所示,VM所在的主机处于公有云环境,该VM生成需要进行2层转发的报文,报文进入OVS440之后,卸载引擎407会记录报文的处理流程。
报文的处理流程如下:
S701,报文从VM进入策略(policy,ply)网桥。
S702,ply网桥将报文送入liunx网桥,linux网桥对报文进行CT操作(CT action)和安全检查。
S703,报文重新进入ply网桥,ply网桥在报文中添加CT表项。
S704,随后,报文进入综合网桥(bridge-integration,br-int),进入br-int的跨主机报文会被打上内部VLAN标签。
S705,报文进入隧道网桥(bridge-tunnel,br-tun),根据流表规则被剥掉内部VLAN标签,并被添加上VNI,封装成VxLAN报文,再被打上外部VLAN标签。
S706,通过网卡402发送到外部网络。
S707,卸载引擎407将S701至S705中记录的所有流表行为统一编排成一条综合行为项,并以该报文的五元组信息(源IP地址、源端口号、目的IP地址、目的端口号和传输层协议号)和子网标识符为统一匹配项生成一条集成流表项卸载到网卡402中存储的集成流表403(即,硬件集成流表)中。
图8示出了硬件集成流表项的编排过程。在OVS 440中执行的5次流表查询被优化为一次流表查询,在OVS 440中执行的6个行为(5个流表行为和1个CT行为)被综合编排为硬件集成流表中的3个行为,其中,由于报文在网卡中无需跳转多个网桥,因此,在OVS440中执行的内部VLAN标签的添加和剥除行为均被省略,此外,CT操作和在报文中添加CT表项被整合在一个行为中,从而提高了报文的处理效率。
后续报文从VM通过单根输入输出虚拟化(single rootinput/outputvirtualization,SRIOV)流入网卡402后,网卡402根据报文携带的五元组信息和子网标识符从硬件集成流表403中查询对应的集成流表项,如果命中,则网卡402直接根据该集成流表项中的综合行为项对后续报文进行处理,无需再将后续报文发送至OVS 440。
上文详细介绍了本申请提供的基于集成流表处理报文的方法的示例。可以理解的是,报文处理装置为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请可以根据上述方法示例对报文处理装置进行功能单元的划分,例如,可以对应各个功能划分各个功能单元,也可以将两个或两个以上的功能集成在一个处理单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。需要说明的是,本申请中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
在采用集成的单元的情况下,图9示出了上述实施例中所涉及的报文处理装置的一种可能的结构示意图。报文处理装置900包括:处理单元902和通信单元903。通信单元903用于获取报文,处理单元902用于根据通信单元903获取的报文的指示信息从集成流表中确定目标流表项,并根据所述目标流表项包括的综合行为项对所述第一报文执行所述至少一个操作;其中,所述目标流表项为集成流表中统一匹配项标识的数据流与所述指示信息指示的数据流相同的流表项。关于集成流表的结构,以及处理单元902和通信单元903实现的功能的相关细节可以参见前述实施例,比如S510-S530相关实施例。在一个实施例中,报文处理装置900还包括:存储单元901,用于存储集成流表,以及程序或指令,该程序或指令被处理器执行时实现处理单元902和通信单元903的功能。
在一个实施例中,处理单元902可以是处理器或控制器,例如可以是CPU,通用处理器,数字信号处理器(digital signal processor,DSP),专用集成电路(application-specificintegrated circuit,ASIC),现场可编程门阵列(field programmable gatearray,FPGA)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。存储单元901可以为随机存取存储器(randomaccess memory,RAM)、闪存、只读存储器(readonly memory,ROM)、可擦除可编程只读存储器(erasable programmable ROM,EPROM)、电可擦可编程只读存储器(electrically EPROM,EEPROM)、寄存器、或者本领域熟知的任何其它形式的存储介质。通信单元903可以为接收电路、接收器、I/O接口等具有数据接收和发送功能的器件。
在一个实施例中,存储单元901、处理单元902和通信单元903可以集成于一硬件设备上,比如图4和图7所示的网卡402。例如,存储单元901具体可以为网卡402上的存储器,处理单元902可以为网卡402的处理器,通信单元903可以为网卡402的端口,接收器、或I/O接口。
在一个实施例中,报文处理装置900还包括虚拟交换机,用于其维护的一个多个软件流表对报文执行相应操作,以完成报文的转发。在一个实施例中,若处理单元902根据通信单元903获取的报文的指示信息未从集成流表中命中目标流表项,则将该报文转发给虚拟交换机,虚拟交换机进而根据软件流表对该报文执行相应的操作以完成该报文的转发。在一个实施例中,虚拟交换机可以为前述实施例所描述的OVS 440,其实现细节可以参照前述实施例。
在一个实施例中,报文处理装置900还包括卸载引擎,用于生成上述集成流表中的流表项。具体地,卸载引擎跟踪虚拟交换机在转发报文时对该报文执行的所有操作,即该报文所命中的所有流表项所指示的行为项,并将这些行为项进行综合编排成一条综合行为项。同时,通过提取报文的指示信息来构造统一匹配项,以唯一标识该报文所属的数据流(或连接),然后根据统一匹配项和综合行为项生成一条集成流表项,并将生成的集成流表项加入集成流表。在一个实施例中,报文处理装置900包括的卸载引擎可以为前述实施例所描述的卸载引擎407,其生成集成流表项的具体细节可以参见前面的实施例,比如图4-8相关的实施例。
在一个实施例中,卸载引擎作为软件模块或程序集成于报文处理装置900包括的虚拟交换机中,该软件模块或程序被处理器执行时实现相应的功能。在另一个实施例中,卸载引擎也可以作为软件模块或程序集成于网卡上,被网卡上的处理器执行时实现相应的功能。在另一个实施例中,卸载引擎的功能可以通过DSP,ASIC,FPGA或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合来实现,实现卸载引擎的功能的硬件可以集成到报文处理装置900的网卡中。
参阅图10所示,本申请实施例还提供另一报文处理装置1000,包括:处理器1002、通信接口1003、存储器1001。其中,通信接口1003、处理器1002以及存储器1001可以通过内部连接通路相互通信,传递控制和/或数据信号。
本领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
例如,上述通信接口可以是网卡的通信接口。存储器可以是一个单独的器件,也可以集成在处理器中。上述的各个器件或部分器件可以集成到芯片中实现。
应理解,报文处理装置1000可以通过通用软件实现方法500的各个步骤,也可以通过专用软件(例如虚拟机和OVS)实现方法500的各个步骤,当报文处理装置1000上安装有虚拟机和OVS时,报文处理装置1000相当于图1所示的节点1、节点2和节点3中的任意一个。
报文处理装置1000还可以是网卡,此时,报文处理装置1000根据存储在存储器1001中的硬件流表对接收到的报文进行处理,该报文可以是网卡所在主机生成的报文,也可以是网卡接收到的其它主机发送的报文。
本申请提供的报文处理装置900和报文处理装置1000,根据统一匹配项处理报文,从而减少了流表占用的存储空间,在网卡存储空间有限的情况下,网卡可以存储更多的流表,提高了报文与硬件流表的匹配命中率。此外,由于可以根据统一匹配项直接确定数据流,因此,报文仅需一次匹配即可确定目标流表项,提高了报文处理的效率。
在本申请各个实施例中,各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请的实施过程构成任何限定。
另外,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
结合本申请公开内容所描述的方法或者算法的步骤可以硬件的方式来实现,也可以是由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于RAM、闪存、ROM、EPROM、EEPROM、寄存器、硬盘、移动硬盘、只读光盘(CD-ROM)或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。另外,该ASIC可以位于报文处理装置中。当然,处理器和存储介质也可以作为分立组件存在于报文处理装置中。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者通过所述计算机可读存储介质进行传输。所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,数字通用光盘(digital versatile disc,DVD)、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。
以上所述的具体实施方式,对本申请的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本申请的具体实施方式而已,并不用于限定本申请的保护范围,凡在本申请的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本申请的保护范围之内。

Claims (21)

1.一种报文处理方法,其特征在于,包括:
报文处理装置获取第一报文,所述第一报文包括第一指示信息,所述第一指示信息用于指示所述第一报文对应的数据流,其中,所述报文处理装置存储有集成流表,所述集成流表包含至少一个流表项,所述至少一个流表项中的每个流表项包括统一匹配项和综合行为项,所述统一匹配项用于唯一标识一条数据流,所述综合行为项用于指示对所述统一匹配项标识的数据流中的报文执行的操作;
根据所述第一指示信息从所述集成流表中确定目标流表项,所述目标流表项为所述至少一个流表项中统一匹配项标识的数据流与所述第一指示信息指示的数据流相同的流表项;
根据所述目标流表项包括的综合行为项对所述第一报文执行所述操作。
2.根据权利要求1所述的方法,其特征在于,所述根据所述第一指示信息从所述集成流表中确定目标流表项之前,所述方法还包括:
获取第二报文,所述第二报文包括第二指示信息,所述第二指示信息用于指示所述第二报文对应的数据流,所述第二报文对应的数据流与所述第一报文对应的数据流相同;
根据所述第二报文包括的所述第二指示信息生成所述统一匹配项。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
将所述第二报文发送给所述报文处理装置中的虚拟交换机;
所述虚拟交换机对所述第二报文执行操作以完成所述第二报文的转发;
根据所述虚拟交换机对所述第二报文执行的操作生成所述综合行为项。
4.根据权利要求3所述的方法,其特征在于,所述根据所述虚拟交换机对所述第二报文执行的至少一个操作生成所述综合行为项,包括:
从所述虚拟交换机对所述第二报文执行的操作中确定冗余操作,所述冗余操作为通过所述报文处理装置的网卡转发所述第二报文时不需要执行的操作;
生成所述综合行为项,所述综合行为项包括用于指示所述虚拟交换机对所述第二报文执行的操作中除所述冗余操作之外的其它操作的信息。
5.根据权利要求3所述的方法,其特征在于,所述根据所述虚拟交换机对所述第二报文执行的操作生成所述综合行为项,包括:
通过跟踪所述第二报文在所述虚拟交换机中所经历的所有流表和连接跟踪CT表,以依次记录所述第二报文被执行的所有在所述所有流表和连接跟踪CT表中的行为项;
将所述第二报文被执行的所有在所述所有流表和连接跟踪CT表中的行为项整合,以得到所述综合行为项。
6.根据权利要求4所述的方法,其特征在于,所述冗余操作包括:添加和删除内部虚拟局域网VLAN标签的操作。
7.根据权利要求2至6任一项所述的方法,其特征在于,所述第二报文为所述第二报文对应的数据流中的首个报文。
8.根据权利要求1至7中任一项所述的方法,其特征在于,所述统一匹配项包括与所述第一指示信息指示的数据流对应的源因特网协议IP地址、源端口号、目的IP地址、目的端口号、传输层协议号和子网标识符。
9.根据权利要求1至8中任一项所述的方法,其特征在于,所述集成流表存储于所述报文处理装置的网卡中。
10.根据权利要求9所述的方法,其特征在于,所述综合行为项包括用于指示连接跟踪CT操作和扩展虚拟局域网VxLAN封装操作的信息,所述根据所述目标流表项包括的综合行为项对所述第一报文执行所述操作,包括:
根据所述综合行为项中指示CT操作的信息对所述第一报文执行CT操作;
根据所述综合行为项中指示VxLAN封装操作的信息对经过CT操作后的所述第一报文执行VxLAN封装操作以生成第三报文;
对所述第三报文执行发送操作。
11.一种报文处理装置,其特征在于,包括通信单元和处理单元,
所述通信单元用于获取第一报文,所述第一报文包括第一指示信息,所述第一指示信息用于指示所述第一报文对应的数据流,其中,所述报文处理装置存储有集成流表,所述集成流表包含至少一个流表项,所述至少一个流表项中的每个流表项包括统一匹配项和综合行为项,所述统一匹配项用于唯一标识一条数据流,所述综合行为项用于指示对所述统一匹配项标识的数据流中的报文执行的操作;
所述处理单元用于根据所述第一指示信息从所述集成流表中确定目标流表项,所述目标流表项为所述至少一个流表项中统一匹配项标识的数据流与所述第一指示信息指示的数据流相同的流表项;
所述处理单元还用于根据所述目标流表项包括的综合行为项对所述第一报文执行所述操作。
12.根据权利要求11所述的装置,其特征在于,所述报文处理装置还包括卸载引擎;
所述通信单元还用于:获取第二报文,所述第二报文包括第二指示信息,所述第二指示信息用于指示所述第二报文对应的数据流,所述第二报文对应的数据流与所述第一报文对应的数据流相同;
所述卸载引擎用于:根据所述第二报文包括的所述第二指示信息生成所述统一匹配项。
13.根据权利要求12所述的装置,其特征在于,所述报文处理装置还包括虚拟交换机,
所述通信单元还用于,将所述第二报文发送给所述虚拟交换机;
所述虚拟交换机,用于对所述第二报文执行以完成所述第二报文的转发;
所述卸载引擎用于,根据所述虚拟交换机对所述第二报文执行的操作生成所述综合行为项。
14.根据权利要求13所述的装置,其特征在于,所述通信单元和所述处理单元集成在网卡上,所述卸载引擎具体用于:
从所述虚拟交换机对所述第二报文执行的至少一个操作中确定冗余操作,所述冗余操作为通过所述网卡转发所述第二报文时不需要执行的操作;
生成所述综合行为项,所述综合行为项包括用于指示所述虚拟交换机对所述第二报文执行的至少一个操作中除所述冗余操作之外的其它操作的信息。
15.根据权利要求13所述的装置,其特征在于,所述卸载引擎用于,通过跟踪所述第二报文在所述虚拟交换机中所经历的所有流表和连接跟踪CT表,以依次记录所述第二报文被执行的所有在所述所有流表和连接跟踪CT表中的行为项;
将所述第二报文被执行的所有在所述所有流表和连接跟踪CT表中的行为项整合,以得到所述综合行为项。
16.根据权利要求14所述的装置,其特征在于,所述冗余操作包括:添加和删除内部虚拟局域网VLAN标签的操作。
17.根据权利要求12至15任一项所述的装置,其特征在于,所述第二报文为所述第二报文对应的数据流中的首个报文。
18.根据权利要求11至17中任一项所述的装置,其特征在于,所述统一匹配项包括与所述第一指示信息指示的数据流对应的源因特网协议IP地址、源端口号、目的IP地址、目的端口号、传输层协议号和子网标识符。
19.根据权利要求11至18中任一项所述的装置,其特征在于,所述集成流表存储于所述报文处理装置的网卡中。
20.根据权利要求19所述的装置,其特征在于,所述综合行为项包括用于指示连接跟踪CT操作和扩展虚拟局域网VxLAN封装操作的信息,所述通信单元具体用于:
根据所述综合行为项中指示CT操作的信息对所述第一报文执行CT操作;
根据所述综合行为项中指示VxLAN封装操作的信息对经过CT操作后的所述第一报文执行VxLAN封装操作以生成第三报文;
对所述第三报文执行发送操作。
21.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理单元执行时实现权利要求1至权利要求10中任一项所述的方法的步骤。
CN202210657267.2A 2017-12-26 2017-12-26 报文处理的方法和装置 Pending CN115037575A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210657267.2A CN115037575A (zh) 2017-12-26 2017-12-26 报文处理的方法和装置

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202210657267.2A CN115037575A (zh) 2017-12-26 2017-12-26 报文处理的方法和装置
CN201711428818.3A CN109962832B (zh) 2017-12-26 2017-12-26 报文处理的方法和装置

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201711428818.3A Division CN109962832B (zh) 2017-12-26 2017-12-26 报文处理的方法和装置

Publications (1)

Publication Number Publication Date
CN115037575A true CN115037575A (zh) 2022-09-09

Family

ID=67021768

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202210657267.2A Pending CN115037575A (zh) 2017-12-26 2017-12-26 报文处理的方法和装置
CN201711428818.3A Active CN109962832B (zh) 2017-12-26 2017-12-26 报文处理的方法和装置

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN201711428818.3A Active CN109962832B (zh) 2017-12-26 2017-12-26 报文处理的方法和装置

Country Status (4)

Country Link
US (2) US11240148B2 (zh)
EP (2) EP3720057B1 (zh)
CN (2) CN115037575A (zh)
WO (1) WO2019128817A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115941598A (zh) * 2023-03-09 2023-04-07 珠海星云智联科技有限公司 一种流表半卸载方法、设备及介质
CN116506355A (zh) * 2023-06-27 2023-07-28 珠海星云智联科技有限公司 卸载流表存储的处理方法及相关装置

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110391993B (zh) * 2019-07-12 2022-12-30 苏州浪潮智能科技有限公司 一种数据处理方法及系统
CN110430138B (zh) * 2019-07-26 2022-02-22 新华三技术有限公司合肥分公司 数据流转发状态记录方法及网络设备
CN112311692A (zh) * 2019-07-31 2021-02-02 华为技术有限公司 报文处理方法及装置、端设备
CN112564991A (zh) * 2019-09-10 2021-03-26 华为技术有限公司 应用识别方法、装置及存储介质
CN112751781A (zh) * 2019-10-31 2021-05-04 阿里巴巴集团控股有限公司 流量数据的处理方法、装置、设备及计算机存储介质
CN113285892A (zh) * 2020-02-20 2021-08-20 华为技术有限公司 报文处理系统、方法、机器可读存储介质以及程序产品
US20210288908A1 (en) * 2020-03-12 2021-09-16 Schweitzer Engineering Laboratories, Inc. Elimination of address resolution protocol
CN113778320A (zh) * 2020-06-09 2021-12-10 华为技术有限公司 网卡以及网卡处理数据的方法
US11606302B2 (en) * 2020-06-12 2023-03-14 Apple Inc. Methods and apparatus for flow-based batching and processing
CN111988271B (zh) * 2020-06-30 2021-11-16 联想(北京)有限公司 一种通信流处理方法及装置
CN114079675B (zh) * 2020-08-17 2023-06-06 华为技术有限公司 报文处理方法、装置、终端设备及移动宽带上网设备
CN114124731B (zh) * 2020-08-26 2023-03-31 华为技术有限公司 流量监控方法、装置、集成电路及网络设备
EP3962026A1 (de) * 2020-08-31 2022-03-02 Siemens Aktiengesellschaft Verfahren und system zur bereitstellung von zeitkritischen diensten
CN114531405B (zh) * 2020-10-31 2023-06-06 华为技术有限公司 一种流表处理方法及相关设备
US20210144094A1 (en) * 2020-11-09 2021-05-13 Namrata Limaye Extension of openvswitch megaflow offloads to hardware to address hardware pipeline limitations
CN113098858B (zh) * 2021-03-29 2023-07-14 上海辰锐信息科技有限公司 一种建链报文的无锁处理系统及方法
US11882051B2 (en) 2021-07-26 2024-01-23 Apple Inc. Systems and methods for managing transmission control protocol (TCP) acknowledgements
US11876719B2 (en) 2021-07-26 2024-01-16 Apple Inc. Systems and methods for managing transmission control protocol (TCP) acknowledgements
US20230060132A1 (en) * 2021-08-25 2023-03-02 Red Hat, Inc. Coordinating data packet processing between kernel space and user space
CN113824772B (zh) * 2021-08-30 2023-04-18 济南浪潮数据技术有限公司 基于云网络的数据采集方法、系统、装置及可读存储介质
CN113595938B (zh) * 2021-09-29 2021-12-17 苏州浪潮智能科技有限公司 一种虚拟网络性能加速方法、装置、设备及存储介质
CN114143076B (zh) * 2021-11-29 2024-01-19 全球能源互联网研究院有限公司 一种基于虚拟交换框架的电力物联网安全防护系统
CN114257473B (zh) * 2021-12-10 2022-10-21 北京天融信网络安全技术有限公司 资源池中多个透明桥的实现方法、装置、设备和介质
CN114448886A (zh) * 2021-12-28 2022-05-06 天翼云科技有限公司 一种流表的处理方法及装置
CN114448891B (zh) * 2022-01-26 2024-01-02 深圳星云智联科技有限公司 流表同步方法、装置、设备和介质
CN114124785B (zh) * 2022-01-28 2022-04-26 珠海星云智联科技有限公司 一种流表处理的方法、装置及电子设备
US11627061B1 (en) * 2022-02-24 2023-04-11 Microsoft Technology Licensing, Llc Packet capture using VXLAN encapsulation
CN114629842A (zh) * 2022-03-30 2022-06-14 阿里巴巴(中国)有限公司 流表处理方法、电子设备、可读存储介质及产品
CN114726788B (zh) * 2022-05-06 2024-02-02 深圳星云智联科技有限公司 应用于dpu的报文传输方法及相关装置
CN115484322A (zh) * 2022-07-29 2022-12-16 天翼云科技有限公司 数据包解封装卸载方法、装置、电子设备及存储介质
CN116366534B (zh) * 2023-05-31 2023-08-22 珠海星云智联科技有限公司 基于硬件卸载的组播流量复制的方法以及相关装置

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8930690B2 (en) 2012-03-21 2015-01-06 Microsoft Corporation Offloading packet processing for networking device virtualization
CN104348725B (zh) * 2013-08-01 2018-02-23 华为技术有限公司 基于流表的数据处理方法和装置
CN104426768B (zh) * 2013-09-05 2018-06-15 华为技术有限公司 一种数据报文转发方法及装置
CN103873464B (zh) * 2014-02-27 2017-05-10 华为技术有限公司 报文处理的方法及转发设备
CN103825824A (zh) * 2014-03-04 2014-05-28 华为技术有限公司 一种报文处理方法及装置
US9847936B2 (en) 2015-06-25 2017-12-19 Intel Corporation Apparatus and method for hardware-accelerated packet processing
CN106936777B (zh) 2015-12-29 2020-02-14 中移(苏州)软件技术有限公司 基于OpenFlow的云计算分布式网络实现方法、系统
EP3340064B1 (en) 2016-08-03 2020-12-02 Huawei Technologies Co., Ltd. Network interface card, computer device and data packet processing method

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115941598A (zh) * 2023-03-09 2023-04-07 珠海星云智联科技有限公司 一种流表半卸载方法、设备及介质
CN115941598B (zh) * 2023-03-09 2023-05-16 珠海星云智联科技有限公司 一种流表半卸载方法、设备及介质
CN116506355A (zh) * 2023-06-27 2023-07-28 珠海星云智联科技有限公司 卸载流表存储的处理方法及相关装置
CN116506355B (zh) * 2023-06-27 2023-09-05 珠海星云智联科技有限公司 卸载流表存储的处理方法及相关装置

Also Published As

Publication number Publication date
CN109962832B (zh) 2022-06-14
EP3720057A1 (en) 2020-10-07
US11792117B2 (en) 2023-10-17
EP3720057A4 (en) 2020-12-30
US20220131792A1 (en) 2022-04-28
EP4142223A1 (en) 2023-03-01
CN109962832A (zh) 2019-07-02
US11240148B2 (en) 2022-02-01
WO2019128817A1 (zh) 2019-07-04
EP3720057B1 (en) 2022-08-24
US20200328966A1 (en) 2020-10-15

Similar Documents

Publication Publication Date Title
CN109962832B (zh) 报文处理的方法和装置
US10581801B2 (en) Context-aware distributed firewall
US9923815B2 (en) Network based service function chaining on top of rack switches
CN105612719B (zh) 使用封装头部中的元数据的高级网络虚拟化
US7949683B2 (en) Method and apparatus for traversing a compressed deterministic finite automata (DFA) graph
US8180803B2 (en) Deterministic finite automata (DFA) graph compression
US11343187B2 (en) Quantitative exact match distance in network flows
US10873534B1 (en) Data plane with flow learning circuit
US9774532B2 (en) Information processing system, information processing apparatus and control method of information processing system
CN106878194B (zh) 一种报文处理方法和装置
WO2019185051A1 (zh) 一种基于集成流表转发报文的方法及装置
US10938679B2 (en) Packet monitoring
CN114430394B (zh) 报文处理方法、装置、电子设备及可读存储介质
WO2020081457A1 (en) Realization of a programmable forwarding pipeline through packet header summaries in a data processing unit
CN110971540B (zh) 一种数据信息的传输方法、装置、交换机及控制器
CN109672594B (zh) IPoE报文处理方法、装置及宽带远程接入服务器
US20150036688A1 (en) Packet relay device and packet relay method
CN115225545B (zh) 一种报文传输方法及装置
KR102229554B1 (ko) 해시 키 생성 방법 및 그 장치
US20210367830A1 (en) Dynamic event processing for network diagnosis
CN114301960A (zh) 集群非对称流量的处理方法及装置、电子设备及存储介质
CN117914973A (zh) 报文转发方法、装置、网络设备及存储介质
CN117478458A (zh) 一种报文处理方法、装置及网络设备
US20170264545A1 (en) Packet processing apparatus and table selection method
CN112714017A (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