Cloud gateway server and message processing method

By offloading the flow table of the cloud gateway server to multiple smart network cards, the problem of limited message forwarding performance in the cloud service system is solved, and efficient forwarding in scenarios of more flow table entries is achieved, reducing processor burden and reducing the load on the processor The cost.

CN119232631APending Publication Date: 2024-12-31HUAWEI CLOUD COMPUTING TECHNOLOGIES CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202311278607.1
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2023-06-30
Filing Date
2023-09-28
Publication Date
2024-12-31

AI Technical Summary

Technical Problem

The forwarding performance of message in the cloud service system is limited by factors such as the server's CPU, memory and network card, resulting in bottlenecks. P4 devices perform poorly in scenarios with more streaming entries because they have small memory and can only store less. Flow entry.

Method used

Design a cloud gateway server. By offloading the processor's flow table to multiple smart network cards, the smart network card completes message forwarding based on its own flow table, supports large enough bandwidth and stores large specifications of flow table entries to realize the flow table High-performance forwarding in many scenarios.

Benefits of technology

It realizes efficient packet forwarding performance in cloud scenarios with a large number of flow entries, reduces the burden on the processor, supports forwarding performance like P4 devices, and reduces costs.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119232631A_ABST
    Figure CN119232631A_ABST
Patent Text Reader

Abstract

The invention discloses a cloud gateway server and a message processing method, which not only have enough excellent message forwarding performance, but also have enough large memory, can be applied to a cloud scene with more flow table entries, and have higher application value. The cloud gateway server comprises a processor and a plurality of intelligent network cards, the processor is used for managing the plurality of intelligent network cards, the processor is provided with flow tables in the plurality of intelligent network cards, and a first intelligent network card in the plurality of intelligent network cards is used for obtaining a message which is from a first cloud computing server and is to be sent to a second cloud computing server; if a first flow table in the first intelligent network card contains a first flow table entry matched with the message, the message is sent to a second cloud computing server according to the first flow table entry, and the first flow table entry is used for indicating a first transmission path between the first cloud computing server and the second cloud computing server; the first transmission path sequentially passes through the first cloud computing server, the first intelligent network card and the second cloud computing server.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] This application claims the priority of the Chinese patent application filed with the State Intellectual Property Office on June 30, 2023, with application number 202310796921.2 and invention name “A method for unloading and forwarding and related equipment thereof”, the entire contents of which are incorporated by reference in this application. Technical Field

[0002] The embodiments of the present application relate to the field of cloud technology, and in particular to a cloud gateway server and a message processing method. Background Art

[0003] Message forwarding in cloud service systems is usually achieved using the central processing unit (CPU) in the server. The forwarding performance of a single server is limited by various factors such as the CPU, memory, and network card in the server, resulting in a bottleneck in the overall forwarding performance of the server.

[0004] Based on this, cloud vendors began to use programmable protocol-independent packet processors (P4) devices in cloud service systems to implement message forwarding. The P4 device contains four channels (pipelines), each of which can run the same program. In other words, the flow table used to record the transmission path between cloud computing servers is copied into four copies and stored in these four channels. Since each channel can manage 8 100G network interfaces in the P4 device, the total bandwidth of the P4 device can support 3.2T, which has certain message forwarding performance.

[0005] However, since the memory of P4 devices is often small, the specifications of the flow tables that can be stored are also small, so P4 devices can only be used as gateways that support fewer flow table items. In other words, P4 devices can only be used in cloud scenarios with fewer flow table items. Summary of the invention

[0006] The embodiments of the present application provide a cloud gateway server and a message processing method, which not only have sufficiently excellent message forwarding performance, but also are configured with a sufficiently large memory. They can be applied in cloud scenarios with a large number of flow table entries and have higher application value.

[0007] A first aspect of an embodiment of the present application provides a cloud gateway server, which includes a processor and multiple smart network cards. The processor is used to manage the multiple smart network cards, and the processor can offload its own flow table to the multiple smart network cards in some way.

[0008] Assume that the first cloud computing server is connected to the second cloud computing server through the cloud gateway server. When the first cloud computing server needs to send a message to the second cloud computing server, the first cloud computing server can determine the first smart network card for processing the message from the multiple smart network cards included in the cloud gateway server, so the first cloud computing server can send the message to the first smart network card.

[0009] After receiving the message, the first smart network card can determine based on the message that the message is a message sent from the first cloud computing server to the second cloud computing server. Therefore, the first smart network card can detect from its own first flow table whether there is a first flow table item matching the message among the multiple flow table items contained in the first flow table. The first flow table item is used to indicate a first transmission path between the first cloud computing server and the second cloud computing server. The first transmission path starts from the first cloud computing server and ends at the second cloud computing server, and passes through the first smart network card of the cloud gateway server in the middle, but does not pass through the processor of the cloud gateway server.

[0010] If the first smart network card determines that the first flow table contains the first flow table entry, the first smart network card can send the message to the second cloud computing server according to the first transmission path indicated by the first flow table entry. At this point, the first smart network card of the cloud gateway server successfully and quickly forwards the message from the first cloud computing server to the second cloud computing server. This process does not require the participation of the processor of the cloud gateway server, which can reduce the burden on the processor.

[0011] The above-mentioned cloud gateway server includes a processor and multiple smart network cards, wherein the processor is used to manage multiple smart network cards, and the processor is provided with flow tables in multiple smart network cards. When the first smart network card among the multiple smart network cards in the cloud gateway server receives a message from the first cloud computing server to be sent to the second cloud computing server, the first smart network card can detect whether its first flow table contains a first flow table item that matches the message, and the first flow table item is used to indicate the first transmission path between the first cloud computing server and the second cloud computing server, and the first transmission path passes through the first cloud computing server, the first smart network card and the second cloud computing server in sequence. If the first flow table contains the first flow table item, the first smart network card can send the message to the second cloud computing server according to the first flow table item. Based on the above-mentioned cloud gateway server, it can be known that the processor of the cloud gateway server unloads the flow table to the multiple smart network cards of the cloud gateway server, so the multiple smart network cards can complete the message forwarding between cloud computing servers based on their own flow tables. Since the multiple smart network cards of the cloud gateway server can support a sufficiently large bandwidth, the cloud gateway server has the same message forwarding performance as the P4 device. And since the multiple smart network cards of the cloud gateway server can be configured with a sufficiently large memory, the multiple smart network cards can store flow tables with sufficiently large specifications, so that the cloud gateway server can be used in cloud scenarios with more flow table items and has higher application value.

[0012] In one possible implementation, the first smart network card is also used to send the message to the processor if the first flow table does not contain the first flow table item; the processor is used to obtain the second flow table item and send the message to the second cloud computing server according to the second flow table item, the second flow table item is used to indicate the second transmission path between the first cloud computing server and the second cloud computing server, the second transmission path passes through the first cloud computing server, the first smart network card, the processor, the second smart network card and the second cloud computing server in sequence, and the multiple smart network cards include the second smart network card. In the above implementation, if the first smart network card determines that the first flow table does not contain the first flow table item, the first smart network card can forward the message to the processor. After receiving the message, the processor can obtain the second flow table item from the multiple flow table items contained in its own flow table, the second flow table item is used to indicate the second transmission path between the first cloud computing server and the second cloud computing server, the second transmission path starts from the first cloud computing server and ends at the second cloud computing server, and passes through the first smart network card of the cloud gateway server, the processor of the cloud gateway server and the second smart network card of the cloud gateway server. After obtaining the second flow table entry, the processor can send the message to the second smart network card according to the second transmission path indicated by the second flow table entry, and control the second smart network card to send the message to the second cloud computing server. At this point, the processor of the cloud gateway server successfully forwards the message from the first cloud computing server to the second cloud computing server. It can be seen that when the first smart network card cannot complete the fast path processing of the message, the processor can complete the slow path processing of the message on its behalf, thereby ensuring the message transmission between the first cloud computing server and the second cloud computing server.

