Data processing method and system

By splitting and distributing virtual network interface cards (NICs) and utilizing the network resources of different physical NICs to process data packets, the problem of limited ECS network capabilities was solved, thereby improving ECS ​​network performance and resource utilization.

CN121644490APending Publication Date: 2026-03-10ALIBABA CLOUD COMPUTING CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-08-30
Publication Date
2026-03-10

AI Technical Summary

Technical Problem

ECS network capabilities are limited by the network resources of the smart NICs on the host machine where the ECS compute resides, resulting in insufficient virtual machine network capabilities. Furthermore, resource utilization is uneven within the smart NIC cluster, with some resources idle while others are over-consumed.

Method used

By parsing the virtual network interface card (NIC) address in the data packet, and using the first and second virtual NICs respectively to process the network resources of the first and second physical NICs, the virtual NICs are split and remotely extended, decoupling the ECS network capabilities from the ECS local SmartNIC, and utilizing the different network resources of the ENI front-end and ENI back-end.

Benefits of technology

It enables horizontal scaling of ECS network capabilities, improves ECS network performance, solves the problem of ECS network performance being limited by local physical network card resources, and improves resource utilization.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN121644490A_ABST
    Figure CN121644490A_ABST
Patent Text Reader

Abstract

The embodiment of the invention provides a data processing method and system which are applied to the field of computers, and the method comprises the following steps: analyzing an initial data message sent by a data sending end, and obtaining a virtual network card address in the initial data message; according to the virtual network card address, a first virtual network card is determined, the initial data message is sent to the first virtual network card, and the first virtual network card utilizes network resources of a first physical network card; determining a corresponding second physical network card address according to the virtual network card address, and updating the initial data message according to the second physical network card address and the virtual network card address to obtain an updated data message; sending the update data message to a second network switching unit according to the second physical network card address, so that the second network switching unit determines a second virtual network card according to the update data message; the problem that the ECS network performance is limited by local physical network card resources is solved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The embodiments in this specification relate to the field of computer technology, and in particular to a data processing method and system. Background Technology

[0002] SmartNICs (Smart Network Interface Cards) have become the main solution for cloud vendors. They are used to offload network, storage, and security functions to smart NICs, thereby avoiding the consumption of CPU and memory on physical machines. In general, smart NICs are plugged into physical servers as physical NICs.

[0003] However, on the one hand, the network capabilities of virtual machines (or ECS, Elastic Compute Service, cloud servers) are limited by the hardware resources of SmartNICs, making it increasingly difficult to meet the network requirements of projects and gradually becoming a bottleneck; on the other hand, in the smart NIC cluster, due to the different projects handled by the virtual machines, there is a phenomenon of low overall resource utilization and uneven resource usage, that is, the vast majority of smart NIC resources are idle, while a few smart NIC resources are over-consumed and become virtual machine network bottlenecks.

[0004] In summary, the coupling of ECS computing and network resources results in ECS network capabilities being limited by the network resources of the smart network interface card on the host machine where the ECS computing resides. Summary of the Invention

[0005] In view of this, embodiments of this specification provide a data processing method. One or more embodiments of this specification also relate to two other data processing methods, a data processing system, a computing device, a computer-readable storage medium, and a computer program product, to address the technical shortcomings in the prior art where the network capabilities of an ECS are limited by the network resources of the smart network interface card on the host machine where the ECS is computed.

[0006] According to a first aspect of the embodiments of this specification, a data processing method is provided, applied to a first network switching unit at a data receiving end, comprising:

[0007] Parse the initial data packet sent by the data sender to obtain the virtual network interface card address in the initial data packet;

[0008] Based on the virtual network interface card (NIC) address, a first virtual NIC is determined, and the initial data packet is sent to the first virtual NIC, wherein the first virtual NIC utilizes the network resources of the first physical NIC;

[0009] Based on the virtual network interface card (NIC) address, the corresponding second physical NIC address is determined, and based on the second physical NIC address and the virtual NIC address, the initial data packet is updated to obtain an updated data packet.

[0010] Based on the address of the second physical network interface card (NIC), the update data packet is sent to the second network switching unit, so that the second network switching unit determines the second virtual NIC based on the update data packet. The second virtual NIC is used to perform network processing on the update data packet and utilizes the network resources of the second physical NIC.

[0011] According to a second aspect of the embodiments of this specification, a data processing method is provided, applied to a second network switching unit at a data receiving end, comprising:

[0012] Parse the update data packet to obtain the virtual network interface card address corresponding to the update data packet, wherein the update data packet is obtained by sending it through the first network switching unit of the data receiving end using the above-described data processing method;

[0013] Based on the virtual network interface card address, determine the target virtual network interface card identifier, and based on the target virtual network interface card identifier, send the update data packet to the target virtual network interface card;

[0014] The update data packet is sent to the target virtual machine using the target virtual network interface card.

[0015] According to a third aspect of the embodiments of this specification, a data processing method is provided, applied at a data sending end, comprising:

[0016] Determine the initial data and use the routing table to determine the virtual network interface address of the data receiving end;

[0017] Based on the virtual network interface card address of the data receiving end and the front-end location information table corresponding to the data receiving end, determine the initial physical network interface card addresses corresponding to the multiple initial virtual network interfaces of the data receiving end.

[0018] Using a preset selection method, the first virtual network interface card (NIC) of the data receiving end is determined from multiple initial virtual NICs of the data receiving end;

[0019] The initial data is encapsulated based on the virtual network card address of the first virtual network card and the first physical network card address corresponding to the first virtual network card to obtain an initial data packet;

[0020] Based on the first physical network card address, the initial data packet is sent to the first network switching unit of the data receiving end, wherein the initial data packet is used to forward from the first network switching unit of the data receiving end to the second network switching unit of the data receiving end through the above data processing method.

[0021] According to a fourth aspect of the embodiments of this specification, a data processing system is provided, including a data transmitting end, a first network switching unit of a data receiving end, and a second network switching unit of the data receiving end, wherein...

[0022] The data sending end is used to determine initial data and determine the virtual network interface card (NIC) address of the data receiving end through a routing table; based on the virtual NIC address of the data receiving end and the front-end location information table corresponding to the data receiving end, it determines the initial physical NIC addresses corresponding to the multiple initial virtual NICs of the data receiving end; using a preset selection method, it determines the first virtual NIC of the data receiving end from the multiple initial virtual NICs; based on the virtual NIC address of the first virtual NIC and the first physical NIC address corresponding to the first virtual NIC, it encapsulates the initial data to obtain an initial data packet; and based on the first physical NIC address, it sends the initial data packet to the first network switching unit of the data receiving end.

[0023] The first network switching unit is configured to parse the initial data packet sent by the data sender to obtain the virtual network interface card (NIC) address in the initial data packet; determine a first virtual NIC based on the virtual NIC address, and send the initial data packet to the first virtual NIC, wherein the first virtual NIC utilizes the network resources of a first physical NIC; determine a corresponding second physical NIC address based on the virtual NIC address, and update the initial data packet based on the second physical NIC address and the virtual NIC address to obtain an updated data packet; and send the updated data packet to the second network switching unit based on the second physical NIC address.

[0024] The second network switching unit is used to parse the update data packet to obtain the virtual network interface card address corresponding to the update data packet; determine the target virtual network interface card identifier according to the virtual network interface card address, and send the update data packet to the target virtual network interface card according to the target virtual network interface card identifier; and use the target virtual network interface card to send the update data packet to the target virtual machine.

[0025] According to a fifth aspect of the embodiments of this specification, a computing device is provided, comprising:

[0026] Memory and processor;

[0027] The memory is used to store computer programs / instructions, and the processor is used to execute the computer programs / instructions, which, when executed by the processor, implement the steps of the above-described data processing method.

[0028] According to a sixth aspect of the embodiments of this specification, a computer-readable storage medium is provided that stores a computer program / instructions that, when executed by a processor, implement the steps of the data processing method described above.

[0029] According to a seventh aspect of the embodiments of this specification, a computer program product is provided, including a computer program / instructions that, when executed by a processor, implement the steps of the data processing method described above.

[0030] The data processing method provided in one embodiment of this specification utilizes a first network switching unit at the data receiving end to parse the initial data packet sent by the data sending end, obtain the virtual network interface card (NIC) address in the initial data packet, and determine a first virtual NIC based on the virtual NIC address. When the first network switching unit can forward the update data packet to a second network switching unit, and the second network switching unit forwards it to a second virtual NIC, the function of the virtual NIC can be jointly implemented by the first and second virtual NICs. This splits and extends the virtual NICs. Based on the first virtual NIC utilizing the network resources of the first physical NIC and the second virtual NIC utilizing the network resources of the second physical NIC, different physical NICs are used to carry the extended first and second virtual NICs, thereby decoupling ECS ​​computing and network resources. This solves the problem of ECS network performance being limited by local physical NIC resources, achieves horizontal expansion of ECS network capabilities, and improves ECS network capabilities. Attached Figure Description

