CN115002028B - 一种报文处理方法、装置及介质 - Google Patents
一种报文处理方法、装置及介质 Download PDFInfo
- Publication number
- CN115002028B CN115002028B CN202210469727.9A CN202210469727A CN115002028B CN 115002028 B CN115002028 B CN 115002028B CN 202210469727 A CN202210469727 A CN 202210469727A CN 115002028 B CN115002028 B CN 115002028B
- Authority
- CN
- China
- Prior art keywords
- information
- message
- flow table
- current message
- table 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.)
- Active
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 31
- 238000012545 processing Methods 0.000 claims abstract description 97
- 238000000034 method Methods 0.000 claims description 46
- 238000004590 computer program Methods 0.000 claims description 11
- 239000000284 extract Substances 0.000 claims description 4
- 230000001960 triggered effect Effects 0.000 claims description 2
- 230000000875 corresponding effect Effects 0.000 description 95
- 238000005457 optimization Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 4
- 230000006978 adaptation Effects 0.000 description 3
- 238000000605 extraction Methods 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000007429 general method Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种报文处理方法、装置及介质,适用于信息技术领域。当内核态中不存在当前报文信息对应的流表信息则确定当前报文信息为首包报文,也就是陌生报文。在内核态中创建报文队列将其当前报文信息存入,仅向用户态发送当前报文信息提取的关键字信息,在用户态查询到流表信息并将流表信息下发至内核态进而对当前报文信息执行流表信息对应的动作,完成当前报文信息的处理。避免现有的将整个报文信息以及关键字信息全部发送至用户态导致的报文处理效率变低的问题,提高OVS组件在用户态和内核态的处理效率,提高OVS组件的性能。
Description
技术领域
本发明涉及信息技术领域,特别是涉及一种报文处理方法、装置及介质。
背景技术
在当前云计算大规模应用的背景下,性能问题一直是业界广泛关注的问题,在目前的云计算和虚拟化产品中,开放虚拟交换机(Open Virtual Switch,OVS)作为网络转发的基础组件并应用于不同的虚拟化产品。在云网络环境下,虚拟机或者容器通过OVS进行报文转发。由于报文的转发是在内核态进行,为了产品的快速入门和迭代开发,OVS组件早期设计者将OVS分为用户态和内核态,内核态负责报文转发,用户态负责流表控制,实现OVS的转控分离。分离之后,开发者在用户态进行快速的迭代开发,实现产品升级更新。
在目前的OVS报文处理流程中,对于内核态已有对应流表的报文,报文经流表直接转发,但是对于内核态没有流表的报文,报文信息需要向用户态请求流表。在请求的过程中,除了关键字信息外,还需要将报文的完整信息上送至用户态。在实际的用户态处理中,并没有对原始报文进行修改,而是又完整的下发至内核态。整个回路在未处理的情况下占用了用户态和内核态之间的通信带宽。在特定时间内,若存在大量陌生报文,其会在内核态中无法命中流表进而上送至用户态,处理进程较多,其报文信息较长,导致OVS对报文的处理效率变低,甚至影响OVS组件的性能。
因此,如何提高OVS的处理效率是本领域技术人员亟需要解决的。
发明内容
本发明的目的是提供一种报文处理方法、装置及介质,提高OVS组件在用户态和内核态的处理效率,提高OVS组件的性能。
为解决上述技术问题,本发明提供一种报文处理方法,包括:
获取当前报文信息并根据当前报文信息提取对应的关键字信息;
根据关键字信息判断是否存在对应的流表信息;
若否,则创建报文队列并将当前报文信息存入至报文队列;
将关键字信息发送至OVS的用户态以便用户态根据关键字信息查询流表信息;
接收流表信息并对报文队列的当前报文信息执行流表信息对应的动作以完成当前报文信息的处理。
优选地,关键字信息至少包括MAC地址、VLAN地址以及IP地址的一种地址信息。
优选地,当内核态存在对应的流表信息时,还包括:
当内核态存在对应的流表信息时,则获取流表信息并对当前报文信息执行流表信息对应的动作。
优选地,还包括:
将用户态查询的流表信息存入至内核态的缓存中以便下一个当前报文信息查询。
优选地,还包括:
根据用户态查询的流表信息提取对应的特定端口以便下一个当前报文信息提取对应的关键字信息。
为解决上述技术问题,本发明还提供一种报文处理方法,包括:
接收关键字信息,其中关键字信息由OVS的内核态获取当前报文信息提取,且当内核态不存在关键字信息对应的流表信息时发送得到;
根据关键字信息查询流表信息;
将流表信息发送至内核态以便内核态接收流表信息并对报文队列的当前报文信息执行流表信息对应的动作以完成当前报文信息的处理,其中报文队列为内核态不存在流表信息时创建得到,且存储当前报文信息的队列。
优选地,当根据关键字信息未查询到流表信息时,还包括:
当根据关键字信息未查询到流表信息时,则将当前报文信息的流表信息设置为丢弃信息并发送至内核态以便内核态执行当前报文信息对应的动作。
为解决上述技术问题,本发明还提供一种报文处理方法,包括:
OVS的内核态获取当前报文信息并根据当前报文信息提取对应的关键字信息;根据关键字信息判断是否存在对应的流表信息;若否,则创建报文队列并将当前报文信息存入至报文队列;将关键字信息发送至OVS的用户态;
用户态根据关键字信息查询流表信息,将流表信息发送至内核态;
内核态根据流表信息对报文队列的当前报文信息执行流表信息对应的动作以完成当前报文信息的处理。
为解决上述技术问题,本发明还提供一种报文处理装置,包括:
获取模块,用于获取当前报文信息并根据当前报文信息提取对应的关键字信息;
判断模块,用于根据关键字信息判断是否存在对应的流表信息,若否,则触发创建模块;
创建模块,用于创建报文队列并将当前报文信息存入至报文队列;
发送模块,用于将关键字信息发送至OVS的用户态以便用户态根据关键字信息查询流表信息;
执行模块,用于接收流表信息并对报文队列的当前报文信息执行流表信息对应的动作以完成当前报文信息的处理。
为解决上述技术问题,本发明还提供一种报文处理装置,包括:
接收模块,用于接收关键字信息,其中关键字信息由OVS的内核态获取当前报文信息提取,且当内核态不存在关键字信息对应的流表信息时发送得到;
查询模块,用于根据关键字信息查询流表信息;
发送模块,用于将流表信息发送至内核态以便内核态接收流表信息并对报文队列的当前报文信息执行流表信息对应的动作以完成当前报文信息的处理,其中报文队列为内核态不存在流表信息时创建得到,且存储当前报文信息的队列。
为解决上述技术问题,本发明还提供一种报文处理装置,包括:
存储器,用于存储计算机程序;
处理器,用于执行计算机程序时实现如上述报文处理方法的步骤。
为解决上述技术问题,本发明还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述报文处理方法的步骤。
本发明提供的一种报文处理方法,针对于陌生报文信息的判定,在内核态中不存在当前报文信息对应的流表信息则确定当前报文信息为首包报文,也就是陌生报文。在内核态中创建报文队列将其当前报文信息存入,仅向用户态发送当前报文信息提取的关键字信息,在用户态查询到流表信息并将流表信息下发至内核态进而对当前报文信息执行流表信息对应的动作,完成当前报文信息的处理。避免现有的将整个报文信息以及关键字信息全部发送至用户态导致的报文处理效率变低的问题,减少不必要的报文信息发送数据,减少在用户态和内核态之间的内存拷贝,同时也减少了用户态的发送报文数据,实际在用户态和内核态都进行了优化,提高OVS组件在用户态和内核态的处理效率,提高OVS组件的性能。
本发明还提供了一种报文处理方法,接收关键字信息,其中关键字信息由OVS的内核态获取当前报文信息提取,且当内核态不存在关键字信息对应的流表信息时发送得到;根据关键字信息查询流表信息;将流表信息发送至内核态以便内核态接收流表信息并对报文队列的当前报文信息执行流表信息对应的动作以完成当前报文信息的处理,其中报文队列为内核态不存在流表信息时创建得到,且存储当前报文信息的队列。避免现有的将整个报文信息以及关键字信息全部发送至用户态导致的报文处理效率变低的问题,减少不必要的报文信息发送数据,减少在用户态和内核态之间的内存拷贝,同时也减少了用户态的发送报文数据,实际在用户态和内核态都进行了优化,提高OVS组件在用户态和内核态的处理效率,提高OVS组件的性能。
另外,本发明还提供了一种报文处理方法、报文处理装置以及介质,具有如上述报文处理方法相同的有益效果。
附图说明
为了更清楚地说明本发明实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种应用于OVS的内核态的报文处理方法的流程图;
图2为本发明实施例提供的一种应用于OVS的用户态的报文处理方法的流程图;
图3为本发明实施例提供的一种应用于OVS的内核态的报文处理装置的结构图;
图4为本发明实施例提供的一种应用于OVS的用户态的报文处理装置的结构图;
图5为本发明实施例提供的另一种报文处理装置的结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本发明保护范围。
本发明的核心是提供一种报文处理方法、装置及介质,提高OVS组件在用户态和内核态的处理效率,提高OVS组件的性能。
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。
需要说明的是,本发明提供的报文处理方法可适用于软件定义网络(SoftwareDefined Network,SDN)网络环境,还可以适用于虚拟专用网络(Virtual PrivateNetwork,VPN)等其他网络环境。根据不同的网路环境,云主机安装OVS基础组件以及对应不同网络环境适配的控制器组件,例如基于SDN网络环境,云主机至少安装OVS基础组件,SDN控制器组件以及其他有关的网络适配组件。
图1为本发明实施例提供的一种应用于OVS的内核态的报文处理方法的流程图,如图1所示,该方法包括:
S11:获取当前报文信息并根据当前报文信息提取对应的关键字信息。
可以理解的是,进入OVS交换机网络中的报文信息,获取当前报文信息。可以根据预设时间间隔获取当前报文信息,获取的当前报文信息可以有多个,当面临在特定时间内接收大数据量的报文信息时,可以将该报文信息按照预设时间进行获取并执行后续的报文查询及执行动作,以便缓解进程和网络拥堵现象发生。
在获取当前报文信息之后,进而根据当前报文信息提取对应的关键字信息,具体地,关键字信息为网络地址的固定字段,可以为媒体访问控制(Media Access Control,MAC)地址,也可以为虚拟局域网(Virtual Local Area Network,VLAN)地址或互联网协议(Internet Protocol,IP)地址,还可以为其他地址信息。关键字信息可以为一种地址信息的一个固定字段,也可以多个固定字段,也可以为多种地址信息的多个固定字段,本发明不做具体限定,可根据实际情况进行设定。
S12:根据关键字信息判断是否存在对应的流表信息,若否,则进入步骤S13。
根据关键字信息判断内核态是否存在对应的流表信息,内核空间和用户空间是程序运行的两种状态,用户空间一般运行应用程序,内核态空间一般运行操作系统和驱动程序,两者之间不能简单使用指针传递数据。内核态实现多个“数据路径”(类似于网桥),每个都可以有多个“vport”(类似于桥内的端口),每个数据路径也通过关联流表来设置对应的执行动作,而流表中的流都是用户态在报文头和元数据的基础上映射的关键信息,也就是关键字信息。
判断内核态是否存在对应的流表信息,若是,则说明内核态已经有当前报文信息对应的流表,确定当前报文信息不是陌生报文信息,或者首包报文信息,后续根据流表对应的动作进行执行即可。若否,则说明内核态没有当前报文信息对应的流表,确定当前报文信息为陌生报文信息,也就是首包报文信息,则需要向用户态请求流表,在向用户态请求流表之前,进入步骤S13。
S13:创建报文队列并将当前报文信息存入至报文队列。
在步骤S12中,根据关键字信息当内核态不存在对应的流表信息时,该当前报文信息为陌生报文信息,也就是首包报文信息。现有的通常将整个报文信息和关键字信息发送至用户态,但并没有将当前报文信息进行修改,而是又完整地和对应的流表信息下发至内核态。整个回路占用了用户态和内核态的通信带宽,而本发明中,在内核态中创建报文队列,将当前报文信息存入至报文队列,以便后续在用户态中得到流表信息,进而根据流表信息对报文队列中的当前报文信息执行对应的动作。
S14:将关键字信息发送至OVS的用户态以便用户态根据关键字信息查询流表信息。
在步骤S13中创建报文队列将当前报文信息存入至报文队列,将提取的关键字信息发送至OVS的用户态,用户态根据关键字信息查询对应的流表信息。
将用户态的查询出的所有表项合并成一条表项,进而下发至内核态,插入至内核态的表中。可以理解的是,用户态根据关键字信息查询流表信息,在多数情况下其查询到对应的流表信息,对于未查询到对应的流表信息时,则根据关键字信息匹配对应的流表信息,该流表信息为丢弃信息并发送至内核态。
S15:接收流表信息并对报文队列的当前报文信息执行流表信息对应的动作以完成当前报文信息的处理。
在上述实施例中,接收用户态查询到的流表信息,在创建报文队列中取出当前报文信息,执行流表信息对应的动作,完成当前报文信息的报文处理。具体地,动作信息可以为转发报文动作或者丢弃报文动作等,不做具体限定。
本发明实施例还提供了一种报文处理方法,接收关键字信息,其中关键字信息由OVS的内核态获取当前报文信息提取,且当内核态不存在关键字信息对应的流表信息时发送得到;根据关键字信息查询流表信息;将流表信息发送至内核态以便内核态接收流表信息并对报文队列的当前报文信息执行流表信息对应的动作以完成当前报文信息的处理,其中报文队列为内核态不存在流表信息时创建得到,且存储当前报文信息的队列。避免现有的将整个报文信息以及关键字信息全部发送至用户态导致的报文处理效率变低的问题,减少不必要的报文信息发送数据,减少在用户态和内核态之间的内存拷贝,同时也减少了用户态的发送报文数据,实际在用户态和内核态都进行了优化,提高OVS组件在用户态和内核态的处理效率,提高OVS组件的性能。
在上述实施例的基础上,步骤S11中的关键字信息至少包括MAC地址、VLAN地址以及IP地址的一种地址信息。
具体地,在数据链路层对报文进行转发时,其根据报文的目的MAC地址将报文输出到相应的端口,MAC地址转发表是一张包含了MAC地址与转发端口对应关系的二层转发表,是交换机实现二层报文快速转发的基础。MAC地址转发表的表项包含目的MAC地址、端口的VLAN ID、本设备上的转发出端口编号。
VLAN地址能够对广播包进行有效隔离,通过软件的形式将交换机的端口虚拟出多个子端口,相当于将交换机的端口划分为多个LAN,同一个LAN的节点发出的数据包打上本LAN的tag,其他LAN中的节点就无法收到包,达到隔离的目的。用于查看交换机的端口,其整个OVS的配置信息包括接口、交换内容、VLAN等。
IP地址是将虚拟网卡配置IP,其相当于交换机的管理接口配置IP。可以理解的是,关键字信息至少包括MAC地址、VLAN地址以及IP地址任意一种信息,也可以将其任意两种组合或者三种组合,本发明不做具体限定,只要能提取到当前报文信息提取得到对应的关键字信息即可。
本发明实施例提供的关键字信息至少包括MAC地址、VLAN地址以及IP地址的一种地址信息,扩大当前报文信息的提取关键字的范围。
在上述实施例的基础上,当内核态存在对应的流表信息时,还包括当内核态存在对应的流表信息时,则获取流表信息并对当前报文信息执行流表信息对应的动作。
具体地,在内核态存在对应的流表信息时,不需要发送至用户态查询流表,说明当前报文信息不是首包报文,其当作为首包报文信息时将用户态查询到的流表信息已经存储在内核态的流表中,则需要直接获取流表信息,并根据流表信息执行对应的动作。可以理解的是,当前报文信息可以为多个报文信息,对于内核态存在对应的流表信息,也就是当前报文信息在之前作为首包报文信息时进行报文处理转发,其报文头相同,对于报文内容不同,本发明仅是对报文头进行限定。
报文头相同,则说明报文信息的转发处理相同,报文头不同时,则说明报文信息不同,其对应的流表不同。
本发明实施例提供的当内核态存在对应的流表信息时,则获取流表信息并对当前报文信息执行流表信息对应的动作,完善报文信息的报文处理,使其OVS的报文处理完整。
在上述实施例的基础上,还包括将用户态查询的流表信息存入至内核态的缓存中以便下一个当前报文信息查询。
在内核态不存在对应的流表信息时,则将关键字信息发送至用户态,用户态根据关键字信息查询流表信息,进而将流表信息下发至内核态。根据流表信息对其报文队列的当前报文信息执行对应的动作,例如转发、丢弃等。
此外,需要将用户态查询的流表信息存入内核态的缓存中,以便后续在下一个当前报文信息的流表查询。例如,下一个当前报文信息到来时,则提取对应的关键字信息,根据关键字信息在内核态查看对应的流表信息,此时当前报文信息A作为首包报文将流表存入内核态中,在下一个当前报文信息A进入内核态时,其为非首包报文,此时根据在作为首包报文时的流表存储即可在内核态中完成,不需要发送至用户态。
本发明实施例提供的将用户态查询的流表信息存入至内核态的缓存中以便下一个当前报文信息查询。在内核态中增加流表信息,方便后续的报文信息查询,减少发送至用户态的可能性,同时减少报文发送数据。
在上述实施例的基础上,还包括根据用户态查询的流表信息提取对应的特定端口以便下一个当前报文信息提取对应的关键字信息。
对于OVS交换机,其报文关键字信息的提取为固定的字段信息,不管当前的字段信息对于当前报文信息是否必要,都要提取多个关键字信息,但是对于非首包报文时,其关键字信息仅是重复性提取,但是对于关键字信息对应的端口仅是使用特定的端口,其余端口的关键字信息并没有在当前报文处理中用到。
因此,需要在当前报文信息的报文处理中,将作为首包报文的当前报文信息基础上,根据用户态查询的流表信息提取对应的特定端口以便下一个当前报文信息提取对应的关键字信息。例如:下一个当前报文信息到来时,则提取对应的关键字信息,根据关键字信息在内核态查看对应的流表信息,此时当前报文信息A作为首包报文将流表存入内核态中,在下一个当前报文信息A进入内核态时,其为非首包报文,此时只需要根据特定端口的关键字信息提取即可。
本发明实施例提供的根据用户态查询的流表信息提取对应的特定端口以便下一个当前报文信息提取对应的关键字信息。对于关键字信息支持选择性提取,支持按照特定端口,指定只需提取特定端口的关键字信息,减少非必要信息的提取,提升系统的执行效率。
图2为本发明实施例提供的一种应用于OVS的用户态的报文处理方法的流程图,如图2所示,该方法包括:
S21:接收关键字信息,其中关键字信息由OVS的内核态获取当前报文信息提取,且当内核态不存在关键字信息对应的流表信息时发送得到。
S22:根据关键字信息查询流表信息。
S23:将流表信息发送至内核态以便内核态接收流表信息并对报文队列的当前报文信息执行流表信息对应的动作以完成当前报文信息的处理,其中报文队列为内核态不存在流表信息时创建得到,且存储当前报文信息的队列。
可以理解的是,当用户态接收关键字信息的前提是当内核态不存在关键字信息对应的流表信息时,将其关键字信息发送至用户态得到,其关键字信息由OVS的内核态获取当前报文信息进行提取得到。关键字信息为网络地址的固定字段,可以为MAC地址、VLAN地址或IP地址,还可以为其他地址信息。关键字信息可以为一种地址信息的一个固定字段,也可以多个固定字段,也可以为多种地址信息的多个固定字段,本发明不做具体限定,可根据实际情况进行设定。
根据关键字信息查询对应的流表信息。将查询到的流表信息下发至内核态,内核态根据流表信息对报文队列的当前报文信息执行流表信息对应的动作以完成当前报文信息的处理。其报文队列是根据关键字信息在内核态中未查询到对应的流表信息时建立的队列,将当前报文信息存储至报文队列中,将关键字信息发送至用户态。通过内核态创建报文队列,减少无关信息的传输,实现流表请求方式的优化,增强系统的处理效率。
本发明实施例还提供了一种报文处理方法,接收关键字信息,其中关键字信息由OVS的内核态获取当前报文信息提取,且当内核态不存在关键字信息对应的流表信息时发送得到;根据关键字信息查询流表信息;将流表信息发送至内核态以便内核态接收流表信息并对报文队列的当前报文信息执行流表信息对应的动作以完成当前报文信息的处理,其中报文队列为内核态不存在流表信息时创建得到,且存储当前报文信息的队列。避免现有的将整个报文信息以及关键字信息全部发送至用户态导致的报文处理效率变低的问题,减少不必要的报文信息发送数据,减少在用户态和内核态之间的内存拷贝,同时也减少了用户态的发送报文数据,实际在用户态和内核态都进行了优化,提高OVS组件在用户态和内核态的处理效率,提高OVS组件的性能。
在上述实施例的基础上,还包括当根据关键字信息未查询到流表信息时,则将当前报文信息的流表信息设置为丢弃信息并发送至内核态以便内核态执行当前报文信息对应的动作。
具体地,多数情况下用户态根据关键字信息可以查询到对应的流表信息,在极少数情况下未查询到,则需要将当前报文信息的流表信息设置为丢弃信息,并发送至内核态,以便内核态根据流表信息对当前报文信息执行对应的丢弃动作。
本发明实施例提供的当根据关键字信息未查询到流表信息时,则将当前报文信息的流表信息设置为丢弃信息并发送至内核态以便内核态执行当前报文信息对应的动作,完善当前报文信息的处理流程,使得整个报文信息处理过程完整优化。
作为一种实施例,本发明基于内核态和用户态,提出一种报文处理方法,该方法包括:
OVS的内核态获取当前报文信息并根据当前报文信息提取对应的关键字信息;根据关键字信息判断是否存在对应的流表信息;若否,则创建报文队列并将当前报文信息存入至报文队列;将关键字信息发送至OVS的用户态;
用户态根据关键字信息查询流表信息,将流表信息发送至内核态;
内核态根据流表信息对报文队列的当前报文信息执行流表信息对应的动作以完成当前报文信息的处理。
对于本发明提供的一种报文处理方法介绍请参照上述方法实施例,本发明在此不再赘述,其具有上述报文处理方法相同的有益效果。
上述详细描述了应用于OVS的内核态的报文处理方法对应的各个实施例,在此基础上,本发明还公开与上述方法对应的应用于OVS的内核态的报文处理装置,图3为本发明实施例提供的一种应用于OVS的内核态的报文处理装置的结构图。如图3所示,该装置包括:
获取模块11,用于获取当前报文信息并根据当前报文信息提取对应的关键字信息;
判断模块12,用于根据关键字信息判断是否存在对应的流表信息,若否,则触发创建模块13;
创建模块13,用于创建报文队列并将当前报文信息存入至报文队列;
发送模块14,用于将关键字信息发送至OVS的用户态以便用户态根据关键字信息查询流表信息;
执行模块15,用于接收流表信息并对报文队列的当前报文信息执行流表信息对应的动作以完成当前报文信息的处理。
由于装置部分的实施例与上述的实施例相互对应,因此装置部分的实施例请参照上述方法部分的实施例描述,在此不再赘述。
本发明实施例还提供了一种报文处理装置,接收关键字信息,其中关键字信息由OVS的内核态获取当前报文信息提取,且当内核态不存在关键字信息对应的流表信息时发送得到;根据关键字信息查询流表信息;将流表信息发送至内核态以便内核态接收流表信息并对报文队列的当前报文信息执行流表信息对应的动作以完成当前报文信息的处理,其中报文队列为内核态不存在流表信息时创建得到,且存储当前报文信息的队列。避免现有的将整个报文信息以及关键字信息全部发送至用户态导致的报文处理效率变低的问题,减少不必要的报文信息发送数据,减少在用户态和内核态之间的内存拷贝,同时也减少了用户态的发送报文数据,实际在用户态和内核态都进行了优化,提高OVS组件在用户态和内核态的处理效率,提高OVS组件的性能。
上述详细描述了应用于OVS的用户态的报文处理方法对应的各个实施例,在此基础上,本发明还公开与上述方法对应的应用于OVS的用户态的报文处理装置,图4为本发明实施例提供的一种应用于OVS的用户态的报文处理装置的结构图。如图4所示,该装置包括:
接收模块21,用于接收关键字信息,其中关键字信息由OVS的内核态获取当前报文信息提取,且当内核态不存在关键字信息对应的流表信息时发送得到;
查询模块22,用于根据关键字信息查询流表信息;
发送模块23,用于将流表信息发送至内核态以便内核态接收流表信息并对报文队列的当前报文信息执行流表信息对应的动作以完成当前报文信息的处理,其中报文队列为内核态不存在流表信息时创建得到,且存储当前报文信息的队列。
由于装置部分的实施例与上述的实施例相互对应,因此装置部分的实施例请参照上述方法部分的实施例描述,在此不再赘述。
本发明实施例还提供了一种报文处理装置,接收关键字信息,其中关键字信息由OVS的内核态获取当前报文信息提取,且当内核态不存在关键字信息对应的流表信息时发送得到;根据关键字信息查询流表信息;将流表信息发送至内核态以便内核态接收流表信息并对报文队列的当前报文信息执行流表信息对应的动作以完成当前报文信息的处理,其中报文队列为内核态不存在流表信息时创建得到,且存储当前报文信息的队列。避免现有的将整个报文信息以及关键字信息全部发送至用户态导致的报文处理效率变低的问题,减少不必要的报文信息发送数据,减少在用户态和内核态之间的内存拷贝,同时也减少了用户态的发送报文数据,实际在用户态和内核态都进行了优化,提高OVS组件在用户态和内核态的处理效率,提高OVS组件的性能。
图5为本发明实施例提供的另一种报文处理装置的结构图,如图5所示,该装置包括:
存储器31,用于存储计算机程序;
处理器32,用于执行计算机程序时实现报文处理方法的步骤。
本实施例提供的报文处理装置可以包括但不限于智能手机、平板电脑、笔记本电脑或者台式电脑等。
其中,处理器32可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器32可以采用数字信号处理器(Digital Signal Processor,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable LogicArray,PLA)中的至少一种硬件形式来实现。处理器32也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称中央处理器(CentralProcessing Unit,CPU);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器32可以集成有图像处理器(Graphics Processing Unit,GPU),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器32还可以包括人工智能(Artificial Intelligence,AI)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器31可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器31还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。本实施例中,存储器31至少用于存储以下计算机程序311,其中,该计算机程序被处理器32加载并执行之后,能够实现前述任一实施例公开的报文处理方法的相关步骤。另外,存储器31所存储的资源还可以包括操作系统312和数据313等,存储方式可以是短暂存储或者永久存储。其中,操作系统312可以包括Windows、Unix、Linux等。数据313可以包括但不限于报文处理方法所涉及到的数据等等。
在一些实施例中,报文处理装置还可包括有显示屏33、输入输出接口34、通信接口35、电源36以及通信总线37。
领域技术人员可以理解,图5中示出的结构并不构成对报文处理装置的限定,可以包括比图示更多或更少的组件。
处理器32通过调用存储于存储器31中的指令以实现上述任一实施例所提供的报文处理方法。
本发明实施例还提供了一种报文处理装置,接收关键字信息,其中关键字信息由OVS的内核态获取当前报文信息提取,且当内核态不存在关键字信息对应的流表信息时发送得到;根据关键字信息查询流表信息;将流表信息发送至内核态以便内核态接收流表信息并对报文队列的当前报文信息执行流表信息对应的动作以完成当前报文信息的处理,其中报文队列为内核态不存在流表信息时创建得到,且存储当前报文信息的队列。避免现有的将整个报文信息以及关键字信息全部发送至用户态导致的报文处理效率变低的问题,减少不必要的报文信息发送数据,减少在用户态和内核态之间的内存拷贝,同时也减少了用户态的发送报文数据,实际在用户态和内核态都进行了优化,提高OVS组件在用户态和内核态的处理效率,提高OVS组件的性能。
进一步的,本发明还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器22执行时实现如上述报文处理方法的步骤。
可以理解的是,如果上述实施例中的方法以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
对于本发明提供的一种计算机可读存储介质的介绍请参照上述方法实施例,本发明在此不再赘述,其具有上述报文处理方法相同的有益效果。
以上对本发明所提供的一种报文处理方法、装置及介质进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
Claims (12)
1.一种报文处理方法,其特征在于,应用于开放虚拟交换机OVS的内核态,包括:
获取当前报文信息并根据所述当前报文信息提取对应的关键字信息;
根据所述关键字信息判断是否存在对应的流表信息;
若否,则创建报文队列并将所述当前报文信息存入至所述报文队列;
将所述关键字信息发送至所述OVS的用户态以便所述用户态根据所述关键字信息查询所述流表信息;
接收所述流表信息并对所述报文队列的所述当前报文信息执行所述流表信息对应的动作以完成所述当前报文信息的处理。
2.根据权利要求1所述的报文处理方法,其特征在于,所述关键字信息至少包括MAC地址、VLAN地址以及IP地址的一种地址信息。
3.根据权利要求1所述的报文处理方法,其特征在于,当所述内核态存在对应的所述流表信息时,还包括:
当所述内核态存在对应的所述流表信息时,则获取所述流表信息并对所述当前报文信息执行所述流表信息对应的动作。
4.根据权利要求1至3任意一项所述的报文处理方法,其特征在于,还包括:
将所述用户态查询的所述流表信息存入至所述内核态的缓存中以便下一个所述当前报文信息查询。
5.根据权利要求4所述的报文处理方法,其特征在于,还包括:
根据所述用户态查询的所述流表信息提取对应的特定端口以便下一个所述当前报文信息提取对应的所述关键字信息。
6.一种报文处理方法,其特征在于,应用于开放虚拟交换机OVS的用户态,包括:
接收关键字信息,其中所述关键字信息由所述OVS的内核态获取当前报文信息提取,且当所述内核态不存在所述关键字信息对应的流表信息时发送得到;
根据所述关键字信息查询所述流表信息;
将所述流表信息发送至所述内核态以便所述内核态接收所述流表信息并对报文队列的所述当前报文信息执行所述流表信息对应的动作以完成所述当前报文信息的处理,其中所述报文队列为所述内核态不存在所述流表信息时创建得到,且存储所述当前报文信息的队列。
7.根据权利要求6所述的报文处理方法,其特征在于,当根据所述关键字信息未查询到所述流表信息时,还包括:
当根据所述关键字信息未查询到所述流表信息时,则将所述当前报文信息的流表信息设置为丢弃信息并发送至所述内核态以便所述内核态执行所述当前报文信息对应的动作。
8.一种报文处理方法,其特征在于,包括:
开放虚拟交换机OVS的内核态获取当前报文信息并根据所述当前报文信息提取对应的关键字信息;根据所述关键字信息判断是否存在对应的流表信息;若否,则创建报文队列并将所述当前报文信息存入至所述报文队列;将所述关键字信息发送至所述OVS的用户态;
所述用户态根据所述关键字信息查询所述流表信息,将所述流表信息发送至所述内核态;
所述内核态根据所述流表信息对所述报文队列的所述当前报文信息执行所述流表信息对应的动作以完成所述当前报文信息的处理。
9.一种报文处理装置,其特征在于,应用于开放虚拟交换机OVS的内核态,包括:
获取模块,用于获取当前报文信息并根据所述当前报文信息提取对应的关键字信息;
判断模块,用于根据所述关键字信息判断是否存在对应的流表信息,若否,则触发创建模块;
所述创建模块,用于创建报文队列并将所述当前报文信息存入至所述报文队列;
发送模块,用于将所述关键字信息发送至所述OVS的用户态以便所述用户态根据所述关键字信息查询所述流表信息;
执行模块,用于接收所述流表信息并对所述报文队列的所述当前报文信息执行所述流表信息对应的动作以完成所述当前报文信息的处理。
10.一种报文处理装置,其特征在于,应用于开放虚拟交换机OVS的用户态,包括:
接收模块,用于接收关键字信息,其中所述关键字信息由OVS的内核态获取当前报文信息提取,且当所述内核态不存在所述关键字信息对应的流表信息时发送得到;
查询模块,用于根据所述关键字信息查询所述流表信息;
发送模块,用于将所述流表信息发送至所述内核态以便所述内核态接收所述流表信息并对报文队列的所述当前报文信息执行所述流表信息对应的动作以完成所述当前报文信息的处理,其中所述报文队列为所述内核态不存在所述流表信息时创建得到,且存储所述当前报文信息的队列。
11.一种报文处理装置,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至8任一项所述的报文处理方法的步骤。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至8任一项所述的报文处理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210469727.9A CN115002028B (zh) | 2022-04-30 | 2022-04-30 | 一种报文处理方法、装置及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210469727.9A CN115002028B (zh) | 2022-04-30 | 2022-04-30 | 一种报文处理方法、装置及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115002028A CN115002028A (zh) | 2022-09-02 |
CN115002028B true CN115002028B (zh) | 2024-02-13 |
Family
ID=83024706
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210469727.9A Active CN115002028B (zh) | 2022-04-30 | 2022-04-30 | 一种报文处理方法、装置及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115002028B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115941598B (zh) * | 2023-03-09 | 2023-05-16 | 珠海星云智联科技有限公司 | 一种流表半卸载方法、设备及介质 |
Citations (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103312601A (zh) * | 2013-05-31 | 2013-09-18 | 汉柏科技有限公司 | 用户态到内核态的数据报文处理方法 |
CN103428226A (zh) * | 2013-08-30 | 2013-12-04 | 天津汉柏汉安信息技术有限公司 | 一种用户态与内核通信的方法与系统 |
CN104796337A (zh) * | 2015-04-10 | 2015-07-22 | 京信通信系统(广州)有限公司 | 一种转发报文的方法及装置 |
EP3048764A1 (en) * | 2014-11-30 | 2016-07-27 | Shenyang Institute of Automation of the Chinese Academy of Sciences | Method and system for implementing 802.1p-supporting openvswitch switch |
WO2017067391A1 (zh) * | 2015-10-22 | 2017-04-27 | 中兴通讯股份有限公司 | 虚拟机的数据共享方法及装置 |
CN108512763A (zh) * | 2018-04-16 | 2018-09-07 | 广州市品高软件股份有限公司 | 一种流表规则生成过程的跟踪方法 |
CN109688058A (zh) * | 2018-12-19 | 2019-04-26 | 迈普通信技术股份有限公司 | 报文处理方法、装置及网络设备 |
CN111817961A (zh) * | 2020-08-06 | 2020-10-23 | 平安科技(深圳)有限公司 | Overlay网络中基于Open vSwitch内核态流表的分布式路由方法及装置 |
CN111813579A (zh) * | 2020-07-17 | 2020-10-23 | 济南浪潮数据技术有限公司 | 一种通信方法、装置及可读存储介质,一种文件系统 |
CN112003799A (zh) * | 2020-08-14 | 2020-11-27 | 苏州浪潮智能科技有限公司 | 一种基于x86架构云平台的vxlan报文的内核解封装方法 |
CN112671648A (zh) * | 2020-12-22 | 2021-04-16 | 北京浪潮数据技术有限公司 | 一种sdn网络数据传输方法、sdn网络、设备及介质 |
CN112769716A (zh) * | 2021-01-12 | 2021-05-07 | 烽火通信科技股份有限公司 | 基于混合型虚拟网桥的虚拟交换机的数据转发方法及装置 |
CN112887210A (zh) * | 2021-01-06 | 2021-06-01 | 新华三大数据技术有限公司 | 一种流表管理方法及装置 |
CN112883007A (zh) * | 2021-02-20 | 2021-06-01 | 杭州迪普科技股份有限公司 | 用于Linux系统的本机协议报文的处理方法及装置 |
CN113472624A (zh) * | 2021-06-21 | 2021-10-01 | 烽火通信科技股份有限公司 | 一种基于vDPA实现虚拟网络数据包转发的方法及应用 |
CN113746893A (zh) * | 2021-07-16 | 2021-12-03 | 苏州浪潮智能科技有限公司 | 一种基于fpga的智能网卡数据转发方法、系统及终端 |
CN114244850A (zh) * | 2021-11-18 | 2022-03-25 | 深圳市领创星通科技有限公司 | 数据包处理方法、装置、计算机设备和存储介质 |
-
2022
- 2022-04-30 CN CN202210469727.9A patent/CN115002028B/zh active Active
Patent Citations (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103312601A (zh) * | 2013-05-31 | 2013-09-18 | 汉柏科技有限公司 | 用户态到内核态的数据报文处理方法 |
CN103428226A (zh) * | 2013-08-30 | 2013-12-04 | 天津汉柏汉安信息技术有限公司 | 一种用户态与内核通信的方法与系统 |
EP3048764A1 (en) * | 2014-11-30 | 2016-07-27 | Shenyang Institute of Automation of the Chinese Academy of Sciences | Method and system for implementing 802.1p-supporting openvswitch switch |
CN104796337A (zh) * | 2015-04-10 | 2015-07-22 | 京信通信系统(广州)有限公司 | 一种转发报文的方法及装置 |
WO2017067391A1 (zh) * | 2015-10-22 | 2017-04-27 | 中兴通讯股份有限公司 | 虚拟机的数据共享方法及装置 |
CN108512763A (zh) * | 2018-04-16 | 2018-09-07 | 广州市品高软件股份有限公司 | 一种流表规则生成过程的跟踪方法 |
CN109688058A (zh) * | 2018-12-19 | 2019-04-26 | 迈普通信技术股份有限公司 | 报文处理方法、装置及网络设备 |
CN111813579A (zh) * | 2020-07-17 | 2020-10-23 | 济南浪潮数据技术有限公司 | 一种通信方法、装置及可读存储介质,一种文件系统 |
CN111817961A (zh) * | 2020-08-06 | 2020-10-23 | 平安科技(深圳)有限公司 | Overlay网络中基于Open vSwitch内核态流表的分布式路由方法及装置 |
CN112003799A (zh) * | 2020-08-14 | 2020-11-27 | 苏州浪潮智能科技有限公司 | 一种基于x86架构云平台的vxlan报文的内核解封装方法 |
CN112671648A (zh) * | 2020-12-22 | 2021-04-16 | 北京浪潮数据技术有限公司 | 一种sdn网络数据传输方法、sdn网络、设备及介质 |
CN112887210A (zh) * | 2021-01-06 | 2021-06-01 | 新华三大数据技术有限公司 | 一种流表管理方法及装置 |
CN112769716A (zh) * | 2021-01-12 | 2021-05-07 | 烽火通信科技股份有限公司 | 基于混合型虚拟网桥的虚拟交换机的数据转发方法及装置 |
CN112883007A (zh) * | 2021-02-20 | 2021-06-01 | 杭州迪普科技股份有限公司 | 用于Linux系统的本机协议报文的处理方法及装置 |
CN113472624A (zh) * | 2021-06-21 | 2021-10-01 | 烽火通信科技股份有限公司 | 一种基于vDPA实现虚拟网络数据包转发的方法及应用 |
CN113746893A (zh) * | 2021-07-16 | 2021-12-03 | 苏州浪潮智能科技有限公司 | 一种基于fpga的智能网卡数据转发方法、系统及终端 |
CN114244850A (zh) * | 2021-11-18 | 2022-03-25 | 深圳市领创星通科技有限公司 | 数据包处理方法、装置、计算机设备和存储介质 |
Non-Patent Citations (2)
Title |
---|
Techniques of user-mode detecting System Service Descriptor Table;Jiayuan Zhang;《2009 13th International Conference on Computer Supported Cooperative Work in Design》;全文 * |
基于内核的POF交换机设计与实现;陆世亮;朱明;陆伟;袁政;;电子技术(第07期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN115002028A (zh) | 2022-09-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11922202B2 (en) | Data transmission method and apparatus | |
US10038637B2 (en) | Batch processing of packets | |
US10911358B1 (en) | Packet processing cache | |
EP3057272B1 (en) | Technologies for concurrency of cuckoo hashing flow lookup | |
US8650559B2 (en) | Automatic remote installation of a virtualization host | |
US9654424B2 (en) | Managed forwarding element with conjunctive match flow entries | |
US10838873B2 (en) | Method, apparatus, and computer program product for managing addresses in distributed system | |
US11483239B2 (en) | Port configuration method and device, storage medium, and electronic device | |
EP3771169A1 (en) | Message processing method and related device | |
US10621124B2 (en) | Method, device and computer program product for enabling SR-IOV functions in endpoint device | |
CN115002028B (zh) | 一种报文处理方法、装置及介质 | |
WO2016202222A1 (zh) | 一种随机存取存储器的访问方法、装置及控制芯片、存储介质 | |
CN113472624A (zh) | 一种基于vDPA实现虚拟网络数据包转发的方法及应用 | |
US10645162B2 (en) | Filesystem I/O scheduler | |
US9817594B2 (en) | System and method for broadcasting data to multiple hardware forwarding engines | |
JP6448012B2 (ja) | 仮想マシン名を表示するための方法、装置、およびシステム | |
US11048555B2 (en) | Method, apparatus, and computer program product for optimizing execution of commands in a distributed system | |
CN114518833B (zh) | 用于存储管理的方法、电子设备和计算机程序产品 | |
CN111865794A (zh) | 一种逻辑端口的关联方法、系统、设备及数据传输系统 | |
CN115022167B (zh) | 一种用于家庭网关业务流控的方法及系统 | |
CN117714398B (zh) | 一种数据传输系统、方法、电子设备及存储介质 | |
US20230409514A1 (en) | Transaction based remote direct memory access | |
US11314711B2 (en) | Network switch with network analysis data producer-consumer shared memory | |
US11755522B1 (en) | Method, electronic device, and computer program product for implementing blockchain system on switch | |
CN112988391B (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 |