[0013] In one possible implementation, the processor is also used to generate a first flow table entry based on the second flow table entry, and update the first flow table entry to the first flow table, so that the first smart network card obtains a new first flow table. In the aforementioned implementation, after sending the message to the second cloud computing server based on the second flow table entry, the processor can generate a first flow table entry based on the second flow table entry, and update the first flow table entry to the first flow table of the first smart network card, so that the first smart network card obtains a new first flow table. Then, the new first flow table contains the first flow table entry, so when the first smart network card subsequently receives a new message from the first cloud computing server to be sent to the second cloud computing server, it can directly send the new message to the second cloud computing server based on the first flow table entry. It can be seen from this that after the processor completes the slow path processing of the message, it can improve the fast path processing of the message by the first smart network card based on the result of the slow path processing of the message.

[0014] In one possible implementation, the processor is further used to generate a third flow table item based on the second flow table item, and update the third flow table item to the second flow table in the second smart network card, so that the second smart network card obtains a new second flow table, and the third flow table item is used to indicate the third transmission path between the first cloud computing server and the second cloud computing server, and the third transmission path passes through the first cloud computing server, the second smart network card, and the second cloud computing server in sequence. In the aforementioned implementation, after updating the first flow table item to the first flow table of the first smart network card, the processor may also generate a third flow table item based on the second flow table item, wherein the third flow table item is used to indicate the third transmission path between the first cloud computing server and the second cloud computing server, and the third transmission path starts from the first cloud computing server and ends at the second cloud computing server, and passes through the second smart network card of the cloud gateway server in the middle, but does not pass through the processor of the cloud gateway server. Then, the processor may update the third flow table item to the second flow table in the second smart network card, so that the second smart network card obtains a new second flow table. Then, the new second flow table includes the third flow table entry, so when the second smart network card subsequently receives a new message to be sent to the second cloud computing server from the first cloud computing server, it can directly send the new message to the second cloud computing server based on the third flow table entry. It can be seen that after the processor completes the slow path processing of the message, it can not only improve the fast path processing of the message by the first smart network card based on the result of the slow path processing of the message, but also improve the fast path processing of the message by the second smart network card based on the result of the slow path processing of the message.

[0015] In one possible implementation, the first smart network card is further used to send the message to the processor if the first flow table does not contain the first flow table item; the processor is used to obtain the fourth flow table item and send the message to the second cloud computing server according to the fourth flow table item, the fourth flow table item is used to indicate the fourth transmission path between the first cloud computing server and the second cloud computing server, and the fourth transmission path passes through the first cloud computing server, the first smart network card, the processor, the first smart network card and the second cloud computing server in sequence. In the above implementation, if the first smart network card determines that the first flow table does not contain the first flow table item, the first smart network card can forward the message to the processor. After receiving the message, the processor can obtain the fourth flow table item from the multiple flow table items contained in its own flow table. After obtaining the fourth flow table item, the processor can send the message to the first smart network card according to the fourth transmission path indicated by the fourth flow table item, and control the first smart network card to send the message to the second cloud computing server. At this point, the processor of the cloud gateway server successfully forwards the message from the first cloud computing server to the second cloud computing server. It can be seen that when the first intelligent network card cannot complete the fast path processing for the message, the processor can complete the slow path processing for the message on its behalf, thereby ensuring the message transmission between the first cloud computing server and the second cloud computing server.

[0016] In one possible implementation, the processor is also used to generate a first flow table entry based on the fourth flow table entry, and update the first flow table entry to the first flow table, so that the first smart network card obtains a new first flow table. In the aforementioned implementation, after sending the message to the second cloud computing server based on the fourth flow table entry, the processor can generate a first flow table entry based on the fourth flow table entry, and update the first flow table entry to the first flow table of the first smart network card, so that the first smart network card obtains a new first flow table. Then, the new first flow table contains the first flow table entry, so when the first smart network card subsequently receives a new message from the first cloud computing server to be sent to the second cloud computing server, it can directly send the new message to the second cloud computing server based on the first flow table entry. It can be seen that after completing the slow path processing of the message, the processor can improve the fast path processing of the message by the first smart network card based on the result of the slow path processing of the message.

[0017] In one possible implementation, the first cloud computing server includes any of the following cloud instances: a physical server, a bare metal server, a virtual machine, a container, and a micro virtual machine.

[0018] A second aspect of an embodiment of the present application provides a message processing method, which is applied to a cloud gateway server. The cloud gateway server includes a processor and multiple smart network cards. The processor is used to manage the multiple smart network cards. The processor is provided with flow tables in the multiple smart network cards. The method includes: a first smart network card among the multiple smart network cards obtains a message to be sent from a first cloud computing server to a second cloud computing server; if a first flow table in the first smart network card contains a first flow table item that matches the message, the first smart network card sends the message to the second cloud computing server according to the first flow table item, and the first flow table item is used to indicate a first transmission path between the first cloud computing server and the second cloud computing server, and the first transmission path passes through the first cloud computing server, the first smart network card and the second cloud computing server in sequence.

[0019] The cloud gateway server used to implement the above method includes a processor and multiple smart network cards, wherein the processor is used to manage multiple smart network cards, and the processor is provided with flow tables in multiple smart network cards. When the first smart network card among the multiple smart network cards in the cloud gateway server receives a message from the first cloud computing server to be sent to the second cloud computing server, the first smart network card can detect whether its first flow table contains a first flow table item that matches the message, and the first flow table item is used to indicate the first transmission path between the first cloud computing server and the second cloud computing server, and the first transmission path passes through the first cloud computing server, the first smart network card and the second cloud computing server in sequence. If the first flow table contains the first flow table item, the first smart network card can send the message to the second cloud computing server according to the first flow table item. Based on the aforementioned cloud gateway server, it can be known that the processor of the cloud gateway server unloads the flow table to the multiple smart network cards of the cloud gateway server, so the multiple smart network cards can complete the message forwarding between the cloud computing servers based on their own flow tables. Since the multiple smart network cards of the cloud gateway server can support a sufficiently large bandwidth, the cloud gateway server has the same message forwarding performance as the P4 device. And since the multiple smart network cards of the cloud gateway server can be configured with a sufficiently large memory, the multiple smart network cards can store flow tables with sufficiently large specifications, so that the cloud gateway server can be used in cloud scenarios with more flow table items and has higher application value.

[0020] In one possible implementation, the method also includes: if the first flow table does not contain the first flow table entry, the first smart network card sends the message to the processor; the processor obtains the second flow table entry, and sends the message to the second cloud computing server according to the second flow table entry, the second flow table entry is used to indicate a second transmission path between the first cloud computing server and the second cloud computing server, the second transmission path passes through the first cloud computing server, the first smart network card, the processor, the second smart network card and the second cloud computing server in sequence, and the multiple smart network cards include the second smart network card.

[0021] In a possible implementation, the method further includes: the processor generates a first flow table entry based on the second flow table entry, and updates the first flow table entry to the first flow table, so that the first smart network card obtains a new first flow table.

[0022] In one possible implementation, the method also includes: the processor generates a third flow table entry based on the second flow table entry, and updates the third flow table entry to the second flow table in the second smart network card, so that the second smart network card obtains a new second flow table, and the third flow table entry is used to indicate a third transmission path between the first cloud computing server and the second cloud computing server, and the third transmission path passes through the first cloud computing server, the second smart network card, and the second cloud computing server in sequence.

[0023] In one possible implementation, the method also includes: if the first flow table does not contain the first flow table entry, the first smart network card sends the message to the processor; the processor obtains a fourth flow table entry, and sends the message to the second cloud computing server according to the fourth flow table entry, the fourth flow table entry is used to indicate a fourth transmission path between the first cloud computing server and the second cloud computing server, and the fourth transmission path passes through the first cloud computing server, the first smart network card, the processor, the first smart network card and the second cloud computing server in sequence.

[0024] In a possible implementation, the method further includes: the processor generates a first flow table entry based on the fourth flow table entry, and updates the first flow table entry to the first flow table, so that the first smart network card obtains a new first flow table.

[0025] In one possible implementation, the first cloud computing server includes any of the following cloud instances: a physical server, a bare metal server, a virtual machine, a container, and a micro virtual machine.

[0026] A third aspect of an embodiment of the present application provides a cloud gateway server, which includes a processing module and multiple unloading modules. The processing module is used to manage the multiple unloading modules. The processing module is provided with a flow table in the multiple unloading modules. The first unloading module among the multiple unloading modules is used to: obtain a message from a first cloud computing server to be sent to a second cloud computing server; if a first flow table in the first unloading module contains a first flow table item that matches the message, send the message to the second cloud computing server according to the first flow table item, the first flow table item is used to indicate a first transmission path between the first cloud computing server and the second cloud computing server, and the first transmission path passes through the first cloud computing server, the first unloading module and the second cloud computing server in sequence.