[0031] Figure 1 This is a schematic diagram illustrating a data processing method provided in one embodiment of this specification.

[0032] Figure 2 This is a flowchart of a data processing method for a first network switching unit applied to a data receiving end, provided in one embodiment of this specification;

[0033] Figure 3 This is a flowchart of a data processing method for a second network switching unit applied to a data receiving end, provided in one embodiment of this specification;

[0034] Figure 4 This is a flowchart illustrating a data processing method applied to a data sending end, as provided in one embodiment of this specification.

[0035] Figure 5This is a flowchart illustrating a process for receiving data packets using a data processing method, as provided in one embodiment of this specification.

[0036] Figure 6 This is a flowchart illustrating a data processing method for sending data packets, provided in one embodiment of this specification.

[0037] Figure 7a This is a flowchart illustrating another process for sending data packets using a data processing method, as provided in one embodiment of this specification.

[0038] Figure 7b This is a flowchart of another data processing method for receiving data packets provided in one embodiment of this specification;

[0039] Figure 8 This is a schematic diagram of the structure of a data processing system provided in one embodiment of this specification;

[0040] Figure 9 This is a structural block diagram of a computing device provided in one embodiment of this specification. Detailed Implementation

[0041] Many specific details are set forth in the following description to provide a full understanding of this specification. However, this specification can be implemented in many other ways than those described herein, and those skilled in the art can make similar extensions without departing from the spirit of this specification. Therefore, this specification is not limited to the specific implementations disclosed below.

[0042] The terminology used in one or more embodiments of this specification is for the purpose of describing particular embodiments only and is not intended to be limiting of the one or more embodiments of this specification. The singular forms “a,” “described,” and “the” as used in one or more embodiments of this specification and the appended claims are also intended to include the plural forms unless the context clearly indicates otherwise. It should also be understood that the term “and / or” as used in one or more embodiments of this specification refers to and includes any or all possible combinations of one or more associated listed items.

[0043] It should be understood that although the terms first, second, etc., may be used to describe various information in one or more embodiments of this specification, such information should not be limited to these terms. These terms are only used to distinguish information of the same type from one another. For example, first may also be referred to as second without departing from the scope of one or more embodiments of this specification, and similarly, second may also be referred to as first. Depending on the context, the word "if" as used herein may be interpreted as "when," "when," or "in response to a determination."

[0044] Furthermore, it should be noted that the user information (including but not limited to user device information, user personal information, etc.) and data (including but not limited to data used for analysis, stored data, displayed data, etc.) involved in one or more embodiments of this specification are all information and data authorized by the user or fully authorized by all parties. Moreover, the collection, use and processing of related data must comply with the relevant laws, regulations and standards of the relevant countries and regions, and corresponding operation entry points are provided for users to choose to authorize or refuse.

[0045] First, the terms and concepts used in one or more embodiments of this specification will be explained.

[0046] Virtual Machine: A computer system simulated by software that can run multiple independent instances of an operating system on a single physical computer.

[0047] Virtual Switch: A virtual machine allows virtual machines to communicate with each other on the same physical host or across physical hosts.

[0048] ECS: Elastic Compute Service, a cloud server. In cloud services, ECS can be considered a type of virtual machine.

[0049] SmartNIC: Smart Network Interface Card, a programmable accelerator designed to optimize data center networking, security, and storage.

[0050] ENI: Elastic Network Interfaces, a type of virtual network interface that provides network interfaces and IP (Internet Protocol) addresses for ECS instances in a private network. It is an ECS network ingress and egress device carried on a SmartNIC, and is essentially a virtual network interface device for ECS.

[0051] If cloud service providers continuously phase out old SmartNICs and use next-generation SmartNICs with more resources to meet the network needs of some customers, they will bear very high R&D, equipment, and maintenance costs, and will lack scalability and sustainability. Therefore, how to meet the network needs of customer projects while reducing cloud platform costs and improving resource utilization is a major challenge for cloud service providers.

[0052] This specification provides a data processing method, and also relates to two other data processing methods, a data processing system, a computing device, a computer-readable storage medium, and a computer program product, which will be described in detail in the following embodiments.

[0053] See Figure 1 , Figure 1 A schematic diagram of a data processing method according to an embodiment of this specification is shown.

[0054] Specifically, the data processing method in the embodiments of this specification is applied to a data processing system, including a data sending end, a first network switching unit of the data receiving end, and a second network switching unit of the data receiving end.

[0055] In this scenario, the data sender can be a source ECS. The source ECS sends a data packet to its local physical network interface card (NIC). After receiving the data packet, the network switching unit on the source ECS's local physical NIC parses the data packet and queries the routing table to obtain the virtual NIC address of the data receiver. Based on the virtual NIC address and the front-end location information table, it determines the first physical NIC address and the first virtual NIC. The network switching unit on the source ECS's local physical NIC encapsulates the data packet based on the first physical NIC address (the address corresponding to the remote SmartNIC) and the first virtual NIC to obtain the initial data packet. Then, according to the first physical NIC address, it sends the initial data packet to the first physical NIC of the data receiver.

[0056] The network switching unit (i.e., the first network switching unit) of the first physical network card at the data receiving end receives and parses the initial data packet sent by the data sending end (source ECS) to obtain the virtual network card address (the address corresponding to the ENI front-end) of the initial data packet; based on the virtual network card address, it determines the first virtual network card and sends the initial data packet to the first virtual network card, wherein the first virtual network card utilizes the network resources of the first physical network card; based on the virtual network card address, it determines the corresponding second physical network card address, and updates the initial data packet based on the second physical network card address and the virtual network card address to obtain an updated data packet; the updated data packet is sent to the second network switching unit so that the second network switching unit determines the second virtual network card based on the updated data packet, wherein the second virtual network card is used to perform network processing on the updated data packet, and the second virtual network card utilizes the network resources of the second physical network card.

[0057] The update data packet is sent to the second physical network interface card (NIC) according to the address of the second physical NIC (the address corresponding to the local SmartNIC). The second network switching unit of the second physical NIC receives and parses the update data packet to obtain the virtual NIC address corresponding to the update data packet. Based on the virtual NIC address, the target virtual NIC identifier is determined, and the update data packet is sent to the target virtual NIC based on the target virtual NIC identifier. The update data packet is then sent to the target virtual machine (ECS) using the target virtual NIC.

[0058] In practical applications, ENI can be split into multiple ENI front-ends, and the ENI back-end has a one-to-one correspondence with ECS. The multiple ENI front-ends utilize the network resources of different remote SmartNICs, while the ENI back-end utilizes the network resources of the local SmartNIC.

[0059] The data processing method provided in the embodiments of this specification decouples the ECS network capabilities from the local ECS SmartNIC, utilizes the ENI front-end to carry network functions, and retains the ECS network inbound / outbound channel capabilities in the ENI back-end, thereby enabling ENI to be extended remotely. The ECS network performance depends on the network device carrying the ENI front-end and is no longer limited by the local resources of the SmartNIC, thus realizing the horizontal expansion of the ECS network capabilities.

[0060] See Figure 2 , Figure 2 A flowchart of a data processing method for a first network switching unit applied to a data receiving end, according to an embodiment of this specification, is shown, specifically including the following steps.

[0061] Step 202: Parse the initial data packet sent by the data sender to obtain the virtual network card address in the initial data packet.

[0062] In this specification, the data receiving end can be understood as the target virtual machine or target ECS that receives data packets and uses the services in the target virtual machine or target ECS to process the data packets accordingly. The data sending end can be understood as the source virtual machine or source ECS that sends data packets and calls the services of the data receiving end by sending data packets. The first network switching unit can be understood as the network device or software component that performs network forwarding at the data receiving end, such as a switch, virtual switch, router, firewall, or bridge in a virtual machine network. In this embodiment, the first network switching unit is a virtual switch as an example to describe the data processing method in detail. The virtual switch is a virtual switch deployed on a SmartNIC. It is a software device that specifically handles ECS network traffic and implements the ENI logical function.

[0063] Data packets consist of a header and the actual data. It should be noted that when a virtual switch forwards and processes data packets, it encapsulates a VXLAN (Virtual Extensible LAN) header on top of the original data packet. The header of the original data packet is called the inner header, and the VXLAN header is called the outer header.

