Data processing method and device, routing equipment, storage medium and program product

By using the relationship between the recorded service identifier and the forwarding path or determining the forwarding path based on anycast mechanism, the correctness and integrity of information transmission during the forwarding process of computing tasks in computing intensive applications is solved, and efficient and reliable information transmission is achieved.

CN119728532APending Publication Date: 2025-03-28CHINA TELECOM CORP LTD TECHNOLOGY INNOVATION CENTER +1

Patent Information

Application Number
CN202411973509.4
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-12-30
Publication Date
2025-03-28

AI Technical Summary

Technical Problem

In the process of forwarding computing tasks in computing intensive applications, the prior art cannot guarantee the correctness and integrity of information transmission, resulting in insufficient reliability and stability of information transmission.

Method used

By obtaining the target service identifier data packet in the computing task sent by the client, using the relationship between the recorded service identifier and the forwarding path, a first forwarding path is determined or a second forwarding path is determined based on anycast mechanism, and the data packet is sent to the data center.

Benefits of technology

It realizes dynamic allocation of tasks in multi-data center scenarios to meet load balancing and resource acquisition requirements, ensure that computing tasks are guided to the optimal data center, and maintain stateful communications, improving the reliability of computing task allocation.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119728532A_ABST
    Figure CN119728532A_ABST
Patent Text Reader

Abstract

The invention relates to a data processing method and device, routing equipment, a storage medium and a program product. The method comprises the steps that a calculation task sent by a client side is acquired, and the calculation task carries a data packet of a target service identifier; when it is determined that a first forwarding path corresponding to the target service identifier exists according to the recorded relationship between the service identifier and the forwarding path, sending the data packet to a data center according to the first forwarding path; and under the condition of determining that the target service identifier does not have a corresponding target forwarding path according to the recorded relationship between the service identifier and the forwarding path, determining a second forwarding path based on an anycast mechanism, and sending the data packet to a data center according to the second forwarding path. By adopting the method, efficient forwarding can be ensured for the calculation task of the calculation-intensive application, the correctness and integrity of information transmission are ensured, and the reliability and stability of information transmission are improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of communication technology, and in particular to a data processing method, apparatus, routing device, storage medium and program product. Background Art

[0002] Compute-intensive applications refer to those applications that rely mainly on computing power and processor speed during processing. These applications are limited by the user's local computing resources, and their computing tasks usually require the use of more powerful computing devices in the data center to complete.

[0003] Currently, in the process of forwarding computing tasks to data centers, if efficient forwarding is to be achieved, there is a defect that the forwarding nodes are variable, and the correctness and integrity of information transmission cannot be guaranteed.

[0004] For computing tasks of computing-intensive applications, how to ensure efficient forwarding, guarantee the correctness and integrity of information transmission, and improve the reliability and stability of information transmission remains an urgent issue to be solved. Summary of the invention

[0005] Based on this, it is necessary to provide a data processing method, device, routing equipment, storage medium and program product that can address the above-mentioned technical problems and can solve computing tasks for computing-intensive applications, ensure efficient forwarding, guarantee the correctness and integrity of information transmission, and improve the reliability and stability of information transmission.

[0006] In a first aspect, a data processing method is provided, the method comprising:

[0007] Acquire a computing task sent by a client, wherein the computing task carries a data packet with a target service identifier;

[0008] When it is determined that the target service identifier has a corresponding first forwarding path according to the relationship between the recorded service identifier and the forwarding path, the data packet is sent to the data center according to the first forwarding path;

[0009] When it is determined that there is no corresponding target forwarding path for the target service identifier according to the relationship between the recorded service identifier and the forwarding path, a second forwarding path is determined based on the anycast mechanism, and the data packet is sent to the data center according to the second forwarding path.

[0010] In one of the embodiments, determining the second forwarding path based on the anycast mechanism includes:

[0011] A target egress routing device is determined based on an anycast mechanism, and a second forwarding path is determined based on an ingress routing device and a target egress routing device; wherein the ingress routing device is communicatively connected to a client; and the target egress routing device is located in a data center and is communicatively connected to each routing device in a wide area network where the ingress routing device is located.

[0012] In one embodiment, the method further comprises:

[0013] receiving service identifier entries of multiple different egress routing devices sent by any egress routing device, and determining that the multiple different egress routing devices are egress routing devices supporting the anycast mechanism;

[0014] Accordingly, determining the target egress routing device based on the anycast mechanism includes:

[0015] Based on the anycast mechanism, a target egress routing device is determined from egress routing devices that support the anycast mechanism.

[0016] In one of the embodiments, after determining the egress routing device based on the anycast mechanism, the method further includes:

[0017] The relationship between the target service identifier and the second forwarding path is recorded in the relationship between the service identifier and the forwarding path.

[0018] In one embodiment, sending the data packet to the data center according to the first forwarding path includes:

[0019] Encapsulating the segment identifier list of the first forwarding path in the message header of the data packet, and starting the sending task of the data packet after the encapsulation is completed, so as to send the data packet to the data center; wherein the segment identifier list includes the segment identifier corresponding to each forwarding node on the first forwarding path; the segment identifier is used to instruct the next forwarding node to forward along the path information indicated by the segment identifier;

[0020] Accordingly, sending the data packet to the data center according to the second forwarding path includes:

[0021] A segment identifier list of the second forwarding path is encapsulated in the message header of the data packet, and the sending task of the data packet is started after the encapsulation is completed to send the data packet to the data center; wherein the segment identifier list includes the segment identifier corresponding to each forwarding node on the second forwarding path; and the segment identifier is used to instruct the next forwarding node to forward along the path information indicated by the segment identifier.

[0022] In one of the embodiments, the data center is used to convert the format of the data packet into a data format supported by the server, and then send the converted data packet to an associated server, or to an assigned server if there is no associated server.

[0023] In a second aspect, the present application provides a data processing device, the device comprising:

[0024] An acquisition module, used to acquire a computing task sent by a client, wherein the computing task carries a data packet with a target service identifier;

[0025] a data forwarding module, configured to send the data packet to a data center according to the first forwarding path when it is determined that the target service identifier has a corresponding first forwarding path according to the relationship between the recorded service identifier and the forwarding path;

[0026] The data forwarding module is used to determine a second forwarding path based on the anycast mechanism when it is determined that there is no corresponding target forwarding path for the target service identifier according to the relationship between the recorded service identifier and the forwarding path, and send the data packet to the data center according to the second forwarding path.

[0027] In a third aspect, the present application provides a routing device, including a memory and a processor, wherein the memory stores a computer program, and the processor implements the steps of the method provided in any one of the above embodiments when executing the computer program.

[0028] In a fourth aspect, the present application provides a computer-readable storage medium having a computer program stored thereon, wherein the computer program, when executed by a processor, implements the steps of the method provided in any of the above embodiments.

[0029] In a fifth aspect, the present application provides a computer program product, including a computer program, which, when executed by a processor, implements the steps of the method provided in any of the above embodiments.

[0030] The data processing method, apparatus, routing device, storage medium and program product provided in this embodiment guide the computing task request to the optimal data center based on the anycast mechanism when it is determined that there is no corresponding target forwarding path for the target service identifier according to the relationship between the recorded service identifier and the forwarding path. When it is determined that there is a corresponding first forwarding path for the target service identifier according to the relationship between the recorded service identifier and the forwarding path, the data packet is sent to the optimal data center according to the first forwarding path to maintain the connection affinity of the session. In a multi-data center scenario, tasks can be dynamically allocated between different nodes to meet the needs of load balancing and resource acquisition while guiding computing tasks to the optimal data center, and stateful communication can be maintained to improve the reliability of computing task allocation. In other words, the method provided in this embodiment can ensure efficient forwarding for computing-intensive applications, while ensuring the correctness and integrity of information transmission, and improving the reliability and stability of information transmission. BRIEF DESCRIPTION OF THE DRAWINGS

[0031] In order to more clearly illustrate the technical solutions in the embodiments of the present application or related technologies, the drawings required for use in the embodiments of the present application or related technical descriptions will be briefly introduced below. Obviously, the drawings described below are only some embodiments of the present application. For ordinary technicians in this field, other related drawings can be obtained based on these drawings without paying creative work.

[0032] Figure 1 is a flow chart of a data processing method in one embodiment;

[0033] Figure 2 A partial flow chart of a data processing method in one embodiment;

[0034] Figure 3 A schematic diagram of establishing a stateful SID session between a client and a server in a target data center provided in one embodiment;

[0035] Figure 4 A schematic diagram of a novel routing table involved in a data processing method in an embodiment;

[0036] Figure 5 A schematic diagram of functions and collaboration of components included in a data center in SID data packet processing provided in one embodiment;

[0037] Figure 6 A schematic diagram of a task-server mapping table provided in one embodiment;

[0038] Figure 7 A schematic diagram of a data processing scenario involved in a data processing method provided in an embodiment;

[0039] Figure 8 A schematic diagram of a flow chart of a P4 pipeline implementation provided in an embodiment;

[0040] Fig. 9 is a structural block diagram of a data processing device in one embodiment;

[0041] Fig.10 FIG. 4 is a diagram showing the internal structure of a routing device in one embodiment. DETAILED DESCRIPTION

[0042] In order to make the purpose, technical solution and advantages of the present application more clearly understood, the present application is further described in detail below in conjunction with the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are only used to explain the present application and are not used to limit the present application.

[0043] First, the terms involved in this application are explained:

[0044] ToR: Top of rack, top layer of cabinet.

[0045] SID: Service Identifier, service identifier.

[0046] Client: A series of computing-intensive applications that use SID to publish computing tasks in edge networks.

[0047] Ingress Router (IR): an edge routing device deployed in this embodiment, responsible for processing user computing task data packets in a certain area, and it needs to support anycast mechanism and SR mechanism.

[0048] Egress Router (ER): The edge gateway used by the data center to access the WAN and needs to have the same functions as the IR.

[0049] Server: A series of servers in a data center that will start multiple application instances to perform client computing tasks.

[0050] In an exemplary embodiment, Figure 1 As shown, a data processing method is provided. This embodiment uses the method applied to a data forwarding device as an example. It can be understood that the data forwarding device can be a routing device or other data forwarding device with the same function as the routing device.

[0051] In this embodiment, the method includes the following steps:

[0052] Step 101, obtaining a computing task sent by a client, wherein the computing task carries a data packet with a target service identifier.

[0053] The client can be understood as a series of computing-intensive applications that use SID to publish computing tasks in the edge network.

[0054] The computing task can be understood as a computing task in computing-intensive applications, such as chatbots, autonomous driving, and telemedicine, and computing tasks such as data query and autonomous cruising.

[0055] The computing task carries a data packet with a target service identifier (SID), namely, a SID data packet.