[0027] In one possible implementation, the first unloading module is also used to send the message to the processing module if the first flow table does not contain the first flow table entry; the processing module is used to obtain the second flow table entry and send the message to the second cloud computing server according to the second flow table entry, the second flow table entry is used to indicate a second transmission path between the first cloud computing server and the second cloud computing server, the second transmission path passes through the first cloud computing server, the first unloading module, the processing module, the second unloading module and the second cloud computing server in sequence, and multiple smart network cards include the second unloading module.

[0028] In a possible implementation, the processing module is further configured to generate a first flow table entry based on the second flow table entry, and update the first flow table entry into the first flow table, so that the first unloading module obtains a new first flow table.

[0029] In one possible implementation, the processing module is also used to generate a third flow table entry based on the second flow table entry, and update the third flow table entry to the second flow table in the second unloading module, so that the second unloading module obtains a new second flow table, and the third flow table entry is used to indicate a third transmission path between the first cloud computing server and the second cloud computing server, and the third transmission path passes through the first cloud computing server, the second unloading module, and the second cloud computing server in sequence.

[0030] In one possible implementation, the first unloading module is also used to send the message to the processing module if the first flow table does not contain the first flow table item; the processing module is used to obtain a fourth flow table item and send the message to the second cloud computing server according to the fourth flow table item, the fourth flow table item is used to indicate a fourth transmission path between the first cloud computing server and the second cloud computing server, and the fourth transmission path passes through the first cloud computing server, the first unloading module, the processing module, the first unloading module and the second cloud computing server in sequence.

[0031] In a possible implementation, the processing module is further configured to generate a first flow table entry based on the fourth flow table entry, and update the first flow table entry into the first flow table, so that the first unloading module obtains a new first flow table.

[0032] In one possible implementation, the first cloud computing server includes any of the following cloud instances: a physical server, a bare metal server, a virtual machine, a container, and a micro virtual machine.

[0033] A fourth aspect of an embodiment of the present application provides a cloud service system, which includes a first cloud computing server, a second cloud computing server, and a cloud gateway server as described in the first aspect or any possible implementation method of the first aspect.

[0034] A fifth aspect of an embodiment of the present application provides a computing device cluster, the computing device cluster includes at least one computing device, each computing device includes a processor and a memory: the memory is used to store instructions; the processor is used to enable the computing device cluster to execute the method described in the second aspect or any possible implementation method of the second aspect according to the instructions.

[0035] A sixth aspect of an embodiment of the present application provides a computer storage medium, which stores one or more instructions. When the instructions are executed by one or more computers, the one or more computers implement the method described in the second aspect or any possible implementation method of the second aspect.

[0036] A seventh aspect of the embodiments of the present application provides a computer program product, which stores instructions. When the instructions are executed by a computer, the computer implements the method described in the second aspect or any possible implementation method of the second aspect.

[0037] The cloud gateway server provided in the embodiment of the present application includes a processor and multiple smart network cards, wherein the processor is used to manage multiple smart network cards, and the processor is provided with flow tables in multiple smart network cards. When the first smart network card among the multiple smart network cards in the cloud gateway server receives a message from the first cloud computing server to be sent to the second cloud computing server, the first smart network card can detect whether its first flow table contains a first flow table item that matches the message, and the first flow table item is used to indicate the first transmission path between the first cloud computing server and the second cloud computing server, and the first transmission path passes through the first cloud computing server, the first smart network card and the second cloud computing server in sequence. If the first flow table contains the first flow table item, the first smart network card can send the message to the second cloud computing server according to the first flow table item. Based on the aforementioned cloud gateway server, it can be known that the processor of the cloud gateway server unloads the flow table to the multiple smart network cards of the cloud gateway server, so the multiple smart network cards can complete the message forwarding between the cloud computing servers based on their own flow tables. Since the multiple smart network cards of the cloud gateway server can support a sufficiently large bandwidth, the cloud gateway server has the same message forwarding performance as the P4 device. And since the multiple smart network cards of the cloud gateway server can be configured with a sufficiently large memory, the multiple smart network cards can store flow tables with sufficiently large specifications, so that the cloud gateway server can be used in cloud scenarios with more flow table items and has higher application value. BRIEF DESCRIPTION OF THE DRAWINGS

[0038] Figure 1 A schematic diagram of the structure of a cloud service system provided in an embodiment of the present application;

[0039] Figure 2 A schematic diagram of the structure of a cloud gateway server provided in an embodiment of the present application;

[0040] Figure 3 A flowchart of a message processing method provided in an embodiment of the present application;

[0041] Figure 4 Another structural diagram of the cloud service system provided in the embodiment of the present application;

[0042] Figure 5 Another schematic diagram of a flow chart of a message processing method provided in an embodiment of the present application;

[0043] Figure 6 Another structural diagram of the cloud service system provided in the embodiment of the present application;

[0044] Figure 7 Another structural diagram of the cloud gateway server provided in an embodiment of the present application;

[0045] Figure 8 A schematic diagram of a structure of a computing device provided in an embodiment of the present application;

[0046] Fig. 9 A schematic diagram of the structure of a computing device cluster provided in an embodiment of the present application;

[0047] Fig.10 A schematic diagram of computer devices in a computer cluster provided in an embodiment of the present application being connected via a network. DETAILED DESCRIPTION

[0048] The embodiments of the present application provide a cloud gateway server and a message processing method, which not only have sufficiently excellent message forwarding performance, but also are configured with a sufficiently large memory. They can be applied in cloud scenarios with a large number of flow table entries and have higher application value.

[0049] Message forwarding in cloud service systems is usually achieved using the central processing unit (CPU) in the server. The forwarding performance of a single server is limited by various factors such as the CPU, memory, and network card in the server, resulting in a bottleneck in the overall forwarding performance of the server.

[0050] Based on this, cloud vendors began to use P4 devices in cloud service systems to implement message forwarding. The P4 device contains four channels, each of which can run the same program. In other words, the flow table used to record the transmission path between cloud computing servers is copied into four copies and stored in these four channels. Then, the four channels of the P4 device can complete the message forwarding between cloud computing servers based on the stored flow table. In the P4 device, since each channel can manage 8 100G network interfaces in the P4 device, the total bandwidth of the P4 device can support 3.2T, which has certain message forwarding performance.

[0051] However, since the memory of P4 devices is often small, the specifications of the flow tables that can be stored are also small, so P4 devices can only be used as gateways that support fewer flow table items. In other words, P4 devices can only be used in cloud scenarios with fewer flow table items.

[0052] In order to solve the above problems, an embodiment of the present application provides a cloud gateway server, which can be applied to a cloud service system (for example, a public cloud system, a private cloud system, a hybrid cloud system, etc.). Figure 1 A schematic diagram of the structure of the cloud service system provided in the embodiment of the present application is as follows: Figure 1 As shown, the cloud service system includes: multiple cloud computing servers and multiple cloud gateway servers. Multiple cloud computing servers can be connected to each other through multiple cloud gateway servers. The cloud computing servers and cloud gateway servers are introduced below:

[0053] A cloud computing server is usually a device in a cloud service system that provides cloud services to tenants. It can be deployed with cloud instances dedicated to tenants. The cloud instances dedicated to tenants are used to complete the tenant's business, thereby providing cloud services to tenants. It should be noted that the cloud instances on the cloud computing server can be presented in a variety of ways: for example, the cloud computing server itself is a physical server, so the cloud instance on the cloud computing server can be the physical server itself. For another example, the cloud computing server itself is a bare metal server, so the cloud instance on the cloud computing server can be the bare metal server itself. For another example, the cloud computing server itself is a physical server, so the cloud instance on the cloud computing server can be a virtual machine (VM) on the physical server. For another example, the cloud computing server itself is a physical server, so the cloud instance on the cloud computing server can be a container (docker) on the physical server. For another example, the cloud computing server itself is a physical server, so the cloud instance on the cloud computing server can be a micro virtual machine (microVM) on the physical server, and so on.