[0064] The initial data packet can be understood as the data packet sent by the data sender through the network switching unit. Therefore, the initial data packet includes an outer header and an inner header. The first physical network card address can be understood as the target IP address in the outer header of the initial data packet. This first physical network card address is the network location information of the first physical network card. The location of the first physical network card can be determined using this first physical network card address. It should be noted that the physical network card is a SmartNIC, and one physical machine has one physical network card. The virtual network card address can be understood as the target MAC (Media Access Control Address, physical address) address in the inner header of the initial data packet. This virtual network card address is the location representation information of the virtual network card. The location of the virtual network card can be determined using this virtual network card address. The virtual network card is an ENI, and one virtual machine corresponds to one ENI. However, multiple virtual machines can be virtualized on a single physical machine using virtualization technology.

[0065] Specifically, the initial data packet is sent to the first physical network card of the data receiving end through the first physical network card address in the outer header of the initial data packet. Then, the first network switching unit of the first physical network card is used to parse the initial data packet sent by the data sending end and obtain the virtual network card address in the inner header of the initial data packet.

[0066] In specific implementation, the first network switching unit of the data receiving end is used to send the initial data packet to the first virtual network card, and after updating and encapsulating the initial data packet, forward the updated data packet to the second network switching unit of the data receiving end, so that the second network switching unit can forward the updated data packet to the target virtual machine through the second virtual network card.

[0067] This method splits the logical functions of the ENI on the target virtual machine into two parts. One part of the logical functions is implemented using the ENI frontend, which can be understood as the first virtual network interface card. For example, the ENI frontend carries the stateful and frequently iterated characteristics of the ENI, such as routing, security groups, traffic mirroring, and other functions that depend on flows or sessions. The other part is implemented using the ENI backend, which can be understood as the second virtual network interface card. For example, the ENI backend can serve as a network ingress / egress interface for connecting to the target virtual machine, carrying the stateless and fixed-change characteristics, such as the basic functions of the network interface card, such as multi-queue and rate limiting.

[0068] It should be noted that the MAC address of the ENI remains unchanged before and after the split. That is, the MAC addresses of the front-end and back-end of the split ENI are the same as those of the original ENI. For example, if the ENI on the target virtual machine is split into a first virtual network interface and a second virtual network interface, the MAC addresses of the first and second virtual network interfaces are the same. The first virtual network interface uses the network resources of the first physical network interface, and the second virtual network interface uses the network resources of the second physical network interface. Therefore, although the MAC addresses of the first and second virtual network interfaces are the same, the physical network interface addresses of the first and second physical network interfaces are different. Thus, the corresponding virtual network interface on the physical network interface can be determined by the physical network interface address and the virtual network interface address.

[0069] In practical applications, when splitting the ENI of an ECS, the ENI can be divided into multiple ENI front-ends and one ENI back-end. Multiple ENI front-ends can utilize the network resources of different physical network cards. In this way, within the scope of the ECS network capability, the network capabilities of the ECS can be horizontally expanded by relying on the network resources of the different physical network cards corresponding to multiple ENI front-ends, rather than being limited to the network resources of the physical network on the host machine where the ECS is located.

[0070] Step 204: Determine the first virtual network card based on the virtual network card address, and send the initial data packet to the first virtual network card, wherein the first virtual network card utilizes the network resources of the first physical network card.

[0071] The first physical network card can be understood as any physical network card other than the physical network card on the host machine where the target virtual machine is located.

[0072] Specifically, by determining the location of the first physical network interface card (NIC) through its address, as mentioned in the above embodiment, multiple virtual machines can be virtualized on a single physical machine using virtualization technology. Based on the principle that one physical machine corresponds to one physical NIC and one virtual machine corresponds to one virtual NIC, multiple virtual NICs corresponding to multiple virtual machines can utilize the network resources of the same physical NIC. Thus, based on determining the first physical NIC, the first virtual NIC is determined from the multiple virtual NICs corresponding to the first physical NIC using its address; thereby, the initial data packet is forwarded to the first virtual NIC.

[0073] In one or more embodiments of this specification, the first physical network interface card (NIC) stores an address identifier mapping table. Using this address identifier mapping table and the determined virtual NIC address, the first virtual NIC can be accurately identified. Specific implementation methods are described below:

[0074] The step of determining the first virtual network interface card (NIC) based on the virtual NIC address includes:

[0075] Determine the address identifier mapping table corresponding to the first physical network card, wherein the address identifier mapping table includes the mapping relationship between the virtual network card address and the first virtual network card identifier;

[0076] The first virtual network card is determined based on the address identifier mapping table and the virtual network card address.

[0077] Specifically, determining the first virtual network interface card (NIC) based on the address identifier mapping table and the virtual NIC address includes:

[0078] Based on the correspondence in the address identifier correspondence table, determine the first virtual network interface identifier corresponding to the virtual network interface address;

[0079] The first virtual network card is determined based on the first virtual network card identifier.

[0080] The address identifier mapping table includes the correspondence between virtual network card addresses and first virtual network card identifiers.

[0081] Specifically, the first physical network card address can be used to determine the corresponding first physical network card. The first physical network card stores an address identifier mapping table, which can be understood as a hash table. The key in the hash table is the virtual network card address of the virtual network card, and the value is the virtual network card identifier of the virtual network card on the first physical network card.

[0082] For example, virtual network card address 1 corresponds to first virtual network card identifier 1, and virtual address 2 corresponds to first virtual network card identifier 2. Therefore, by using the address identifier correspondence table of the first physical network card and the correspondence between the virtual network card address and the first virtual network card identifier, the first virtual network card identifier corresponding to the virtual network card address can be determined. Thus, the first virtual network card can be determined through the first virtual network card identifier.

[0083] The data processing method provided in the embodiments of this specification can accurately determine the first virtual network card identifier by using the address identifier mapping table corresponding to the first physical network card and the virtual network card address, and quickly determine the first virtual network card by using the first virtual network card identifier.

[0084] Step 206: Determine the corresponding second physical network interface card (NIC) address based on the virtual NIC address, and update the initial data packet based on the second physical NIC address and the virtual NIC address to obtain an updated data packet.

[0085] The second physical network interface card (NIC) address can be understood as the physical NIC address of the target virtual machine, which is also the physical NIC address of the ENI backend in the above implementation.

[0086] In one or more embodiments of this specification, when the initial data packet is processed using the first virtual network interface card (NIC), the initial data packet is updated using the physical NIC address corresponding to the physical NIC in the ENI backend and the virtual NIC address to obtain an updated data packet, which is then sent to the second network unit. Specific implementation methods are as follows:

[0087] The step of updating the initial data packet based on the second physical network interface card address and the virtual network interface card address to obtain an updated data packet includes:

[0088] By determining the second physical network card address as the target physical address in the outer header of the initial data packet, the initial data packet is updated to obtain the updated data packet.

[0089] The target physical address is the target IP address in the outer header of the data packet.

[0090] Specifically, in the above embodiment, the virtual network interface card address of the ENI backend is the same as the virtual network interface card address of the ENI frontend. Therefore, based on the virtual network interface card address, the second physical network interface card address corresponding to the second physical network interface card of the ENI backend is determined, and the initial data packet is updated and encapsulated using the second physical network interface card address and the virtual network interface card address to obtain an updated data packet. At this time, the target IP address of the outer header of the updated data packet is the second physical network interface card address.

[0091] The data processing method provided in the embodiments of this specification determines the address of the second physical network card as the target IP address in the outer header of the initial data packet, so as to correctly forward the update data packet to the second network switching unit corresponding to the second physical network card through the target IP address.

[0092] In one or more embodiments of this specification, a pre-configured receive-forward rule is used to process the initial data packet to obtain a forwarding processing result. This forwarding processing result is then encapsulated into an updated data packet, which is then processed in the second network switching unit using the forwarding processing result. Specific implementation methods are described below:

[0093] The step of updating the initial data packet based on the second physical network interface card address and the virtual network interface card address to obtain an updated data packet includes:

[0094] The initial data packet is processed using pre-configured receive and forwarding rules to obtain the forwarding processing result of the initial data packet;

[0095] The initial data packet is updated based on the second physical network interface card address, the virtual network interface card address, and the forwarding processing result to obtain the updated data packet.

[0096] The receiving and forwarding rules include, but are not limited to, rules for access control list (ACL) checks, routing, and traffic management. In the embodiments of this specification, the receiving data packets are filtered based on the session state information of the data packets. For example, if the receiving and forwarding rule is that the data packet has session state information, the receiving and forwarding rule can be ignored. The session state information is used to indicate that the data packet is response data to the data packet sent to the target virtual machine. This ensures that although the receiving and forwarding rules restrict the entry of some data packets, the response data to the data packets sent by itself is not restricted.

[0097] Specifically, the initial data packets are processed according to the receiving and forwarding rules, and the forwarding processing results can be encapsulated into the updated data packets. When the updated data packets are forwarded to the second network switching unit, the second network switching unit can process the updated data packets based on the forwarding processing results.