[0056] Step 102: When it is determined that the target service identifier has a corresponding first forwarding path according to the relationship between the recorded service identifier and the forwarding path, the data packet is sent to the data center according to the first forwarding path.

[0057] It should be noted that in order to dynamically schedule a large number of computing tasks in computing-intensive applications to appropriate computing resources in the network to provide better service performance, relevant research proposes to use network layer identifiers to represent an abstract computing service (called service identifier SID) and use anycast technology for network guidance. This combination aims to give full play to the advantages of anycast in selecting resources and realize dynamic scheduling of network resources for computing services. However, SID anycast cannot support stateful communication between applications. The specific reasons include the following two points: (1) SID lacks socket compatibility. Socket is a concept involved in transport layer connection. Its establishment requires a host address to determine the identity of the connection peer to maintain the communication session. SID has been represented as an abstract service that can exist in any computing device. Therefore, it cannot be used to represent the host and establish a socket connection. (2) Anycast has difficulty in guaranteeing connection affinity. The anycast mechanism dynamically selects the best destination for network traffic scheduling, making it unable to guarantee the stability of the subsequent guidance direction of the service session that has been established, resulting in connection interruption and affecting application performance. Therefore, there is an urgent need in the field to study how to provide stateful communication for users during the SID anycast process.

[0058] Stateful communication means that during the data transmission process, both ends of the connection will save and update the connection status information to ensure that the data is transmitted reliably and in an orderly manner. It requires the certainty of the identity of the other end and the stability of the network transmission.

[0059] The computing task needs to be directed to the best data center in the wide area network and maintain the connection until the session ends. Therefore, in a scenario where multiple data centers can process computing tasks, if the data packet of the target service identifier carried by the computing task has been directed to a data center for processing before, then in order to support stateful communication, the computing task carrying the data packet of the target service identifier needs to be directed to the same data center. Specifically, the relationship between the service identifier and the forwarding path corresponding to the computing task is recorded, so that during the session, when the data packet of the computing task is forwarded, it can be forwarded according to the recorded forwarding path. That is, based on the relationship between the recorded service identifier and the forwarding path, when it is determined that there is a corresponding first forwarding path for the target service identifier, the data packet is sent to the data center according to the first forwarding path, thereby maintaining stateful communication.

[0060] The forwarding path includes multiple forwarding nodes and forwarding relationships between the multiple forwarding nodes, and each forwarding node can be understood as a routing device.

[0061] Step 103, when it is determined that there is no corresponding target forwarding path for the target service identifier according to the relationship between the recorded service identifier and the forwarding path, a second forwarding path is determined based on the anycast mechanism, and the data packet is sent to the data center according to the second forwarding path.

[0062] When it is determined that there is no corresponding target forwarding path for the target service identifier according to the relationship between the recorded service identifier and the forwarding path, it can be determined that the computing task sent by the client is a new computing task and has not been forwarded to the data center before. Then, in order to guide the computing task to the best data center in the wide area network, a second forwarding path is determined based on the anycast mechanism, and the data packet is sent to the data center according to the second forwarding path.

[0063] It should be noted that the anycast mechanism allows data packets to be transmitted from a source node to the nearest node in a group of target nodes, thereby shortening the service response time and reducing the network load. Determining the second forwarding path based on the anycast mechanism can be understood as determining the forwarding relationship between multiple forwarding nodes and multiple forwarding nodes by selecting the nearest node, thereby determining the second forwarding path. It should be noted that multiple forwarding nodes on the second forwarding path need to support the anycast mechanism.

[0064] The above-mentioned data processing method, when it is determined that there is no corresponding target forwarding path for the target service identifier based on the relationship between the recorded service identifier and the forwarding path, guides the computing task request to the optimal data center based on the anycast mechanism. When it is determined that there is a corresponding first forwarding path for the target service identifier based on the relationship between the recorded service identifier and the forwarding path, the data packet is sent to the optimal data center according to the first forwarding path to maintain the connection affinity of the session. In a multi-data center scenario, tasks can be dynamically allocated between different nodes to meet the needs of load balancing and resource acquisition while guiding computing tasks to the optimal data center, and stateful communication can be maintained to improve the reliability of computing task allocation. In other words, the method provided in this embodiment can ensure efficient forwarding for computing-intensive applications, while ensuring the correctness and integrity of information transmission, and improving the reliability and stability of information transmission.

[0065] In an exemplary embodiment, Figure 2 As shown, step 103 determines the second forwarding path based on the anycast mechanism, including:

[0066] Step 201: determine a target egress routing device based on an anycast mechanism, and determine a second forwarding path according to an ingress routing device and a target egress routing device.

[0067] As can be seen from the above description, the optimal forwarding node and the optimal egress routing device can be determined based on the anycast mechanism, thereby determining the second forwarding path.

[0068] The ingress routing device (IR) is connected to the client in communication. The target egress routing device (ER) is located in a data center and is able to communicate with each routing device in the wide area network where the ingress routing device is located.

[0069] In the wide area network, this embodiment needs to set up an entry routing device and an exit routing device, which are dedicated routing devices. These routing devices synchronize SID routing information regularly. Subsequently, they announce their proximity to the SID address in the underlying routing system to ensure that data packets sent by the client to the SID address are forwarded to them first. When the client initiates a computing task, it will be sent to the nearest IR, which will register the task and select the optimal ER to forward the data packet. The ER will then determine the data center that is most suitable for processing the task and deliver it. This embodiment minimizes the impact of SID entries on the existing wide area network by deploying dedicated routing devices at the edge of the network and using tunnels for wide area network routing.