[0054] Since cloud computing servers (cloud instances) need to communicate with each other, and multiple cloud computing servers of the cloud service system are divided into multiple cloud computing server groups, and different cloud computing server groups are usually set up in different sites, cloud computing servers at the same site or different sites often need to build a communication bridge through a cloud gateway server in order to achieve communication. It should be noted that the sites involved here can be presented in many ways: for example, different sites are different regions, different sites are different available zones (AZ), different sites are central sites and edge sites, etc.

[0055] like Figure 2 As shown ( Figure 2 A structural diagram of a cloud gateway server provided in an embodiment of the present application) is shown. The cloud gateway server may include components such as a processor, a memory, and multiple network cards, wherein the processor may be used to manage multiple smart network cards, and the management operations include but are not limited to: (1) unloading its own flow table to multiple smart network cards so that each smart network card has fast path processing for the message. (2) When the smart network card cannot implement fast path processing for the message, the smart network card may be replaced to perform slow path processing for the message. (3) After completing the slow path processing for the message, the flow table of the smart network card may be updated based on the result of the slow path processing, thereby improving the fast path processing of the message by the smart network card, and so on. The memory may be used to store instructions for implementing the aforementioned management operations, so after the processor reads these instructions from the memory, it may perform the aforementioned management operations for multiple smart network cards.

[0056] It is worth noting that for multiple smart network cards in the cloud gateway server, the flow tables in different smart network cards are usually different. For any one of the multiple smart network cards, the flow table in the smart network card contains multiple flow table items, wherein one flow table item is used to indicate the (message) transmission path between a cloud computing server and another cloud computing server, and the transmission path usually has two cloud computing servers as two end nodes, but passes through the smart network card as an intermediate node (not through the processor) in the middle, so it can be understood as a fast path. For the processor in the cloud gateway server, the flow table in the processor also contains multiple flow table items, wherein one flow table item is used to indicate the (message) transmission path between a cloud computing server and another cloud computing server, and the transmission path usually has two cloud computing servers as two end nodes, and passes through at least one smart network card and multiple intermediate nodes of the processor in the middle, so it can be understood as a slow path.

[0057] It can be seen that the multiple smart network cards of the cloud gateway server can complete the message transmission between some cloud computing servers and other cloud computing servers based on their own flow tables, that is, the fast path processing of messages. Correspondingly, the processor of the cloud gateway server can also complete the message transmission between some cloud computing servers and other cloud computing servers based on its own flow tables, that is, the slow path processing of messages, which will not be expanded here.

[0058] In order to further understand the workflow of the cloud gateway server, the workflow will be further introduced below in combination with multiple embodiments. Figure 3 A flow chart of a message processing method provided in an embodiment of the present application, such as Figure 3 As shown, a first embodiment of the method can be implemented by Figure 2 The cloud gateway server shown is implemented, and the cloud gateway server includes a processor and multiple smart network cards, and the processor sets (unloads) flow tables in multiple smart network cards. The first embodiment of the method includes:

[0059] 301. A first smart network card among multiple smart network cards obtains a message from a first cloud computing server to be sent to a second cloud computing server.

[0060] In this embodiment, it is assumed that the first cloud computing server is connected to the second cloud computing server through the cloud gateway server, and generally, the first cloud computing server can be connected to multiple smart network cards of the cloud gateway server, and the second cloud computing server can also be connected to multiple smart network cards of the cloud gateway server. When the first cloud computing server needs to send a message to the second cloud computing server, the first cloud computing server can determine the first smart network card for processing the message from the multiple smart network cards included in the cloud gateway server in some way, so the first cloud computing server can send the message to the first smart network card.

[0061] For example, Figure 4 As shown, ( Figure 4Another structural schematic diagram of the cloud service system provided in the embodiment of the present application) is provided, assuming that the cloud gateway server includes a CPU, a smart network card 1, a smart network card 2, a smart network card 3 and a smart network card 4, and the cloud computing server 1 is connected to the four smart network cards of the cloud gateway server through a top of rack (TOR) switch 1, and the cloud computing server 1 is connected to the four smart network cards of the cloud gateway server through a TOR switch 2, wherein the CPU is provided with a flow table 1 in the smart network card 1, a flow table 2 in the smart network card 2, a flow table 3 in the smart network card 3, and a flow table 4 in the smart network card 4. When the cloud computing server 1 needs to send a message to the cloud computing server 2, the message can be first sent to the TOR switch 1, and the TOR switch 1 can perform a hash calculation on the five-tuple contained in the message (the address of the cloud computing server 1, the address of the cloud computing server 2, the protocol number of the layer 4 protocol, the source port of the layer 4 protocol, and the destination port of the layer 4 protocol), and the calculated hash value is used to indicate the smart network card 1, so the TOR switch 1 can send the message to the smart network card 1.

[0062] 302. The first smart network card detects whether the first flow table in the first smart network card contains a first flow table entry that matches the message, where the first flow table entry is used to indicate a first transmission path between the first cloud computing server and the second cloud computing server, and the first transmission path passes through the first cloud computing server, the first smart network card, and the second cloud computing server in sequence.

[0063] After receiving the message, the first smart network card can parse the message. Based on the result of the analysis, it can be determined that the message is a message sent by the first cloud computing server to the second cloud computing server. Therefore, the first smart network card can detect whether there is a first flow table entry matching the message among the multiple flow table entries contained in the first flow table stored in its own first flow table.

[0064] It should be noted that, among the multiple flow table entries contained in the first flow table, one flow table entry is used to indicate the transmission path between a cloud computing server and another cloud computing server. The transmission path between the two cloud computing servers takes the two cloud computing servers as the starting point and the end point, and passes through the first smart network card of the cloud gateway server in the middle, but does not pass through the processor of the cloud gateway server in the middle.

[0065] Based on this, the first flow table entry that the first smart network card needs to detect is used to indicate the first transmission path between the first cloud computing server and the second cloud computing server. The first transmission path starts from the first cloud computing server and ends at the second cloud computing server, and passes through the first smart network card of the cloud gateway server in the middle, but does not pass through the processor of the cloud gateway server.

[0066] Still as in the above example, after receiving the message, Smart NIC 1 can determine based on the message that the message needs to come from cloud computing server 1 and needs to be sent to cloud computing server 2. Then, Smart NIC 1 can detect from its own flow table 1 whether there is a flow table entry 1 matching the message among the multiple flow table entries contained in flow table 1, wherein the flow table entry 1 to be detected by Smart NIC 1 is used to indicate the transmission path between cloud computing server 1 and cloud computing server 2, and the transmission path passes through cloud computing server 1, TOR switch 1, Smart NIC 1, TOR switch 2 and cloud computing server 2 in sequence.

[0067] 303. If the first flow table includes a first flow table entry, the first intelligent network card sends the message to the second cloud computing server according to the first flow table entry.

[0068] If the first smart network card determines that the first flow table contains the first flow table entry, the first smart network card can extract the first flow table entry and send the message to the second cloud computing server according to the first transmission path indicated by the first flow table entry. At this point, the first smart network card of the cloud gateway server has successfully completed the fast path processing for the message, that is, successfully and quickly forwarded the message from the first cloud computing server to the second cloud computing server. This process does not require the participation of the processor of the cloud gateway server, which can reduce the burden of the processor.

[0069] Still as in the above example, if Smart NIC 1 determines that there is a flow entry 1 matching the message in flow table 1, then based on the transmission path indicated by flow entry 1, the message is sent to TOR switch 2, so that TOR switch 2 sends the message to cloud computing server 2. At this point, Smart NIC 1 of the cloud gateway server successfully forwards the message from cloud computing server 1 to cloud computing server 2.

[0070] 304. If the first flow table does not include the first flow table entry, the first intelligent network card sends the message to the processor.

[0071] 305. The processor obtains a second flow table entry, and sends the message to the second cloud computing server according to the second flow table entry, where the second flow table entry is used to indicate a second transmission path between the first cloud computing server and the second cloud computing server, and the second transmission path passes through the first cloud computing server, the first smart network card, the processor, the second smart network card, and the second cloud computing server in sequence, and the multiple smart network cards include the second smart network card.

[0072] If the first smart network card determines that the first flow table does not contain the first flow table entry, the first smart network card can forward the message to the processor. After receiving the message, the processor can determine that the first smart network card cannot complete the fast path processing for the message, so the processor can obtain the second flow table entry from the multiple flow table entries contained in its own flow table.