[0098] The data processing method provided in the embodiments of this specification separates and stores the receiving and forwarding rules (security groups, routing, etc.) from the session state information. The receiving and forwarding rules are stored in the first network switching unit. The initial data packets are flexibly forwarded using these receiving and forwarding rules, and the session state information is carried with the packets. This avoids the complexity and performance overhead caused by the synchronization of the state of the first network switching unit.

[0099] In one or more embodiments of this specification, when an initial data packet is forwarded from a first network switching unit to a second network switching unit, the initial data packet is re-encapsulated using the address of the second physical network interface card (NIC) to obtain an updated data packet. Specific implementation methods are described below:

[0100] The step of determining the corresponding second physical network interface card (NIC) address based on the virtual NIC address includes:

[0101] A backend location information table for the data receiving end is determined. Based on the backend location information table of the data receiving end and the virtual network interface card (NIC) address, the second physical NIC address corresponding to the virtual NIC address is determined. The backend location information table includes the correspondence between the virtual NIC address and the second physical NIC address.

[0102] Table 1 shows a backend location information table for a data receiver. Each entry in the backend location information table consists of: the ENI identifier, i.e., the ENI MAC address, which is the virtual network card address of the virtual network card in the above implementation; the entry type, indicating whether the table is location information for the ENI backend or the ENI frontend; and the network location information, i.e., the IP address of the SmartNIC where the ENI backend is located.

[0103]

[0104] Table 1

[0105] Specifically, by using the backend location information table of the data receiving end and the virtual network card address, the second physical network card address corresponding to the virtual network card address can be determined according to the correspondence between the virtual network card address and the second physical network card address in the backend location information table.

[0106] In practical applications, when an ECS instance is created, an ENI backend is allocated to it. This ENI backend utilizes the network resources of the physical network card on the host machine where the ECS instance resides. An ENI frontend is created on the physical network card of a physical machine other than the host machine. The backend location information table of the ENI backend is issued on the virtual switch where the ENI frontend resides (i.e., the first network switching unit), and the frontend location information table of the ENI frontend is issued on the virtual switch where the ENI backend resides (i.e., the second network switching unit). Thus, the backend location information table of the data receiving end can be determined in the first network switching unit.

[0107] The data processing method provided in the embodiments of this specification enables the first network switching unit to accurately match the second physical network card address corresponding to the virtual network card address through the backend location information table, thereby avoiding incorrect routing of data packets during network transmission and improving the accuracy of data transmission.

[0108] Step 208: Based on the address of the first physical network card, send the update data packet to the second network switching unit, so that the second network switching unit determines the second virtual network card based on the update data packet, wherein the second virtual network card is used to perform network processing on the update data packet, and the second virtual network card utilizes the network resources of the second physical network card.

[0109] The second network switching unit is the virtual switch where the ENI backend is located in the above embodiment. The second virtual network card can be understood as the virtual network card corresponding to the target virtual machine, that is, the ENI backend in the above embodiment.

[0110] Specifically, based on the second physical address in the outer header of the update data packet, the update data packet is sent to the second physical network interface card (NIC). The second network switching unit of the second physical NIC then parses the received update data packet to obtain the virtual NIC address in the inner header of the update data packet. Using this virtual NIC address, the second virtual NIC is determined, and the update data packet is processed using the second virtual NIC.

[0111] In one or more embodiments of this specification, the first network switching unit of the data receiving end may also receive a response data packet returned by the second network switching unit of the data receiving end, thereby sending a target response data packet after processing the response data packet to the data sending end. Specific implementation methods are as follows:

[0112] The data processing method further includes:

[0113] Parse the response data packet sent by the second network switching unit of the data receiving end to obtain the virtual network card address in the response data packet;

[0114] Based on the virtual network interface card address, the first virtual network interface card is determined, and the response data packet is sent to the first virtual network interface card;

[0115] The response data packet is encapsulated to obtain the target response data packet, and the target response data packet is sent to the data sending end using the sending and forwarding rules.

[0116] Specifically, when the second network switching unit at the data receiving end receives a response data packet from the target virtual machine in response to the update data packet, it forwards the response data packet to the first network switching unit, which then returns the response data packet to the data sending end.

[0117] In specific implementation, the second network switching unit determines the first physical network interface card (NIC) address in the outer header of the response data packet and the virtual NIC address in the inner header. It then identifies the first physical NIC based on the first physical NIC address and sends the response data packet to the first physical NIC. The first network switching unit of the first physical NIC parses the response data packet to determine the virtual NIC address in the inner header of the response data packet. Based on the virtual NIC address, it identifies the first virtual NIC corresponding to the virtual NIC address from among the multiple virtual NICs corresponding to the first physical NIC. When the response data packet is sent to the first virtual NIC, the first virtual NIC is used to perform network processing on the response data packet.

[0118] The first network switching unit obtains the target response data packet by encapsulating the response data packet, and sends the target response data packet to the data sender based on the sending and forwarding rules.

[0119] The data processing method provided in the embodiments of this specification uses a first network switching unit to send response data packets to a first virtual network card. Based on the network resources of the first physical network card, the network resources of the target virtual machine are not limited by the second physical network card, thereby improving the network capabilities of the target virtual machine.

[0120] In one or more embodiments of this specification, the target IP address of the outer header and the target MAC address of the inner header of the response data packet are determined, that is, the response data packet is encapsulated by determining the first virtual network interface card (NIC) of the data sender and the first physical NIC address corresponding to the first virtual NIC. Specific implementation methods are described below:

[0121] The encapsulation of the response data packet to obtain the target response data packet includes:

[0122] The virtual network interface card address of the data sending end is determined by the routing table;

[0123] Based on the virtual network interface card address of the data sending end and the front-end location information table corresponding to the data sending end, determine the initial physical network interface card addresses corresponding to the multiple initial virtual network interfaces of the data sending end.

[0124] Using a preset selection method, the first virtual network interface card (NIC) of the data sending end is determined from multiple initial virtual NICs of the data sending end;

[0125] The response data packet is encapsulated based on the virtual network card address of the first virtual network card and the first physical network card address corresponding to the first virtual network card to obtain the target response data packet.

[0126] Specifically, each virtual switch has a routing table. When a virtual switch needs to send a response data packet, it queries the routing table on the virtual machine switch to obtain the MAC address of the data sender's ENI, i.e., the virtual network card address, and uses this MAC address as the destination MAC address in the inner header of the response data packet.

[0127] Based on the front-end location information table corresponding to the data sender, the initial physical network card addresses corresponding to the multiple initial virtual network cards of the data sender are determined. Table 2 shows one type of front-end location information table for the data sender; the meaning of each item can be found in the above embodiment and will not be repeated here. It should be noted that when the first network switching unit returns response data to the data sender, if the ENI of the data sender is also split into an ENI front-end and an ENI back-end, the response data is first returned to the first network switching unit of the data sender where the ENI front-end is located. The first network switching unit of the data sender then uses the data processing method applied to the first network switching unit of the data receiver to send the response data to the second network switching unit of the data sender.

[0128] The MAC addresses of the split ENI front-ends are consistent. However, since different ENI front-ends are deployed on different SmartNICs, one ENI MAC address can correspond to multiple different SmartNICs in the front-end location information table shown in Table 2.

[0129]

[0130] Table 2

[0131] Using the aforementioned front-end location information table and the virtual network interface card (NIC) addresses determined through the routing table, the initial physical NIC addresses corresponding to the multiple initial virtual NICs at the data sending end are determined. Since the response data packet needs to be sent to an ENI front-end, the first virtual NIC at the data sending end needs to be determined from the multiple split ENI front-ends using a preset selection method. The first physical NIC address corresponding to the first virtual NIC is then used as the target IP address in the outer header of the response data packet, thereby obtaining the target response data packet.

[0132] The data processing method provided in the embodiments of this specification, through a routing table and a front-end location information table, can correctly determine the address location of the data sender when the data sender returns data using the first network switching unit item of the data receiver. This allows for accurate encapsulation of the response data packet using the correct address location, ensuring that the target response data packet can be correctly routed to the data sender.

[0133] In one or more embodiments of this specification, the preset selection method can be a 5-tuple hash calculation method. This method calculates the results of multiple initial physical network interface card (NIC) addresses corresponding to multiple initial virtual NICs, and based on these results, determines the first physical NIC address from the multiple initial physical NIC addresses, and then determines the first virtual NIC of the data sending end corresponding to the first physical NIC address. Specific implementation methods are as follows:

[0134] The step of determining the first virtual network interface card (NIC) of the data transmitter from multiple initial virtual NICs using a preset selection method includes:

[0135] The calculation results of each initial physical network card address are obtained by using a 5-tuple hash calculation method based on the multiple initial virtual network card addresses corresponding to the multiple initial physical network card addresses.

[0136] Based on the calculation results, the first physical network interface card (NIC) address is determined from the plurality of initial physical NIC addresses;