[0070] It should be noted that there are multiple forwarding nodes between the ingress routing device and the egress routing device, and the forwarding node may also be a routing device.

[0071] Typically, the ingress routing device selected by the client remains unchanged during the entire service session. The egress routing device considers the directly connected data center as the best choice, regardless of the possibility that the egress routing device will forward the SID data packet to other routing devices again due to a data center failure.

[0072] The method provided in this embodiment can dynamically allocate tasks among different nodes in a multi-data center scenario, meet the requirements of load balancing and resource acquisition, and guide computing tasks to the optimal data center, thereby improving the efficiency of computing task allocation and saving resources.

[0073] In an exemplary embodiment, the data processing method further includes:

[0074] Step 1: receiving service identifier entries of multiple different egress routing devices sent by any egress routing device, and determining that the multiple different egress routing devices are egress routing devices supporting the anycast mechanism.

[0075] The ingress routing device and the egress routing device are deployed at different locations in the WAN. In order to spread available services, the egress routing device will periodically publish reachability announcements of SID routes to its peer devices (i.e., the ingress routing device and other egress routing devices). When the ingress routing device receives these SID announcements, it will store SID entries from different egress routing devices as potential anycast destinations.

[0076] In an exemplary embodiment, after step 1 determines the egress routing device based on the anycast mechanism, the data processing method further includes:

[0077] Step 2: Record the relationship between the target service identifier and the second forwarding path in the relationship between the service identifier and the forwarding path.

[0078] That is, after a forwarding path is generated for a computing task, the generated forwarding path is associated with the target service identifier corresponding to the computing task and stored and the session is maintained. In this way, when a computing task is sent by the client, if the target identifier of the computing task has been recorded in the relationship between the service identifier and the forwarding path, the steps described in step 102 can be performed, and the data packet of the target service identifier is sent to the data center based on the second forwarding path while maintaining stateful communication.

[0079] The method provided in this embodiment records the relationship between a new service identifier and a forwarding path in a timely manner, thereby ensuring that data packets with the same service identifier can be delivered to the same data center. In this way, while ensuring efficient forwarding, the correctness and integrity of information transmission are guaranteed, thereby improving the reliability and stability of information transmission.

[0080] In an exemplary embodiment, step 102 sends the data packet to a data center according to a first forwarding path, including:

[0081] Step 1: encapsulate the segment identifier list of the first forwarding path in the message header of the data packet, and start the sending task of the data packet after the encapsulation is completed to send the data packet to the data center.

[0082] The segment identifier list includes a segment identifier corresponding to each forwarding node on the first forwarding path. The segment identifier is used to instruct the next forwarding node to forward along the path information indicated by the segment identifier.

[0083] Step 103 sends the data packet to the data center according to the second forwarding path, including:

[0084] Step 2: encapsulate the segment identifier list of the second forwarding path in the message header of the data packet, and start the sending task of the data packet after the encapsulation is completed to send the data packet to the data center.

[0085] The segment identifier list includes a segment identifier corresponding to each forwarding node on the second forwarding path. The segment identifier is used to instruct the next forwarding node to forward along the path information indicated by the segment identifier.

[0086] The method provided in this embodiment uses a segment routing (SR) tunnel mechanism to guide the ongoing computing task during the process of forwarding data packets.

[0087] The SR tunnel mechanism, namely the Segment Routing tunnel mechanism, is a tunnel implementation mechanism based on source routing. The SR tunnel consists of a series of ordered segment identifiers (Segment IDs), which are used to identify the nodes or links that need to be passed through on the SR tunnel. In the SR domain, the segment identifier (SID) represents an instruction, and the segment identifier list (Segment List) represents a collection of a series of instructions. The forwarding node encapsulates the segment identifier list into the message header at the source node, and then the device forwards it according to the path information in the message header.