[0073] It should be noted that, among the multiple flow table entries contained in the flow table of the processor, a flow table entry is used to indicate the transmission path between a cloud computing server and another cloud computing server. The transmission path between the two cloud computing servers takes the two cloud computing servers as the starting point and the end point, and passes through at least one smart network card and processor managed by the processor.

[0074] Based on this, the second flow table entry obtained by the processor is used to indicate a second transmission path between the first cloud computing server and the second cloud computing server. The second transmission path starts from the first cloud computing server and ends at the second cloud computing server, and passes through the first smart network card of the cloud gateway server, the processor of the cloud gateway server, and the second smart network card of the cloud gateway server.

[0075] After obtaining the second flow table entry, the processor can send the message to the second smart network card according to the second transmission path indicated by the second flow table entry, and control the second smart network card to send the message to the second cloud computing server. At this point, the processor of the cloud gateway server has successfully completed the slow path processing for the message, that is, successfully forwarded the message from the first cloud computing server to the second cloud computing server, but this process requires the participation of the processor of the cloud gateway server, and the processor needs to bear the burden of message forwarding.

[0076] Still as in the above example, if the smart network card 1 determines that there is no flow table entry 1 matching the message in the flow table 1, the message is sent to the CPU, wherein the CPU includes a multiinstance offload engine module and a datapath slowpath process module. After receiving the message, the datapath slowpath process module can obtain flow table entry 2 from its own flow table, wherein the flow table entry 2 obtained by the datapath slowpath process module is used to indicate the transmission path between the cloud computing server 1 and the cloud computing server 2, and the transmission path passes through the cloud computing server 1, the TOR switch 1, the smart network card 1, the CPU, the smart network card 2, the TOR switch 2 and the cloud computing server 2 in sequence.

[0077] Based on the transmission path indicated by flow entry 2, the data slow path process module sends the message to smart network card 2, so that smart network card 2 sends the message to TOR switch 2, and then TOR switch 2 sends the message to cloud computing server 2. At this point, the data slow path process module successfully forwards the message from cloud computing server 1 to cloud computing server 2.

[0078] Furthermore, after sending the message to the second cloud computing server, the processor may also perform the following operations:

[0079] After sending the message to the second cloud computing server based on the second flow table entry, the processor can generate a first flow table entry based on the second flow table entry, and update (unload) the first flow table entry to the first flow table of the first smart network card, so that the first smart network card obtains a new first flow table. It can be seen that the new first flow table includes the first flow table entry, so when the first smart network card subsequently receives a new message from the first cloud computing server to be sent to the second cloud computing server, it can directly send the new message to the second cloud computing server based on the first flow table entry, thereby completing the fast path processing for the new message.

[0080] Still as in the above example, after the data slow path process module sends the message to cloud computing server 2, the multi-instance offloading engine module can be called to enable the multi-instance offloading engine module to generate flow table entry 1 based on flow table entry 2, and refresh flow table entry 1 to flow table 1 of smart network card 1, so that smart network card 1 obtains a new flow table 1. In this way, the new flow table 1 includes flow table entry 1, and if smart network card 1 subsequently receives a new message from cloud computing server 1 to be sent to cloud computing server 2, it can quickly send the new message to cloud computing server 2 based on flow table entry 1.

[0081] Furthermore, after updating the first flow table entry to the first flow table of the first smart network card, the processor may further perform the following operations:

[0082] After updating the first flow table entry to the first flow table of the first smart network card, the processor may also generate a third flow table entry based on the second flow table entry, wherein the third flow table entry is used to indicate a third transmission path between the first cloud computing server and the second cloud computing server, and the third transmission path starts from the first cloud computing server and ends at the second cloud computing server, and passes through the second smart network card of the cloud gateway server in the middle, but does not pass through the processor of the cloud gateway server. Then, the processor may update the third flow table entry to the second flow table in the second smart network card, so that the second smart network card obtains a new second flow table. It can be seen that the new second flow table contains the third flow table entry, so when the second smart network card subsequently receives a new message from the first cloud computing server to be sent to the second cloud computing server, it can directly send the new message to the second cloud computing server based on the third flow table entry, thereby completing the fast path processing of the new message.

[0083] Still as in the above example, after the data slow path process module sends the message to cloud computing server 2, the multi-instance offloading engine module can be called to enable the multi-instance offloading engine module to generate flow entry 3 based on flow entry 2. Flow entry 3 is used to indicate the transmission path between cloud computing server 1 and cloud computing server 2, and the transmission path passes through cloud computing server 1, TOR switch 1, smart network card 2, TOR switch 2 and cloud computing server 2 in sequence. Then, the multi-instance offloading engine module can refresh flow entry 3 to flow table 2 of smart network card 2, so that smart network card 2 obtains a new flow table 2. In this way, the new flow table 2 contains flow entry 3. If smart network card 2 subsequently receives a new message from cloud computing server 1 to be sent to cloud computing server 2, it can quickly send the new message to cloud computing server 2 based on flow entry 1.

[0084] It should be understood that in this embodiment, the first smart network card can detect whether there is a first flow table entry that matches the message in the first flow table by means of match+actions, and forward the message according to the first flow table entry. Similarly, the processor can also detect whether there is a second flow table entry that matches the message in its own flow table by means of match+actions, and forward the message according to the second flow table entry. Of course, the first smart network card and the processor can also implement these operations by other means, which are not limited here.

[0085] It should also be understood that in this embodiment, the first smart network card is one of the multiple smart network cards of the cloud gateway server, and the second smart network card is another smart network card among the multiple smart network cards of the cloud gateway server, that is, the two are usually two different smart network cards inserted in the same cloud gateway server.

[0086] It should also be understood that in this embodiment, the first flow table in the first smart network card and the second flow table in the second smart network card are both derived from the flow table in the processor. In other words, the processor can generate the first flow table and the second flow table based on its own flow table, and unload the first flow table to the first smart network card and the second flow table to the second smart network card.

[0087] It should also be understood that in this embodiment, only the processor obtains the second flow table entry from its own flow table for schematic introduction. In actual applications, the processor can also directly generate the second flow table entry in real time, which is not limited here.

[0088] It should also be understood that in this embodiment, the processor can not only perform the relevant operations in step 305, but also perform the remaining operations. For example, the first flow table item is stored in the CPU in a first format (static format), and the first flow table item is stored in the first smart network card in a second format (unload format). Therefore, after obtaining the first flow table item in the first format, the CPU can convert it into the first flow table item in the second format, and then refresh it to the first flow table of the first smart network card. Similarly, for the third flow table item, the processor can also perform similar operations, which will not be repeated here. For another example, the processor can also monitor the number and speed of each smart network card such as the first smart network card or the second smart network card when forwarding messages, and adjust them in real time. For another example, the processor can also monitor the usage of flow table items in each flow table such as the first flow table and the second flow table. If some flow table items have not been used by the smart network card for too long, it means that these flow table items have aged, so the processor can remove these aged flow table items from the flow table, etc.

[0089] The above is a detailed description of the first embodiment of the message processing method provided in the embodiments of the present application. The second embodiment of the method will be introduced below. Figure 5 Another flowchart of the message processing method provided in the embodiment of the present application is as follows: Figure 5 As shown, the second embodiment of the method can be achieved by Figure 2 The cloud gateway server shown is implemented, and the cloud gateway server includes a processor and multiple smart network cards, and the processor sets (unloads) flow tables in multiple smart network cards. The second embodiment of the method includes:

[0090] 501. A first smart network card among multiple smart network cards obtains a message from a first cloud computing server to be sent to a second cloud computing server.

[0091] 502. The first smart network card detects whether the first flow table in the first smart network card contains a first flow table entry that matches the message, where the first flow table entry is used to indicate a first transmission path between the first cloud computing server and the second cloud computing server, and the first transmission path passes through the first cloud computing server, the first smart network card, and the second cloud computing server in sequence.

[0092] 503. If the first flow table includes a first flow table entry, the first intelligent network card sends the message to the second cloud computing server according to the first flow table entry.

[0093] For an introduction to steps 501 to 503, please refer to Figure 3 The relevant description parts of steps 301 to 303 in the illustrated embodiment will not be repeated here.