[0137] From the multiple initial virtual network cards of the data sending end, determine the first virtual network card of the data sending end that corresponds to the address of the first physical network card.

[0138] The quintuple refers to the source IP address, source MAC address, destination IP address, destination MAC address, and transport layer protocol.

[0139] Specifically, based on the aforementioned front-end location information table, multiple initial physical network interface card (NIC) addresses corresponding to multiple initial virtual NICs can be determined. These initial physical NIC addresses are then identified as candidate target IP addresses. Based on the determined target MAC addresses, candidate 5-tuples are identified using the candidate target IP addresses. A hash function is applied, and these candidate 5-tuples are converted into a fixed-length hash value (calculation result) using 5-tuple hash calculation. The calculation result with the smaller hash value can be selected from the candidate target IP addresses to determine the first physical NIC address, thus identifying the first virtual NIC at the data sending end corresponding to the first physical NIC address.

[0140] Of course, in practical applications, the default selection method can also be to select the physical network card with the smaller load among multiple initial physical network cards as the first physical network card, which is not limited here.

[0141] The data processing method provided in the embodiments of this specification can select a better first physical network card address from multiple initial physical network card addresses according to the actual situation by flexibly setting the preset selection mode, and then use the first physical network card corresponding to the first physical network card address for subsequent processing.

[0142] In one or more embodiments of this specification, to ensure state synchronization, when encapsulating the response data packet, the session state information of the response data packet is encapsulated into the response data packet to obtain the target response data packet. Specific implementation methods are described below:

[0143] The step of parsing the response data packet sent by the second network switching unit of the data receiving end to obtain the virtual network interface card address in the response data packet includes:

[0144] The response data packet sent by the second network switching unit of the data receiving end is parsed to obtain the virtual network card address and the session state information of the response data packet.

[0145] The encapsulation of the response data packet to obtain the target response data packet includes:

[0146] The session state information of the response data packet is encapsulated into the response data packet to obtain the target response data packet.

[0147] Specifically, when the response data packet sent by the second network switching unit at the data receiving end is parsed and it is determined that the response data packet contains session state information, the first network switching unit at the data receiving end also encapsulates the session state information of the response data packet into the response data packet to obtain the target response data packet, so that session state information is carried in both the second network switching unit and the first network switching unit.

[0148] The data processing method provided in the embodiments of this specification, when both the second network switching unit and the first network switching unit carry session state information with the packet, can not only avoid matching the forwarding rules based on the session state information by setting it so as to forward data packets quickly and accurately, but also reduce the number of times the first network switching unit and the second network switching unit synchronize their states, thus significantly improving the performance of the network switching unit.

[0149] The data processing method provided in this specification uses the first network switching unit of the data receiving end to parse the initial data packet sent by the data sending end, obtain the first physical network card address and the virtual network card address in the initial data packet, and determine the first virtual network card based on this. When the first network switching unit can forward the update data packet to the second virtual network card using the second network switching unit, the function of the virtual network card can be jointly implemented by the first virtual network card and the second virtual network card. The virtual network card is split and remote. Based on the first virtual network card using the network resources of the first physical network card and the second virtual network card using the network resources of the second physical network card, the remote first virtual network card is carried by different physical network cards, thereby decoupling ECS ​​computing and network resources, solving the problem that ECS network performance is limited by local physical network card resources, realizing horizontal expansion of ECS network capabilities, and improving ECS ​​network capabilities.

[0150] See Figure 3 , Figure 3 A flowchart of a data processing method for a second network switching unit applied at a data receiving end, according to an embodiment of this specification, is shown, specifically including the following steps.

[0151] Step 302: Parse the update data packet to obtain the virtual network card address corresponding to the update data packet, wherein the update data packet is obtained by sending it through the above data processing method using the first network switching unit of the data receiving end.

[0152] Step 304: Determine the target virtual network interface card (NIC) identifier based on the virtual NIC address, and send the update data packet to the target virtual NIC based on the target virtual NIC identifier.

[0153] The specific implementation is similar to that in the above embodiments, where the first network switching unit of the data receiving end parses the initial data packet and sends the initial data packet to the first virtual network card, and will not be described again here.

[0154] Step 306: Using the target virtual network interface card, send the update data packet to the target virtual machine.

[0155] The second virtual network interface card (NIC) is the ENI backend in the above embodiment, which is connected to the target virtual machine. Therefore, update data packets are sent to the target virtual machine through the second virtual NIC.

[0156] In one or more embodiments of this specification, after the target virtual machine processes the update data packet, it returns corresponding data. When returning the response data, the first physical network card address is determined based on the virtual network card address of the update data packet and the stored front-end location information table corresponding to the data receiving end, and the response data is encapsulated to obtain a response data packet. Specific implementation methods are as follows:

[0157] After sending the target data packet to the target virtual machine, the process further includes:

[0158] The response data returned by the target virtual machine is determined, and the initial physical network interface addresses corresponding to the multiple initial virtual network interfaces of the data receiving end are determined according to the virtual network interface address and the front-end location information table corresponding to the data receiving end.

[0159] Using a preset selection method, the first virtual network interface card (NIC) of the data receiving end is determined from multiple initial virtual NICs of the data receiving end;

[0160] The response data is encapsulated based on the virtual network card address of the first virtual network card and the first physical network card address corresponding to the first virtual network card to obtain a response data packet;

[0161] Based on the first physical network card address, the response data packet is returned to the first network switching unit of the data receiving end, so that the first network switching unit of the data receiving end can use the above-described data processing method to return the response data packet to the data sending end.

[0162] In the specific implementation of the above embodiments, the first network switching unit of the data receiving end returns the response data packet to the data sending end in a similar manner, which will not be described in detail here.

[0163] In one or more embodiments of this specification, session state information can be encapsulated into response data packets, thereby storing session state information on the local SmartNIC to support stateful data processing. Specific implementation methods are described below:

[0164] The step of encapsulating the response data according to the virtual network interface card address of the first virtual network interface card and the first physical network interface card address corresponding to the first virtual network interface card to obtain a response data packet includes:

[0165] The response data is encapsulated based on the virtual network card address of the first virtual network card, the first physical network card address corresponding to the first virtual network card, and the session state information to obtain the response data packet.

[0166] Specifically, by encapsulating session state information into response data packets, state is carried with the packet, thereby supporting stateful data processing and avoiding the complexity of synchronizing states between devices as well as the computational and storage overhead caused by session synchronization.

[0167] The data processing method provided in this specification uses the second network switching unit of the data receiving end to determine the second virtual network card, and accurately forwards the update data packet to the target virtual machine through the second virtual network card. In the absence of the first virtual network card using the resources of the second physical network card, the resource burden of the second physical network card is reduced, so that the network performance of the target virtual machine is no longer limited by the local resources of the second physical network card, thereby improving the network performance of the target virtual machine.

[0168] See Figure 4 , Figure 4 A flowchart of a data processing method applied to a data sending end, according to an embodiment of this specification, is shown, specifically including the following steps.

[0169] Step 402: Determine the initial data and determine the virtual network card address of the data receiving end through the routing table.

[0170] Step 404: Based on the virtual network card address of the data receiving end and the front-end location information table corresponding to the data receiving end, determine the initial physical network card address corresponding to the multiple initial virtual network cards of the data receiving end.

[0171] Step 406: Using a preset selection method, determine the first virtual network card of the data receiving end from among the multiple initial virtual network cards of the data receiving end.

[0172] Step 408: Encapsulate the initial data according to the virtual network card address of the first virtual network card and the first physical network card address corresponding to the first virtual network card to obtain the initial data packet.

[0173] Step 410: Based on the first physical network card address, send the initial data packet to the first network switching unit of the data receiving end, wherein the initial data packet is used to forward from the first network switching unit of the data receiving end to the second network switching unit of the data receiving end through the above data processing method.

[0174] In the specific implementation of the above embodiments, the first network switching unit of the data receiving end returns the response data packet to the data sending end, which also needs to select from multiple initial virtual network cards, and will not be described in detail here.

[0175] The data processing method provided in the embodiments of this specification involves the data sending end sending an initial data packet to the first network switching unit of the data receiving end, and then forwarding it to the first physical network card corresponding to the first physical network card address. This allows the network resources of the first physical network card to be used to carry the first virtual network card. Compared with the case where both the first virtual network card and the second virtual network card use the network resources of the second physical network card, this method can greatly reduce the network burden of the second physical network card and thus improve the network performance of the target virtual machine on the second physical network card.

[0176] See Figure 5 , Figure 5 A flowchart illustrating a process for receiving data packets using a data processing method according to an embodiment of this specification is shown.