[0088] Exemplarily, in a conventional solution, the steps for establishing a stateful SID session between a client and a server in a target data center are as follows: Figure 3 The client initiates a session by sending a packet with a SID address, which is directed to the nearest ingress routing device (corresponding to Figure 3The ingress routing device uses anycast to match the appropriate egress and transmits the packet through the SR tunnel (step 2). When the packet reaches the egress routing device, it is forwarded to the data center for processing (step 3). The return path (step 4) uses the unicast Internet Protocol (IP) with the client address (CA) as the packet destination. However, since the ingress and egress routing devices need to monitor the status of each session, the return path still needs to pass through the SR tunnel. In order for the ingress and egress routing devices to maintain the session, the SR tunnel is necessary in both the request and reply directions.

[0089] The above mechanism does not support stateful sessions, because steps 2 to 4 cannot guarantee that subsequent packets from the same session arrive at the same destination address. The method provided in this embodiment introduces a functional extension that combines anycast with SR to route SID packets based on sessions.

[0090] Figure 4 The new routing table involved in the method provided in this embodiment (two main entry types in the SR tunnel routing table) is shown. The first is the session entry, which is used to maintain the tunnel selection for each SID session. During the initial session process (i.e., steps 1 to 4), the ingress routing device and the egress routing device use (SID, CA) to describe a specific session and record its egress routing device selection. When subsequent data packets arrive at the routing device, they match the session entry (step 5), thereby maintaining a stateful session. The second is the anycast entry, which supports SID anycast routing.

[0091] The method provided in this embodiment combines the anycast mechanism and the SR mechanism to implement a dynamic network routing mechanism suitable for computing service scenarios. Through SR tunnel transmission and dynamic allocation of routing paths, tasks can be dynamically allocated between different nodes in the network to meet the needs of load balancing and resource acquisition. The minimum metric routing feature of anycast is combined with SR tunnel transmission to ensure that the request data packet can always reach the optimal node of the computing service. This routing mechanism can significantly reduce the maintenance overhead of session status and improve resource utilization efficiency.

[0092] In an exemplary embodiment, the data center is used to convert the format of the data packet into a data format supported by the server, and then send the converted data packet to an associated server, or to an assigned server if there is no associated server.

[0093] When a SID packet arrives at the data center, the edge network forwarding based on the identity mapping will assign the optimal server for the new computing task and guide subsequent SID packets to maintain stateful sessions. In addition, the data center supports host-oriented Socket connections by performing address translation between SID and server host IP.

[0094] Figure 5 It shows the functions and collaboration of the components included in the data center in SID packet processing, which includes three parts.

[0095] Server racks: Server racks are connected via a programmable network and contain multiple servers that process client requests. These servers use their host IP (Host Identity Protocol, HIP for short) to create sockets and distinguish services by port numbers. For a given service, the listening ports of different servers are consistent. However, this consistency cannot be used for service differentiation in our subsequent solutions, because different services may use the same port to listen for client requests.

[0096] Programmable Networking: The programmable network executes the decisions of the task scheduler and forwards SID packets to the designated server for processing. To establish stateful SID connections, the programmable network uses a task-server mapping table to maintain server selection for each session and implements host-oriented connections through network address translation.

[0097] Task Scheduler: The task scheduler periodically detects the available services and resources of the servers. Based on this, it uses classification methods (e.g., linear classifiers, artificial neural networks) to assign the optimal server to the new computing task. In addition, the task scheduler generates and updates entries in the task-server mapping table to control the operation of the programmable network.

[0098] The task-server mapping table is as follows Figure 6 As shown in the figure, it is used to maintain the server allocation of client computing tasks. Each entry contains three main parameters, namely service ID (SID), client address (CA), and server host IP (HIP). They are all IP addresses, but they play different roles. First, these entries characterize each task based on SID and CA. SID acts as a service label at the network layer, indicating the computing service required for the task, while CA identifies the host address of the client. Secondly, HIP, together with port information, describes the address and port information of the assigned server.

[0099] Therefore, the overall process of this phase is as follows: When the programmable switch receives a computing task, it will query based on the task-server mapping table. If there is a table entry hit, the SID address is replaced with the corresponding server HIP address according to the table entry, and then forwarded to the corresponding port to support stateful communication. If there is no hit, it proves that it is a new computing task request. The programmable switch will forward the data packet to the controller, waiting for the controller to allocate resources for the computing task and send the flow table to the data plane.

[0100] above.

[0101] For ease of understanding, the data processing method provided in the embodiment of the present application is described in detail below.

[0102] See also Figure 7 The schematic diagram of the data processing scenario involved in the data processing method shown, after receiving the computing task sent by the client and transmitting it through the wide area network, it is finally delivered to the data center. The computing service anycast stage involved includes two stages. The first stage is the wide area network routing for computing service, and the second stage is the edge network forwarding based on identity mapping. After the client sends the SID data packet, cross-wide area network routing and edge network forwarding are performed respectively to realize the stateful communication of computing service anycast. The following is a detailed description.

[0103] The first stage is wide area network routing for computing services.

[0104] The focus of this phase is on wide area network transmission of computing tasks.

[0105] The SID task needs to be directed to the best data center in the WAN and the connection needs to be maintained until the session ends. IR and ER are deployed at different locations in the WAN. In order to disseminate available services, ER periodically publishes reachability announcements of SID routes to its peers (i.e., IR and other ERs). When IR receives these SID announcements, it stores SID entries from different ERs as potential anycast destinations. The scheme introduces a routing mechanism for computing power services, which uses the anycast mechanism to forward the first initiated client SID task and guide it to the best computing resource location. Subsequently, in order to support stateful communication, the scheme designs a new routing table to record the relationship between the client SID task and its forwarding exit selection, and then adopts the SR tunnel mechanism to guide the ongoing SID task.

[0106] In the second stage, edge network forwarding is based on identity mapping.

[0107] The goal of this phase is to process SID tasks within the data center.

[0108] The method provided in this embodiment designs an address translation mechanism based on SID to support server selection and stateful communication of tasks. In a data center, multiple servers are connected to form a group through ToR switches, and the ToR switches are connected to each other to form a switching network.

[0109] The switching network is composed of programmable switches. The specific data plane behavior designed for the edge network forwarding phase in the method provided in this embodiment is implemented on the programmable switch through the P4 (Programming Protocol-independent PacketProcessors) language, which mainly includes two points: First, it can select a suitable server for each new task based on the available computing resources. Second, it can maintain the mapping relationship between the assigned SID tasks and the server, and automatically perform address conversion between SID and HIP to ensure stateful communication.

[0110] The first phase mechanism is a combination of anycast and SR mechanisms. The specific implementation can be based on SDN (Software-Defined Networking) routing devices. Anycast is used on the control plane to select the best egress routing device, and SR tunnel forwarding is used on the data plane.

[0111] In the second stage, considering that SID task scheduling is significantly different from traditional task scheduling, programmability of the data plane is required to achieve customized data packet processing. This embodiment uses the protocol-independent P4 language to design the processing logic of the SID task.

[0112] To facilitate the description, some terminology is defined first:

[0113] DstIP / SrcIP: Destination / source IP address in the SID data packet.

[0114] DstPort / SrcPort: Destination / source socket port in the SID packet.

[0115] Li: the i-th entry in the task-server mapping table.

[0116] Pi: The programmable switch port connected to the server specified in Li.

[0117] PS: The collection of all ports connecting the programmable switch to the server.

[0118] PR: The port on which the programmable switch receives the packet when the action is triggered.

[0119] Pc: Port for programmable switch to interact with controller.

[0120] PG: The port on which the programmable switch receives client requests.

[0121] Psd: The pseudo header required by the transport layer TCP protocol to calculate the checksum.

[0122] Embodiments use user-defined P4 metadata and operations to support processing of SID headers.

[0123] Figure 8 The P4 pipeline implementation of the embodiment is shown, which specifically includes the following functions:

[0124] Packet parsing and reassembly: When the programmable network receives a SID packet, P4's parser extracts the required fields and related metadata from the header to support user-defined matching and operations. P4's reassembler reassembles the necessary headers into the packet to meet the output format of the packet.

[0125] Task-based matching: The embodiment introduces a task-based matching mechanism to maintain SID task communication. The mechanism selects the egress port (egress.port) for each data packet based on the task. Since the headers of the request and reply packets are different, the embodiment customizes the processing method for each type of packet. Given that the devices connected to the switch ports are usually fixed, the mechanism determines the packet type based on PR. First, since the IP header of the request packet carries complete task information, the mechanism uses <DstIP, SrcIP> as keywords to match <SID, CA> in the entry, and then forwards the packet according to the egress port of the matching entry. For new tasks that cannot be matched, they are forwarded to the task scheduler to trigger an entry update. Secondly, the mechanism uses the<SrcIP, SrcPort> To match the entry<HIP, Port> Since the switch forwards the reply packet through a fixed egress port, this match is mainly used to differentiate services (ie, SID).

[0126] SID identification mapping: Establishing a stateful connection (such as TCP) requires a host-specific description, and SID does not have this function. To solve this problem, the embodiment designs a SID identification mapping function for converting the SID address of the data packet. Specifically, this mapping converts the DstIP of the request data packet from SID to HIP, and converts the SrcIP of the reply data packet from HIP to SID. In this way, the mapping enables the client to transparently establish a stateful connection with the server through an asymmetric socket, where the client uses (SID, CA) and the server uses (HIP, CA).

[0127] Checksum recalculation: Since the field information of the data packet has been changed, the checksum of the data packet needs to be recalculated to pass the consistency check. The basic TCP checksum calculation needs to include the payload of the data packet. However, the P4 data plane only supports fixed-format data packet processing and cannot parse variable-length data packets. Therefore, the embodiment updates the checksum through incremental calculation, which is achieved by accumulating header fields in self-created metadata during Parser and Checksum processing, respectively.

[0128] As described above, this embodiment designs an edge network processing mechanism for SID identification based on the P4 programmable data plane. Through the user metadata and operation mechanism defined by P4, the SID packet header can be parsed and converted to achieve address mapping from SID to server host IP (HIP) to support stateful connections such as TCP. The processing mechanism includes a task-based matching mechanism, SID address conversion, and incremental checksum calculation to ensure that the edge network forwards SID tasks between different sessions accurately and reliably. This embodiment provides flexible SID edge network support through the programmability of P4, which is suitable for anycast services of various computing tasks.

[0129] In addition, it should be noted that maintaining the transparency of the client and the routing device is crucial to the success of the new anycast service. Compared with the method of obtaining a unicast address to achieve stateful communication in one of the traditional solutions, the method provided in the above embodiment provides a SID anycast enhancement mechanism based on the existing protocol, so that stateful communication can be achieved without modifying the current application and routing device.

[0130] In addition, the existing solutions for obtaining unicast addresses and deploying agents are difficult to achieve scalable computing service retrieval for the entire network and dynamically guide SID tasks. The method provided in the above embodiment can use the routing announcement of SID to update available services for the entire network due to the mechanism of sampling anycast combined with SR tunnel, and has natural dynamic and scalability advantages. In addition, the method of inventing a method based on SR tunnel transmission to the anycast decision destination node can also well retain the dynamic advantages of anycast.

[0131] Compared with the prior art, the method provided in this embodiment has good deployability. Considering the high cost of deploying dedicated hardware in a wide area network, the designed functions only need to be run in the edge network, and a limited number of devices can be deployed to effectively support the stateful anycast function.

[0132] It should be understood that, although the steps in the flowcharts of the embodiments described above are shown in sequence according to the instructions of the arrows, these steps are not necessarily performed in sequence according to the order indicated by the arrows. Unless there is a clear explanation in this article, the execution of these steps is not strictly limited in order, and these steps can be performed in other orders. Moreover, at least a portion of the steps in the flowcharts of the embodiments described above can include multiple steps or multiple stages, and these steps or stages are not necessarily performed at the same time, but can be performed at different times, and the execution order of these steps or stages is not necessarily performed in sequence, but can be performed in turn or alternately with other steps or at least a portion of the steps or stages in other steps.

[0133] Based on the same inventive concept, the embodiment of the present application also provides a data processing device for implementing the data processing method involved above. The implementation scheme for solving the problem provided by the device is similar to the implementation scheme recorded in the above method, so the specific limitations in the one or more data processing device embodiments provided below can refer to the limitations on the data processing method above, and will not be repeated here.

[0134] In an exemplary embodiment, Fig. 9 As shown, a data processing device 100 is provided, comprising: an acquisition module 101 and a data forwarding module 102, wherein:

[0135] The acquisition module 101 is used to acquire a computing task sent by a client, wherein the computing task carries a data packet with a target service identifier.

[0136] The data forwarding module 102 is configured to send the data packet to the data center according to the first forwarding path when it is determined that the target service identifier has a corresponding first forwarding path according to the relationship between the recorded service identifier and the forwarding path.

[0137] The data forwarding module 102 is used to determine a second forwarding path based on the anycast mechanism when it is determined that there is no corresponding target forwarding path for the target service identifier according to the relationship between the recorded service identifier and the forwarding path, and send the data packet to the data center according to the second forwarding path.

[0138] In some embodiments, the data forwarding module 102 is used to determine the target egress routing device based on the anycast mechanism, and determine the second forwarding path according to the ingress routing device and the target egress routing device; wherein the ingress routing device is communicatively connected to the client; the target egress routing device is located in the data center, and is capable of being communicatively connected to each routing device in the wide area network where the ingress routing device is located.

[0139] In some embodiments, the acquisition module 101 is used to receive service identifier entries of multiple different egress routing devices sent by any egress routing device, and determine that the multiple different egress routing devices are egress routing devices that support the anycast mechanism; accordingly, the data forwarding module 102 is used to determine the target egress routing device from the egress routing devices that support the anycast mechanism based on the anycast mechanism.

[0140] Some embodiments further include a storage module 103, which is used to record the relationship between the target service identifier and the second forwarding path in the relationship between the service identifier and the forwarding path.

[0141] In some embodiments, the data forwarding module 102 is used to encapsulate a segment identifier list of a first forwarding path in the message header of the data packet, and start the sending task of the data packet after the encapsulation is completed to send the data packet to the data center; wherein the segment identifier list includes the segment identifier corresponding to each forwarding node on the first forwarding path; the segment identifier is used to instruct the next forwarding node to forward along the path information indicated by the segment identifier; encapsulate a segment identifier list of a second forwarding path in the message header of the data packet, and start the sending task of the data packet after the encapsulation is completed to send the data packet to the data center; wherein the segment identifier list includes the segment identifier corresponding to each forwarding node on the second forwarding path; the segment identifier is used to instruct the next forwarding node to forward along the path information indicated by the segment identifier.

[0142] In some embodiments, the data center is used to convert the format of the data packet into a data format supported by the server, and then send the converted data packet to an associated server, or to an assigned server if there is no associated server.

[0143] Each module in the above data processing device 100 can be implemented in whole or in part by software, hardware, or a combination thereof. Each module can be embedded in or independent of a processor in a routing device in the form of hardware, or can be stored in a memory in a routing device in the form of software, so that the processor can call and execute operations corresponding to each module.

[0144] In an exemplary embodiment, a routing device is provided. The internal structure diagram of the routing device can be as follows: Fig.10As shown. The routing device includes a processor, a memory, an input / output interface (Input / Output, referred to as I / O) and a communication interface. Among them, the processor, the memory and the input / output interface are connected through a system bus, and the communication interface is connected to the system bus through the input / output interface. Among them, the processor of the routing device is used to provide computing and control capabilities. The memory of the routing device includes a non-volatile storage medium and an internal memory. The non-volatile storage medium stores an operating system, a computer program and a database. The internal memory provides an environment for the operation of the operating system and the computer program in the non-volatile storage medium. The database of the routing device is used to store the relationship between the service identifier and the forwarding path. The input / output interface of the routing device is used to exchange information between the processor and the external device. The communication interface of the routing device is used to communicate with an external terminal through a network connection. When the computer program is executed by the processor, it implements the data processing method provided in any of the above embodiments.

[0145] Those skilled in the art will understand that Fig.10 The structure of the routing device shown is merely a block diagram of a portion of the structure related to the solution of the present application, and does not constitute a limitation on the routing device to which the solution of the present application is applied. The specific routing device may include more or fewer components than shown in the figure, or combine certain components, or have a different arrangement of components.

[0146] In one embodiment, a computer-readable storage medium is provided, on which a computer program is stored. When the computer program is executed by a processor, the data processing method provided in any of the above embodiments is implemented.

[0147] In one embodiment, a computer program product is provided, including a computer program, which implements the data processing method provided in any of the above embodiments when executed by a processor.

[0148] Those skilled in the art can understand that all or part of the processes in the above-mentioned embodiment methods can be completed by instructing the relevant hardware through a computer program, and the computer program can be stored in a non-volatile computer-readable storage medium. When the computer program is executed, it can include the processes of the embodiments of the above-mentioned methods. Among them, any reference to the memory, database or other medium used in the embodiments provided in the present application can include at least one of non-volatile memory and volatile memory. Non-volatile memory can include read-only memory (ROM), magnetic tape, floppy disk, flash memory, optical memory, high-density embedded non-volatile memory, resistive random access memory (ReRAM), magnetic random access memory (MRAM), ferroelectric random access memory (FRAM), phase change memory (PCM), graphene memory, etc. Volatile memory can include random access memory (RAM) or external cache memory, etc. As an illustration and not limitation, RAM can be in various forms, such as static random access memory (SRAM) or dynamic random access memory (DRAM). The database involved in each embodiment provided in this application may include at least one of a relational database and a non-relational database. Non-relational databases may include distributed databases based on blockchains, etc., but are not limited to this. The processor involved in each embodiment provided in this application may be a general-purpose processor, a central processing unit, a graphics processor, a digital signal processor, a programmable logic device, a data processing logic device based on quantum computing, an artificial intelligence (AI) processor, etc., but are not limited to this.

[0149] The technical features of the above embodiments may be combined arbitrarily. To make the description concise, not all possible combinations of the technical features in the above embodiments are described. However, as long as there is no contradiction in the combination of these technical features, they should be considered to be within the scope of this application.

[0150] The above embodiments only express several implementation methods of the present application, and the descriptions thereof are relatively specific and detailed, but they cannot be understood as limiting the scope of the present application. It should be pointed out that, for a person of ordinary skill in the art, several modifications and improvements can be made without departing from the concept of the present application, and these all belong to the protection scope of the present application. Therefore, the protection scope of the present application shall be subject to the attached claims.

Claims

1. A data processing method, characterized in that: The method comprises: Acquire a computing task sent by a client, wherein the computing task carries a data packet with a target service identifier; When it is determined that the target service identifier has a corresponding first forwarding path according to the relationship between the recorded service identifier and the forwarding path, the data packet is sent to the data center according to the first forwarding path; When it is determined that there is no corresponding target forwarding path for the target service identifier according to the relationship between the recorded service identifier and the forwarding path, a second forwarding path is determined based on the anycast mechanism, and the data packet is sent to the data center according to the second forwarding path.

2. The data processing method according to claim 1, characterized in that: The determining the second forwarding path based on the anycast mechanism includes: A target egress routing device is determined based on an anycast mechanism, and a second forwarding path is determined based on an ingress routing device and a target egress routing device; wherein the ingress routing device is communicatively connected to a client; and the target egress routing device is located in a data center and is communicatively connected to each routing device in a wide area network where the ingress routing device is located.

3. The data processing method according to claim 2, characterized in that: The method further comprises: receiving service identifier entries of multiple different egress routing devices sent by any egress routing device, and determining that the multiple different egress routing devices are egress routing devices supporting the anycast mechanism; Accordingly, determining the target egress routing device based on the anycast mechanism includes: Based on the anycast mechanism, a target egress routing device is determined from egress routing devices that support the anycast mechanism.

4. The data processing method according to any one of claims 1 to 3, characterized in that: After determining the egress routing device based on the anycast mechanism, the method further includes: The relationship between the target service identifier and the second forwarding path is recorded in the relationship between the service identifier and the forwarding path.

5. The data processing method according to any one of claims 1 to 3, characterized in that: The step of sending the data packet to the data center according to the first forwarding path includes: Encapsulating the segment identifier list of the first forwarding path in the message header of the data packet, and starting the sending task of the data packet after the encapsulation is completed, so as to send the data packet to the data center; wherein the segment identifier list includes the segment identifier corresponding to each forwarding node on the first forwarding path; the segment identifier is used to instruct the next forwarding node to forward along the path information indicated by the segment identifier; Accordingly, sending the data packet to the data center according to the second forwarding path includes: A segment identifier list of the second forwarding path is encapsulated in the message header of the data packet, and the sending task of the data packet is started after the encapsulation is completed to send the data packet to the data center; wherein the segment identifier list includes the segment identifier corresponding to each forwarding node on the second forwarding path; and the segment identifier is used to instruct the next forwarding node to forward along the path information indicated by the segment identifier.

6. The data processing method according to any one of claims 1 to 3, characterized in that: The data center is used to convert the format of the data packet into a data format supported by the server, and then send the data packet with the converted format to the associated server, or send it to the assigned server when there is no associated server.

7. A data processing device, characterized in that: The device comprises: An acquisition module, used to acquire a computing task sent by a client, wherein the computing task carries a data packet with a target service identifier; a data forwarding module, configured to send the data packet to a data center according to the first forwarding path when it is determined that the target service identifier has a corresponding first forwarding path according to the relationship between the recorded service identifier and the forwarding path; The data forwarding module is used to determine a second forwarding path based on the anycast mechanism when it is determined that there is no corresponding target forwarding path for the target service identifier according to the relationship between the recorded service identifier and the forwarding path, and send the data packet to the data center according to the second forwarding path.

8. A routing device, comprising a memory and a processor, wherein the memory stores a computer program, characterized in that: When the processor executes the computer program, the steps of the method according to any one of claims 1 to 6 are implemented.

9. A computer-readable storage medium having a computer program stored thereon, characterized in that: When the computer program is executed by a processor, the steps of the method according to any one of claims 1 to 6 are implemented.

10. A computer program product, comprising a computer program, characterized in that When the computer program is executed by a processor, the steps of the method according to any one of claims 1 to 6 are implemented.

Citation Information

Patent Citations

  • Service routing method and device

    CN112491717A

  • Message forwarding method, device and system and computer readable storage medium

    CN115226073A

  • Data forwarding method and device, router and storage medium

    CN115766560A

  • Routing architecture and method of computing power service open internet

    CN119135777A

  • Service processing method and system, storage medium and electronic device

    WO2024088199A1

Cited By

  • Method and system for selecting multi-door lock holder

    CN121792438A

  • A selection method and system of a multi-door lock pan-tilt

    CN121792438B

  • Outlet selection method and system for multi-door lock selection

    CN121814680A