[0094] 504. If the first flow table does not include the first flow table entry, the first intelligent network card sends the message to the processor.

[0095] 505. The processor obtains a fourth flow table entry, and sends the message to the second cloud computing server according to the fourth flow table entry. The fourth flow table entry is used to indicate a fourth transmission path between the first cloud computing server and the second cloud computing server. The fourth transmission path passes through the first cloud computing server, the first smart network card, the processor, the first smart network card and the second cloud computing server in sequence.

[0096] If the first smart network card determines that the first flow table does not include the first flow table entry, the first smart network card can forward the message to the processor. After receiving the message, the processor can determine that the first smart network card cannot complete the fast path processing for the message, so the processor can obtain the fourth flow table entry from the multiple flow table entries included in its own flow table.

[0097] It should be noted that the fourth flow table entry obtained by the processor is used to indicate a fourth transmission path between the first cloud computing server and the second cloud computing server. The fourth transmission path starts from the first cloud computing server and ends at the second cloud computing server, and passes through the first smart network card of the cloud gateway server and the processor of the cloud gateway server.

[0098] After obtaining the fourth flow table entry, the processor can send the message to the first smart network card according to the fourth transmission path indicated by the fourth flow table entry, and control the first smart network card to send the message to the second cloud computing server. At this point, the processor of the cloud gateway server has successfully completed the slow path processing for the message, that is, successfully forwarded the message from the first cloud computing server to the second cloud computing server, but this process requires the participation of the processor of the cloud gateway server, and the processor needs to bear the burden of message forwarding.

[0099] For example, Figure 6 As shown ( Figure 6 Another structural diagram of the cloud service system provided by the embodiment of the present application), if the smart network card 1 determines that there is no flow table entry 1 matching the message in the flow table 1, the message is sent to the CPU, wherein the CPU includes a multi-instance unloading engine module and a data slow path process module. After receiving the message, the data slow path process module can obtain the flow table entry 4 from its own flow table, wherein the flow table entry 4 obtained by the data slow path process module is used to indicate the transmission path between the cloud computing server 1 and the cloud computing server 2, and the transmission path passes through the cloud computing server 1, the TOR switch 1, the smart network card 1, the CPU, the smart network card 1, the TOR switch 2 and the cloud computing server 2 in sequence.

[0100] Based on the transmission path indicated by flow table entry 4, the data slow path process module sends the message to smart network card 1, so that smart network card 1 sends the message to TOR switch 2, and then TOR switch 2 sends the message to cloud computing server 2. At this point, the data slow path process module successfully forwards the message from cloud computing server 1 to cloud computing server 2.

[0101] Furthermore, after sending the message to the second cloud computing server, the processor may also perform the following operations:

[0102] After sending the message to the second cloud computing server based on the fourth flow table entry, the processor can generate a first flow table entry based on the fourth flow table entry, and update (unload) the first flow table entry to the first flow table of the first smart network card, so that the first smart network card obtains a new first flow table. It can be seen that the new first flow table contains the first flow table entry, so when the first smart network card subsequently receives a new message to be sent to the second cloud computing server from the first cloud computing server, it can directly send the new message to the second cloud computing server based on the first flow table entry, thereby completing the fast path processing for the new message.

[0103] Still as in the above example, after the data slow path process module sends the message to cloud computing server 2, the multi-instance offloading engine module can be called to enable the multi-instance offloading engine module to generate flow table entry 1 based on flow table entry 4, and refresh flow table entry 1 to flow table 1 of smart network card 1, so that smart network card 1 obtains a new flow table 1. In this way, the new flow table 1 includes flow table entry 1, and if smart network card 1 subsequently receives a new message from cloud computing server 1 to be sent to cloud computing server 2, it can quickly send the new message to cloud computing server 2 based on flow table entry 1.

[0104] It should be understood that in this embodiment, the first smart network card can detect whether there is a first flow table item matching the message in the first flow table by means of match+actions, and forward the message according to the first flow table item. Similarly, the processor can also detect whether there is a fourth flow table item matching the message in its own flow table by means of match+actions, and forward the message according to the fourth flow table item. Of course, the first smart network card and the processor can also implement these operations by other means, which are not limited here.

[0105] It should also be understood that in this embodiment, the first flow table in the first smart network card is derived from the flow table in the processor. That is, the processor can generate the first flow table based on its own flow table and unload the first flow table to the first smart network card.

[0106] It should also be understood that in this embodiment, only the processor obtains the fourth flow table entry from its own flow table for schematic introduction. In actual applications, the processor can also directly generate the fourth flow table entry in real time, which is not limited here.

[0107] It should also be understood that in this embodiment, the processor can not only perform the related operations in step 505, but also perform the remaining operations. For example, the first flow table item is stored in the CPU in a first format (static format), and the first flow table item is stored in the first intelligent network card in a second format (unload format). Therefore, after obtaining the first flow table item in the first format, the CPU can convert it into the first flow table item in the second format, and then refresh it into the first flow table of the first intelligent network card. For another example, the processor can also monitor the number and speed of each intelligent network card such as the first intelligent network card when forwarding messages, and make real-time adjustments to them. For another example, the processor can also monitor the usage of flow table items in each flow table such as the first flow table. If some flow table items have not been used by the intelligent network card for too long, it means that these flow table items have aged, so the processor can remove these aged flow table items from the flow table, and so on.

[0108] The cloud gateway server provided in the embodiment of the present application includes a processor and multiple smart network cards, wherein the processor is used to manage multiple smart network cards, and the processor is provided with flow tables in multiple smart network cards. When the first smart network card among the multiple smart network cards in the cloud gateway server receives a message from the first cloud computing server to be sent to the second cloud computing server, the first smart network card can detect whether its first flow table contains a first flow table item that matches the message, and the first flow table item is used to indicate the first transmission path between the first cloud computing server and the second cloud computing server, and the first transmission path passes through the first cloud computing server, the first smart network card and the second cloud computing server in sequence. If the first flow table contains the first flow table item, the first smart network card can send the message to the second cloud computing server according to the first flow table item. Based on the aforementioned cloud gateway server, it can be known that the processor of the cloud gateway server unloads the flow table to the multiple smart network cards of the cloud gateway server, so the multiple smart network cards can complete the message forwarding between the cloud computing servers based on their own flow tables. Since the multiple smart network cards of the cloud gateway server can support a sufficiently large bandwidth, the cloud gateway server has the same message forwarding performance as the P4 device. And since the multiple smart network cards of the cloud gateway server can be configured with a sufficiently large memory, the multiple smart network cards can store flow tables with sufficiently large specifications, so that the cloud gateway server can be used in cloud scenarios with more flow table items and has higher application value.

[0109] Furthermore, in the embodiment of the present application, the processor of the cloud gateway server can offload the task of message forwarding to the smart network card for processing, so the performance of the processor of the cloud gateway server is no longer a decisive key to the forwarding performance of the server. Therefore, a low-end processor can be configured in the cloud gateway server, which can not only reduce the cost of the cloud gateway server, but also maintain the forwarding performance of the cloud gateway server.

[0110] Furthermore, in the related technology, the server's CPU can complete the message forwarding, and the forwarding performance is often limited by the number of CPU cores. In the scenario of traffic bursts, problems such as hash polarization often occur, causing the traffic to be concentrated on a certain core of the CPU, and then a single-core bottleneck problem occurs. In the embodiment of the present application, the traffic that needs to be forwarded by the cloud gateway server is scattered and forwarded to multiple smart network cards of the cloud gateway server, which can introduce problems such as hash polarization and single-core bottleneck.

[0111] The above is a detailed description of the message processing method provided in the embodiment of the present application. The following is a further introduction to the cloud gateway server provided in the embodiment of the present application. Figure 7 Another structural diagram of the cloud gateway server provided in the embodiment of the present application is as follows Figure 7 As shown, the cloud gateway server includes a processing module 701 (derived from a processor, that is, a software module presented by the processor) and multiple unloading modules (derived from multiple smart network cards, that is, multiple software modules presented by multiple smart network cards). The processing module 701 is used to manage multiple unloading modules. The processing module 701 is provided with a flow table in the multiple unloading modules. The first unloading module 702 in the multiple unloading modules is used to:

[0112] Obtaining a message from the first cloud computing server to be sent to the second cloud computing server;