[0177] Specifically, based on the destination IP address (i.e., the first physical network interface card address) in the outer header of the data packet, the first physical network interface card (SmartNIC) is determined. The first network switching unit of the first physical network interface card (the front-end virtual switch to which the ENI front-end belongs) receives the data packet sent by the data sender that is to enter the virtual network interface card. By parsing the data packet, the target MAC address (i.e., the virtual network interface card address) in the inner header of the data packet is obtained, and the L2-fwd table of the first physical network interface card (i.e., the address identifier correspondence table in the above embodiment) is obtained. Through the destination MAC address and the L2-fwd table of the first physical network interface card, the ENI front-end identifier is determined, and the data packet is forwarded to the corresponding ENI front-end according to the ENI front-end identifier.

[0178] By using the ENI backend location information table associated with the ENI frontend, the SmartNIC IP (second physical network card address) where the ENI backend is located is obtained. The data packet is then encapsulated again to obtain an update data packet, which is then sent to the second network switching unit of the SmartNIC where the ENI backend is located. The second network switching unit also parses the update data packet and, through similar steps as described above, determines the ENI backend corresponding to the destination MAC address using the L2-fwd table of the second physical network card. Finally, the data packet is sent to the target ECS through the ENI backend.

[0179] See Figure 6 , Figure 6 A flowchart illustrating a data processing method for sending data packets according to an embodiment of this specification is shown.

[0180] The target ECS sends a data packet. The backend virtual switch (second network switching unit) where the ENI backend is located receives the data packet. The backend virtual switch looks up the ENI frontend location information table associated with the ENI backend to obtain the ENI frontend location information. Based on the ENI frontend location information, it encapsulates the packet (modifies the destination MAC address in the inner header and specifies the destination IP address in the outer header), and routes the data packet correctly to the first physical network interface card (the physical network interface card where the ENI frontend is located) according to the destination IP address in the outer header. The frontend virtual switch (first network switching unit) where the ENI frontend is located determines the ENI frontend according to the L2-fwd table of the first physical network interface card. The frontend virtual switch forwards the data packet to the data receiving end by looking up the routing table according to the project rules (routing, ACL) associated with the ENI frontend.

[0181] In practical applications, the ENI front-end can reuse SmartNICs with low online resource utilization, avoiding the additional cost of deploying new devices. Multiple idle SmartNICs can be combined into a virtual cluster, with the SmartNICs in the virtual cluster carrying the ENI front-end. When it is necessary to select one ENI front-end from the multiple split ENI front-ends to forward data packets, the five-tuple hash calculation method can be used to achieve network load sharing and flexible scaling, supporting the expansion of ECS network performance.

[0182] The data processing method provided in the embodiments of this specification decouples the ENI front-end and back-end, carrying the ENI front-end on a separate device to enhance network inbound / outbound processing capabilities. It utilizes the decoupling of ECS computing and network resources and achieves expansion of ENI density and network inbound / outbound performance levels through network resource pooling. It improves key network performance of ECS, including new connection performance, concurrent connection count, and elastic network interface card (NIC) count. At the same time, NFV network elements (Network Functions Virtualization, in the NFV architecture, network functions are abstracted into software components, which are called "NFV network elements") based on ECS can also obtain corresponding performance benefits.

[0183] See Figure 7a , Figure 7a This specification illustrates a flowchart of another data processing method for sending data packets according to an embodiment of the present specification; specifically, it includes the following steps.

[0184] Step 702: ECS sends data packets.

[0185] Step 704: Encapsulate the session state information into the data packet.

[0186] Step 706: Include session state information in the packet.

[0187] Step 708: Process data packets based on packet status and local project forwarding rules.

[0188] The project forwarding rules can be understood as the receiving and forwarding rules in the above embodiments.

[0189] in, Figure 7b This specification illustrates a flowchart of another data processing method for receiving data packets according to an embodiment of the present specification; specifically, it includes the following steps.

[0190] Step 710: Locate the local project forwarding rules and encapsulate the project rule processing results into a data packet.

[0191] The result of the project rule processing can be understood as the forwarding processing result in the above embodiment.

[0192] Step 712: Processing results of the project rules carried in the package.

[0193] Step 714: Process data packets based on the processing results of the accompanying project rules and session state information.

[0194] Step 716: Forward the processed data packets to ECS.

[0195] This specification provides a scheme based on "separate storage of project forwarding rules and state". The project forwarding rules are stored on the project forwarding device (remote SmartNIC, i.e., the physical network card carrying the ENI front-end in the above embodiment), and the session state information is stored on the upstream and downstream forwarding nodes (remote SmartNIC and local SmartNIC, where the local SmartNIC is the physical network card carrying the ENI back-end in the above embodiment). At the same time, the project forwarding device and the upstream and downstream forwarding nodes cooperate with each other to complete the entire project processing logic by carrying information with the packet.

[0196] The data processing method provided in the embodiments of this specification adopts a mechanism of separating project forwarding rules and session state and carrying state with packets. The network forwarding rules (security groups, routes, etc.) are stored separately from the session state. The network forwarding rules are stored in the remote SmartNIC, and the session state information is stored in the local SmartNIC. By carrying state with packets, the processing of stateful projects is supported. This avoids the complexity of synchronizing states between devices and the computation and storage overhead caused by session synchronization.

[0197] Corresponding to the above method embodiments, this specification also provides data processing system embodiments. Figure 8 A schematic diagram of the structure of a data processing system 800 according to one embodiment of this specification is shown. Figure 8As shown, the system includes a data transmitter 802, a first network switching unit 804 of the data receiver, and a second network switching unit 806 of the data receiver.

[0198] The data sending end 802 is used to determine initial data and determine the virtual network interface card (NIC) address of the data receiving end through a routing table; based on the virtual NIC address of the data receiving end and the front-end location information table corresponding to the data receiving end, it determines the initial physical NIC addresses corresponding to the multiple initial virtual NICs of the data receiving end; using a preset selection method, it determines the first virtual NIC of the data receiving end from the multiple initial virtual NICs; based on the virtual NIC address of the first virtual NIC and the first physical NIC address corresponding to the first virtual NIC, it encapsulates the initial data to obtain an initial data packet; and based on the first physical NIC address, it sends the initial data packet to the first network switching unit 804 of the data receiving end.

[0199] The first network switching unit 804 is configured to parse the initial data packet sent by the data sending end 802 to obtain the virtual network interface card (NIC) address in the initial data packet; determine a first virtual NIC based on the virtual NIC address, and send the initial data packet to the first virtual NIC, wherein the first virtual NIC utilizes the network resources of the first physical NIC; determine the corresponding second physical NIC address based on the virtual NIC address, and update the initial data packet based on the second physical NIC address and the virtual NIC address to obtain an updated data packet; and send the updated data packet to the second network switching unit 806 based on the second physical NIC address.

[0200] The second network switching unit 806 is used to parse the update data packet to obtain the virtual network interface card address corresponding to the update data packet; determine the target virtual network interface card identifier according to the virtual network interface card address, and send the update data packet to the target virtual network interface card according to the target virtual network interface card identifier; and use the target virtual network interface card to send the update data packet to the target virtual machine.

[0201] Optionally, the first network switching unit 804 is further configured to:

[0202] Determine the address identifier mapping table corresponding to the first physical network card, wherein the address identifier mapping table includes the mapping relationship between the virtual network card address and the first virtual network card identifier;

[0203] The first virtual network card is determined based on the address identifier mapping table and the virtual network card address.

[0204] Optionally, the first network switching unit 804 is further configured to:

[0205] Based on the correspondence in the address identifier correspondence table, determine the first virtual network interface identifier corresponding to the virtual network interface address;

[0206] The first virtual network card is determined based on the first virtual network card identifier.

[0207] Optionally, the first network switching unit 804 is further configured to:

[0208] A backend location information table for the data receiving end is determined. Based on the backend location information table of the data receiving end and the virtual network interface card (NIC) address, the second physical NIC address corresponding to the virtual NIC address is determined. The backend location information table includes the correspondence between the virtual NIC address and the second physical NIC address.

[0209] Optionally, the first network switching unit 804 is further configured to:

[0210] By determining the second physical network card address as the target physical address in the outer header of the initial data packet, the initial data packet is updated to obtain the updated data packet.

[0211] Optionally, the first network switching unit 804 is further configured to:

[0212] The initial data packet is processed using pre-configured receive and forwarding rules to obtain the forwarding processing result of the initial data packet;

[0213] The initial data packet is updated based on the second physical network interface card address, the virtual network interface card address, and the forwarding processing result to obtain the updated data packet.

[0214] Optionally, the first network switching unit 804 is further configured to:

[0215] Parse the response data packet sent by the second network switching unit of the data receiving end to obtain the virtual network card address in the response data packet;

[0216] Based on the virtual network interface card address, the first virtual network interface card is determined, and the response data packet is sent to the first virtual network interface card;

