WO2021226948A1 - 基于开放虚拟软交换机ovs的数据包处理方法及设备 - Google Patents
基于开放虚拟软交换机ovs的数据包处理方法及设备 Download PDFInfo
- Publication number
- WO2021226948A1 WO2021226948A1 PCT/CN2020/090312 CN2020090312W WO2021226948A1 WO 2021226948 A1 WO2021226948 A1 WO 2021226948A1 CN 2020090312 W CN2020090312 W CN 2020090312W WO 2021226948 A1 WO2021226948 A1 WO 2021226948A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- flow table
- ovs
- data packet
- matches
- user mode
- Prior art date
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 22
- 238000000034 method Methods 0.000 claims abstract description 82
- 238000004891 communication Methods 0.000 claims description 8
- 238000004590 computer program Methods 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 9
- 230000005540 biological transmission Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 239000000306 component Substances 0.000 description 3
- 230000003044 adaptive effect Effects 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 239000008358 core component Substances 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Images
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/02—Topology update or discovery
- H04L45/06—Deflection routing, e.g. hot-potato routing
Definitions
- the present disclosure relates to the technical field of computer networks, and in particular, to a data packet processing method and device based on an open virtual soft switch OVS.
- OpenvSwitch is abbreviated as OVS (Open Virtual Switch, Open Virtual Soft Switch). It is a virtual soft switch that runs on a virtualized platform, that is, a switch realized by software. It has the main function of a switch, convection After the data packets on it are processed (for example: modify the information in the data packet), forwarding, receiving control operations, etc., it supports the OpenFlow (open flow) protocol, which is widely used in the field of cloud computing, providing virtual machines with external Conditions for data exchange.
- OVS Open Virtual Switch, Open Virtual Soft Switch
- the present disclosure provides a data packet processing method and equipment based on an open virtual soft switch OVS.
- a data packet processing method based on an open virtual soft switch OVS includes: when the first flow table in the controller connected to the OVS changes, obtaining all data packets through the user state process of the OVS The first flow table; send the first flow table to the kernel module of the OVS through the user mode process; update the second flow table stored in the kernel module according to the first flow table; and pass all The kernel module processes the received data packet based on the updated second flow table.
- updating the second flow table stored in the kernel module includes: in the second flow table, searching whether there is a match with the first flow table Flow table; when there is a flow table that matches the first flow table, determine the type of operation on the first flow table; when the operation type is an increase operation, update and compare the contents of the first flow table according to the content in the first flow table.
- searching whether there is a flow table matching the first flow table includes: searching whether there is a match with the first flow table based on the matching items of each flow table in the second flow table The flow table that matches the item.
- the matching item includes: a MAC address, an IP address, or a port number.
- the first flow table includes: all current flow tables in the controller; or, the first flow table includes: a changed flow table in the controller.
- obtaining the first flow table through the user mode process of the OVS includes: receiving the first flow table actively pushed by the controller through the user process.
- the user mode process and the kernel module communicate based on the netlink protocol.
- a data packet processing device based on an open virtual soft switch OVS, including: a user mode process module, which is used to pass through the flow table when the flow table in the controller connected to the OVS changes
- the user mode process of the OVS obtains the first flow table, and sends the first flow table to the kernel module of the OVS through the user mode process; and the kernel module is used to update the stored data according to the first flow table
- the second flow table is used to process the received data packet based on the updated second flow table.
- an electronic device including: a processor; and a memory for storing executable instructions of the processor; wherein the processor is configured to execute the executable instructions
- the above-mentioned data packet processing method based on the open virtual soft switch OVS is executed.
- a computer-readable storage medium on which a computer program is stored, and when the computer program is executed by a processor, the above-mentioned data packet processing method based on the open virtual soft switch OVS is realized.
- the data packet processing method based on the open virtual soft switch OVS provided by the embodiments of the present disclosure will update the flow table stored in the controller even if the flow table in the controller is sent to the kernel module for storage through the user mode process, Make the kernel module save the flow table needed for data packet operation. Therefore, after receiving the data packet, the kernel module has to send the data packet to the user mode process ovs-switchd because it cannot find a flow table that matches the data packet, and shortens the processing path of the data packet , Thereby improving the processing efficiency and processing speed of the data packet.
- Fig. 1 is a schematic diagram showing the structure of an OVS according to an example.
- Fig. 2 shows a flowchart of a data packet processing method based on an open virtual soft switch OVS in an embodiment of the present disclosure.
- Figure 3 shows a schematic structural diagram of an OVS in an embodiment of the present disclosure.
- Fig. 4 shows a flowchart of another data packet processing method based on an open virtual soft switch OVS in an embodiment of the present disclosure.
- Fig. 5 shows a schematic diagram of a data packet processing device based on an open virtual soft switch OVS in an embodiment of the present disclosure.
- FIG. 6 shows a schematic structural diagram of an electronic device in an embodiment of the present disclosure.
- Fig. 7 shows a schematic diagram of a computer-readable storage medium in an embodiment of the present disclosure.
- plural means at least two, such as two, three, etc., unless otherwise specifically defined.
- “And/or” describes the association relationship of the associated objects, indicating that there can be three relationships, for example, A and/or B, which can indicate the existence of A alone, B alone, and both A and B.
- the symbol “/” generally indicates that the associated objects before and after are in an “or” relationship.
- the terms “first” and “second” are only used for descriptive purposes, and cannot be understood as indicating or implying relative importance or implicitly indicating the number of technical features indicated. Thus, the features defined with “first” and “second” may explicitly or implicitly include one or more of these features.
- Fig. 1 is a schematic diagram showing the structure of an OVS according to an example.
- OVS includes: User Space 1 and Kernel Space 2.
- the database server (ovsdb-server) 11 of the OVS and the exchange process (ovs-vswitchd) 12 of the OVS are located in the user space 1
- the kernel component (Kernel Datapath) 21 of the OVS is located in the kernel space 2.
- the ovsdb-server 11 is used to store the configuration information of the OVS, and it communicates with the controller (Controller) 3 based on the OVSDB (OpenvSwitch Database, open virtual soft switch database) protocol.
- OVSDB OpenvSwitch Database, open virtual soft switch database
- ovs-vswitchd 12 is the core component of OVS. It communicates with the controller 3 using the OpenFlow protocol, communicates with the ovsdb-server 11 using the OVSDB protocol, and communicates with the Kernel Datapath 21 using the netlink (network link) protocol.
- the netlink protocol is an inter-process communication method supported by the operating system, and is often used for communication between the kernel and user mode processes.
- User mode is a concept in the Linux operating system, which refers to the user running mode (user mode) when a process is executing the user's own code.
- the privilege level is the lowest, for example, level 3. This level is the privilege level of ordinary user processes running, and most of the programs that users face directly are running in user mode.
- Kernel Datapath 21 runs in the kernel mode and is the core module of OVS, which is used to complete data packet processing, such as switching/forwarding, and discarding operations.
- the kernel mode is a concept in the Linux operating system, which refers to the kernel running state (kernel mode) when a process gets executed in the kernel code because of a system call.
- the privilege level is the highest, for example, level 0.
- the executed kernel code will use the kernel stack of the current process, and each process has its own kernel stack.
- the controller 3 is used to manage the OVS, for example, it stores all flow table information that the OVS needs to use.
- the data processing method of OVS is that when Kernel Datapath 21 receives a data packet, it first performs Flow Table matching on the data packet; if the data packet does not match the corresponding flow table rule, it will be sent Give ovs-vswitchd 12 for processing. ovs-vswitchd 12 queries the flow table that matches the data packet, and returns the queried flow table and the data packet to Kernel Datapath 21 to continue processing. After Kernel Datapath 21 receives the flow table that matches the data packet sent by ovs-vswitchd 12, it processes the data packet according to the flow table. Kernel Datapath 21 will store the flow table accordingly for subsequent processing of data packets from the same network.
- the present disclosure proposes a data packet processing method, which injects all required flow tables into Kernel Datapath 21, so that when processing the received data packets, there is no need to forward the data packets that cannot match the flow table to ovs- vswitchd 12, so that all received data packets can be processed in the kernel space 2, which shortens the processing path of the data packet and improves the processing speed of the data packet.
- Fig. 2 shows a flowchart of a data packet processing method based on an open virtual soft switch OVS in an embodiment of the present disclosure.
- the method provided by the embodiment of the present disclosure may be executed by the OVS as described in FIG. 1.
- the data packet processing method 10 based on the open virtual soft switch OVS includes:
- step S102 when the first flow table in the controller connected to the OVS changes, the first flow table is acquired through the user mode process of the OVS.
- the OVS obtains the first flow table in the controller 3 through the user mode process ovs-opctl, for example.
- the user mode process ovs-opctl and the controller 3 can communicate with each other based on the OpenFlow protocol.
- the controller 3 stores all the flow tables that the OVS needs to use.
- the first flow table stored in the controller 3 changes, the first flow table is obtained through the user mode process ovs-opctl.
- the controller 3 may, for example, actively push the first flow table to the user mode process ovs-opctl when the first flow table changes.
- the user-mode process ovs-opctl may also communicate with the controller 3 periodically, and obtain the first flow table from the controller 3 when it is known that the first flow table in the controller 3 has changed.
- the embodiment of the present disclosure does not limit the communication mode between the controller 3 and the user-mode process ovs-opctl. For example, it can be the communication initiated by the controller 3 actively, and it can also be the communication initiated by the user-mode process ovs-opctl. .
- the above-mentioned first flow table acquired by the user-mode process ovs-opctl may include, for example, all flow tables currently stored in the controller 3, or may also include only changed flow tables, and the present disclosure is not limited to this.
- step S104 the first flow table is sent to the kernel module of OVS through the user mode process.
- the kernel module is, for example, Kernel Datapath 21 in Figure 1.
- the user mode process ovs-opctl and the kernel module can communicate based on the netlink protocol.
- step S106 according to the first flow table, the second flow table stored in the kernel module is updated.
- the kernel module usually stores some flow tables for processing the received data packets. For example, the data packet forwarding operation is performed according to the information in the flow table; or the data packet discarding operation is performed according to the information in the flow table.
- step S108 the kernel module processes the received data packet based on the updated second flow table.
- FIG. 3 shows a schematic structural diagram of an OVS in an embodiment of the present disclosure.
- the OVS provided by the embodiment of the present disclosure, after the above-mentioned method is processed, all data packets received by the Kernel Datapath 21 only need to be processed based on the Kernel Datapath 21, without the need for processing as shown in Fig. 1. Send to user space 1.
- the data packet processing method based on the open virtual soft switch OVS provided by the embodiments of the present disclosure will update the flow table stored in the controller even if the flow table in the controller is sent to the kernel module for storage through the user mode process, Make the kernel module save the flow table needed for data packet operation. Therefore, after receiving the data packet, the kernel module has to send the data packet to the user mode process ovs-switchd because it cannot find a flow table that matches the data packet, and shortens the processing path of the data packet , Thereby improving the processing efficiency and processing speed of the data packet.
- Fig. 4 shows a flowchart of another data packet processing method based on an open virtual soft switch OVS in an embodiment of the present disclosure. Unlike the data packet processing method 10 based on the open virtual soft switch OVS shown in FIG. 2, the data packet processing method based on the open virtual soft switch OVS shown in FIG. 4 further provides an implementation of step S106 in FIG. 2 Way.
- step S106 may further include:
- step S1062 in the second flow table, look up whether there is a flow table matching the first flow table.
- the flow table in OVS can usually include: matching items and action (Action) content.
- the matching item is used to match the characteristics of the data packet.
- a traditional switch can forward according to a MAC (Media Access Control, media access control) address
- a router can perform routing according to an IP address, so both the MAC address and the IP address belong to the characteristics of the data packet.
- MAC Media Access Control, media access control
- the action is the action that needs to be taken on the data packet after the data packet is matched through the matching item, and usually includes the two most common actions of forwarding and discarding.
- the above matching items can also include port number, Ethernet type, VLAN (Virtual Local Area Network, virtual local area network) identification (ID), VLAN priority number, network type, TCP (Transmission) Control Protocol)/UDP (User Datagram Protocol)/SCTP (Stream Control Transmission Protocol) port number, etc.
- ID Virtual Local Area Network
- VLAN priority number VLAN priority number
- network type TCP (Transmission) Control Protocol)/UDP (User Datagram Protocol)/SCTP (Stream Control Transmission Protocol) port number, etc.
- TCP Transmission) Control Protocol
- UDP User Datagram Protocol
- SCTP Stream Control Transmission Protocol
- step S1064 when there is a flow table matching the first flow table, determine the type of operation on the first flow table; when the operation type is an add operation, update the flow table matching the first flow table according to the content in the first flow table When the operation type is a delete operation, delete the flow table that matches the first flow table.
- step S1066 when there is no flow table matching the first flow table, determine the type of operation on the first flow table; when the operation type is an increase operation, in the second flow table, a new flow is created based on the first flow table. Table and store the newly created flow table.
- updating the second flow table stored in the kernel module can keep the flow table stored in the kernel module consistent with the flow table stored in the controller, thereby avoiding the lack of data packets when processing data packets. The situation where the data packet matches the flow table appears.
- Fig. 5 shows a schematic diagram of a data packet processing device based on an open virtual soft switch OVS in an embodiment of the present disclosure.
- the data packet processing device 20 based on the open virtual soft switch OVS includes: a user mode process module 202 and a kernel module 204.
- the user mode process module 202 is used to obtain the first flow table through the user mode process of the OVS when the flow table in the controller connected to the OVS changes, and through the user mode process, transfer the first flow table to the user mode process.
- the first-rate table is sent to the kernel module of the OVS;
- the kernel module 204 is configured to update the stored second flow table according to the first flow table, and process the received data packet based on the updated second flow table.
- the data packet processing device based on the open virtual soft switch OVS provided by the embodiment of the present disclosure will update the flow table stored in the controller, even if the flow table in the controller is sent to the kernel module for storage through the user mode process, Make the kernel module save the flow table needed for data packet operation. Therefore, after receiving the data packet, the kernel module has to send the data packet to the user mode process ovs-switchd because it cannot find a flow table that matches the data packet, and shortens the processing path of the data packet , Thereby improving the processing efficiency and processing speed of the data packet.
- the kernel module 204 is configured to find in the second flow table whether there is a flow table that matches the first flow table; when there is a flow table that matches the first flow table, determine whether there is a flow table that matches the first flow table.
- the operation type of the first flow table when the operation type is an add operation, update the content of the flow table matching the first flow table according to the content in the first flow table; when the operation type is a delete operation When, delete the flow table that matches the first flow table; and when there is no flow table that matches the first flow table, determine the type of operation on the first flow table; when the operation type is an add operation,
- the second flow table based on the first flow table, a new flow table is created and the newly created flow table is stored.
- the kernel module 204 is configured to find whether there is a flow table that matches the matching item of the first flow table based on the matching items of each flow table in the second flow table.
- the matching item includes: a MAC address, an IP address, or a port number.
- the first flow table includes: all current flow tables in the controller; or, the first flow table includes: a changed flow table in the controller.
- the user mode process module 202 is configured to receive the first flow table actively pushed by the controller through the user process.
- the communication between the user mode process and the kernel module is based on the netlink protocol.
- the electronic device 800 according to this embodiment of the present disclosure will be described below with reference to FIG. 6.
- the electronic device 800 shown in FIG. 6 is only an example, and should not bring any limitation to the function and scope of use of the embodiments of the present disclosure.
- the electronic device 800 is represented in the form of a general-purpose computing device.
- the components of the electronic device 800 may include, but are not limited to: the aforementioned at least one processing unit 810, the aforementioned at least one storage unit 820, and a bus 830 connecting different system components (including the storage unit 820 and the processing unit 810).
- the storage unit stores program code, and the program code can be executed by the processing unit 810, so that the processing unit 810 executes the various exemplary methods described in the "Exemplary Method" section of this specification. Steps of implementation.
- the processing unit 810 may perform step S102 as shown in FIG. 2.
- step S104 Through the user mode process, the first flow table is sent to the kernel module of OVS;
- step S106 according to the first flow table, the second flow table stored in the kernel module is updated;
- step S108 the kernel module is based on the updated second flow table , Process the received data packet.
- the storage unit 820 may include a readable medium in the form of a volatile storage unit, such as a random access storage unit (RAM) 8201 and/or a cache storage unit 8202, and may further include a read-only storage unit (ROM) 8203.
- RAM random access storage unit
- ROM read-only storage unit
- the storage unit 820 may also include a program/utility tool 8204 having a set of (at least one) program module 8205.
- program module 8205 includes but is not limited to: an operating system, one or more application programs, other program modules, and program data, Each of these examples or some combination may include the implementation of a network environment.
- the bus 830 may represent one or more of several types of bus structures, including a storage unit bus or a storage unit controller, a peripheral bus, a graphics acceleration port, a processing unit, or a local area using any bus structure among multiple bus structures. bus.
- the electronic device 800 can also communicate with one or more external devices 700 (such as keyboards, pointing devices, Bluetooth devices, etc.), and can also communicate with one or more devices that enable a user to interact with the electronic device 800, and/or communicate with Any device (such as a router, modem, etc.) that enables the electronic device 800 to communicate with one or more other computing devices. This communication can be performed through an input/output (I/O) interface 850.
- the electronic device 800 may also communicate with one or more networks (for example, a local area network (LAN), a wide area network (WAN), and/or a public network, such as the Internet) through the network adapter 860.
- networks for example, a local area network (LAN), a wide area network (WAN), and/or a public network, such as the Internet
- the network adapter 860 communicates with other modules of the electronic device 800 through the bus 830. It should be understood that although not shown in the figure, other hardware and/or software modules can be used in conjunction with the electronic device 800, including but not limited to: microcode, device drivers, redundant processing units, external disk drive arrays, RAID systems, tape drives And data backup storage system, etc.
- the example embodiments described here can be implemented by software, or can be implemented by combining software with necessary hardware. Therefore, the technical solution according to the embodiments of the present disclosure can be embodied in the form of a software product, which can be stored in a non-volatile storage medium (which can be a CD-ROM, U disk, mobile hard disk, etc.) or on the network , Including several instructions to make a computing device (which may be a personal computer, a server, a terminal device, or a network device, etc.) execute the method according to the embodiments of the present disclosure.
- a computing device which may be a personal computer, a server, a terminal device, or a network device, etc.
- a computer-readable storage medium on which is stored a program product capable of implementing the above-mentioned method of this specification.
- various aspects of the present disclosure may also be implemented in the form of a program product, which includes program code.
- the program product runs on a terminal device, the program code is used to enable the The terminal device executes the steps according to various exemplary embodiments of the present disclosure described in the above-mentioned "Exemplary Method" section of this specification.
- a program product 900 for implementing the above method according to an embodiment of the present disclosure is described. It can adopt a portable compact disk read-only memory (CD-ROM) and include program code, and can be installed in a terminal device, For example, running on a personal computer.
- the program product of the present disclosure is not limited thereto.
- the readable storage medium can be any tangible medium that contains or stores a program, and the program can be used by or in combination with an instruction execution system, device, or device.
- the program product can use any combination of one or more readable media.
- the readable medium may be a readable signal medium or a readable storage medium.
- the readable storage medium may be, for example, but not limited to, an electrical, magnetic, optical, electromagnetic, infrared, or semiconductor system, device, or device, or a combination of any of the above. More specific examples (non-exhaustive list) of readable storage media include: electrical connections with one or more wires, portable disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable Type programmable read only memory (EPROM or flash memory), optical fiber, portable compact disk read only memory (CD-ROM), optical storage device, magnetic storage device, or any suitable combination of the above.
- the computer-readable signal medium may include a data signal propagated in baseband or as a part of a carrier wave, and readable program code is carried therein. This propagated data signal can take many forms, including but not limited to electromagnetic signals, optical signals, or any suitable combination of the foregoing.
- the readable signal medium may also be any readable medium other than a readable storage medium, and the readable medium may send, propagate, or transmit a program for use by or in combination with the instruction execution system, apparatus, or device.
- the program code contained on the readable medium can be transmitted by any suitable medium, including but not limited to wireless, wired, optical cable, RF, etc., or any suitable combination of the foregoing.
- the program code used to perform the operations of the present disclosure can be written in any combination of one or more programming languages.
- the programming languages include object-oriented programming languages—such as Java, C++, etc., as well as conventional procedural programming languages. Programming language-such as "C" language or similar programming language.
- the program code can be executed entirely on the user's computing device, partly on the user's device, executed as an independent software package, partly on the user's computing device and partly executed on the remote computing device, or entirely on the remote computing device or server Executed on.
- the remote computing device can be connected to a user computing device through any kind of network, including a local area network (LAN) or a wide area network (WAN), or it can be connected to an external computing device (for example, using Internet service providers). Business to connect via the Internet).
- LAN local area network
- WAN wide area network
- Internet service providers for example, using Internet service providers.
- modules or units of the device for action execution are mentioned in the above detailed description, this division is not mandatory.
- the features and functions of two or more modules or units described above may be embodied in one module or unit.
- the features and functions of a module or unit described above can be further divided into multiple modules or units to be embodied.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本公开公开一种基于开放虚拟软交换机OVS的数据包处理方法及设备。基于开放虚拟软交换机OVS的数据包处理方法包括:当与OVS连接的控制器中的第一流表发生变化时,通过OVS的用户态进程,获取第一流表(步骤S102);通过用户态进程,将第一流表发送给OVS的内核模块(步骤S104);根据第一流表,更新内核模块中存储的第二流表(步骤S106);通过内核模块,基于更新后的第二流表,对接收到的数据包进行处理(步骤S108)。
Description
本公开涉及计算机网络技术领域,具体而言,涉及一种基于开放虚拟软交换机OVS的数据包处理方法及设备。
OpenvSwitch简称为OVS(Open Virtual Switch,开放虚拟软交换机),是运行在虚拟化平台上的是运行在虚拟化平台上的虚拟软交换机,即通过软件方式实现的交换机,具有交换机的主要功能,对流经其上的数据包进行处理(例如:修改数据包里面的信息)、转发、接收控制操作等,其支持OpenFlow(开放流)协议,它在云计算领域使用十分广泛,为虚拟机提供与外界数据交互的条件。
但是受限于现有OVS数据包处理的方式,导致数据传输效率低、速率慢,无法满足一些对网络实时性要求非常高的应用领域的要求。
在所述背景技术部分公开的上述信息仅用于加强对本公开的背景的理解,因此它可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本公开提供一种基于开放虚拟软交换机OVS的数据包处理方法及设备。
本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。
根据本公开的一方面,一种基于开放虚拟软交换机OVS的数据包处理方法,包括:当与OVS连接的控制器中的第一流表发生变化时,通过所述OVS的用户态进程,获取所述第一流表;通过所述用户态进程,将所述第一流表发送给所述OVS的内核模块;根据所述第一流表,更新所述内核模块中存储的第二流表;以及通过所述内核模块,基于更新后的所述第二流表,对接收到的数据包进行处理。
根据本公开的一实施方式,根据所述第一流表,更新所述内核模块中存储的第二流表,包括:在所述第二流表中,查找是否有与所述第一流表匹配的流表;当有与所述第一流表匹配的流表时,确定对所述第一流表的操作类型;当所述操作类型为增加操作时,根据所述第一流表中的内容更新与所述第一流表匹配的流表的内容;当所 述操作类型为删除操作时,删除与所述第一流表匹配的流表;以及当没有与所述第一流表匹配的流表时,确定对所述第一流表的操作类型;当所述操作类型为增加操作时,在所述第二流表中,基于所述第一流表,新建立一个流表并存储新建立的所述流表。
根据本公开的一实施方式,查找是否有与所述第一流表匹配的流表,包括:基于所述第二流表中各流表的匹配项,查找是否有与所述第一流表的匹配项相匹配的流表。
根据本公开的一实施方式,所述匹配项包括:MAC地址、IP地址或端口号。
根据本公开的一实施方式,所述第一流表包括:所述控制器中当前的所有流表;或者,所述第一流表包括:所述控制器中发生变化的流表。
根据本公开的一实施方式,通过所述OVS的用户态进程,获取第一流表,包括:通过所述用户进程,接收所述控制器主动推送的所述第一流表。
根据本公开的一实施方式,所述用户态进程与所述内核模块之间基于netlink协议通信。
根据本公开的另一方面,提供一种基于开放虚拟软交换机OVS的数据包处理装置,包括:用户态进程模块,用于当与OVS连接的控制器中的流表发生变化时,通过所述OVS的用户态进程,获取第一流表,并通过所述用户态进程,将所述第一流表发送给所述OVS的内核模块;以及内核模块,用于根据所述第一流表,更新存储的第二流表,并基于更新后的所述第二流表,对接收到的数据包进行处理。
根据本公开的再一方面,提供一种电子设备,包括:处理器;以及存储器,用于存储所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行上述的基于开放虚拟软交换机OVS的数据包处理方法。
根据本公开的再一个方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述的基于开放虚拟软交换机OVS的数据包处理方法。
本公开实施例提供的基于开放虚拟软交换机OVS的数据包处理方法,会在控制器中存储的流表发生更新时,即使通过用户态进程将控制器中的流表发送给内核模块进行存储,使得内核模块保存了其进行数据包操作所需要的流表。因此可以避免内核模块在接收到数据包后,因为找不到与该数据包相匹配的流表,而不得不将数据包发送给用户态进程ovs-switchd的问题,缩短了数据包的处理路径,从而提升了数据包的处理效率及处理速度。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本 公开。
通过参照附图详细描述其示例实施例,本公开的上述和其它目标、特征及优点将变得更加显而易见。
图1是根据一示例示出的一种OVS的结构示意图。
图2示出本公开实施例中一种基于开放虚拟软交换机OVS的数据包处理方法流程图。
图3示出本公开实施例中的一种OVS的结构示意图。
图4示出本公开实施例中另一种基于开放虚拟软交换机OVS的数据包处理方法流程图。
图5示出本公开实施例中一种基于开放虚拟软交换机OVS的数据包处理装置示意图。
图6示出本公开实施例中一种电子设备的结构示意图。
图7示出本公开实施例中一种计算机可读存储介质示意图。
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。
此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
此外,在本公开的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如A和/或B,可以表示单独存在A、单独存在B及同时存在A和B三种情况。符号“/”一般表示前后关联对象是一种“或”的关系。术语“第一”、“第二”仅用 于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。
图1是根据一示例示出的一种OVS的结构示意图。如图1所示,OVS包括:用户空间(User Space)1和内核空间(Kernel Space)2。其中,OVS的数据库服务器(ovsdb-server)11和OVS的交换进程(ovs-vswitchd)12位于用户空间1,OVS的内核组件(Kernel Datapath)21位于内核空间2。
ovsdb-server 11用来存储OVS的配置信息,其与控制器(Controller)3之间基于OVSDB(OpenvSwitch Database,开放虚拟软交换机数据库)协议进行通信。
ovs-vswitchd 12是OVS的核心部件,其与控制器3之间使用OpenFlow协议通信,与ovsdb-server 11之间使用OVSDB协议通信,与Kernel Datapath 21之间使用netlink(网络链接)协议通信。netlink协议是操作系统支持的一种进程间通信方式,常常用于内核和用户态进程间的通信。
用户态是Linux操作系统中的概念,是指当一个进程在执行用户自己的代码时处于用户运行态(用户态)。此时特权级最低,例如为3级。该级别是普通的用户进程运行的特权级,大部分用户直接面对的程序都是运行在用户态。
Kernel Datapath 21运行在内核态,是OVS最核心的模块,用于完成数据包的处理,如交换/转发、丢弃等操作。
内核态是Linux操作系统中的概念,是指当一个进程因为系统调用陷入内核代码中执行时处于内核运行态(内核态)。此时特权级最高,例如为0级。执行的内核代码会使用当前进程的内核栈,每个进程都有自己的内核栈。
控制器3用于对OVS进行管理,例如,存储有OVS需要使用的所有流表信息。
在相关技术中,OVS的数据处理方式是当Kernel Datapath 21收到数据包时,先对数据包进行流表(Flow Table)匹配;如果数据包没有匹配到相应的流表规则,就会被发送给ovs-vswitchd 12来进行处理。ovs-vswitchd 12查询与该数据包匹配的流表,将查询到的流表和该数据包再返回给Kernel Datapath 21继续进行处理。Kernel Datapath 21收到ovs-vswitchd 12发送的与该数据包匹配的流表后,根据该流表对该数据包进行处理。Kernel Datapath 21会相应存储该流表,用于后续来自同一网络的数据包的处理。
由上述流程可以看到,对于没有匹配到Kernel Datapath 21已存的流表的数据包,需要被送入用户空间的ovs-vswitchd 12进行处理后,再返回至Kernel Datapath 21继续进行处理,这样就加大了数据包传输的路径,导致数据传输效率低、速度慢,网络实时性差。
本公开提出一种数据包处理方法,将需要的流表全部注入到Kernel Datapath 21中,从而在对接收到的数据包进行处理时,就无需将无法匹配到流表的数据包转发至ovs-vswitchd 12,从而使得接收到的数据包均可以内核空间2中进行处理,缩短了数据包的处理路径,提高了数据包的处理速度。
下面,将结合附图及实施例对本公开示例实施例中的基于开放虚拟软交换机OVS的数据包处理方法的各个步骤进行更详细的说明。
图2示出本公开实施例中一种基于开放虚拟软交换机OVS的数据包处理方法流程图。本公开实施例提供的方法可以由如图1中所述的OVS执行。
如图2所示,基于开放虚拟软交换机OVS的数据包处理方法10包括:
在步骤S102中,当与OVS连接的控制器中的第一流表发生变化时,通过OVS的用户态进程,获取第一流表。
以图1中的控制器3为例,OVS例如通过其中的用户态进程ovs-opctl来获取控制器3中的第一流表。用户态进程ovs-opctl与控制器3之间与可以基于OpenFlow协议通信。
如上述,控制器3中存储有OVS需要使用到的所有流表。
当控制器3中的存储的第一流表发生变化时,通过用户态进程ovs-opctl获取该第一流表。
控制器3例如可以在第一流表发生变化时,主动将第一流表推送给用户态进程ovs-opctl。或者,用户态进程ovs-opctl也可以定期地与控制器3通信,当获知控制器3中的第一流表发生变化时,从控制器3获取该第一流表。本公开实施例对控制器3与用户态进程ovs-opctl之间的通信方式不做限定,如可以为控制器3主动发起的通信,获知也可以为用户态进程ovs-opctl主动发起的通信等。
上述被用户态进程ovs-opctl获取的第一流表例如可以包括控制器3当前存储的所有流表,或者也可以仅包括发生变化的流表,本公开不以此为限。
在步骤S104中,通过用户态进程,将第一流表发送给OVS的内核模块。
该内核模块如为图1中的Kernel Datapath 21。
用户态进程ovs-opctl与内核模块之间如可以基于netlink协议进行通信。
在步骤S106中,根据第一流表,更新内核模块中存储的第二流表。
内核模块通常会存储一些流表,用于对接收到的数据包进行处理。例如,根据流表中的信息,进行数据包转发操作;或者根据流表中的信息,进行数据包丢弃操作等。
在步骤S108中,通过内核模块,基于更新后的第二流表,对接收到的数据包进行处理。
图3示出本公开实施例中的一种OVS的结构示意图。如图3所示,在本公开实施例提供的OVS中,经过上述方法的处理后,Kernel Datapath 21接收的所有数据包均仅需基于Kernel Datapath 21进行处理,而无需如图1中所示再发送给用户空间1中。
本公开实施例提供的基于开放虚拟软交换机OVS的数据包处理方法,会在控制器中存储的流表发生更新时,即使通过用户态进程将控制器中的流表发送给内核模块进行存储,使得内核模块保存了其进行数据包操作所需要的流表。因此可以避免内核模块在接收到数据包后,因为找不到与该数据包相匹配的流表,而不得不将数据包发送给用户态进程ovs-switchd的问题,缩短了数据包的处理路径,从而提升了数据包的处理效率及处理速度。
图4示出本公开实施例中另一种基于开放虚拟软交换机OVS的数据包处理方法流程图。与图2所示的基于开放虚拟软交换机OVS的数据包处理方法10不同的是,图4所示的基于开放虚拟软交换机OVS的数据包处理方法进一步提供了图2中步骤S106的一种实施方式。
如图4所示,步骤S106可以进一步包括:
在步骤S1062中,在第二流表中,查找是否有与第一流表匹配的流表。
例如,可以基于第二流表中各流表的匹配项,查找是否有与第一流表的匹配项相匹配的流表。
OVS中的流表通常可以包括:匹配项和动作(Action)内容。其中,匹配项是用来匹配数据包的特征。例如传统交换机能够根据MAC(Media Access Control,媒体接入控制)地址转发,路由器能够根据IP地址进行路由,因此MAC地址、IP地址都属于数据包的特征。
动作是通过匹配项匹配到数据包后,需要对数据包采取的操作,通常包括转发和丢弃这两个最常见的动作。
上述的匹配项除了可以包括MAC地址或IP地址外,还可以包括端口号、以太网类型、VLAN(Virtual Local Area Network,虚拟局域网)标识(ID)、VLAN优先级编号、网络类型、TCP(Transmission Control Protocol,传输控制协议)/UDP(User Datagram Protocol,用户数据报协议)/SCTP(Stream Control Transmission Protocol,流控制传输协议)端口号等,本公开不以此为限。
在步骤S1064中,当有与第一流表匹配的流表时,确定对第一流表的操作类型;当操作类型为增加操作时,根据第一流表中的内容更新与第一流表匹配的流表的内容;当操作类型为删除操作时,删除与第一流表匹配的流表。
在步骤S1066中,当没有与第一流表匹配的流表时,确定对第一流表的操作类型;当操作类型为增加操作时,在第二流表中,基于第一流表,新建立一个流表并存储新建立的流表。
根据第一流表,对内核模块中存储的第二流表进行更新,可以使内核模块中存储的流表与控制器中存储的流表保持一致,从而避免在对数据包进行处理时,缺少与数据包相匹配的流表的情形出现。
下述为本公开装置实施例,可以用于执行本公开方法实施例。对于本公开装置实施例中未披露的细节,请参照本公开方法实施例。
图5示出本公开实施例中一种基于开放虚拟软交换机OVS的数据包处理装置示意图。
如图5所示,基于开放虚拟软交换机OVS的数据包处理装置20包括:用户态进程模块202和内核模块204。
其中,用户态进程模块202用于当与OVS连接的控制器中的流表发生变化时,通过所述OVS的用户态进程,获取第一流表,并通过所述用户态进程,将所述第一流表发送给所述OVS的内核模块;
内核模块204用于根据所述第一流表,更新存储的第二流表,并基于更新后的所述第二流表,对接收到的数据包进行处理。
本公开实施例提供的基于开放虚拟软交换机OVS的数据包处理装置,会在控制器中存储的流表发生更新时,即使通过用户态进程将控制器中的流表发送给内核模块 进行存储,使得内核模块保存了其进行数据包操作所需要的流表。因此可以避免内核模块在接收到数据包后,因为找不到与该数据包相匹配的流表,而不得不将数据包发送给用户态进程ovs-switchd的问题,缩短了数据包的处理路径,从而提升了数据包的处理效率及处理速度。
在一些实施例中,内核模块204用于在所述第二流表中,查找是否有与所述第一流表匹配的流表;当有与所述第一流表匹配的流表时,确定对所述第一流表的操作类型;当所述操作类型为增加操作时,根据所述第一流表中的内容更新与所述第一流表匹配的流表的内容;当所述操作类型为删除操作时,删除与所述第一流表匹配的流表;以及当没有与所述第一流表匹配的流表时,确定对所述第一流表的操作类型;当所述操作类型为增加操作时,在所述第二流表中,基于所述第一流表,新建立一个流表并存储新建立的所述流表。
在一些实施例中,内核模块204用于基于所述第二流表中各流表的匹配项,查找是否有与所述第一流表的匹配项相匹配的流表。
在一些实施例中,所述匹配项包括:MAC地址、IP地址或端口号。
在一些实施例中,所述第一流表包括:所述控制器中当前的所有流表;或者,所述第一流表包括:所述控制器中发生变化的流表。
在一些实施例中,用户态进程模块202用于通过所述用户进程,接收所述控制器主动推送的所述第一流表。
在一些实施例中,所述用户态进程与所述内核模块之间基于netlink协议通信。
所属技术领域的技术人员能够理解,本公开的各个方面可以实现为系统、方法或程序产品。因此,本公开的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
下面参照图6来描述根据本公开的这种实施方式的电子设备800。图6显示的电子设备800仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图6所示,电子设备800以通用计算设备的形式表现。电子设备800的组件可以包括但不限于:上述至少一个处理单元810、上述至少一个存储单元820、连接不同系统组件(包括存储单元820和处理单元810)的总线830。
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元810执 行,使得所述处理单元810执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施方式的步骤。例如,所述处理单元810可以执行如图2中所示的步骤S102,当与OVS连接的控制器中的第一流表发生变化时,通过OVS的用户态进程,获取第一流表;步骤S104,通过用户态进程,将第一流表发送给OVS的内核模块;步骤S106,根据第一流表,更新内核模块中存储的第二流表;步骤S108,通过内核模块,基于更新后的第二流表,对接收到的数据包进行处理。
存储单元820可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)8201和/或高速缓存存储单元8202,还可以进一步包括只读存储单元(ROM)8203。
存储单元820还可以包括具有一组(至少一个)程序模块8205的程序/实用工具8204,这样的程序模块8205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线830可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备800也可以与一个或多个外部设备700(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备800交互的设备通信,和/或与使得该电子设备800能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口850进行。并且,电子设备800还可以通过网络适配器860与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器860通过总线830与电子设备800的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备800使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若 干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开实施方式的方法。
在本公开的示例性实施例中,还提供了一种计算机可读存储介质,其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施方式中,本公开的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施方式的步骤。
参考图7所示,描述了根据本公开的实施方式的用于实现上述方法的程序产品900,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本公开的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本公开操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以 完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由所附的权利要求指出。
Claims (10)
- 一种基于开放虚拟软交换机OVS的数据包处理方法,其特征在于,包括:当与OVS连接的控制器中的第一流表发生变化时,通过所述OVS的用户态进程,获取所述第一流表;通过所述用户态进程,将所述第一流表发送给所述OVS的内核模块;根据所述第一流表,更新所述内核模块中存储的第二流表;以及通过所述内核模块,基于更新后的所述第二流表,对接收到的数据包进行处理。
- 根据权利要求1所述的方法,其特征在于,根据所述第一流表,更新所述内核模块中存储的第二流表,包括:在所述第二流表中,查找是否有与所述第一流表匹配的流表;当有与所述第一流表匹配的流表时,确定对所述第一流表的操作类型;当所述操作类型为增加操作时,根据所述第一流表中的内容更新与所述第一流表匹配的流表的内容;当所述操作类型为删除操作时,删除与所述第一流表匹配的流表;以及当没有与所述第一流表匹配的流表时,确定对所述第一流表的操作类型;当所述操作类型为增加操作时,在所述第二流表中,基于所述第一流表,新建立一个流表并存储新建立的所述流表。
- 根据权利要求2所述的方法,其特征在于,查找是否有与所述第一流表匹配的流表,包括:基于所述第二流表中各流表的匹配项,查找是否有与所述第一流表的匹配项相匹配的流表。
- 根据权利要求3所述的方法,其特征在于,所述匹配项包括:MAC地址、IP地址或端口号。
- 根据权利要求1所述的方法,其特征在于,所述第一流表包括:所述控制器中当前的所有流表;或者,所述第一流表包括:所述控制器中发生变化的流表。
- 根据权利要求1所述的方法,其特征在于,通过所述OVS的用户态进程,获取第一流表,包括:通过所述用户进程,接收所述控制器主动推送的所述第一流表。
- 根据权利要求1-7任一项所述的方法,其特征在于,所述用户态进程与所述内核模块之间基于netlink协议通信。
- 一种基于开放虚拟软交换机OVS的数据包处理装置,其特征在于,包括:用户态进程模块,用于当与OVS连接的控制器中的流表发生变化时,通过所述OVS的用户态进程,获取第一流表,并通过所述用户态进程,将所述第一流表发送给所述OVS的内核模块;以及内核模块,用于根据所述第一流表,更新存储的第二流表,并基于更新后的所述第二流表,对接收到的数据包进行处理。
- 一种电子设备,其特征在于,包括:处理器;以及存储器,用于存储所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1-7任一项所述的方法。
- 一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-7任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2020/090312 WO2021226948A1 (zh) | 2020-05-14 | 2020-05-14 | 基于开放虚拟软交换机ovs的数据包处理方法及设备 |
CN202080100515.2A CN115486046B (zh) | 2020-05-14 | 2020-05-14 | 基于开放虚拟软交换机ovs的数据包处理方法及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2020/090312 WO2021226948A1 (zh) | 2020-05-14 | 2020-05-14 | 基于开放虚拟软交换机ovs的数据包处理方法及设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2021226948A1 true WO2021226948A1 (zh) | 2021-11-18 |
Family
ID=78526251
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2020/090312 WO2021226948A1 (zh) | 2020-05-14 | 2020-05-14 | 基于开放虚拟软交换机ovs的数据包处理方法及设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN115486046B (zh) |
WO (1) | WO2021226948A1 (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114244743A (zh) * | 2021-12-10 | 2022-03-25 | 北京天融信网络安全技术有限公司 | 一种资源池的数据包传输方法、装置、设备及介质 |
CN115022167A (zh) * | 2022-07-01 | 2022-09-06 | 天翼数字生活科技有限公司 | 一种用于家庭网关业务流控的方法及系统 |
US20230060132A1 (en) * | 2021-08-25 | 2023-03-02 | Red Hat, Inc. | Coordinating data packet processing between kernel space and user space |
CN115941598A (zh) * | 2023-03-09 | 2023-04-07 | 珠海星云智联科技有限公司 | 一种流表半卸载方法、设备及介质 |
US11797379B2 (en) | 2022-02-04 | 2023-10-24 | Western Digital Technologies, Inc. | Error detection and data recovery for distributed cache |
US11899585B2 (en) | 2021-12-24 | 2024-02-13 | Western Digital Technologies, Inc. | In-kernel caching for distributed cache |
US11934663B2 (en) | 2022-01-10 | 2024-03-19 | Western Digital Technologies, Inc. | Computational acceleration for distributed cache |
WO2024066639A1 (zh) * | 2022-09-28 | 2024-04-04 | 中兴通讯股份有限公司 | 业务数据处理方法、设备及计算机可读存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104601468A (zh) * | 2015-01-13 | 2015-05-06 | 杭州华三通信技术有限公司 | 报文转发方法和设备 |
WO2016172066A1 (en) * | 2015-04-24 | 2016-10-27 | Alcatel Lucent | User-defined flexible traffic monitoring in an sdn switch |
CN107196860A (zh) * | 2017-05-23 | 2017-09-22 | 西南交通大学 | Sdn网络中网络编码进行组播传输的方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU2015255293B2 (en) * | 2011-11-15 | 2018-03-15 | Nicira, Inc. | Architecture of networks with middleboxes |
KR101586474B1 (ko) * | 2014-05-23 | 2016-01-18 | 숭실대학교산학협력단 | 오픈플로우 라우팅 장치 및 방법 |
CN108322467B (zh) * | 2018-02-02 | 2021-11-05 | 云宏信息科技股份有限公司 | 基于ovs的虚拟防火墙配置方法、电子设备及存储介质 |
CN108881069B (zh) * | 2018-06-26 | 2019-10-18 | 新华三云计算技术有限公司 | 多播流量的转发方法、装置和服务器 |
CN109495293B (zh) * | 2018-10-25 | 2022-01-11 | 锐捷网络股份有限公司 | 一种交换机控制面的测试方法、系统、设备及存储介质 |
CN110086731B (zh) * | 2019-04-25 | 2021-09-17 | 北京计算机技术及应用研究所 | 一种云架构下网络数据稳定采集方法 |
-
2020
- 2020-05-14 CN CN202080100515.2A patent/CN115486046B/zh active Active
- 2020-05-14 WO PCT/CN2020/090312 patent/WO2021226948A1/zh active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104601468A (zh) * | 2015-01-13 | 2015-05-06 | 杭州华三通信技术有限公司 | 报文转发方法和设备 |
WO2016172066A1 (en) * | 2015-04-24 | 2016-10-27 | Alcatel Lucent | User-defined flexible traffic monitoring in an sdn switch |
CN107196860A (zh) * | 2017-05-23 | 2017-09-22 | 西南交通大学 | Sdn网络中网络编码进行组播传输的方法 |
Non-Patent Citations (1)
Title |
---|
PAN HSING-YO; WANG SHIE-YUAN: "Optimizing the SDN control-plane performance of the Openvswitch software switch", 2015 IEEE SYMPOSIUM ON COMPUTERS AND COMMUNICATION (ISCC), IEEE, 6 July 2015 (2015-07-06), pages 403 - 408, XP032864185, DOI: 10.1109/ISCC.2015.7405548 * |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230060132A1 (en) * | 2021-08-25 | 2023-03-02 | Red Hat, Inc. | Coordinating data packet processing between kernel space and user space |
CN114244743A (zh) * | 2021-12-10 | 2022-03-25 | 北京天融信网络安全技术有限公司 | 一种资源池的数据包传输方法、装置、设备及介质 |
CN114244743B (zh) * | 2021-12-10 | 2022-10-21 | 北京天融信网络安全技术有限公司 | 一种资源池的数据包传输方法、装置、设备及介质 |
US11899585B2 (en) | 2021-12-24 | 2024-02-13 | Western Digital Technologies, Inc. | In-kernel caching for distributed cache |
US11934663B2 (en) | 2022-01-10 | 2024-03-19 | Western Digital Technologies, Inc. | Computational acceleration for distributed cache |
US11797379B2 (en) | 2022-02-04 | 2023-10-24 | Western Digital Technologies, Inc. | Error detection and data recovery for distributed cache |
CN115022167A (zh) * | 2022-07-01 | 2022-09-06 | 天翼数字生活科技有限公司 | 一种用于家庭网关业务流控的方法及系统 |
CN115022167B (zh) * | 2022-07-01 | 2024-03-01 | 天翼数字生活科技有限公司 | 一种用于家庭网关业务流控的方法及系统 |
WO2024066639A1 (zh) * | 2022-09-28 | 2024-04-04 | 中兴通讯股份有限公司 | 业务数据处理方法、设备及计算机可读存储介质 |
CN115941598A (zh) * | 2023-03-09 | 2023-04-07 | 珠海星云智联科技有限公司 | 一种流表半卸载方法、设备及介质 |
CN115941598B (zh) * | 2023-03-09 | 2023-05-16 | 珠海星云智联科技有限公司 | 一种流表半卸载方法、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN115486046B (zh) | 2024-06-11 |
CN115486046A (zh) | 2022-12-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2021226948A1 (zh) | 基于开放虚拟软交换机ovs的数据包处理方法及设备 | |
EP2696537B1 (en) | Network system, switch, and connection terminal detection method | |
US8837322B2 (en) | Method and apparatus for snoop-and-learn intelligence in data plane | |
US8634415B2 (en) | Method and system for routing network traffic for a blade server | |
US20140153443A1 (en) | Per-Address Spanning Tree Networks | |
US20150312054A1 (en) | Reducing encapsulation overhead in overlay-based networks | |
US9973400B2 (en) | Network flow information collection method and apparatus | |
CN114745255B (zh) | 硬件芯片、dpu、服务器、通信方法及相关装置 | |
TW201445930A (zh) | 封包交換裝置及方法 | |
US20140289193A1 (en) | Synchronizing forwarding databases in a network device background | |
CN104378299A (zh) | 流表项处理方法以及装置 | |
US20220083498A1 (en) | Data transmission method and device for network on chip and electronic apparatus | |
WO2015006970A1 (zh) | 交换设备、控制器、交换设备配置、报文处理方法及系统 | |
US11012542B2 (en) | Data processing method and apparatus | |
CN105765922A (zh) | 流表项处理方法和装置 | |
WO2016173196A1 (zh) | 地址映射关系的学习方法及装置 | |
US10541914B2 (en) | Data packet forwarding method and network device | |
CN109413118B (zh) | 一种实现会话同步的方法、装置及存储介质、程序产品 | |
CN116599839A (zh) | 云网关系统、数据处理方法、设备及存储介质 | |
CN113676409B (zh) | 一种报文转发方法、装置、电子设备以及存储介质 | |
CN112637285B (zh) | 边缘云通信方法、管理系统、计算机设备及存储介质 | |
CN115225708A (zh) | 一种报文转发方法计算机设备及存储介质 | |
US11811643B2 (en) | System and method for managing computing resources | |
US9191319B2 (en) | Packet transmission system, method and non-transitory computer readable storage medium of the same | |
CN113746802B (zh) | 网络功能虚拟化中的方法以及本地状态和远程状态全存储的vnf装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 20935960 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
32PN | Ep: public notification in the ep bulletin as address of the adressee cannot be established |
Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205A DATED 17.04.2023) |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 20935960 Country of ref document: EP Kind code of ref document: A1 |