[0113] If the first flow table in the first unloading module 702 contains a first flow table entry that matches the message, the message is sent to the second cloud computing server according to the first flow table entry. The first flow table entry is used to indicate a first transmission path between the first cloud computing server and the second cloud computing server. The first transmission path passes through the first cloud computing server, the first unloading module 702 and the second cloud computing server in sequence.

[0114] In one possible implementation, the first unloading module 702 is also used to send the message to the processing module 701 if the first flow table does not contain the first flow table entry; the processing module 701 is used to obtain the second flow table entry and send the message to the second cloud computing server according to the second flow table entry, the second flow table entry is used to indicate the second transmission path between the first cloud computing server and the second cloud computing server, the second transmission path passes through the first cloud computing server, the first unloading module 702, the processing module 701, the second unloading module 703 and the second cloud computing server in sequence, and multiple smart network cards include the second unloading module 703.

[0115] In a possible implementation, the processing module 701 is further configured to generate a first flow table entry based on the second flow table entry, and update the first flow table entry into the first flow table, so that the first unloading module 702 obtains a new first flow table.

[0116] In one possible implementation, the processing module 701 is also used to generate a third flow table entry based on the second flow table entry, and update the third flow table entry to the second flow table in the second unloading module 703, so that the second unloading module 703 obtains a new second flow table, and the third flow table entry is used to indicate a third transmission path between the first cloud computing server and the second cloud computing server, and the third transmission path passes through the first cloud computing server, the second unloading module 703 and the second cloud computing server in sequence.

[0117] In one possible implementation, the first unloading module 702 is also used to send the message to the processing module 701 if the first flow table does not contain the first flow table entry; the processing module 701 is used to obtain a fourth flow table entry and send the message to the second cloud computing server according to the fourth flow table entry, the fourth flow table entry is used to indicate a fourth transmission path between the first cloud computing server and the second cloud computing server, and the fourth transmission path passes through the first cloud computing server, the first unloading module 702, the processing module 701, the first unloading module 702 and the second cloud computing server in sequence.

[0118] In a possible implementation, the processing module 701 is further configured to generate a first flow table entry based on the fourth flow table entry, and update the first flow table entry into the first flow table, so that the first unloading module 702 obtains a new first flow table.

[0119] In one possible implementation, the first cloud computing server includes any of the following cloud instances: a physical server, a bare metal server, a virtual machine, a container, and a micro virtual machine.

[0120] It should be noted that the information interaction, implementation process, etc. between the modules / units of the above-mentioned device are based on the same concept as the method embodiment of the present application, and the technical effects they bring are the same as those of the method embodiment of the present application. For specific contents, please refer to the description in the method embodiment shown above in the embodiment of the present application, and will not be repeated here.

[0121] See also Figure 8 , Figure 8 A schematic diagram of a computing device provided in an embodiment of the present application. Figure 8 As shown, the computing device 800 (which can be used to present the aforementioned cloud gateway server) includes: a processor 801, a memory 802, a communication interface 803 and a bus 804. The processor 801, the memory 802 and the communication interface 803 are coupled via a bus (not marked in the figure). The memory 802 stores instructions. When the execution instructions in the memory 802 are executed, the computing device 800 executes the method executed by the cloud management platform in the above method embodiment.

[0122] The computing device 800 may be one or more integrated circuits configured to implement the above method, such as one or more application specific integrated circuits (ASIC), or one or more microprocessors (digital signal processors, DSP), or one or more field programmable gate arrays (FPGA), or a combination of at least two of these integrated circuit forms. For another example, when a unit in the device can be implemented in the form of a processing element scheduler, the processing element may be a general-purpose processor, such as a central processing unit (CPU) or other processor that can call a program. For another example, these units may be integrated together and implemented in the form of a system-on-a-chip (SOC).

[0123] The processor 801 may be a central processing unit (CPU), or other general-purpose processors, digital signal processors (DSP), application specific integrated circuits (ASIC), field programmable gate arrays (FPGA) or other programmable logic devices, transistor logic devices, hardware components or any combination thereof. A general-purpose processor may be a microprocessor or any conventional processor.

[0124] The memory 802 may be a volatile memory or a nonvolatile memory, or may include both volatile and nonvolatile memories. Among them, the nonvolatile memory may be a read-only memory (ROM), a programmable read-only memory (PROM), an erasable programmable read-only memory (EPROM), an electrically erasable programmable read-only memory (EEPROM), or a flash memory. The volatile memory may be a random access memory (RAM), which is used as an external cache. By way of example and not limitation, many forms of RAM are available, such as static RAM (SRAM), dynamic random access memory (DRAM), synchronous dynamic random access memory (SDRAM), double data rate synchronous dynamic random access memory (DDR SDRAM), enhanced synchronous dynamic random access memory (ESDRAM), synchronous link dynamic random access memory (SLDRAM), and direct rambus RAM (DR RAM).

[0125] The memory 802 stores executable program codes, and the processor 801 executes the executable program codes to respectively implement the functions of the aforementioned processing module, the first unloading module, the second unloading module, etc., thereby implementing the aforementioned message processing method. That is, the memory 802 stores instructions for executing the aforementioned message processing method.

[0126] The communication interface 803 uses a transceiver module such as, but not limited to, a network interface card or a transceiver to implement communication between the computing device 800 and other devices or a communication network.

[0127] In addition to the data bus, the bus 804 may also include a power bus, a control bus, a status signal bus, etc. The bus may be a peripheral component interconnect express (PCIe) bus, or an extended industry standard architecture (EISA) bus, a unified bus (Ubus or UB), a compute express link (CXL), a cache coherent interconnect for accelerators (CCIX), etc. The bus may be divided into an address bus, a data bus, a control bus, etc.

[0128] See also Fig. 9 , Fig. 9 A schematic diagram of the structure of a computing device cluster provided in an embodiment of the present application. Fig. 9 As shown, the computing device cluster 900 includes at least one computing device 800 .

[0129] like Fig. 9 As shown, the computing device cluster 900 includes at least one computing device 800. The memory 802 in one or more computing devices 800 in the computing device cluster 900 may store the same instructions for executing the above-mentioned message processing method.

[0130] In some possible implementations, the memory 802 of one or more computing devices 800 in the computing device cluster 900 may also store partial instructions for executing the above-mentioned message processing method. In other words, a combination of one or more computing devices 800 may jointly execute the above-mentioned message processing method.

[0131] It should be noted that the memory 802 in different computing devices 800 in the computing device cluster 900 can store different instructions, which are respectively used to execute part of the functions of the above-mentioned cloud gateway server. That is, the instructions stored in the memory 802 in different computing devices 800 can implement the functions of one or more modules of the processing module, the first unloading module, the second unloading module, and the like.

[0132] In some possible implementations, one or more computing devices 800 in the computing device cluster 900 may be connected via a network, which may be a wide area network or a local area network.

[0133] See also Fig.10 , Fig.10A schematic diagram of computer devices in a computer cluster provided in an embodiment of the present application being connected via a network. Fig.10 As shown, two computing devices 800A and 800B are connected via a network. Specifically, they are connected to the network via a communication interface in each computing device.

[0134] In a possible implementation, the memory in the computing device 800A stores instructions for executing the functions of the first uninstall module and the second uninstall module, etc. Meanwhile, the memory in the computing device 800B stores instructions for executing the functions of the processing module, etc.

[0135] It should be understood that Fig.10 The functions of the computing device 800A shown in FIG. 8 may also be completed by multiple computing devices. Similarly, the functions of the computing device 800B may also be completed by multiple computing devices.

[0136] The embodiment of the present application also relates to a computer storage medium, in which a program for signal processing is stored. When the program is run on a computer, the computer executes the following steps: Figure 3 or Figure 5 Steps performed by the cloud gateway server in the illustrated embodiment.

[0137] The present application also relates to a computer program product, which stores instructions, which, when executed by a computer, enable the computer to execute the following Figure 3 or Figure 5 Steps performed by the cloud gateway server in the illustrated embodiment.

[0138] Those skilled in the art can clearly understand that, for the convenience and brevity of description, the specific working processes of the systems, devices and units described above can refer to the corresponding processes in the aforementioned method embodiments and will not be repeated here.