[0217] The response data packet is encapsulated to obtain the target response data packet, and the target response data packet is sent to the data sending end using the sending and forwarding rules.

[0218] Optionally, the first network switching unit 804 is further configured to:

[0219] The virtual network interface card address of the data sending end is determined by the routing table;

[0220] Based on the virtual network interface card address of the data sending end and the front-end location information table corresponding to the data sending end, determine the initial physical network interface card addresses corresponding to the multiple initial virtual network interfaces of the data sending end.

[0221] Using a preset selection method, the first virtual network interface card (NIC) of the data sending end is determined from multiple initial virtual NICs of the data sending end;

[0222] The response data packet is encapsulated based on the virtual network card address of the first virtual network card and the first physical network card address corresponding to the first virtual network card to obtain the target response data packet.

[0223] Optionally, the first network switching unit 804 is further configured to:

[0224] The calculation results of each initial physical network card address are obtained by using a 5-tuple hash calculation method based on the multiple initial virtual network card addresses corresponding to the multiple initial physical network card addresses.

[0225] Based on the calculation results, the first physical network interface card (NIC) address is determined from the plurality of initial physical NIC addresses;

[0226] From the multiple initial virtual network cards of the data sending end, determine the first virtual network card of the data sending end that corresponds to the address of the first physical network card.

[0227] Optionally, the first network switching unit 804 is further configured to:

[0228] The response data packet sent by the second network switching unit of the data receiving end is parsed to obtain the virtual network card address and the session state information of the response data packet.

[0229] The session state information of the response data packet is encapsulated into the response data packet to obtain the target response data packet.

[0230] Optionally, the second network switching unit 806 is further configured to:

[0231] The response data returned by the target virtual machine is determined, and the initial physical network interface addresses corresponding to the multiple initial virtual network interfaces of the data receiving end are determined according to the virtual network interface address and the front-end location information table corresponding to the data receiving end.

[0232] Using a preset selection method, the first virtual network interface card (NIC) of the data receiving end is determined from multiple initial virtual NICs of the data receiving end;

[0233] The response data is encapsulated based on the virtual network card address of the first virtual network card and the first physical network card address corresponding to the first virtual network card to obtain a response data packet;

[0234] Based on the first physical network card address, the response data packet is returned to the first network switching unit of the data receiving end, so that the first network switching unit of the data receiving end can be used to return the response data packet to the data sending end.

[0235] Optionally, the second network switching unit 806 is further configured to:

[0236] The response data is encapsulated based on the virtual network card address of the first virtual network card, the first physical network card address corresponding to the first virtual network card, and the session state information to obtain the response data packet.

[0237] The data processing system provided in this specification uses a first network switching unit at the data receiving end to parse the initial data packet sent by the data sending end, obtain the virtual network interface card (NIC) address in the initial data packet, and determine the first virtual NIC based on the virtual NIC address. When the first network switching unit can forward the update data packet to the second virtual NIC using a second network switching unit, the function of the virtual NIC can be jointly implemented by the first and second virtual NICs. This splits and extends the virtual NICs. Based on the first virtual NIC utilizing the network resources of the first physical NIC and the second virtual NIC utilizing the network resources of the second physical NIC, different physical NICs are used to carry the extended first virtual NIC, thus decoupling ECS ​​computing and network resources. This solves the problem of ECS network performance being limited by local physical NIC resources, achieves horizontal expansion of ECS network capabilities, and improves ECS network capabilities.

[0238] The above is an illustrative scheme of a data processing system according to this embodiment. It should be noted that the technical solution of this data processing system and the technical solution of the data processing method described above belong to the same concept. For details not described in detail in the technical solution of the data processing system, please refer to the description of the technical solution of the data processing method described above.

[0239] Figure 9 A structural block diagram of a computing device 900 according to one embodiment of this specification is shown. The components of the computing device 900 include, but are not limited to, a memory 910 and a processor 920. The processor 920 is connected to the memory 910 via a bus 930, and a database 950 is used to store data.

[0240] The computing device 900 also includes an access device 940, which enables the computing device 900 to communicate via one or more networks 960. Examples of such networks include a Public Switched Telephone Network (PSTN), a Local Area Network (LAN), a Wide Area Network (WAN), a Personal Area Network (PAN), or a combination of communication networks such as the Internet. Access device 940 may include one or more of any type of wired or wireless network interface (e.g., network interface card (NIC)), such as IEEE 802.11 Wireless Local Area Network (WLAN) interface, Wi-MAX (Worldwide Interoperability for Microwave Access) interface, Ethernet interface, Universal Serial Bus (USB) interface, cellular network interface, Bluetooth interface, and Near Field Communication (NFC).

[0241] In one embodiment of this specification, the above-described components of the computing device 900 and Figure 9 Other components, not shown, can also be connected to each other, for example, via a bus. It should be understood that... Figure 9 The block diagram of the computing device shown is for illustrative purposes only and is not intended to limit the scope of this specification. Those skilled in the art can add or replace other components as needed.

[0242] The computing device 900 can be any type of stationary or mobile computing device, including mobile computers or mobile computing devices (e.g., tablet computers, personal digital assistants, laptop computers, notebook computers, netbooks, etc.), mobile phones (e.g., smartphones), wearable computing devices (e.g., smartwatches, smart glasses, etc.) or other types of mobile devices, or stationary computing devices such as desktop computers or personal computers (PCs). The computing device 900 can also be a mobile or stationary server.

[0243] The processor 920 is used to execute the following computer program / instructions, which, when executed by the processor, implement the steps of the above-described data processing method.

[0244] The various embodiments in this specification are described in a progressive manner. Similar or identical parts between embodiments can be referred to mutually. Each embodiment focuses on describing the differences from other embodiments. In particular, the computing device embodiments are basically similar to the data processing method embodiments, so the description is relatively simple; relevant parts can be referred to the descriptions of the data processing method embodiments.

[0245] An embodiment of this specification also provides a computer-readable storage medium storing a computer program / instructions that, when executed by a processor, implement the steps of the above-described data processing method.

[0246] The various embodiments in this specification are described in a progressive manner. Similar or identical parts between embodiments can be referred to mutually. Each embodiment focuses on describing the differences from other embodiments. In particular, the computer-readable storage medium embodiments are basically similar to the data processing method embodiments, so the description is relatively simple; relevant parts can be referred to the descriptions of the data processing method embodiments.

[0247] An embodiment of this specification also provides a computer program product, including a computer program / instructions that, when executed by a processor, implement the steps of the above-described data processing method.

[0248] The above is an illustrative scheme of a computer program product according to this embodiment. It should be noted that the technical solution of this computer program product and the technical solution of the data processing method described above belong to the same concept. For details not described in detail in the technical solution of the computer program product, please refer to the description of the technical solution of the data processing method described above.

[0249] The foregoing has described specific embodiments of this specification. Other embodiments are within the scope of the appended claims. In some cases, the actions or steps recited in the claims may be performed in a different order than that shown in the embodiments and may still achieve the desired result. Furthermore, the processes depicted in the drawings do not necessarily require the specific or sequential order shown to achieve the desired result. In some embodiments, multitasking and parallel processing are possible or may be advantageous.

[0250] The computer instructions include computer program code, which may be in the form of source code, object code, executable file, or certain intermediate forms. The computer-readable medium may include: any entity or device capable of carrying the computer program code, recording media, USB flash drive, portable hard drive, magnetic disk, optical disk, computer memory, read-only memory (ROM), random access memory (RAM), electrical carrier signals, telecommunication signals, and software distribution media, etc. It should be noted that the content included in the computer-readable medium may be appropriately added or removed according to the requirements of patent practice. For example, in some regions, according to patent practice, computer-readable media may not include electrical carrier signals and telecommunication signals.

[0251] It should be noted that, for the sake of simplicity, the foregoing method embodiments are all described as a series of actions. However, those skilled in the art should understand that the embodiments in this specification are not limited to the described order of actions, because according to the embodiments in this specification, some steps can be performed in other orders or simultaneously. Furthermore, those skilled in the art should also understand that the embodiments described in this specification are all preferred embodiments, and the actions and modules involved are not necessarily essential to the embodiments in this specification.

[0252] In the above embodiments, the descriptions of each embodiment have different focuses. For parts not described in detail in a certain embodiment, please refer to the relevant descriptions of other embodiments.

[0253] The preferred embodiments disclosed above are merely illustrative of this specification. The optional embodiments do not exhaustively describe all details, nor do they limit the invention to the specific implementations described. Clearly, many modifications and variations can be made based on the embodiments described herein. These embodiments are selected and specifically described in this specification to better explain the principles and practical applications of the embodiments, thereby enabling those skilled in the art to better understand and utilize this specification. This specification is limited only by the claims and their full scope and equivalents.

Claims