[0139] In the several embodiments provided in the present application, it should be understood that the disclosed systems, devices and methods can be implemented in other ways. For example, the device embodiments described above are only schematic. For example, the division of the units is only a logical function division. There may be other division methods in actual implementation, such as multiple units or components can be combined or integrated into another system, or some features can be ignored or not executed. Another point is that the mutual coupling or direct coupling or communication connection shown or discussed can be an indirect coupling or communication connection through some interfaces, devices or units, which can be electrical, mechanical or other forms.

[0140] The units described as separate components may or may not be physically separated, and the components shown as units may or may not be physical units, that is, they may be located in one place or distributed on multiple network units. Some or all of the units may be selected according to actual needs to achieve the purpose of the solution of this embodiment.

[0141] In addition, each functional unit in each embodiment of the present application may be integrated into one processing unit, or each unit may exist physically separately, or two or more units may be integrated into one unit. The above-mentioned integrated unit may be implemented in the form of hardware or in the form of software functional units.

[0142] If the integrated unit is implemented in the form of a software functional unit and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of the present application is essentially or the part that contributes to the prior art or all or part of the technical solution can be embodied in the form of a software product, and the computer software product is stored in a storage medium, including a number of instructions to enable a computer device (which can be a personal computer, a server, or a network device, etc.) to perform all or part of the steps of the method described in each embodiment of the present application. The aforementioned storage medium includes: U disk, mobile hard disk, read-only memory (ROM, read-only memory), random access memory (RAM, random access memory), disk or optical disk and other media that can store program code.

Claims

1. A cloud gateway server, characterized in that: The cloud gateway server includes a processor and a plurality of smart network cards, wherein the processor is used to manage the plurality of smart network cards, and the processor is provided with a flow table in the plurality of smart network cards, and the first smart network card among the plurality of smart network cards is used to: Obtaining a message from the first cloud computing server to be sent to the second cloud computing server; If the first flow table in the first smart network card contains a first flow table entry that matches the message, the message is sent to the second cloud computing server according to the first flow table entry, and the first flow table entry is used to indicate a first transmission path between the first cloud computing server and the second cloud computing server, and the first transmission path passes through the first cloud computing server, the first smart network card, and the second cloud computing server in sequence.

2. The cloud gateway server according to claim 1, characterized in that: The first intelligent network card is further configured to send the message to the processor if the first flow table does not include the first flow table entry; The processor is used to obtain a second flow table entry and send the message to the second cloud computing server according to the second flow table entry, where the second flow table entry is used to indicate a second transmission path between the first cloud computing server and the second cloud computing server, where the second transmission path passes through the first cloud computing server, the first smart network card, the processor, the second smart network card and the second cloud computing server in sequence, and the multiple smart network cards include the second smart network card.

3. The cloud gateway server according to claim 2, characterized in that: The processor is further configured to generate the first flow table entry based on the second flow table entry, and update the first flow table entry into the first flow table, so that the first smart network card obtains a new first flow table.

4. The cloud gateway server according to claim 3, characterized in that: The processor is further used to generate a third flow table entry based on the second flow table entry, and update the third flow table entry to the second flow table in the second smart network card, so that the second smart network card obtains a new second flow table, and the third flow table entry is used to indicate a third transmission path between the first cloud computing server and the second cloud computing server, and the third transmission path passes through the first cloud computing server, the second smart network card and the second cloud computing server in sequence.

5. The cloud gateway server according to claim 1, characterized in that: The first intelligent network card is further configured to send the message to the processor if the first flow table does not include the first flow table entry; The processor is used to obtain a fourth flow table entry and send the message to the second cloud computing server according to the fourth flow table entry, wherein the fourth flow table entry is used to indicate a fourth transmission path between the first cloud computing server and the second cloud computing server, and the fourth transmission path passes through the first cloud computing server, the first smart network card, the processor, the first smart network card and the second cloud computing server in sequence.

6. The cloud gateway server according to claim 5, characterized in that: The processor is further configured to generate the first flow table entry based on the fourth flow table entry, and update the first flow table entry into the first flow table, so that the first smart network card obtains a new first flow table.

7. The cloud gateway server according to any one of claims 1 to 6, characterized in that: The first cloud computing server includes any of the following cloud instances: a physical server, a bare metal server, a virtual machine, a container, and a micro virtual machine.

8. A message processing method, characterized in that: The method is applied to a cloud gateway server, the cloud gateway server includes a processor and a plurality of smart network cards, the processor is used to manage the plurality of smart network cards, the processor is provided with a flow table in the plurality of smart network cards, and the method includes: A first smart network card among the multiple smart network cards obtains a message from the first cloud computing server to be sent to the second cloud computing server; If the first flow table in the first smart network card includes a first flow table entry that matches the message, the first smart network card sends the message to the second cloud computing server according to the first flow table entry, and the first flow table entry is used to indicate a first transmission path between the first cloud computing server and the second cloud computing server, and the first transmission path passes through the first cloud computing server, the first smart network card, and the second cloud computing server in sequence.

9. The method according to claim 8, characterized in that The method further comprises: If the first flow table does not include the first flow table entry, the first intelligent network card sends the message to the processor; The processor obtains a second flow table entry, and sends the message to the second cloud computing server according to the second flow table entry, wherein the second flow table entry is used to indicate a second transmission path between the first cloud computing server and the second cloud computing server, and the second transmission path passes through the first cloud computing server, the first smart network card, the processor, the second smart network card and the second cloud computing server in sequence, and the multiple smart network cards include the second smart network card.

10. The method according to claim 9, characterized in that The method further comprises: The processor generates the first flow table entry based on the second flow table entry, and updates the first flow table entry into the first flow table, so that the first smart network card obtains a new first flow table.

11. The method according to claim 10, characterized in that The method further comprises: The processor generates a third flow table entry based on the second flow table entry, and updates the third flow table entry to the second flow table in the second smart network card, so that the second smart network card obtains a new second flow table, and the third flow table entry is used to indicate a third transmission path between the first cloud computing server and the second cloud computing server, and the third transmission path passes through the first cloud computing server, the second smart network card, and the second cloud computing server in sequence.

12. The method according to claim 8, characterized in that The method further comprises: If the first flow table does not include the first flow table entry, the first intelligent network card sends the message to the processor; The processor obtains a fourth flow table entry, and sends the message to the second cloud computing server according to the fourth flow table entry, wherein the fourth flow table entry is used to indicate a fourth transmission path between the first cloud computing server and the second cloud computing server, and the fourth transmission path passes through the first cloud computing server, the first smart network card, the processor, the first smart network card, and the second cloud computing server in sequence.

13. The method according to claim 12, characterized in that The method further comprises: The processor generates the first flow table entry based on the fourth flow table entry, and updates the first flow table entry into the first flow table, so that the first smart network card obtains a new first flow table.

14. The method according to any one of claims 8 to 13, characterized in that: The first cloud computing server includes any of the following cloud instances: a physical server, a bare metal server, a virtual machine, a container, and a micro virtual machine.

15. A cloud gateway server, characterized in that: The cloud gateway server includes a processing module and a plurality of unloading modules, wherein the processing module is used to manage the plurality of unloading modules, the processing module is provided with a flow table in the plurality of unloading modules, and the first unloading module in the plurality of unloading modules is used to: Obtaining a message from the first cloud computing server to be sent to the second cloud computing server; If the first flow table in the first unloading module contains a first flow table entry that matches the message, the message is sent to the second cloud computing server according to the first flow table entry, and the first flow table entry is used to indicate a first transmission path between the first cloud computing server and the second cloud computing server, and the first transmission path passes through the first cloud computing server, the first unloading module, and the second cloud computing server in sequence.

16. A cloud service system, characterized in that: The cloud service system includes a first cloud computing server, a second cloud computing server, and a cloud gateway server as described in any one of claims 1 to 7.

17. A computing device cluster, characterized in that: The computing device cluster includes at least one computing device, each computing device including a processor and a memory: The memory is used to store instructions; The processor is configured to cause the computing device cluster to execute the method according to any one of claims 8 to 14 according to the instructions.

18. A computer storage medium, characterized in that: The computer storage medium stores one or more instructions, which, when executed by one or more computers, enable the one or more computers to implement the method of any one of claims 8 to 14.

19. A computer program product, characterized in that The computer program product stores instructions, which, when executed by a computer, enable the computer to implement the method according to any one of claims 8 to 14.