1. A data processing method applied to a first network switching unit of a data receiving end, comprising: parsing an initial data packet sent by a data sending end to obtain a virtual network card address in the initial data packet; determining a first virtual network card according to the virtual network card address and sending the initial data packet to the first virtual network card, wherein the first virtual network card utilizes network resources of a first physical network card; determining a corresponding second physical network card address according to the virtual network card address and updating the initial data packet according to the second physical network card address and the virtual network card address to obtain an updated data packet; and sending the updated data packet to a second network switching unit according to the second physical network card address, so that the second network switching unit determines a second virtual network card according to the updated data packet, wherein the second virtual network card is used for network processing of the updated data packet and utilizes network resources of a second physical network card. 2.The data processing method of claim 1, wherein the determining the first virtual network card according to the virtual network card address comprises: determining a corresponding address identifier table corresponding to the first physical network card, wherein the address identifier table comprises a corresponding relationship between a virtual network card address and a first virtual network card identifier; and determining the first virtual network card according to the address identifier table and the virtual network card address. 3.The data processing method of claim 2, wherein the determining the first virtual network card according to the address identifier table and the virtual network card address comprises: determining the first virtual network card identifier corresponding to the virtual network card address according to the corresponding relationship of the address identifier table; and determining the first virtual network card according to the first virtual network card identifier. 4.The data processing method of claim 1, wherein the determining the corresponding second physical network card address according to the virtual network card address comprises: determining a back-end location information table of the data receiving end, and determining the second physical network card address corresponding to the virtual network card address according to the back-end location information table of the data receiving end and the virtual network card address, wherein the back-end location information table comprises a corresponding relationship between the virtual network card address and the second physical network card address. 5.The data processing method of claim 1, wherein the updating the initial data packet according to the second physical network card address and the virtual network card address to obtain an updated data packet comprises: updating the initial data packet by determining the second physical network card address as a target physical address of an outer header of the initial data packet to obtain the updated data packet. 6.The data processing method of claim 1, wherein the updating the initial data packet according to the second physical network card address and the virtual network card address to obtain an updated data packet comprises: processing the initial data packet by using a pre-configured receiving forwarding rule to obtain a forwarding processing result of the initial data packet; and updating the initial data packet according to the forwarding processing result to obtain the updated data packet. ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ According to the second physical network card address, the virtual network card address and the forwarding processing result, the initial data message is updated to obtain the updated data message.

7. The data processing method of claim 1, further comprising: parsing a response data message sent by a second network switching unit of the data receiving end to obtain a virtual network card address in the response data message; determining a first virtual network card according to the virtual network card address and sending the response data message to the first virtual network card; encapsulating the response data message to obtain a target response data message and sending the target response data message to the data sending end using a sending forwarding rule.

8. The data processing method of claim 7, wherein the encapsulating the response data message to obtain a target response data message comprises: determining a virtual network card address of the data sending end through a routing table; determining initial physical network card addresses corresponding to a plurality of initial virtual network cards of the data sending end according to the virtual network card address of the data sending end and a front-end location information table corresponding to the data sending end; determining a first virtual network card of the data sending end from the plurality of initial virtual network cards of the data sending end using a preset selection method; encapsulating the response data message to obtain a target response data message according to a virtual network card address of the first virtual network card and a first physical network card address corresponding to the first virtual network card.

9. The data processing method of claim 8, wherein the determining a first virtual network card of the data sending end from the plurality of initial virtual network cards of the data sending end using a preset selection method comprises: obtaining a calculation result of each initial physical network card address using a five-tuple hash calculation method according to a plurality of initial physical network card addresses corresponding to the plurality of initial virtual network cards; determining a first physical network card address from the plurality of initial physical network card addresses according to the calculation result; determining a first virtual network card of the data sending end corresponding to the first physical network card address from the plurality of initial virtual network cards of the data sending end.

10. The data processing method of any one of claims 7-9, wherein the parsing a response data message sent by a second network switching unit of the data receiving end to obtain a virtual network card address in the response data message comprises: parsing a response data message sent by a second network switching unit of the data receiving end to obtain the virtual network card address in the response data message and session state information of the response data message; the encapsulating the response data message to obtain a target response data message comprises: encapsulating the session state information of the response data message into the response data message to obtain the target response data message.

11. A data processing method applied to a second network switching unit of a data receiving end, comprising: parsing an update data packet to obtain a virtual network card address corresponding to the update data packet, wherein the update data packet is sent by the first network switching unit of the data receiving end by using the data processing method in any one of claims 1-6; determining a target virtual network card identifier according to the virtual network card address, and sending the update data packet to a target virtual network card according to the target virtual network card identifier; sending the update data packet to a target virtual machine by using the target virtual network card.

12. The data processing method of claim 11, after the step of sending the target data packet to the target virtual machine, further comprising: determining response data returned by the target virtual machine, and determining initial physical network card addresses respectively corresponding to a plurality of initial virtual network cards of the data receiving end according to the virtual network card address and a front-end location information table corresponding to the data receiving end; determining a first virtual network card of the data receiving end from the plurality of initial virtual network cards of the data receiving end by using a preset selection manner; encapsulating the response data according to the virtual network card address of the first virtual network card and a first physical network card address corresponding to the first virtual network card to obtain a response data packet; returning the response data packet to the first network switching unit of the data receiving end according to the first physical network card address, so as to return the response data packet to the data sending end by using the first network switching unit of the data receiving end.

13. The data processing method of claim 12, wherein the step of encapsulating the response data according to the virtual network card address of the first virtual network card and the first physical network card address corresponding to the first virtual network card to obtain a response data packet comprises: encapsulating the response data according to the virtual network card address of the first virtual network card, the first physical network card address corresponding to the first virtual network card, and session state information to obtain the response data packet.

14. A data processing method applied to a data sending end, comprising: determining initial data, and determining a virtual network card address of a data receiving end by using a routing table; determining initial physical network card addresses respectively corresponding to a plurality of initial virtual network cards of the data receiving end according to the virtual network card address of the data receiving end and a front-end location information table corresponding to the data receiving end; determining a first virtual network card of the data receiving end from the plurality of initial virtual network cards of the data receiving end by using a preset selection manner; encapsulating the initial data according to the virtual network card address of the first virtual network card and a first physical network card address corresponding to the first virtual network card to obtain an initial data packet; sending the initial data packet to the first network switching unit of the data receiving end according to the first physical network card address, wherein the initial data packet is used to be forwarded from the first network switching unit of the data receiving end to a second network switching unit of the data receiving end by using the data processing method in any one of claims 1-10.

15. The data processing method of claim 14, wherein the multiple initial virtual network cards respectively correspond to different physical network card addresses, and each initial virtual network card utilizes network resources of a different physical network card.

16. A data processing system comprising a data sending end, a first network switching unit of a data receiving end, and a second network switching unit of the data receiving end, wherein the data sending end is configured to determine initial data, determine a virtual network card address of the data receiving end through a routing table, determine multiple initial virtual network card addresses corresponding to the multiple initial virtual network cards of the data receiving end according to the virtual network card address of the data receiving end and a front-end location information table corresponding to the data receiving end, determine a first virtual network card of the data receiving end from the multiple initial virtual network cards of the data receiving end through a preset selection mode, encapsulate the initial data according to the virtual network card address of the first virtual network card and a first physical network card address corresponding to the first virtual network card, and obtain an initial data packet; the data sending end is configured to send the initial data packet to the first network switching unit of the data receiving end according to the first physical network card address; the first network switching unit is configured to parse the initial data packet sent by the data sending end, and obtain a virtual network card address in the initial data packet; the first network switching unit is configured to determine a first virtual network card according to the virtual network card address, send the initial data packet to the first virtual network card, and determine a second physical network card address corresponding to the virtual network card address according to the virtual network card address, update the initial data packet according to the second physical network card address and the virtual network card address, and obtain an updated data packet; the first network switching unit is configured to send the updated data packet to the second network switching unit according to the second physical network card address; the second network switching unit is configured to parse the updated data packet, obtain a virtual network card address corresponding to the updated data packet, determine a target virtual network card identifier according to the virtual network card address, send the updated data packet to a target virtual network card according to the target virtual network card identifier, and send the updated data packet to a target virtual machine by using the target virtual network card.

17. A computing device comprising: a memory and a processor; the memory is configured to store computer programs / instructions, and the processor is configured to execute the computer programs / instructions, which, when executed by the processor, implement the steps of the data processing method of any one of claims 1-15.

18. A computer readable storage medium storing computer programs / instructions, which, when executed by a processor, implement the steps of the data processing method of any one of claims 1-15.

19. A computer program product comprising computer programs / instructions, which, when executed by a processor, implement the steps of the data processing method of any one of claims 1-15. ​ ​ ​ ​ ​ ​ ​ ​