Service flow backpressure handling method and apparatus, device, medium, and product

By prioritizing backpressure processing for short-distance streams and increasing the priority of long-distance streams in the data center network, the impact of backpressure processing on the transmission efficiency of long-distance streams is resolved, achieving more efficient data center communication.

WO2026157162A1PCT designated stage Publication Date: 2026-07-30HUAWEI TECH CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
HUAWEI TECH CO LTD
Filing Date
2025-07-28
Publication Date
2026-07-30

AI Technical Summary

Technical Problem

In cross-data center communication networks, backpressure processing impacts the transmission efficiency of long-distance streams.

Method used

Based on the principle that the priority of short-distance streams received in the first device is higher than or equal to the priority of long-distance streams, short-distance streams are given priority for backpressure processing, while long-distance streams are not. When the buffer threshold is exceeded, the priority of long-distance streams is increased to ensure their transmission.

Benefits of technology

It effectively reduces the impact of backpressure processing on the transmission efficiency of long-distance streams, avoids data loss, and improves the overall network transmission efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2025110831_30072026_PF_FP_ABST
    Figure CN2025110831_30072026_PF_FP_ABST
Patent Text Reader

Abstract

The present application relates to the technical field of communications, and discloses a service flow backpressure handling method and apparatus, a device, a medium, and a product, which are used for reducing the impact of backpressure handling on the transmission efficiency of long-distance flows. The method is applied to a first device of a first data center, and comprises: receiving a first service flow from a computing device of the first data center; receiving a second service flow from a network device connected to the first data center, a first priority of the first service flow being higher than or equal to a second priority of the second service flow; and in response to a receive buffer of the first device being greater than a buffer threshold, performing backpressure handling on the service flow having the first priority, the backpressure handling being used for instructing to perform flow control on the service flow.
Need to check novelty before this filing date? Find Prior Art

Description

Methods, devices, equipment, media and products for handling backpressure in business flows

[0001] This application claims priority to Chinese Patent Application No. 202510127919.5, filed on January 27, 2025, entitled “Method, Apparatus, Equipment, Medium and Product for Backpressure Processing of Business Flow”, the entire contents of which are incorporated herein by reference. Technical Field

[0002] This application relates to the field of communication technology, and in particular to a method, apparatus, device, medium and product for backpressure processing of service flows. Background Technology

[0003] In communication networks, service flows are transmitted between the sending and receiving ends via network devices. When outgoing congestion occurs at the receiving end, such as when the buffer exceeds a threshold, backpressure processing is required on the service flows, such as priority-based flow control (PFC). PFC backpressure processing provides priority-based flow control tier by tier. For example, the receiving end can send backpressure messages carrying priorities to upstream devices tier by tier to notify the upstream devices to stop or slow down the transmission of service flows of the corresponding priority, until the backpressure reaches the sending end, ultimately achieving flow control at the sending end and ensuring lossless transmission of service flows.

[0004] However, in cross-data center (DC) communication networks, backpressure processing can impact the transmission efficiency of long-distance streams. Long-distance streams refer to data streams transmitted over relatively long distances, such as data streams across data centers. Summary of the Invention

[0005] This application provides a method, apparatus, device, medium, and product for backpressure processing of service flows, which reduces the impact of backpressure processing on the transmission efficiency of long-distance flows.

[0006] To achieve the above objectives, the embodiments of this application provide the following technical solutions:

[0007] Firstly, a backpressure processing method for business flows is provided. This method can be executed by a first device, or by a component of the first device, such as the processor, chip, or chip system of the first device, or by a logic module or software that can implement all or part of the functions of the first device.

[0008] In this embodiment, the method is applied to a first device in a first data center. In some embodiments, the first device is used to connect computing devices inside the first data center to network devices outside the first data center. For example, the first device may be a switch device in the first data center, such as a Spine switch.

[0009] The method includes:

[0010] The first device receives a first service flow from computing devices in the first data center. It is understood that the first service flow received by the first device is also a data flow within the data center, which can be referred to as a short-range flow.

[0011] The first device receives a second service flow from a network device connected to the first data center. It is understood that the second service flow received by the first device is a cross-data center data flow, which can be referred to as a long-distance flow.

[0012] In this context, the first priority of the first service flow is higher than or equal to the second priority of the second service flow. This means that the priority of short-distance flows is higher than or equal to the priority of long-distance flows.

[0013] Subsequently, in response to the first device's receive buffer exceeding a buffer threshold, the first device performs backpressure processing on the first priority service flow. This backpressure processing instructs for flow control of the service flow, specifically providing priority-based flow control tiered by tier. For example, it instructs upstream devices to perform flow control by sending backpressure messages, i.e., stopping or slowing down the transmission of service flows.

[0014] In this way, when performing backpressure processing based on priority, the first priority service flow can be backpressure processed first, that is, the first service flow, i.e., the short-distance flow, without needing to perform backpressure processing on the second service flow, i.e. the long-distance flow. This allows the second service flow to be transmitted normally and effectively reduces the impact of backpressure processing on the transmission efficiency of the second service flow, i.e. the long-distance flow.

[0015] In some possible implementations, after the first device receives a second service flow from a network device connected to the first data center, the first device also updates the second priority of the second service flow to a third priority, where the third priority is higher than the first priority.

[0016] In the above implementation, by increasing the priority of the second service flow, its priority is made higher than that of the first service flow. This means that by increasing the priority of the long-distance flow, its priority is made higher than that of the short-distance flow. Therefore, when performing backpressure processing based on priority, since the third priority of the second service flow after priority increase is higher than the first priority of the first service flow, backpressure processing is triggered preferentially on the lower priority (i.e., the first priority) service flow. In other words, backpressure processing is performed on the first service flow (i.e., the short-distance flow), without requiring backpressure processing on the second service flow (i.e., the long-distance flow).

[0017] In some possible implementations, after the first device performs backpressure processing on the first priority traffic flow, the method further includes:

[0018] The first device responds to the fact that its receive buffer is greater than the buffer threshold by performing backpressure processing on the third priority service flow.

[0019] Understandably, when congestion at the outgoing network worsens, the first device can apply backpressure to third-priority traffic flows to prevent data loss due to congestion. For example, the first device may apply backpressure to third-priority traffic flows if its receive buffer consistently exceeds a preset threshold for a given period. Similarly, the first device may apply backpressure to third-priority traffic flows if its receive buffer exceeds the threshold and shows an increasing trend.

[0020] In some possible implementations, the first device performs backpressure processing on the third-priority service flow, including:

[0021] The first device sends a first backpressure message to the network device. The first backpressure message includes a third priority and a second priority.

[0022] The first backpressure message is used to instruct the network device to perform flow control on the second priority traffic flow. It can be understood that by carrying the second priority in the first backpressure message, the network device is indicating the priority of the traffic flow to be flow controlled as the second priority.

[0023] In some possible implementations, the third priority is included in the priority field of the header of the first backpressure message, and the second priority is included in the first field of the header of the first backpressure message. In the first backpressure message, the priority field is used to fill in the priority information to be processed by backpressure. The first field can be a custom field used to fill in custom content, such as the priority information to be actually controlled by traffic control in the embodiments of this application.

[0024] In the above implementation, by carrying a second priority in the first field of the header of the first backpressure message, the network device can subsequently implement traffic control of the second priority service flow.

[0025] In some possible implementations, the first backpressure message may also include priority conversion information, which indicates whether to convert the priority.

[0026] In this embodiment, the priority conversion information in the first backpressure message is used to indicate whether to perform data conversion on the priority field when a new backpressure message is generated the next time backpressure is triggered. For example, the third priority in the priority field may be converted to the second priority in the first field. It is understood that when a backpressure message is converted from one protocol version to another, the data content (such as the priority value) of the fields (such as the priority field) may change. In other words, the priority conversion information in the first backpressure message can be used to indicate which protocol version of the backpressure message should be used the next time backpressure is triggered.

[0027] Taking the conversion of the third priority in the priority field to the second priority in the first field as an example, the second priority carried in the priority field can be used to implement traffic control for the second priority service flow when backpressure is triggered, without needing to carry the second priority in the first field. It is understood that in the backpressure message after priority conversion, the first field can be empty.

[0028] In some possible implementations, priority conversion information is included in a second field of the header of the first backpressure message. This second field can be a custom field used to populate custom content, such as information indicating whether a priority field should be converted, as described in the embodiments of this application.

[0029] In the above implementation, priority conversion information is carried in the second field of the header of the first backpressure message to facilitate subsequent priority conversion of the backpressure message.

[0030] In some possible implementations, after the first device sends the first backpressure message to the network device, the method further includes:

[0031] In response to the first device's receive buffer being less than the buffer threshold, the first device sends a first cancel backpressure message to the network device. The first cancel backpressure message includes a third priority and a second priority.

[0032] The first cancel backpressure message is used to instruct the network device to cancel flow control on the second priority service flow. It is understood that by carrying the second priority in the first cancel backpressure message, the network device is indicating that the actual service flow for which flow control is to be canceled is of the second priority.

[0033] In some possible implementations, the third priority is included in the priority field of the header of the first cancel backpressure message, and the second priority is included in the first field of the header of the first cancel backpressure message. In the first cancel backpressure message, the priority field is used to fill in the priority information of the backpressure processing to be canceled. The first field can be a custom field used to fill in custom content, such as the priority information of the actual flow control to be canceled, as described in the embodiments of this application.

[0034] In the above implementation, by carrying a second priority in the first field of the header of the first cancel backpressure message, the network device can subsequently cancel traffic control on the service flow with the second priority.

[0035] In some possible implementations, the first cancel backpressure message may also include priority conversion information, which indicates whether to convert the priority.

[0036] In this embodiment, the priority conversion information in the first cancel backpressure message is used to indicate whether to perform data conversion on the priority field when a new cancel backpressure message is generated the next time it is triggered. For example, the third priority in the priority field may be converted to the second priority in the first field. It is understood that when a cancel backpressure message is converted from one protocol version to another, the data content (such as the priority value) of the fields (such as the priority field) may change. In other words, the priority conversion information in the first cancel backpressure message can be used to indicate which protocol version of the cancel backpressure message should be used the next time backpressure is triggered.

[0037] Taking the conversion of the third priority in the priority field to the second priority in the first field as an example, when triggering the cancellation of backpressure, the second priority carried in the priority field can be used to cancel traffic control on the second priority service flow, without needing to carry the second priority in the first field. It is understood that in the cancellation backpressure message after priority conversion, the first field can be empty.

[0038] In some possible implementations, priority transition information is included in the second field of the header of the first cancel backpressure message.

[0039] In the above implementation, priority conversion information is carried in the second field of the header of the first cancel backpressure message to facilitate subsequent priority conversion of the cancel backpressure message.

[0040] Secondly, a backpressure processing method for service flows is provided. This method can be executed by network devices, or by components of network devices, such as the network device's processor, chip, or chip system, or by logic modules or software that can implement all or part of the functions of network devices.

[0041] In this embodiment, the network device is connected to the first data center, for example, to a first device within the first data center. It is understood that the network device is a device deployed outside the first data center. Exemplarily, the network device may be an optical network transmission device.

[0042] The method includes:

[0043] The network device sends a second service flow to a first device in a first data center connected to the network device. The second service flow has the second priority.

[0044] The network device receives a first backpressure message from the first device. The first backpressure message includes a third priority and a second priority, and is used to instruct the network device to perform flow control on the second priority traffic.

[0045] Then, the network device performs flow control on the second priority service flow based on the second priority in the first backpressure message.

[0046] In the above technical solution, by carrying a second priority in the first backpressure message, the network device can subsequently implement traffic control of the second priority service flow.

[0047] In some possible implementations, the third priority is included in the priority field of the header of the first backpressure message. The second priority is included in the first field of the header of the first backpressure message.

[0048] In the above implementation, by carrying a second priority in the first field of the header of the first backpressure message, the network device can subsequently implement traffic control of the second priority service flow.

[0049] In some possible implementations, the network device performs flow control on second-priority traffic flows, including:

[0050] The network device stops sending second-priority traffic flows, or reduces the sending rate of second-priority traffic flows.

[0051] Subsequently, the network device caches the unsent service flows in the network device's off-chip cache.

[0052] In the above implementation, by caching unsent service flows in the network device's off-chip buffer, data loss can be avoided. It is worth noting that the network device's receive buffer refers to its on-chip buffer. That is, under normal transmission conditions, the network device stores received service flows in its on-chip buffer; however, if normal transmission is impossible due to flow control, the network device stores received but unsent service flows in its off-chip buffer. Understandably, the buffer space of the network device's off-chip buffer is larger than the buffer space of its on-chip buffer.

[0053] In some possible implementations, the second service flow originates from a second device in a second data center connected to the network device. In some embodiments, the network device is connected to the second data center, for example, to a second device within the second data center. It is understood that the network device is a device deployed outside the second data center. The network device can monitor in real time whether the receive buffer exceeds a buffer threshold, and trigger backpressure if the receive buffer exceeds the buffer threshold. The method further includes:

[0054] When the network device receives a message whose buffer size exceeds the buffer threshold, it sends a second backpressure message to the second device. The second backpressure message includes a third priority and a second priority.

[0055] The second backpressure message is used to instruct the second device to perform flow control on the second priority service flow.

[0056] In the above implementation, by carrying a second priority in the second backpressure message, the second device can subsequently implement flow control of the second priority service flow.

[0057] In some possible implementations, the third priority in the second backpressure message is included in the priority field of the message header of the second backpressure message, and the second priority in the second backpressure message is included in the first field of the message header of the second backpressure message.

[0058] In the above implementation, by carrying a second priority in the first field of the header of the second backpressure message, the second device can subsequently implement flow control of the second priority service flow.

[0059] In some possible implementations, the method further includes:

[0060] In response to the network device's receive buffer exceeding the buffer threshold, the network device sends a third backpressure message to the second device. The third backpressure message includes the second priority.

[0061] The third backpressure message is used to instruct the second device to perform flow control on the second priority service flow.

[0062] In the above implementation, by carrying a second priority in the third backpressure message, the second device can subsequently implement flow control of the second priority service flow.

[0063] In some possible implementations, the second priority in the third backpressure message is included in the priority field of the message header of the third backpressure message.

[0064] In some possible implementations, the method further includes, before the network device sends the third backpressure message to the second device:

[0065] The network device responds to the first backpressure message by parsing the first field of its header, which contains information, to obtain the second priority. Then, based on the second priority, it generates a third backpressure message.

[0066] In the above embodiments, a method is provided to generate a third backpressure message based on the second priority included in the first field. By setting the priority field to the second priority, the third backpressure message can be generated quickly and efficiently.

[0067] In some possible implementations, the first backpressure message also carries priority transition information, which indicates whether to transition the priority. Accordingly, before the network device sends the third backpressure message to the second device, the method further includes:

[0068] The network device responds to the priority transition information indication to change the priority, and generates a third backpressure message based on the second priority.

[0069] In the above embodiments, a method for generating a third backpressure message based on priority conversion information is provided. By converting the priority in the priority field, the third backpressure message can be generated quickly and efficiently. Thus, the second priority carried in the priority field can be used to implement subsequent traffic control for second-priority service flows, without needing to carry the second priority in the first field. It is understood that in the backpressure message after priority conversion, the first field can be empty.

[0070] In some possible implementations, after the network device performs flow control on the second-priority traffic flow, the method further includes:

[0071] The network device receives a first cancel backpressure message from the first device. The first cancel backpressure message includes a third priority and a second priority, and is used to instruct the network device to cancel flow control on the second priority traffic flow.

[0072] Subsequently, based on the second priority in the first backpressure message, the network device cancels traffic control for the second priority service flow.

[0073] Canceling flow control for second-priority service flows means transmitting second-priority service flows normally.

[0074] Optionally, the third priority is included in the priority field of the header of the first cancel backpressure message, and the second priority is included in the first field of the header of the first cancel backpressure message. Thus, by carrying the second priority in the first field of the header of the first cancel backpressure message, it facilitates the subsequent cancellation of traffic control on the second-priority service flow by the network device.

[0075] In some possible implementations, the method further includes:

[0076] When the network device receives a message whose buffer is less than the buffer threshold, it sends a second cancel backpressure message to the second device. The second cancel backpressure message includes a third priority and a second priority.

[0077] The second cancel backpressure message is used to instruct the second device to cancel flow control on the second priority service flow.

[0078] In the above implementation, by carrying a second priority in the second cancellation backpressure message, the second device can subsequently cancel the flow control of the service flow with the second priority.

[0079] In some possible implementations, the method further includes:

[0080] In response to the network device's receive buffer being less than the buffer threshold, the network device sends a third cancel backpressure message to the second device. The third cancel backpressure message includes the second priority.

[0081] The third cancel backpressure message is used to instruct the second device to cancel flow control on the second priority service flow.

[0082] In the above implementation, by carrying the second priority in the third cancellation backpressure message, it is possible to enable the second device to cancel the flow control of the service flow with the second priority.

[0083] Thirdly, a backpressure processing method for business flow is provided. This method can be executed by a second device, or by a component of the second device, such as the processor, chip, or chip system of the second device, or by a logic module or software that can implement all or part of the functions of the second device.

[0084] In this embodiment, the method is applied to a second device in a second data center. In some embodiments, the second device is used to connect computing devices inside the second data center to network devices outside the second data center. For example, the second device may be a switch device in the second data center, such as a Spine switch.

[0085] The method includes:

[0086] The second device sends a second service flow to the network device connected to the second data center, and the second service flow has the second priority.

[0087] The second device receives a second backpressure message from the network device. The second backpressure message includes a third priority and a second priority. The second backpressure message is used to instruct the second device to perform flow control on the service flow of the second priority.

[0088] Then, the second device performs flow control on the second priority service flow based on the second priority in the second backpressure message.

[0089] In the above technical solution, by carrying a second priority in the second backpressure message, the second device can subsequently implement flow control of the second priority service flow.

[0090] Fourthly, a backpressure processing apparatus for a business flow is provided to implement any of the methods provided in the first aspect. This backpressure processing apparatus includes modules, units, or means that implement the methods described above. The actions performed by these modules, units, or means can be implemented in hardware, software, or by hardware executing corresponding software. The hardware or software includes one or more modules or units corresponding to the functions described above.

[0091] In one possible implementation, the device may include a receiving module and a processing module; wherein:

[0092] A receiving module is used to receive a first service flow from a computing device in the first data center;

[0093] The receiving module is also configured to receive a second service flow from a network device connected to the first data center, wherein the first priority of the first service flow is higher than or equal to the second priority of the second service flow;

[0094] The processing module is used to perform backpressure processing on the first priority service flow in response to the first device's receive buffer being greater than the buffer threshold. The backpressure processing is used to instruct the service flow to be subject to flow control.

[0095] Fifthly, a backpressure processing apparatus for a business flow is provided to implement any of the methods provided in the second aspect above. This backpressure processing apparatus includes modules, units, or means that implement the methods described above. The actions performed by these modules, units, or means can be implemented in hardware, software, or by hardware executing corresponding software. The hardware or software includes one or more modules or units corresponding to the functions described above.

[0096] In one possible implementation, the device may include a transmitting module, a receiving module, and a control module; wherein:

[0097] The sending module is used to send a second service flow to a first device in a first data center connected to a network device. The second service flow has a second priority. The first device is used to connect computing devices inside the first data center with network devices outside the first data center.

[0098] The receiving module is used to receive a first backpressure message from the first device. The first backpressure message includes a third priority and a second priority. The first backpressure message is used to instruct the network device to perform flow control on the second priority service flow.

[0099] The control module is used to perform flow control on the second priority service flow based on the second priority in the first backpressure message.

[0100] Sixthly, a backpressure processing apparatus for a business flow is provided to implement any of the methods provided in the third aspect above. This backpressure processing apparatus includes modules, units, or means that implement the methods described above. The actions performed by these modules, units, or means can be implemented in hardware, software, or by hardware executing corresponding software. The hardware or software includes one or more modules or units corresponding to the functions described above.

[0101] In one possible implementation, the device may include a transmitting module, a receiving module, and a control module; wherein:

[0102] The sending module is used to send a second service flow to the network device connected to the second data center. The second service flow has the second priority.

[0103] The receiving module is used to receive a second backpressure message from the network device. The second backpressure message includes a third priority and a second priority. The second backpressure message is used to instruct the second device to perform flow control on the service flow of the second priority.

[0104] The control module is used to perform flow control on the second priority service flow based on the second priority in the second backpressure message.

[0105] In a seventh aspect, a switching device is provided, comprising: a memory and a processor, the memory and the processor being connected; the memory being used to store computer-executed instructions; and the processor being used to invoke the computer-executed instructions to implement the methods of the first aspect, the third aspect, or any implementation thereof described above.

[0106] The switch device in the seventh aspect can be: a first device in any implementation of the first aspect or a second device in any implementation of the third aspect, or a device that includes the first device or the second device, or a device included in the first device or the second device, such as a chip.

[0107] Eighthly, a network device is provided, comprising: a memory and a processor, the memory and the processor being connected; the memory being used to store computer-executed instructions; and the processor being used to invoke the computer-executed instructions to implement the method of the second aspect above or any implementation thereof.

[0108] The network device in the seventh aspect can be: a network device in any implementation of the second aspect, or an apparatus containing the network device, or an apparatus contained in the network device, such as a chip.

[0109] Ninthly, a chip is provided, the chip comprising: a processor and an interface circuit; the interface circuit being configured to receive computer execution instructions and transmit them to the processor; the processor being configured to execute the computer execution instructions to perform the methods of the first aspect, the second aspect, the third aspect, or any implementation thereof described above.

[0110] When a computer executes instructions on a switching device, the switching device performs the methods described in the first aspect, the third aspect, or any implementation thereof. For example, in some embodiments of this application, when a computer executes instructions on a first device, the first device performs the methods described in the first aspect or any implementation thereof. Similarly, in other embodiments of this application, when a computer executes instructions on a second device, the second device performs the methods described in the third aspect or any implementation thereof. When a computer executes instructions on a network device, the network device performs the methods described in the second aspect or any implementation thereof.

[0111] A tenth aspect provides a computer-readable storage medium including computer-executable instructions that, when executed on a switching device, cause the switching device to perform the methods of the first aspect, the third aspect, or any implementation thereof. For example, in some embodiments of this application, when the computer-executable instructions are executed on a first device, the first device performs the methods of the first aspect or any implementation thereof. As another example, in some embodiments of this application, when the computer-executable instructions are executed on a second device, the second device performs the methods of the third aspect or any implementation thereof. When the computer-executable instructions are executed on a network device, the network device performs the methods of the second aspect or any implementation thereof.

[0112] Eleventhly, a computer program product is provided, including computer execution instructions that, when executed on a switch device, cause the switch device to perform the methods of the first aspect, the third aspect, or any implementation thereof. For example, in some embodiments of this application, when the computer execution instructions are executed on a first device, the first device performs the methods of the first aspect or any implementation thereof. As another example, in some embodiments of this application, when the computer execution instructions are executed on a second device, the second device performs the methods of the third aspect or any implementation thereof. When the computer execution instructions are executed on a network device, the network device performs the methods of the second aspect or any implementation thereof.

[0113] The technical effects of any of the implementation methods in aspects four through eleven can be found in the technical effects of the corresponding implementation methods in aspects one, two, or three, and will not be repeated here.

[0114] All possible implementations of any of the above aspects can be combined, provided that the solutions do not contradict each other. Attached Figure Description

[0115] Figure 1 is a schematic diagram of the architecture of a data transmission mode provided by related technologies;

[0116] Figure 2 is a schematic diagram of a system architecture for backpressure processing of business flows provided by related technologies;

[0117] Figure 3 is a schematic diagram of a system architecture for backpressure processing of a business flow provided in an embodiment of this application;

[0118] Figure 4 is a schematic diagram of the hardware structure of a switch device provided in an embodiment of this application;

[0119] Figure 5 is a schematic diagram of the hardware structure of a network device provided in an embodiment of this application;

[0120] Figure 6 is a flowchart illustrating a backpressure processing method for a business flow provided in an embodiment of this application;

[0121] Figure 7 is a schematic diagram of a process for triggering backpressure based on the priority carried in the Ethernet header, provided in an embodiment of this application.

[0122] Figure 8 is a schematic diagram of a process for triggering backpressure based on the priority carried in the IP packet header, provided by an embodiment of this application;

[0123] Figure 9 is a flowchart illustrating another backpressure processing method for a business flow provided in an embodiment of this application;

[0124] Figure 10 is a schematic diagram of a service flow caching method based on off-chip caching provided in an embodiment of this application;

[0125] Figure 11 is a flowchart illustrating another backpressure processing method for a business flow provided in an embodiment of this application;

[0126] Figure 12 is a schematic diagram of a process for canceling backpressure in a business flow according to an embodiment of this application;

[0127] Figure 13 is a schematic diagram of another service flow cancellation backpressure provided in an embodiment of this application;

[0128] Figure 14 is a schematic diagram of the structure of a backpressure processing device for a business flow provided in an embodiment of this application;

[0129] Figure 15 is a schematic diagram of the structure of another backpressure processing device for a business flow provided in an embodiment of this application;

[0130] Figure 16 is a schematic diagram of another backpressure processing device for a business flow provided in an embodiment of this application. Detailed Implementation

[0131] In the description of this application, unless otherwise stated, "multiple" means two or more. At least one of the following or similar expressions refer to any combination of these terms, including any combination of single or plural terms. For example, at least one of a, b, and / or c can represent: a, b, c, ab, ac, bc, or abc, where a, b, and c can be single or multiple.

[0132] Furthermore, to facilitate a clear description of the technical solutions in the embodiments of this application, the terms "first" and "second" are used in the embodiments of this application to distinguish identical or similar items with substantially the same function and effect. Those skilled in the art will understand that the terms "first" and "second" do not limit the quantity or execution order, and the terms "first" and "second" are not necessarily different.

[0133] In the embodiments of this application, the words "exemplarily" or "for example" are used to indicate examples, illustrations, or explanations. Any embodiment or design described as "exemplarily" or "for example" in the embodiments of this application should not be construed as being more preferred or advantageous than other embodiments or design solutions. Specifically, the use of the words "exemplarily" or "for example" is intended to present the relevant concepts in a specific manner to facilitate understanding.

[0134] It is understood that the term "embodiment" used throughout the specification means that a specific feature, structure, or characteristic related to an embodiment is included in at least one embodiment of this application. Therefore, throughout the specification, various embodiments do not necessarily refer to the same embodiment. Furthermore, these specific features, structures, or characteristics can be combined in any suitable manner in one or more embodiments. It is understood that in the various embodiments of this application, the sequence number of each process does not imply the order of execution; the execution order of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the embodiments of this application.

[0135] It is understood that some optional features in the embodiments of this application can be implemented independently in certain scenarios without relying on other features, such as the current solution on which they are based, to solve the corresponding technical problems and achieve the corresponding effects. Alternatively, they can be combined with other features as needed in certain scenarios. Correspondingly, the apparatus given in the embodiments of this application can also implement these features or functions, which will not be elaborated here.

[0136] In this application, unless otherwise specified, the same or similar parts between the various embodiments can be referred to each other. In the various embodiments of this application, unless otherwise specified or logically conflicting, the terminology and / or descriptions between different embodiments are consistent and can be mutually referenced. Technical features in different embodiments can be combined to form new embodiments based on their inherent logical relationships. The following embodiments of this application do not constitute a limitation on the scope of protection of this application.

[0137] The following provides an exemplary description of the application scenarios of the embodiments of this application.

[0138] In data centers, computing devices such as servers need to frequently transmit and exchange large amounts of data. Data transmission can typically be performed based on Transmission Control Protocol (TCP), Internet Protocol (IP), Remote Direct Memory Access (RDMA), or other data transmission modes.

[0139] For example, Figure 1 is a schematic diagram of an architecture for a data transmission mode provided by related technologies. Referring to Figure 1, a data transmission mode based on TCP / IP communication and a data transmission mode based on RDMA communication are shown.

[0140] In the TCP / IP-based data transmission mode, the application (APP) needs to interact with the operating system (OS) and the network adapter (NIC) to achieve data transmission. Taking the operating system shown in Figure 1 as an example, data needs to be copied layer by layer based on the central processing unit (CPU), that is, data is read or written layer by layer in the memory of the TCP / IP layer (such as the buffer) and the driver layer to achieve data transmission.

[0141] In RDMA-based data transmission mode, applications can bypass the operating system and interact directly with the network card to achieve communication. Taking the network card shown in Figure 1 as an example, by deploying an RDMA controller in the network card, applications can use the RDMA controller to directly read or write data in the network card's memory, thereby achieving direct memory access to data.

[0142] As can be seen, RDMA, or Remote Direct Memory Access (DMA), is a highly efficient data transfer method that allows applications to directly read or write to remote memory without kernel intervention or memory copying, thus achieving direct memory access to data. This reduces data transfer latency and improves network communication efficiency. Furthermore, it effectively saves CPU resources and reduces CPU load.

[0143] RDMA's high performance and low latency characteristics make it ideal for network communication in data centers, effectively improving overall performance. Therefore, future data transmission models in data centers are gradually evolving towards RDMA-based communication, with service flows typically being RDMA streams. Service flows refer to the data streams transmitted between computing devices, used to transmit data that users need to exchange, such as various types of data like text, images, audio, and video.

[0144] During the transmission of service streams, such as RDMA streams, from the sending end to the receiving end, to ensure lossless transmission, backpressure processing, such as PFC backpressure processing, is required when the receiving end experiences outbound congestion due to fiber optic faults, hash imbalances, or other issues. PFC backpressure processing provides priority-based flow control tiered by tier. For example, the receiving end can send priority-carrying backpressure messages to upstream devices tier by tier to notify them to stop or slow down the transmission of service streams of corresponding priorities, until the backpressure reaches the sending end, ultimately achieving flow control at the sending end.

[0145] However, when outbound congestion occurs at the receiving end, performing backpressure processing solely based on the priority of service flows may negatively impact the transmission efficiency of long-distance flows. Long-distance flows refer to data flows transmitted over relatively long network distances, such as data flows across data centers. Conversely, short-distance flows refer to data flows transmitted over relatively short network distances, such as data flows within a data center. For example, if the receiving end receives both long-distance and short-distance flows simultaneously, backpressure processing may be applied to both, significantly impacting the long-distance flows and resulting in a substantial decrease in their transmission efficiency.

[0146] Based on Figure 2, the system architecture for backpressure processing of business flows in related technologies will be introduced below.

[0147] For example, Figure 2 is a schematic diagram of a system architecture for backpressure processing of a service flow provided by related technologies. Referring to Figure 2, taking a cross-data center communication scenario as an example, the system architecture includes: a sending data center, network equipment, and a receiving data center.

[0148] In this context, the sending data center refers to the data center where the service flow originates (i.e., the source end), also known as the source data center. Referring to Figure 2, the sending data center may include computing devices, Ethernet switches, and core switches. The receiving data center refers to the data center where the service flow originates (i.e., the destination end), also known as the destination data center. Referring to Figure 2, the receiving data center may include computing devices, Ethernet switches, and core switches.

[0149] The computing devices can be servers used to perform computational tasks, such as artificial intelligence (AI) model training. For example, when starting an AI model training task in a data center, the computing devices can be used to perform tasks such as transmitting training data or transmitting training results. Referring to Figure 2, the number of computing devices in the sending and receiving data centers can be one or more.

[0150] An Ethernet switch connects to a computing device at one end and to a core switch at the other end, enabling communication between the computing device and the core switch. In some embodiments, taking a Spine-Leaf architecture data center as an example, the Ethernet switch can be a Leaf switch.

[0151] One end of the core switch connects to an Ethernet switch, and the other end connects to network devices, connecting the internal and external networks of the data center to provide network connectivity and data forwarding capabilities. In some embodiments, taking a Spine-Leaf architecture as an example, the core switch can be a Spine switch.

[0152] Network devices are used to transmit data between a sending data center and a receiving data center. In some embodiments, network devices may be optical network transmission devices, such as optical transport network (OTN) devices. In some embodiments, the number of network devices may be one or more, such as the OTN1 device and OTN2 device shown in Figure 2.

[0153] As described above, computing devices, Ethernet switches, core switches, and network devices all have port PFC enabled, meaning that PFC functionality is pre-configured, allowing for fine-grained control of service flows on specific ports based on priority. For example, PFC backpressure thresholds can be pre-configured for computing devices, Ethernet switches, core switches, and network devices, including PFC enable backpressure thresholds and PFC disable backpressure thresholds.

[0154] The PFC backpressure threshold can be a buffer threshold for the receive buffer, such as a receive buffer occupancy threshold or a receive buffer occupancy rate threshold. The PFC backpressure threshold determines when a backpressure message is triggered (to notify upstream devices to stop or slow down the transmission flow) and when a backpressure message is canceled (to notify upstream devices to resume the transmission flow). Typically, the device needs to continuously monitor the receive buffer occupancy. When the receive buffer occupancy reaches or exceeds the occupancy threshold, or the receive buffer occupancy rate reaches or exceeds the occupancy rate threshold, a backpressure message is triggered. When the receive buffer occupancy drops below the occupancy threshold or the receive buffer occupancy rate drops below the occupancy rate threshold, the previously triggered backpressure message is canceled, thereby resuming the transmission flow.

[0155] The following example illustrates the backpressure processing flow of a service flow in related technologies, using the example of a computing device in a sending data center transmitting a service flow to a computing device in a receiving data center. The corresponding process may include the following steps ① to ⑤.

[0156] ① In the sending data center, computing devices send service flows to Ethernet switches, which receive the service flows and forward them to the core switches. The priority of the service flows can be 4.

[0157] ② The core switch in the sending data center receives service flows and sends them to network devices. The network devices receive service flows and send them to the core switch in the receiving data center.

[0158] ③ The core switch of the receiving data center receives service flows from network devices. When the core switch of the receiving data center triggers the PFC backpressure threshold due to egress congestion, it sends a PFC backpressure message to the network device (e.g., priority (PRI) = 4 in the PFC message header) to notify the network device to stop or slow down the transmission of service flows with priority 4.

[0159] The PFC backpressure message can be a PFC PAUSE frame. For example, the content of the PFC message header can be as shown in Table 1, including a medium access control (MAC) field, a message type field, a PRI field, and a custom (padding, PAD) field.

[0160] Table 1

[0161] As shown in Table 1, the MAC field indicates the physical address of the network device; for example, MAC1 is used to indicate the physical address of the network device. The packet type field indicates that the packet type is a PFC backpressure packet; for example, 0x8808 indicates that the packet type is a PFC backpressure packet. The PRI field indicates the priority; for example, priority 4. The PAD field is used to fill in custom content; for example, PAD=0 indicates no custom content.

[0162] ④ The network device receives the PFC backpressure message, parses the PFC backpressure message to obtain a priority of 4, and stops or slows down the transmission of service flows with a priority of 4. When the network device triggers the PFC backpressure threshold, it sends a PFC backpressure message (such as PRI=4 in the PFC message header) to the core switch of the sending data center to notify the core switch of the sending data center to stop or slow down the transmission of service flows with a priority of 4.

[0163] ⑤ The core switch in the sending data center receives the PFC backpressure message, parses the PFC backpressure message to obtain a priority of 4, and stops or slows down the transmission of service flows with a priority of 4. In the sending data center, when the core switch triggers the PFC backpressure threshold, it sends a PFC backpressure message (such as PRI=4 in the PFC message header) to the Ethernet switch to notify the Ethernet switch to stop or slow down the transmission of service flows with a priority of 4.

[0164] ⑥ The Ethernet switch in the sending data center receives the PFC backpressure message, parses the PFC backpressure message to obtain a priority of 4, and stops or slows down the transmission of service flows with a priority of 4. When the Ethernet switch triggers the PFC backpressure threshold, it sends a PFC backpressure message (such as PRI=4 in the PFC message header) to the computing device to notify the computing device to stop or slow down the transmission of service flows with a priority of 4.

[0165] In this way, by progressively applying backpressure until it reaches the source end, i.e., the computing equipment in the sending data center, the computing equipment in the sending data center stops or slows down the transmission of service flows with priority 4. At this point, the transmission of service flows stops along the entire end-to-end transmission path, while the core switch in the receiving data center continues to transmit service flows. Thus, the buffer pressure on each device along the entire end-to-end transmission path can be alleviated. The end-to-end transmission path refers to the transmission process of service flows from the starting point (e.g., the computing equipment in the sending data center) to the ending point (e.g., the core switch in the receiving data center). When the buffer usage of each device along the transmission path falls below the backpressure cancellation threshold, the core switch in the receiving data center begins to progressively send backpressure cancellation messages upstream to the source end, allowing the service flow along the entire transmission path to resume.

[0166] It can be observed that for the core switch of the receiving data center in Figure 2, the service flows received by the core switch may include service flows inside the receiving data center (short-distance flows shown by the dotted lines in Figure 2) and service flows outside the receiving data center (long-distance flows shown by the dashed lines in Figure 2). Therefore, when the core switch of the receiving data center performs backpressure processing, it is very likely that backpressure processing will be performed on both long-distance and short-distance flows. For example, if the priority of the long-distance flow shown by the dashed lines in Figure 2 is 4, and the priority of the short-distance flow shown by the dashed lines is also 4, then when backpressure is triggered, backpressure processing will be performed on both long-distance and short-distance flows. For example, the network device sending the long-distance flow upstream will return a PFC backpressure message: PRI=4, to notify the network device to stop or slow down the transmission of service flows with priority 4, and the Ethernet switch sending the short-distance flow upstream will return a PFC backpressure message: PRI=4, to notify the Ethernet switch to stop or slow down the transmission of service flows with priority 4. For example, if the priority of a long-distance flow (e.g., 4) is lower than that of a short-distance flow (e.g., 5), then backpressure processing will be performed on the long-distance flow first when backpressure is triggered. Since long-distance flows are transmitted through several levels to the core switch, backpressure processing has a significant impact on the transmission efficiency of long-distance flows.

[0167] Therefore, this application provides a backpressure processing method for service flows, which can be applied to communication scenarios across data centers, specifically to remote data transmission scenarios across data centers. For example, the backpressure processing method for service flows provided in this application can be applied to intelligent remote computing scenarios across data centers.

[0168] In this context, "remote computing" refers to separating the physical location of storage resources from the physical location of computing resources, and achieving efficient remote data transmission and access through advanced network technologies. For example, in some possible embodiments, in a cross-datacenter remote computing scenario, data samples (such as images, text, and audio) required for AI model training can be remotely transmitted over a network. Similarly, in other possible embodiments, in a cross-datacenter remote computing scenario, intermediate training results (such as model training results) obtained during AI model training can be remotely transmitted over a network.

[0169] The technical solution provided in this application embodiment involves a first device receiving a first service flow from a computing device in a first data center and a second service flow from a network device. When the first priority of the first service flow is higher than or equal to the second priority of the second service flow, backpressure processing based on priority can be performed preferentially on the service flow with the first priority. The first service flow received by the first device is a data flow within the data center, i.e., a short-distance flow, and the second service flow received by the first device is a data flow across data centers, i.e., a long-distance flow. In other words, backpressure processing is preferentially performed on the first service flow (short-distance flow), without requiring backpressure processing on the second service flow (long-distance flow), allowing the second service flow (long-distance flow) to transmit normally and effectively reducing the impact of backpressure processing on the transmission efficiency of the second service flow (long-distance flow).

[0170] In some embodiments of this application, the first device can increase the priority of the second service flow, making the priority of the second service flow higher than that of the first service flow. This means that by increasing the priority of the long-distance flow, the priority of the long-distance flow is made higher than that of the short-distance flow. Furthermore, when performing backpressure processing based on priority, since the third priority of the second service flow after priority increase is higher than the first priority of the first service flow, backpressure processing is preferentially triggered on the lower priority (i.e., the first priority) service flow. That is, backpressure processing is performed on the first service flow (i.e., the short-distance flow), without needing to perform backpressure processing on the second service flow (i.e., the long-distance flow).

[0171] To facilitate understanding of the embodiments of this application, the following points will be explained before introducing the embodiments of this application.

[0172] 1. In the embodiments of this application, "instruction" can include direct instruction and indirect instruction, as well as explicit instruction and implicit instruction. The information indicated by a certain piece of information is called the information to be instructed. In specific implementation, there are many ways to indicate the information to be instructed, such as, but not limited to, directly indicating the information to be instructed, such as the information to be instructed itself or its index. It can also indirectly indicate the information to be instructed by indicating other information, where there is a relationship between the other information and the information to be instructed. It can also indicate only a part of the information to be instructed, while the other parts of the information to be indicated are known or pre-agreed.

[0173] 2. In the embodiments of this application, the descriptions such as "in the case of", "if" and "if" all refer to the fact that the device (e.g., network device) will make corresponding processing under certain objective circumstances. They are not time limits, nor do they require the device (e.g., network device) to have a judgment action when implementing it, nor do they mean that there are other limitations.

[0174] Furthermore, the system architecture and business scenarios described in the embodiments of this application are for the purpose of more clearly illustrating the technical solutions of the embodiments of this application, and do not constitute a limitation on the technical solutions provided in the embodiments of this application. As those skilled in the art will know, with the evolution of system architecture and the emergence of new business scenarios, the technical solutions provided in the embodiments of this application are also applicable to similar technical problems.

[0175] Furthermore, the actions, terms, etc., involved in the various embodiments of this application can be referenced interchangeably without limitation. The message names or parameter names in the messages exchanged between the various devices in the embodiments of this application are merely examples, and other names may be used in specific implementations without limitation.

[0176] The system architecture of the embodiments of this application will be described below as an example.

[0177] In some embodiments, the backpressure processing method for service flows provided in this application can be applied to the system architecture shown in FIG3. For example, FIG3 is a schematic diagram of the system architecture of a backpressure processing method for service flows provided in an embodiment of this application. Referring to FIG3, the system architecture includes a first data center 301, a network device 302, and a second data center 303.

[0178] The first data center 301 may include a first device 3011. In this embodiment, the first device 3011 is used to connect the computing devices inside the first data center 301 with the network devices 302 outside the first data center 301.

[0179] In some embodiments of this application, the first device 3011 may be the core switch of the first data center 301, such as a Spine switch. It is worth noting that in other embodiments, the first device 3011 may also be other devices that support data forwarding, and this application does not limit this.

[0180] Referring to Figure 3, taking the first device 3011 as the core switch of the first data center 301 as an example, the first data center 301 may also include an Ethernet switch. One end of the Ethernet switch is connected to the computing device, and the other end is connected to the core switch, used to enable communication between the computing device and the core switch.

[0181] The second data center 303 may include a second device 3031. In this embodiment, the second device 3031 is used to connect the computing devices inside the second data center 303 with the network devices 302 outside the second data center 303.

[0182] In some embodiments of this application, the second device 3031 may be the core switch of the second data center 303, such as a Spine switch. It is worth noting that in other embodiments, the second device 3031 may also be other devices that support data forwarding, and this application does not limit this to such devices.

[0183] Referring to Figure 3, taking the second device 3031 as the core switch of the second data center 303 as an example, the second data center 303 may also include an Ethernet switch. One end of the Ethernet switch is connected to the computing device, and the other end is connected to the core switch, used to enable communication between the computing device and the core switch.

[0184] Network device 302 is a device used for data transmission between the first data center 301 and the second data center 303. In some embodiments, the number of network devices 302 can be one or more, and this application embodiment does not limit this. Figure 3 illustrates the system architecture using two network devices as an example.

[0185] In some embodiments of this application, network device 302 may be an OTN device, such as OTN1 and OTN2 devices shown in FIG3. It is worth noting that in other embodiments, network device 302 may also be other network devices that support data transmission, and this application embodiment does not limit this. For example, network device 302 can support the transmission of long-distance streams, such as service streams with a transmission distance of (100-1000) kilometers (km).

[0186] The backpressure processing method for service flows provided in this application embodiment can be completed by the cooperation of the first device 3011 in the first data center 301, the network device 302, and the second device 3031 in the second data center 303. Accordingly, the backpressure processing flow for service flows may include:

[0187] The first device 3011 receives a first service flow from the computing device of the first data center 301.

[0188] The second device 3031 sends a second service flow to the network device 302. The network device 302 receives the second service flow from the second device 3031 and sends the second service flow to the first device 3011.

[0189] First device 3011 receives a second service flow from network device 302.

[0190] If the first priority of the first service flow is higher than or equal to the second priority of the second service flow, the first device 3011 updates the second priority of the second service flow to the third priority, where the third priority is higher than the first priority. In response to the first device 3011's receive buffer exceeding a buffer threshold, the first device 3011 performs backpressure processing on the service flow with the first priority.

[0191] It is understood that the first data center 301 in this application embodiment can correspond to the receiving data center in the related art, and the second data center 303 in this application embodiment can correspond to the sending data center in the related art.

[0192] For ease of understanding, the following example illustrates the backpressure processing flow of the service flow in this application embodiment, using the transmission of service flow from the computing device in the sending data center to the computing device in the receiving data center as an example. The corresponding process may include the following steps ① to ⑤.

[0193] ① In the receiving data center, the computing device sends the first service flow to the Ethernet switch, which receives the first service flow and forwards it to the core switch. The priority of the first service flow can be 4.

[0194] Understandably, the first service flow received by the core switch of the receiving data center at this time is also the data flow inside the data center, i.e., the short-range flow, as shown by the dotted line in Figure 2.

[0195] ② In the sending data center, the computing device sends the second service flow to the Ethernet switch, which receives the second service flow and forwards it to the core switch. The priority of the second service flow can be 4.

[0196] ③ The core switch in the sending data center receives the second service flow and sends it to the network devices. The network devices receive the second service flow and send it to the core switch in the receiving data center.

[0197] ④ The core switch in the receiving data center receives the second service flow from the network device. If the first priority of the first service flow (i.e., short-distance flow) received by the core switch is higher than or equal to the second priority of the second service flow (i.e., long-distance flow), the second priority of the second service flow is updated to the third priority. The third priority is higher than the first priority, as shown in step 5.

[0198] Understandably, the second service flow received by the core switch of the receiving data center at this time is also a cross-data center data flow, i.e., a long-distance flow, as shown by the dotted line in Figure 2.

[0199] ⑤ When the core switch of the receiving data center triggers the PFC to open the backpressure threshold due to outbound congestion, since the third priority of the second service flow (i.e., long-distance flow) (e.g., PRI=5) is greater than the first priority of the first service flow (i.e., short-distance flow) (e.g., PRI=4), the service flow with the first priority will be backpressure processed first.

[0200] It can be observed that when the first priority of the first business flow is higher than or equal to the second priority of the second business flow, that is, when the priority of the short-distance flow is higher than or equal to the priority of the long-distance flow, by increasing the priority of the long-distance flow, it can be ensured that the priority of the long-distance flow is higher than that of the short-distance flow. Thus, when backpressure is triggered in the future, backpressure processing can be performed on the short-distance flow first, without having to perform backpressure processing on the long-distance flow, thereby reducing the impact of backpressure processing on the long-distance flow.

[0201] It is worth noting that the sending end and receiving end mentioned in the embodiments of this application are relative and can interchange roles in different communication stages or different communication scenarios. For example, in a two-way communication system, each device can both send data as a sending end and receive data as a receiving end.

[0202] The first and second devices involved in Figure 3 above can be a type of switch device. In one example of this application, a schematic diagram of the hardware structure of the switch device is shown in Figure 4. Figure 4 is a schematic diagram of the hardware structure of a switch device provided in an embodiment of this application.

[0203] Referring to Figure 4, the switch device shown in Figure 4 may include: a processor 401, a memory 402, a communication module 403, and a bus 404. The processor 401, the memory 402, and the communication module 403 can be connected via the bus 404.

[0204] The processor 401 is the control center of the switch device. It can be a general-purpose central processing unit such as a CPU, or other general-purpose processors. The general-purpose processor can be a microprocessor or any conventional processor.

[0205] In this embodiment of the application, the backpressure processing method for the service flow can be executed by the processor 401 in the switching device. For example, in some embodiments of this application, the switching device can be a first device, and the processor 401 in the first device can execute the content executed by the first device in the backpressure processing method for the service flow. As another example, in some embodiments of this application, the switching device can be a second device, and the processor 401 in the second device can execute the content executed by the second device in the backpressure processing method for the service flow.

[0206] As an example, processor 401 may include one or more CPUs, such as CPU0 and CPU1 shown in Figure 4.

[0207] The memory 402 may be a read-only memory (ROM) or other type of static storage device capable of storing static information and instructions, random access memory (RAM) or other type of dynamic storage device capable of storing information and instructions, or electrically erasable programmable read-only memory (EEPROM), disk storage media or other magnetic storage devices, or any other medium capable of carrying or storing desired program code in the form of instructions or data structures and accessible by a computer, but is not limited thereto.

[0208] In one possible implementation, the memory 402 may exist independently of the processor 401. The memory 402 can be connected to the processor 401 via a bus 404 and is used to store data, instructions, or program code. When the processor 401 calls and executes the instructions or program code stored in the memory 402, it can implement the backpressure processing method for the service flow provided in this embodiment.

[0209] For example, in some embodiments of this application, the switching device can be a first device. When the processor 401 in the first device calls and executes the instructions or program code stored in the memory 402, it enables the first device to execute the content executed by the first device in the backpressure processing method of the service flow. As another example, in some embodiments of this application, the switching device can be a second device. When the processor 401 in the second device calls and executes the instructions or program code stored in the memory 402, it enables the second device to execute the content executed by the second device in the backpressure processing method of the service flow.

[0210] In another possible implementation, the memory 402 can also be integrated with the processor 401.

[0211] The communication module 403 is used for connecting the switch device to other devices via a communication network, which can be Ethernet, radio access network (RAN), wireless local area network (WLAN), etc. The communication module 403 may include a receiving unit for receiving data and a transmitting unit for transmitting data.

[0212] Bus 404 can be an industry standard architecture (ISA) bus, a peripheral component interconnect (PCI) bus, or an extended industry standard architecture (EISA) bus. This bus can be divided into address bus, data bus, control bus, etc. For ease of illustration, only one thick line is used in Figure 4, but this does not indicate that there is only one bus or one type of bus.

[0213] It should be noted that the structure shown in Figure 4 does not constitute a limitation on the switching device. In addition to the components shown in Figure 4, the switching device may include more or fewer components than shown, or combine certain components, or have different component arrangements.

[0214] Regarding the network device involved in Figure 3 above, in one example of this application, the hardware structure diagram of the network device is shown in Figure 5. Figure 5 is a hardware structure diagram of a network device provided in an embodiment of this application. Referring to Figure 5, the network device may include one or more of a tributary board 501, a line board 502, and a cross-connect board 503, and may also include a system control board 504, and one or more of a power supply board 505, a fan board 506, and an auxiliary board 507.

[0215] When the network device is a box-type device, the tributary board 501 and the line board 502 can be integrated into one unit. The line board 502 can also be an optical layer processing board. Depending on specific needs, the type and number of boards included in each device may vary. For example, a network device acting as a core node may not have a tributary board 501, while a network device acting as an edge node may have multiple tributary boards 501.

[0216] Branch board 501, line board 502 and cross board 503 are mainly used to process the electrical layer signals of OTN (also known as OTN frames).

[0217] The tributary board 501 is used to receive and transmit various customer signals (also known as customer services), such as the service flows mentioned in the embodiments of this application. Customer signals may include constant bit rate (CBR) signals (e.g., synchronous digital hierarchy (SDH) signals) and packet signals (e.g., Ethernet signals). Furthermore, the tributary board 501 may include a customer-side optical module and a signal processor. The customer-side optical module is used to receive and / or transmit customer signals. The signal processor is used to perform mapping and demapping processing of customer signals to OTN frames. The signal processor may be located inside or outside the customer-side optical module. If the signal processor is a combination of multiple chips, one (or some) of the chips may be inside the customer-side optical module, while the others may be outside.

[0218] Circuit board 502 primarily handles the processing of line-side OTN frames. Specifically, circuit board 502 may include a line-side optical module and a signal processor. The line-side optical module is used to receive and / or transmit optical signals carrying OTN frames. The signal processor is used to perform multiplexing and demultiplexing, or mapping and demapping, of the line-side OTN frames. The signal processor may be located inside or outside the line-side optical module. If the signal processor is a combination of multiple chips, one (or some) of the chips may be inside the line-side optical module, while the others may be outside. The client-side optical module or the line-side optical module may also be collectively referred to as an optical module or an optical transceiver. The signal processor in the client-side optical module or the line-side optical module may be an optical digital signal processor (oDSP) or a framer, or a combination of a framer and an oDSP.

[0219] Cross-connect board 503 is used to implement the switching of OTN frames, such as to complete the switching of one or more types of OTN frames.

[0220] System control board 504 is used for system control. Specifically, the system control board can collect information from different boards or send control commands to the corresponding boards.

[0221] Power supply board 505 is used to power network devices and may include primary and backup power supplies. Fan board 506 is used to cool devices. Auxiliary board 507 is used to provide auxiliary functions such as external alarms or access to external clocks.

[0222] Unless otherwise specified, a component in a network device (such as tributary board 501) may be one or more, and this application embodiment does not impose any limitation on this.

[0223] For ease of understanding, the backpressure processing method for business flows provided in this application embodiment will be described below with reference to the above system architecture and accompanying drawings.

[0224] It is understood that in the embodiments of this application, the first device, the network device, and the second device may perform some or all of the steps in the embodiments of this application. These steps or operations are merely examples, and the embodiments of this application may also perform other operations or variations of various operations.

[0225] Figure 6 is a flowchart illustrating a backpressure processing method for a service flow according to an embodiment of this application. In some possible implementations, this backpressure processing method for the service flow can be completed by the cooperation of the first device, the network device, and the second device in the above system architecture. Referring to Figure 6, taking the interaction flow between the first device, the network device, and the second device as an example, the method includes the following steps S601 to S607.

[0226] S601, The first device receives the first service flow from the computing device.

[0227] Here, "first service flow" refers to the data flow within the internal network of the first data center where the first device is located, and can be called a local data flow. It can be understood that the first service flow is a short-distance flow.

[0228] In this embodiment, the priority of the first service flow is a first priority. In some embodiments, the first priority may be included in the header of the first service flow.

[0229] S602, The second device sends a second service flow to the network device.

[0230] The second service flow refers to the data flow in the external network of the first data center where the first device is located, such as cross-data center data flow. In other words, the second service flow is a long-distance flow.

[0231] In this embodiment, the priority of the second service flow is a second priority. In some embodiments, the second priority may be included in the header of the second service flow.

[0232] Regarding the first service flow mentioned in S601 and the second service flow mentioned in S602, both the first and second service flows can be RDMA flows, such as Remote Direct Memory Access Protocol over Converged Ethernet (RoCEv2) flows. It is worth noting that in some embodiments, the first and second service flows can also be other types of data flows, such as TCP or IP flows. The embodiments of this application will subsequently use RoCEv2 flows as an example to illustrate the scheme.

[0233] Taking a RoCEv2 flow as an example, in some possible implementations, priority can be included in the Ethernet header of the RoCEv2 flow. For instance, the Ethernet header of a RoCEv2 flow may include a destination MAC (DMAC) field, a source MAC (SMAC) field, and a virtual local area network (VLAN) tag.

[0234] The DMAC field indicates the MAC address of the receiving device. The SMAC field indicates the MAC address of the sending device. The VLAN tag identifies the virtual local area network to which the service flow belongs. The VLAN tag may include a priority field such as the PRI field.

[0235] In this embodiment of the application, the priority may include the PRI field in the VLAN tag of the Ethernet header.

[0236] Taking a RoCEv2 flow as an example, in some other possible implementations, priority may be included in the IP header of the RoCEv2 flow. For instance, the IP header of a RoCEv2 flow may include a version (Ver) field, a length field, a differentiated services code point (DSCP) field, a destination IP (DIP) field, and a source IP (SIP) field.

[0237] The Ver field identifies the RoCEv2 protocol. The Length field indicates the total length of the data packet. The DSCP field identifies the packet priority, typically used to specify the quality of service (QoS) of the IP flow. The DIP field indicates the IP address of the receiving device. The SIP field indicates the IP address of the sending device.

[0238] In this embodiment of the application, the priority may be included in the DSCP field of the IP header.

[0239] S603. The network device receives the second service flow from the second device and sends the second service flow to the first device.

[0240] In some embodiments, after receiving a second service flow from a second device, the network device obtains a second priority of the second service flow and associates the second priority of the second service flow with the receiving queue of the network device to facilitate subsequent priority-based backpressure processing.

[0241] The receive queue is used to store service flow data received by the network device, such as data including a second service flow. In some embodiments, the network device may maintain one or more receive queues on its port, such as traffic manager (TM) queues. Different receive queues may be associated with different priorities, such as priority 0 to priority 7.

[0242] In this embodiment of the application, the backpressure processing can be PFC backpressure processing, which refers to providing priority-based flow control step by step, such as instructing the upstream device to stop or slow down the transmission of service flow by sending backpressure messages to the upstream device.

[0243] For example, network devices can monitor the receive buffer in real time, that is, the buffer occupancy of all receive queues set by the network device. If the buffer occupancy of any receive queue is greater than the buffer threshold, it means that the network device's receive buffer is greater than the buffer threshold, triggering PFC to enable the backpressure threshold, and then triggering backpressure processing based on the priority associated with that receive queue.

[0244] For example, Figure 7 is a schematic diagram of a backpressure triggering process based on the priority carried in the Ethernet header according to an embodiment of this application. Referring to Figure 7, taking RoCEv2 flow as an example, a message format of RoCEv2 flow is shown. The second priority can be carried in the PRI field of the VLAN tag in the Ethernet header of the RoCEv2 flow.

[0245] Taking an OTN network device as an example, the OTN board of an OTN device can be configured with multiple ports, such as port P1 and port P2. Correspondingly, the backpressure triggering process based on the priority carried in the Ethernet header of the OTN device can include: ① Receiving service flows. The OTN device can receive RoCEv2 flows through the port (port P1 as shown in Figure 7). Furthermore, the OTN device's service processing chip processes the received RoCEv2 flow packets to obtain the second priority from the PRI field of the VLAN tag. ② Priority association. Taking queue 1 maintained by port P1 as an example, the second priority can be associated with queue 1, such as adding a second priority tag to queue 1. ③ Backpressure monitoring. The network device can monitor the buffer usage of all configured queues in real time, such as counting the number of packets stored in all queues. If the buffer usage of any receiving queue, such as queue 1, exceeds the buffer threshold, backpressure is triggered based on the priority of that receiving queue, such as queue 1.

[0246] For example, Figure 8 is a schematic diagram of a backpressure triggering process based on the priority carried in the IP packet header according to an embodiment of this application. Referring to Figure 8, taking RoCEv2 flow as an example, a packet format of RoCEv2 flow is shown. The second priority can be carried in the DSCP field of the IP packet header of the RoCEv2 flow.

[0247] Taking an OTN network device as an example, the OTN board of the OTN device can be configured with multiple ports, such as port P1 and port P2. Correspondingly, the process of triggering backpressure based on the priority carried in the IP packet header can include: ① Receiving service flows. The OTN device can receive RoCEv2 flows through the port (port P1 as shown in Figure 8). Furthermore, the OTN device's service processing chip processes the received RoCEv2 flow packets to obtain the second priority from the DSCP field of the IP packet header. ② Priority association. Taking queue 1 maintained on port P1 as an example, the second priority can be associated with queue 1, such as adding a second priority label to queue 1. ③ Backpressure monitoring. The network device can monitor the buffer usage of all configured queues in real time, such as counting the number of packets stored in all queues. If the buffer usage of any receiving queue, such as queue 1, exceeds the buffer threshold, backpressure is triggered based on the priority of that receiving queue, such as queue 1.

[0248] S604, The first device receives the second service flow from the network device.

[0249] The execution order of receiving the first service flow based on S601 and receiving the second service flow based on S602 to S604 is not limited.

[0250] In some embodiments, after receiving a second service flow from a network device, the first device determines whether the first priority of the first service flow is higher than or equal to the second priority of the second service flow. If the first priority of the first service flow is higher than or equal to the second priority of the second service flow, then step S605 is executed. If the first priority of the first service flow is lower than the second priority of the second service flow, then step S605 does not need to be executed; the first device can subsequently monitor its receive buffer and trigger backpressure based on priority when the receive buffer exceeds a buffer threshold.

[0251] The first device may be equipped with a remote port for receiving the second service stream, i.e., a long-distance stream. The first device may also be equipped with a local port for receiving the first service stream, i.e., a short-distance stream. After the first device receives the second service stream through the remote port, a judgment process can be triggered to determine whether the first priority of the first service stream is higher than or equal to the second priority of the second service stream.

[0252] In some embodiments, after receiving the second service flow from the network device, the first device also obtains the second priority of the second service flow and associates the second priority of the second service flow with the receiving queue of the first device to facilitate subsequent priority-based backpressure processing. The relevant content is similar to that shown in S603 and will not be repeated here.

[0253] S605. If the first priority of the first service flow is higher than or equal to the second priority of the second service flow, the first device updates the second priority of the second service flow to the third priority.

[0254] In this embodiment of the application, the third priority is higher than the first priority.

[0255] It is understandable that the service flow received by the first device at this time includes a first service flow and a second service flow, i.e., long-distance flow and short-distance flow. If the first priority of the first service flow is higher than or equal to the second priority of the second service flow (i.e., the priority of the short-distance flow is higher than or equal to the priority of the long-distance flow), then the priority of the long-distance flow needs to be increased to ensure that the priority of the long-distance flow is higher than that of the short-distance flow, thus allowing for priority backpressure processing on the short-distance flow in subsequent operations. Conversely, if the first priority of the first service flow is lower than the second priority of the second service flow (i.e., the priority of the short-distance flow is lower than that of the long-distance flow), then there is no need to perform the priority increase process.

[0256] S606. The first device responds to the fact that the first device's receive buffer is greater than the buffer threshold by performing backpressure processing on the first priority service flow.

[0257] In some embodiments, taking the first data center in the system architecture shown in Figure 3 as an example, the first data center may include computing devices, Ethernet switches and core switches, wherein the first device is also the core switch.

[0258] Accordingly, the backpressure processing of first-priority service flows can be completed collaboratively by the computing device, Ethernet switch, and core switch. The process can be as follows: The core switch sends a backpressure message to the Ethernet switch, which includes the first priority level to instruct the Ethernet switch to perform flow control on the first-priority service flows, i.e., stop or slow down the transmission of first-priority service flows. The Ethernet switch receives the backpressure message from the core switch and performs flow control on the first-priority service flows. In response to the Ethernet switch's receive buffer exceeding a buffer threshold, the Ethernet switch sends a backpressure message to the computing device, which also includes the first priority level to instruct the computing device to perform flow control on the first-priority service flows. The computing device receives the backpressure message from the Ethernet switch and performs flow control on the first-priority service flows.

[0259] For example, taking the system architecture shown in Figure 3, the first data center can be a receiving data center, the second data center can be a sending data center, the first device can be the core switch of the receiving data center, and the second device can be the core switch of the sending data center. Network devices can include OTN1 and OTN2 devices between the sending and receiving data centers. The first service flow can be a service flow sent from computing devices in the receiving data center to the core switch via an Ethernet switch. The second service flow can be a service flow sent from computing devices in the sending data center to the core switch of the receiving data center via an Ethernet switch, a core switch, an OTN1 device, and an OTN2 device.

[0260] The following section describes the backpressure processing flow of the service flow in this embodiment of the application, taking the transmission of service flow from the computing device in the sending data center to the computing device in the receiving data center as an example.

[0261] ① In the receiving data center, the computing device sends the first service flow to the Ethernet switch, which receives the first service flow and forwards it to the core switch. The priority of the first service flow can be 4.

[0262] Understandably, at this point, the first service flow received by the core switch of the receiving data center is also the data flow within the data center, i.e., a short-range flow.

[0263] Taking the first service flow as a RoCEv2 flow as an example, the computing devices in the receiving data center can be equipped with RDMA network cards, such as Eth Cards. Accordingly, when a computing device initiates a data transmission task, it can retrieve the data to be sent from memory using the RDMA network card, assemble the data into a RoCEv2 flow, and then send the RoCEv2 flow to an Ethernet switch. Subsequently, the Ethernet switch, through IP address forwarding, can send the RoCEv2 flow from its egress point (e.g., a port) to the core switch.

[0264] ② In the sending data center, the computing device sends the second service flow to the Ethernet switch, which receives the second service flow and forwards it to the core switch. The priority of the second service flow can be 4.

[0265] Taking the second service flow as a RoCEv2 flow as an example, the computing devices in the sending data center can be equipped with RDMA network cards, such as Eth Cards. Accordingly, when a computing device initiates a data transmission task, it can retrieve the data to be sent from memory using the RDMA network card, assemble the data into a RoCEv2 flow, and then send the RoCEv2 flow to an Ethernet switch. Subsequently, the Ethernet switch, through IP address forwarding, can send the RoCEv2 flow from its egress point to the core switch.

[0266] ③ The core switch of the sending data center receives the second service flow and sends it to the OTN1 device. The OTN1 device receives the second service flow and sends it to the OTN2 device. The OTN2 device receives the second service flow and sends it to the core switch of the receiving data center.

[0267] Taking the second service flow as a RoCEv2 flow as an example, the core switch of the sending data center can forward the RoCEv2 flow from its exit point to the OTN1 device via IP address forwarding. Then, the OTN1 device transmits the flow over a long distance to the OTN2 device, which in turn transmits it over a long distance to the core switch of the receiving data center.

[0268] ④ The core switch of the receiving data center receives the second service flow from the OTN2 device. If the first priority of the first service flow (i.e., short-distance flow) received by the core switch is higher than or equal to the second priority of the second service flow (i.e., long-distance flow), the second priority of the second service flow is updated to the third priority. The third priority is higher than the first priority, as shown in step 5.

[0269] Understandably, the second service flow received by the core switch of the receiving data center at this time is also a cross-data center data flow, i.e., a long-distance flow.

[0270] ⑤ When the core switch of the receiving data center triggers the PFC to open the backpressure threshold due to outbound congestion, since the third priority (e.g., 5) of the second service flow (i.e., long-distance flow) is greater than the first priority (e.g., 4) of the first service flow (i.e., short-distance flow), the service flow with the first priority will be backpressure processed first.

[0271] Therefore, based on steps ① to ⑤ above, when the core switch of the receiving data center receives both long-distance and short-distance flows and the priorities of the two flows are asymmetrical (e.g., the priority of the short-distance flow is higher than or equal to the priority of the long-distance flow), the core switch of the receiving data center can elevate the priority of the long-distance flow. Furthermore, when the core switch of the receiving data center triggers PFC to open the backpressure threshold due to egress congestion, it can prioritize backpressure processing for the short-distance flow without requiring backpressure processing for the long-distance flow, ensuring normal communication for the long-distance flow and thus improving the transmission efficiency of long-distance flows across data centers. This provides a mechanism based on the collaboration between OTN devices and switches, which can reduce the impact of backpressure processing on the transmission efficiency of long-distance flows in cross-data center communication scenarios.

[0272] In the above embodiments, S605 prioritizes long-distance flows to trigger backpressure processing on short-distance flows more preferentially. It is worth noting that S605 is an optional step. In other embodiments, after executing S604, the first device may skip S605 and directly execute S606. For example, without executing S605, the first device can adjust the backpressure processing rules to prioritize backpressure processing on short-distance flows. For instance, when triggering backpressure processing for a service flow, backpressure processing can be selectively applied to the service flow by distinguishing between long-distance and short-distance flows.

[0273] S607. The first device responds to the fact that the first device's receive buffer is greater than the buffer threshold by performing backpressure processing on the third priority service flow.

[0274] In this embodiment, the cache thresholds corresponding to different priorities may be the same or different. For example, the cache thresholds corresponding to the first priority and the third priority may be the same or different. It is understood that the cache threshold for the third priority is greater than the cache threshold for the first priority.

[0275] In some embodiments, for the above S606 to S607, taking the first priority and the third priority having the same buffer threshold as an example, when the first device's receive buffer exceeds the buffer threshold due to outgoing congestion, backpressure processing is preferentially applied to low-priority service flows, that is, backpressure processing is applied to first-priority service flows. When the first device's receive buffer continuously exceeds the buffer threshold due to worsening outgoing congestion, backpressure processing begins to apply to high-priority service flows, that is, backpressure processing is applied to third-priority service flows.

[0276] In other embodiments, for S606 to S607 above, taking the different buffer thresholds corresponding to the first priority and the third priority as an example, when the first device's receive buffer exceeds the first priority buffer threshold due to outgoing congestion, backpressure processing is applied to the first priority service flow. When the first device's receive buffer exceeds the third priority buffer threshold due to worsening outgoing congestion, backpressure processing is applied to the third priority service flow.

[0277] The technical solution provided in this application embodiment involves a first device receiving a first service flow from a computing device in a first data center and a second service flow from a network device. If the first priority of the first service flow is higher than or equal to the second priority of the second service flow, the second priority of the second service flow is updated to a third priority, where the third priority is higher than the first priority. The first service flow received by the first device is a data flow within the data center (short-distance flow), and the second service flow received by the first device is a data flow across data centers (long-distance flow). By increasing the priority of the second service flow, its priority is higher than that of the first service flow. This means that by increasing the priority of the long-distance flow, its priority is higher than that of the short-distance flow. Therefore, when performing backpressure processing based on priority, since the third priority of the second service flow after priority increase is higher than the first priority of the first service flow, backpressure processing can be prioritized for the service flow with the first priority. This means backpressure processing is performed on the first service flow (short-distance flow) without requiring backpressure processing on the second service flow (long-distance flow), allowing the second service flow to transmit normally and effectively reducing the impact of backpressure processing on the transmission efficiency of the second service flow (long-distance flow).

[0278] In some embodiments of this application, the backpressure processing of the third-priority service flow in S607 of FIG6 can be completed in conjunction with the process shown in FIG9. FIG9 is a schematic flowchart of another service flow backpressure processing method provided by an embodiment of this application. Referring to FIG9, taking the interaction process between the first device, the network device and the second device as an example, the method includes the following S901 to S906.

[0279] S901, The first device sends the first backpressure message to the network device.

[0280] The first backpressure message includes a third priority and a second priority. In this embodiment, the first backpressure message is used to instruct the network device to perform traffic control on the second priority service flow.

[0281] In some embodiments, a third priority may be included in the priority field of the header of the first backpressure message. A second priority may be included in the first field of the header of the first backpressure message.

[0282] In the first backpressure message, the priority field is used to fill in the priority information to be processed by backpressure. The first field can be a custom field used to fill in custom content, such as the priority information to be actually controlled by the flow control in this embodiment.

[0283] For example, taking a PFC backpressure message as the first backpressure message, the header of the first backpressure message is also the PFC message header. The priority field can be the PRI field, and the first field can be the PAD field. Taking a third priority of 5 and a second priority of 4 as an example, the content of the header of the first backpressure message can be as shown in Table 2.

[0284] Table 2

[0285] It is understandable that the header of the first backpressure message shown in Table 2 above can be obtained by expanding the standard format header (as shown in Table 1). Specifically, by adding relevant content about the second priority to the PAD field of the PFC message header, the actual second priority to be backpressured can be carried in the PFC message header, so that the network device can subsequently implement flow control for the second priority service flow.

[0286] S902, The network device receives the first backpressure message from the first device.

[0287] S903: The network device performs flow control on the second priority service flow based on the second priority in the first backpressure message.

[0288] In some embodiments, in response to information contained in the first field of the header of the first backpressure message, the network device parses the first field to obtain a second priority and performs flow control on the service flow of the second priority. Thus, by parsing the first field in the header of the first backpressure message, the network device can extract the actual second priority to be backpressured.

[0289] The process of network devices performing flow control on second-priority service flows may include: stopping the transmission of second-priority service flows, or reducing the transmission rate of second-priority service flows. Furthermore, the network device buffers any unsent service flows in its off-chip buffer.

[0290] For example, Figure 10 is a schematic diagram of caching service flows based on off-chip buffering according to an embodiment of this application. Referring to Figure 10, taking a core switch as the first device and an OTN device as the network device, firstly, when the core switch egress is congested, backpressure is triggered, and the core switch sends a first backpressure message to the OTN device. Then, the OTN device receives the first backpressure message from the core switch and can perform flow control based on the second priority in the first backpressure message, that is, stop or slow down the transmission of service flows with the second priority. Furthermore, the OTN device can buffer unsent service flows in the off-chip buffer of the network device. For example, the service processing chip of the OTN device can encapsulate the unsent service flows into OTN frames and store them in the off-chip buffer, such as double data rate synchronous dynamic random access memory (DDR). In this way, by buffering unsent service flows in the off-chip buffer of the OTN device, the off-chip buffer of the OTN device can be used to hold long-distance data flows and avoid packet loss in long-distance flows.

[0291] S904. In response to the network device's receive buffer being greater than the buffer threshold, the network device sends a second backpressure message to the second device.

[0292] The second backpressure message includes a third priority and a second priority. In this embodiment, the second backpressure message is used to instruct the second device to perform flow control on the second priority service flow.

[0293] In the second backpressure message, the third priority may be included in the priority field of the message header of the second backpressure message, and the second priority may be included in the first field of the message header of the second backpressure message.

[0294] For example, taking the second backpressure message as a PFC backpressure message, the header of the first backpressure message is also a PFC message header. The priority field can be the PRI field, and the first field can be the PAD field. Taking a third priority of 5 and a second priority of 4 as an example, the content of the header of the second backpressure message can be as shown in Table 2, and will not be elaborated further.

[0295] In the above embodiments, a method is provided to instruct a second device to perform flow control on a service flow of a second priority based on a second backpressure message. Specifically, the second priority is carried in the first field of the header of the second backpressure message to facilitate subsequent flow control of the service flow of the second priority by the second device.

[0296] S905, The second device receives the second backpressure message from the network device.

[0297] S906. The second device performs flow control on the service flow of the second priority based on the second priority in the second backpressure message.

[0298] In some embodiments, the second device responds to the fact that the first field of the header of the second backpressure message contains a second priority, and performs flow control on the service flow of the second priority. Thus, by parsing the first field in the header of the second backpressure message, the second device can extract the actual second priority to be backpressured.

[0299] The process of the second device performing flow control on the second priority service flow may include: stopping the transmission of the second priority service flow, or reducing the transmission rate of the second priority service flow.

[0300] For example, taking the system architecture shown in Figure 3 as an example, in the above exemplary process of transmitting service flow from the computing device of the sending data center to the computing device of the receiving data center, after executing steps ① to ⑤ in the embodiment shown in Figure 5 above, the backpressure processing of the third priority service flow can also be completed based on the following steps ⑥ to ⑧.

[0301] ⑥ When the core switch of the receiving data center continuously triggers the PFC backpressure threshold, if the congestion at the egress point intensifies, the core switch of the receiving data center sends a PFC backpressure message to the OTN2 device (e.g., PRI=5 in the PFC message header and PRI=4 in the PAD field) to notify the OTN2 device to perform flow control on the priority 4 service flow.

[0302] ⑦ The OTN2 device receives the PFC backpressure message, parses the PFC backpressure message to obtain the actual priority 4 to be backpressured, and performs flow control on the service flow with priority 4. When the OTN2 device triggers the PFC backpressure threshold, the OTN2 device sends a PFC backpressure message to the OTN1 device (e.g., PRI=5 in the PFC message header and PRI=4 in the PAD field) to notify the OTN1 device to perform flow control on the service flow with priority 4.

[0303] ⑧ The OTN1 device receives the PFC backpressure message, parses the PFC backpressure message to obtain the actual priority 4 to be backpressured, and performs flow control on the service flow with priority 4. When the OTN1 device triggers the PFC backpressure threshold, the OTN1 device sends a PFC backpressure message (such as PRI=5 in the PFC message header and PRI=4 in the PAD field) to the core switch of the sending data center to notify the core switch of the sending data center to perform flow control on the service flow with priority 4.

[0304] In this way, by applying backpressure at each level until it reaches the source end, i.e., the computing equipment in the sending data center, the computing equipment in the sending data center stops or slows down the transmission of service flows with priority 4. At this point, since the flow stops along the entire transmission path, while the core switch in the receiving data center is still transmitting service flows, the buffer pressure on each device along the entire transmission path can be alleviated.

[0305] In other embodiments of this application, the backpressure processing of the third-priority service flow in S607 of FIG6 can be performed in conjunction with the process shown in FIG11. FIG11 is a schematic flowchart of another service flow backpressure processing method provided by an embodiment of this application. Referring to FIG11, taking the interaction process between the first device, the network device and the second device as an example, the method includes the following S1101 to S1106.

[0306] S1101, The first device sends the first backpressure message to the network device.

[0307] S1102, The network device receives the first backpressure message from the first device.

[0308] S1103. The network device performs flow control on the second priority service flow based on the second priority in the first backpressure message.

[0309] The contents of S1101 to S1103 mentioned above can be found in the contents of S901 to S903 mentioned above, and will not be repeated here.

[0310] S1104. In response to the network device's receive buffer being greater than the buffer threshold, the network device sends a third backpressure message to the second device.

[0311] The third backpressure message includes a second priority. In this embodiment, the third backpressure message is used to instruct the second device to perform flow control on the second priority service flow.

[0312] In the third backpressure message, the second priority can be included in the priority field of the message header.

[0313] For example, taking the third backpressure message as a PFC backpressure message, the header of the third backpressure message is also the PFC message header. The priority field can be the PRI field. Taking a second priority of 4 as an example, the header of the third backpressure message can be as shown in Table 1, and will not be elaborated further.

[0314] In some embodiments, before the network device sends the third backpressure message to the second device, the network device also needs to generate the third backpressure message according to the second priority in the first backpressure message. The process of generating the third backpressure message is described below based on the following implementation methods one and two.

[0315] In the first implementation, the network device responds to the first backpressure message by parsing the first field of its header to obtain the second priority. Then, based on the second priority, the network device generates a third backpressure message.

[0316] For example, when a network device triggers backpressure, it can use the second priority in the first field of the first backpressure message as the priority to be filled into the priority field, and then fill the second priority into the priority field of the header of the newly generated message to generate a third backpressure message.

[0317] Implementation Method 2: The network device responds to the first backpressure message by including information in the second field of the message header. The second field is parsed to obtain priority conversion information, which indicates the conversion priority. Based on the second priority, a third backpressure message is generated.

[0318] For example, when a network device triggers backpressure, it can respond to priority transition information by taking the second priority in the first field of the first backpressure message as the priority to be filled into the priority field, and then filling the priority field of the newly generated message header with the second priority to generate a third backpressure message.

[0319] For example, when a network device triggers backpressure, it can by default fill the priority field of the newly generated packet header with the third priority to generate a standard-format backpressure packet. Then, based on the priority conversion information, the network device converts the third priority in the priority field of the standard-format backpressure packet header to the second priority, thereby generating a third backpressure packet.

[0320] In the second implementation described above, the first backpressure message also carries priority conversion information. This priority conversion information indicates whether to convert the priority; for example, Is Transfer = 0 indicates no priority conversion, and Is Transfer = 1 indicates priority conversion. In this embodiment, the priority conversion information is included in the second field of the header of the first backpressure message.

[0321] The second field can be a custom field used to fill in custom content, such as information indicating whether to perform data transformation on the priority field in the embodiments of this application.

[0322] For example, taking the first backpressure message as a PFC backpressure message, the header of the first backpressure message is also the PFC message header. The second field can be a PAD field. For example, with PRI=4 and Is Transfer=1, the content of the PAD field can be as shown in Table 3.

[0323] Table 3

[0324] Here, 0A0A indicates that the PAD field contains custom content. PRI=4 indicates a priority of 4. Time indicates whether to apply reverse pressure or cancel reverse pressure; for example, Time=0 indicates cancel reverse pressure, and Time=1 indicates reverse pressure. Is Transfer=1 indicates priority conversion.

[0325] The above embodiments describe the process of generating a third backpressure message based on the second priority in the first backpressure message. In other embodiments, there are multiple network devices, such as OTN1 and OTN2. Accordingly, the network device can generate a third backpressure message based on the second priority in the backpressure message of the preceding network device. Based on the following two implementation methods, before sending the third backpressure message to the second device, the network device can also generate a third backpressure message based on the second priority in the backpressure message sent by the previous network device. The process of generating the third backpressure message is described below based on implementation methods three and four.

[0326] Implementation Method 3: The network device responds to the first field of the header of the backpressure message sent by the previous network device, which includes the second priority, and obtains the second priority. Then, based on the second priority, the network device generates a third backpressure message.

[0327] Implementation Method 4: The second field of the header of the backpressure message sent by the previous network device in response to the network device includes priority conversion information, and the priority conversion information indicates the conversion priority. Based on the second priority, a third backpressure message is generated.

[0328] In the above embodiments, a method is provided to instruct a second device to perform flow control on a service flow of a second priority based on a third backpressure message. Specifically, the second priority is carried in the priority field of the header of the third backpressure message to facilitate subsequent flow control of the service flow of the second priority by the second device.

[0329] S1105, The second device receives the third backpressure message from the network device.

[0330] S1106. The second device performs flow control on the second priority service flow based on the second priority in the third backpressure message.

[0331] In some embodiments, the second device responds to the priority field of the header of the third backpressure message by including a second priority, and performs flow control on the service flow of the second priority.

[0332] The process of the second device performing flow control on the second priority service flow may include: stopping the transmission of the second priority service flow, or reducing the transmission rate of the second priority service flow.

[0333] In the example of generating the third backpressure message based on the above implementation methods one and two, taking the system architecture shown in Figure 3 as an example, in the exemplary process of transmitting service flows from the computing device in the sending data center to the computing device in the receiving data center, step ⑦ can be replaced as follows: the OTN2 device receives the PFC backpressure message, parses the PFC backpressure message to obtain the actual priority 4 to be backpressured, and performs flow control on the service flow of priority 4. When the OTN2 device triggers the PFC backpressure threshold, the OTN2 device sends a PFC backpressure message to the OTN1 device through priority conversion (e.g., PRI=4 in the PFC message header, PAD field is 0) to notify the OTN1 device to perform flow control on the service flow of priority 4.

[0334] For example, in the example based on implementation method two, the PFC backpressure message sent by the core switch to the OTN2 device includes PRI=4 and IsTransfer=1 in the PAD field to notify the OTN2 device that the priority in the backpressure message needs to be changed. Then, the OTN2 device parses the PAD field in the PFC backpressure message to obtain PRI=4 and IsTransfer=1. The OTN2 device then performs flow control on the service flow with PRI=4. Furthermore, when the OTN2 device triggers backpressure, in response to IsTransfer=1, it generates a standard format PFC backpressure message, i.e., PRI=4 in the PFC header and the PAD field is 0.

[0335] Step ⑧ can be replaced by: The OTN1 device receives the PFC backpressure message, parses the PFC backpressure message to obtain priority 4, and performs flow control on the service flow with priority 4. When the OTN1 device triggers the PFC backpressure threshold, the OTN1 device sends a PFC backpressure message (e.g., PRI=4 and PAD field is 0 in the PFC message header) to the core switch of the sending data center to notify the core switch of the sending data center to perform flow control on the service flow with priority 4.

[0336] Thus, based on the PFC backpressure message after the priority conversion (i.e., the standard format PFC backpressure message), backpressure can be applied step by step until it reaches the source end, i.e. the computing device of the sending data center, so that the computing device of the sending data center can stop or slow down the transmission of service flow with priority 4. This will not be elaborated further.

[0337] In the example of generating the third backpressure message based on the above implementation methods three and four, taking the system architecture shown in Figure 3 as an example, in the exemplary process of transmitting service flows from the computing device in the sending data center to the computing device in the receiving data center, step ⑧ can be replaced as follows: The OTN1 device receives the PFC backpressure message, parses the PFC backpressure message to obtain the actual priority 4 to be backpressured, and performs flow control on the service flow of priority 4. When the OTN1 device triggers the PFC backpressure threshold, the OTN1 device sends a PFC backpressure message (such as PRI=4 and PAD field is 0 in the PFC message header) to the core switch of the sending data center through priority conversion to notify the core switch of the sending data center to perform flow control on the service flow of priority 4.

[0338] For example, in the example based on implementation method four, the PFC backpressure message sent by the OTN2 device to the OTN1 device includes PRI=4 and IsTransfer=1 in the PAD field to notify the OTN1 device that the priority in the backpressure message needs to be changed. Then, the OTN1 device obtains PRI=4 and IsTransfer=1 by parsing the PAD field in the PFC backpressure message. The OTN1 device then performs flow control on the service flow with PRI=4. Furthermore, when the OTN1 device triggers backpressure, in response to IsTransfer=1, it generates a standard format PFC backpressure message, i.e., PRI=4 and the PAD field is 0 in the PFC message header.

[0339] Thus, based on the PFC backpressure message after the priority conversion (i.e., the standard format PFC backpressure message), backpressure can be applied step by step until it reaches the source end, i.e. the computing device of the sending data center, so that the computing device of the sending data center can stop or slow down the transmission of service flow with priority 4. This will not be elaborated further.

[0340] It is worth noting that in some embodiments, for each device along the entire transmission path described above, flow control can be notified to the upstream device based on the extended message header shown in Table 2. Alternatively, in other embodiments, after the first device sends the first backpressure message to the network device, any one of the following devices—the network device (such as any OTN device), the second device, the Ethernet switch in the second data center, or the computing device in the second data center—can perform a message priority conversion, i.e., convert it to the standard message header shown in Table 1, to notify the upstream device to perform flow control. This application does not limit this approach.

[0341] In the backpressure process shown in Figure 9 above, when the receive buffer of the first device in the first data center is less than the buffer threshold, the first device can start sending a cancellation backpressure message upstream to the source device, and then the service flow of the entire transmission path can be resumed. Figure 12 is a schematic diagram of the cancellation backpressure process of a service flow provided by an embodiment of this application. Referring to Figure 12, taking the interaction process between the first device, the network device, and the second device as an example, the method includes the following S1201 to S1206.

[0342] S1201, the first device responds to the fact that the first device's receive buffer is less than the buffer threshold by sending a first cancel backpressure message to the network device.

[0343] The first cancel backpressure message includes a third priority and a second priority. In this embodiment, the first cancel backpressure message is used to instruct the network device to cancel traffic control on the second priority service flow.

[0344] In some embodiments, the third priority may be included in the priority field of the header of the corresponding backpressure message, and the second priority may be included in the first field of the header of the corresponding backpressure message.

[0345] In the first cancel backpressure message, the priority field is used to fill in the priority information of the backpressure process to be canceled. The first field can be a custom field used to fill in custom content, such as the priority information of the actual flow control to be canceled in this embodiment.

[0346] For example, taking the first backpressure cancellation message as a PFC backpressure cancellation message, the header of the first backpressure cancellation message is also the PFC message header. The priority field can be the PRI field, and the first field can be the PAD field. Taking a third priority of 5 and a second priority of 4 as an example, the content of the header of the first backpressure cancellation message can be as shown in Table 2, and will not be elaborated further.

[0347] S1202, The network device receives the first cancellation backpressure message from the first device.

[0348] S1203. Network devices cancel flow control for second-priority service flows.

[0349] Understandably, network devices canceling flow control on second-priority traffic flows means resuming transmission of second-priority traffic flows.

[0350] S1204. In response to the network device's receive buffer being less than the buffer threshold, the network device sends a second cancel backpressure message to the second device.

[0351] The second cancel backpressure message includes a third priority and a second priority. In this embodiment, the second cancel backpressure message is used to instruct the second device to cancel flow control on the second priority service flow.

[0352] In some embodiments, the third priority may be included in the priority field of the header of the second cancel backpressure message, and the second priority may be included in the first field of the header of the second cancel backpressure message.

[0353] For example, taking the second cancel backpressure message as a PFC cancel backpressure message, the header of the second cancel backpressure message is also the PFC message header. The priority field can be the PRI field, and the first field can be the PAD field. Taking a third priority of 5 and a second priority of 4 as an example, the content of the header of the second cancel backpressure message can be as shown in Table 2, and will not be elaborated further.

[0354] In the above embodiments, a method is provided to instruct a second device to cancel flow control on a service flow of a second priority based on a second cancellation backpressure message. Specifically, the second priority is carried in the first field of the header of the second cancellation backpressure message to facilitate the subsequent cancellation of flow control on the service flow of the second priority by the second device.

[0355] S1205, The second device receives the second cancel backpressure message from the network device.

[0356] S1206. The second device cancels the flow control of the service flow with the second priority based on the second priority in the second cancellation backpressure message.

[0357] In the backpressure process shown in Figure 11 above, when the receive buffer of the first device in the first data center is less than the buffer threshold, the first device can start sending a cancellation backpressure message upstream to the source device, and then the service flow of the entire transmission path can be resumed. Figure 13 is a schematic diagram of another service flow cancellation backpressure process provided by an embodiment of this application. Referring to Figure 13, taking the interaction process between the first device, the network device, and the second device as an example, the method includes the following S1301 to S1306.

[0358] S1301, the first device responds to the fact that the first device's receive buffer is less than the buffer threshold by sending a first cancel backpressure message to the network device.

[0359] S1302, The network device receives the first cancellation backpressure message from the first device.

[0360] S1303, The network device cancels flow control for second-priority service flows.

[0361] The contents of S1301 to S1303 are the same as those of S1201 to S1203, and will not be repeated here.

[0362] S1304. In response to the network device's receive buffer being less than the buffer threshold, the network device sends a third cancel backpressure message to the second device.

[0363] The third cancel backpressure message includes a second priority. In this embodiment, the third cancel backpressure message is used to instruct the second device to cancel flow control on the second priority service flow.

[0364] In some embodiments, in a third cancel backpressure message, a second priority may be included in the priority field of the message header of the third cancel backpressure message.

[0365] For example, taking the third cancel backpressure message as a PFC backpressure message, the header of the third cancel backpressure message is also the PFC message header. The priority field can be the PRI field. Taking a second priority of 4 as an example, the header of the third cancel backpressure message can be as shown in Table 1, and will not be elaborated further.

[0366] In the above embodiments, a method is provided to instruct a second device to cancel flow control on a service flow of the second priority based on a third cancel backpressure message. Specifically, the second priority is carried in the priority field of the header of the third cancel backpressure message to facilitate the subsequent cancellation of flow control on the service flow of the second priority by the second device.

[0367] S1305, The second device receives a third cancel backpressure message from the network device.

[0368] S1306. The second device cancels the flow control of the second priority service flow based on the second priority in the third cancellation backpressure message.

[0369] In the backpressure processes shown in Figures 9 and 11 above, and in the backpressure cancellation processes shown in Figures 12 and 13 above, the backpressure processing for the required priority is completed by expanding the standard format message header to carry the actual backpressure priority. In cross-data center intelligent computing remote scenarios, compared with the solutions provided by related technologies, the solution provided in this application embodiment can improve model training efficiency by 2 times under conditions of egress congestion, thereby effectively reducing the problem of decreased efficiency in cross-data center remote data transmission.

[0370] It should be noted that the above description is for the purpose of more clearly explaining the backpressure processing method of the business flow described in the embodiments of this application, and should not be construed as a limitation on the specific implementation of this application.

[0371] The above mainly describes the solutions provided by the embodiments of this application from the perspective of processing flow. Correspondingly, the embodiments of this application also provide a backpressure processing device for business flows, which is used to implement the various methods described above. This backpressure processing device for business flows can be one of the devices described in the above method embodiments, or it can include the aforementioned devices, or it can be a component that can be used. It is understood that, in order to achieve the above functions, the backpressure processing device for business flows includes hardware structures and / or software modules corresponding to the execution of each function. Those skilled in the art should readily recognize that, in conjunction with the units and algorithm steps of the various examples described in the embodiments disclosed herein, this application can be implemented in hardware or a combination of hardware and computer software. Whether a function is executed in hardware or by computer software driving hardware depends on the specific application and design constraints of the technical solution. Those skilled in the art can use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of this application.

[0372] This application embodiment can divide the backpressure processing device for the business flow into functional modules according to the above method embodiment. For example, each function can be divided into a separate functional module, or two or more functions can be integrated into one processing module. The integrated module can be implemented in hardware or as a software functional module. It should be understood that the module division in this application embodiment is illustrative and only represents one logical functional division. In actual implementation, there may be other division methods.

[0373] For example, Figure 14 is a schematic diagram of a backpressure processing device for a service flow according to an embodiment of this application. Referring to Figure 14, the backpressure processing device for the service flow includes a receiving module 1401 and a processing module 1402. Wherein:

[0374] The receiving module 1401 is used to execute S601 and S604 shown in Figure 6 above;

[0375] Processing module 1402 is used to execute S606 and S607 shown in Figure 6 above.

[0376] In some possible implementations, the device also includes an update module for performing S605 as shown in FIG6 above.

[0377] In some possible implementations, the device further includes a back pressure module for performing S901 shown in FIG9 or S1101 shown in FIG11.

[0378] In some possible implementations, the device further includes a depressurization module for performing S1201 shown in FIG12 or S1301 shown in FIG13.

[0379] For example, Figure 15 is a schematic diagram of another service flow backpressure processing device provided in an embodiment of this application. Referring to Figure 15, the service flow backpressure processing device includes a sending module 1501, a receiving module 1502, and a control module 1503. Wherein:

[0380] The sending module 1501 is used to execute S603 shown in Figure 6 above;

[0381] The receiving module 1502 is used to execute S902 shown in FIG9 or S1102 shown in FIG11 above.

[0382] The control module 1503 is used to execute S903 shown in FIG9 or S1103 shown in FIG11.

[0383] In some possible implementations, the sending module 1501 is also used to execute S904 shown in FIG9 or S1104 shown in FIG11.

[0384] In some possible implementations, the receiving module 1502 is also used to perform S1202 shown in FIG12 or S1302 shown in FIG13.

[0385] In some possible implementations, the control module 1503 is also used to execute S1203 shown in FIG12 or S1303 shown in FIG13.

[0386] In some possible implementations, the sending module 1501 is also used to perform S1204 shown in FIG12 or S1304 shown in FIG13.

[0387] For example, Figure 16 is a schematic diagram of another backpressure processing device for a service flow provided in an embodiment of this application. Referring to Figure 16, the backpressure processing device for the service flow includes a sending module 1601, a receiving module 1602, and a control module 1603. Wherein:

[0388] The sending module 1601 is used to execute S602 shown in Figure 6 above;

[0389] The receiving module 1602 is used to execute S905 shown in FIG9 or S1105 shown in FIG11 above.

[0390] The control module 1603 is used to execute S906 shown in FIG9 or S1106 shown in FIG11.

[0391] In some possible implementations, the receiving module 1402 is also used to execute S1205 shown in FIG12 or S1305 shown in FIG13.

[0392] In some possible implementations, the control module 1603 is also used to execute S1206 shown in FIG12 or S1306 shown in FIG13.

[0393] For a detailed description of the above-mentioned optional methods, please refer to the foregoing method embodiments, which will not be repeated here. Furthermore, the explanation of any of the above-provided backpressure processing devices for business flows and the description of their beneficial effects can be found in the corresponding method embodiments, which will not be repeated here.

[0394] As an example, referring to Figure 4, some or all of the functions implemented in the receiving module 1401 and processing module 1402 in the backpressure processing device for the service flow shown in Figure 14, and the sending module 1601, receiving module 1602 and control module 1603 in the backpressure processing device for the service flow shown in Figure 16 can be implemented by the processor 401 in Figure 4 executing the computer execution instructions in the memory 402 in Figure 4.

[0395] In this embodiment, the backpressure processing device for the service flow is presented in an integrated manner, divided into various functional modules. Here, "module" can refer to a specific ASIC, circuit, processor and memory executing one or more software or firmware programs, integrated logic circuits, and / or other devices that can provide the aforementioned functions. In a simple embodiment, those skilled in the art will recognize that the backpressure processing device for the service flow can take the form of the switching device shown in Figure 4.

[0396] For example, the processor 401 in the switch device shown in Figure 4 can call the computer execution instructions stored in the memory 402 to make the switch device execute the backpressure processing method of the service flow in the above method embodiment.

[0397] As an example, referring to Figure 5, some or all of the functions implemented in the sending module 1501, receiving module 1502 and control module 1503 of the backpressure processing device for the service flow shown in Figure 15 can be implemented by executing computer execution instructions in the memory of the relevant class board (such as tributary board 501, line board 502 or cross board 503) in Figure 5.

[0398] In this embodiment, the backpressure processing device for the service flow is presented in an integrated manner, divided into various functional modules. Here, "module" can refer to a specific ASIC, circuit, processor and memory executing one or more software or firmware programs, integrated logic circuits, and / or other devices that can provide the aforementioned functions. In a simplified embodiment, those skilled in the art will recognize that the backpressure processing device for the service flow can take the form of the network device shown in Figure 5.

[0399] For example, the relevant class board in the network device shown in Figure 5 can call the computer execution instructions stored in the memory of the class board to enable the network device to execute the backpressure processing method of the service flow in the above method embodiment.

[0400] Since the backpressure processing device for the service flow provided in this application embodiment can execute the above-described backpressure processing method for the service flow, the technical effects it can achieve can be referred to the above-described method embodiment, and will not be repeated here.

[0401] It should be understood that one or more of the above modules or units can be implemented by software, hardware, or a combination of both. When any of the above modules or units are implemented by software, the software exists as computer program instructions and is stored in memory. The processor can be used to execute the program instructions and implement the above method flow. The processor can be built into a SoC (System-on-a-Chip) or ASIC, or it can be a separate semiconductor chip. In addition to the core that executes software instructions for computation or processing, the processor may further include necessary hardware accelerators, such as field-programmable gate arrays (FPGAs), PLDs (Programmable Logic Devices), or logic circuits that implement dedicated logic operations.

[0402] When the above modules or units are implemented in hardware, the hardware can be any one or any combination of a microprocessor, digital signal processing (DSP) chip, microcontroller unit (MCU), artificial intelligence processor, ASIC, SoC, FPGA, PLD, application-specific digital circuit, hardware accelerator, or non-integrated discrete device, which can run the necessary software or perform the above method flow independently of software.

[0403] Optionally, embodiments of this application also provide a switching device (e.g., the switching device may be a chip or a chip system), the switching device including a processor for implementing the methods executed by the switching device in any of the above method embodiments. In one possible design, the switching device further includes a memory. The memory is used to store necessary program instructions and data, and the processor can call the program code stored in the memory to instruct the switching device to execute the methods in any of the above method embodiments. Of course, the memory may not be present in the switching device. When the switching device is a chip system, it may be composed of chips or may include chips and other discrete devices; embodiments of this application do not specifically limit this.

[0404] Optionally, embodiments of this application also provide a network device (e.g., the network device may be a chip or a chip system), the network device including a processor for implementing the methods executed by the network device in any of the above method embodiments. In one possible design, the network device further includes a memory. The memory is used to store necessary program instructions and data, and the processor can call the program code stored in the memory to instruct the network device to execute the methods in any of the above method embodiments. Of course, the memory may not be included in the network device. When the network device is a chip system, it may be composed of chips or may include chips and other discrete devices; embodiments of this application do not specifically limit this.

[0405] This application also provides a computer-readable storage medium storing computer-executable instructions. When the computer-executable instructions are executed on a switch device, the switch device performs the method executed by any of the service flow backpressure processing devices provided above. When the computer-executable instructions are executed on a network device, the network device performs the method executed by any of the service flow backpressure processing devices provided above.

[0406] For explanations of the relevant content and descriptions of the beneficial effects in any of the computer-readable storage media provided above, please refer to the corresponding embodiments described above, which will not be repeated here.

[0407] This application also provides a chip. This chip integrates a control circuit for implementing the functions of the reverse pressure processing device for the aforementioned business flow and one or more ports. Optionally, the functions supported by this chip can be referred to above, and will not be repeated here. Those skilled in the art will understand that all or part of the steps of the above embodiments can be implemented by a program instructing related hardware. This program can be stored in a computer-readable storage medium. The aforementioned storage medium can be a read-only memory, random access memory, etc. The aforementioned processing unit or processor can be a central processing unit, a general-purpose processor, an application-specific integrated circuit (ASIC), a microprocessor (digital signal processor, DSP), a field-programmable gate array (FPGA), or other programmable logic devices, transistor logic devices, hardware components, or any combination thereof.

[0408] This application also provides a computer program product containing computer-executable instructions. When these computer-executable instructions are executed on a switch device, they cause the switch device to perform any of the methods described in the above embodiments. When these computer-executable instructions are executed on a network device, they cause the network device to perform any of the methods described in the above embodiments. The computer program product includes one or more computer-executable instructions. When the computer-executable instructions are loaded and executed on a switch device or a network device, all or part of the flow or function according to the embodiments of this application is generated. The switch device and the network device can be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device.

[0409] Computer-executable instructions can be stored in or transmitted from one computer-readable storage medium to another. For example, computer-executable instructions can be transmitted from one website, computer, electronic device, or data center to another via wired (e.g., coaxial cable, fiber optic, digital subscriber line (DSL)) or wireless (e.g., infrared, wireless, microwave, etc.) means. Computer-readable storage media can be any available medium accessible by switching devices or network devices, or a data storage device such as a switching device or network device that integrates one or more media. Available media can be magnetic media (e.g., floppy disks, hard disks, magnetic tapes), optical media (e.g., DVDs), or semiconductor media (e.g., solid-state disks (SSDs)).

[0410] It should be noted that the devices for storing computer instructions or computer programs provided in the embodiments of this application, such as but not limited to the memory, computer-readable storage medium and communication chip, are all non-transitory.

[0411] In the above embodiments, implementation can be achieved, in whole or in part, through software, hardware, firmware, or any combination thereof. When implemented using software programs, implementation can be, in whole or in part, in the form of a computer program product.

[0412] Although this application has been described herein in conjunction with various embodiments, those skilled in the art, by reviewing the accompanying drawings, the disclosure, and the appended claims, will understand and implement other variations of the disclosed embodiments in carrying out the claimed application. In the claims, the word "comprising" does not exclude other components or steps, and "a" or "an" does not exclude multiple instances. A single processor or other unit can implement several functions listed in the claims. While different dependent claims may recite certain measures, this does not mean that these measures cannot be combined to produce good results.

[0413] Although this application has been described in conjunction with specific features and embodiments, it is obvious that various modifications and combinations can be made thereto without departing from the spirit and scope of this application. Accordingly, this specification and drawings are merely exemplary illustrations of this application as defined by the appended claims, and are considered to cover any and all modifications, variations, combinations, or equivalents within the scope of this application. Clearly, those skilled in the art can make various alterations and modifications to this application without departing from the spirit and scope of this application. Thus, if such modifications and modifications of this application fall within the scope of the claims of this application and their equivalents, this application is also intended to include such modifications and modifications.

Claims

1. A method for backpressure processing of business flows, characterized in that, The method, applied to a first device in a first data center, includes: Receive a first service flow from the computing device in the first data center; Receive a second service flow from a network device connected to the first data center, wherein the first priority of the first service flow is higher than or equal to the second priority of the second service flow; In response to the first device's receive buffer being greater than a buffer threshold, backpressure processing is applied to the first priority service flow, the backpressure processing being used to instruct flow control on the service flow.

2. The method according to claim 1, characterized in that, After receiving the second service flow from the network device connected to the first data center, the method further includes: The second priority of the second service flow is updated to the third priority, which is higher than the first priority.

3. The method according to claim 2, characterized in that, After performing backpressure processing on the first priority service flow, the method further includes: In response to the first device's receive buffer being greater than the buffer threshold, the third priority service flow is subjected to backpressure processing.

4. The method according to claim 3, characterized in that, The backpressure processing of the third priority service flow includes: Send a first backpressure message to the network device, the first backpressure message including the third priority and the second priority; The first backpressure message is used to instruct the network device to perform flow control on the second priority service flow.

5. The method according to claim 4, characterized in that, The third priority is included in the priority field of the header of the first backpressure message, and the second priority is included in the first field of the header of the first backpressure message.

6. The method according to claim 4 or 5, characterized in that, The first backpressure message also includes priority conversion information, which is used to indicate whether to convert the priority.

7. The method according to claim 6, characterized in that, The priority conversion information is included in the second field of the header of the first backpressure message.

8. The method according to any one of claims 4-7, characterized in that, After sending the first backpressure message to the network device, the method further includes: In response to the first device's receive buffer being less than the buffer threshold, a first cancel backpressure message is sent to the network device, the first cancel backpressure message including the third priority and the second priority; The first cancel backpressure message is used to instruct the network device to cancel flow control on the second priority service flow.

9. The method according to claim 8, characterized in that, The first cancel backpressure message also includes priority conversion information, which is used to indicate whether to convert the priority.

10. A method for backpressure processing of a business flow, characterized in that, Applied to network devices, the method includes: A second service flow is sent to a first device in a first data center connected to the network device, the second service flow having a second priority. The network device receives a first backpressure message from the first device. The first backpressure message includes a third priority and a second priority. The first backpressure message is used to instruct the network device to perform flow control on the service flow with the second priority. Based on the second priority in the first backpressure message, traffic control is performed on the service flow with the second priority.

11. The method according to claim 10, characterized in that, The third priority is included in the priority field of the header of the first backpressure message, and the second priority is included in the first field of the header of the first backpressure message.

12. The method according to claim 10, characterized in that, The second service flow originates from a second device in a second data center connected to the network device; the method further includes: In response to the network device's receive buffer being greater than the buffer threshold, a second backpressure message is sent to the second device, the second backpressure message including the third priority and the second priority; The second backpressure message is used to instruct the second device to perform flow control on the service flow of the second priority.

13. The method according to claim 12, characterized in that, The third priority in the second backpressure message is included in the priority field of the message header of the second backpressure message, and the second priority in the second backpressure message is included in the first field of the message header of the second backpressure message.

14. The method according to claim 10, characterized in that, The second service flow originates from a second device in a second data center connected to the network device; the method further includes: In response to the network device's receive buffer being greater than the buffer threshold, a third backpressure message is sent to the second device, the third backpressure message including the second priority; The third backpressure message is used to instruct the second device to perform flow control on the service flow of the second priority.

15. The method according to claim 14, characterized in that, Before sending the third backpressure message to the second device, the method further includes: The first field of the header of the first backpressure message contains information, and the second priority is obtained by parsing the first field; Based on the second priority, the third backpressure message is generated.

16. The method according to claim 14, characterized in that, The first backpressure message also carries priority conversion information, which is used to indicate whether to convert the priority. Before sending the third backpressure message to the second device, the method further includes: In response to the priority conversion information indicating a priority conversion, the third backpressure message is generated based on the second priority.

17. The method according to any one of claims 14-16, characterized in that, The second priority in the third backpressure message is included in the priority field of the message header of the third backpressure message.

18. The method according to any one of claims 10-17, characterized in that, After performing flow control on the second priority service flow, the method further includes: Receive a first cancel backpressure message from the first device, the first cancel backpressure message including the third priority and the second priority, the first cancel backpressure message being used to instruct the network device to cancel traffic control on the service flow of the second priority; Based on the second priority in the first backpressure message, the flow control for the service flow with the second priority is cancelled.

19. The method according to claim 18, characterized in that, The second service flow originates from a second device in a second data center connected to the network device; the method further includes: In response to the network device's receive buffer being less than the buffer threshold, a second cancel backpressure message is sent to the second device, the second cancel backpressure message including the third priority and the second priority; The second cancel backpressure message is used to instruct the second device to cancel flow control on the service flow of the second priority.

20. The method according to claim 18, characterized in that, The second service flow originates from a second device in a second data center connected to the network device; the method further includes: In response to the network device's receive buffer being less than the buffer threshold, a third cancel backpressure message is sent to the second device, the third cancel backpressure message including the second priority; The third cancel backpressure message is used to instruct the second device to cancel flow control on the service flow of the second priority.

21. The method according to any one of claims 10-20, characterized in that, The flow control for the second priority service flow includes: Stop sending the second priority service stream, or reduce the sending rate of the second priority service stream; Unsent service flows are cached in the off-chip cache of the network device.

22. A method for backpressure processing of a business flow, characterized in that, The method, applied to a second device in a second data center, includes: A second service flow is sent to the network device connected to the second data center, and the second service flow has the second priority. Receive a second backpressure message from the network device, the second backpressure message including a third priority and a second priority, the second backpressure message being used to instruct the second device to perform flow control on the service flow of the second priority; Based on the second priority in the second backpressure message, traffic control is performed on the service flow with the second priority.

23. The method according to claim 22, characterized in that, The third priority in the second backpressure message is included in the priority field of the message header of the second backpressure message, and the second priority in the second backpressure message is included in the first field of the message header of the second backpressure message.

24. A backpressure processing device for a business flow, characterized in that, A first device applied to a first data center, the device comprising: A receiving module is used to receive a first service flow from a computing device in the first data center; The receiving module is further configured to receive a second service flow from a network device connected to the first data center, wherein the first priority of the first service flow is higher than or equal to the second priority of the second service flow; The processing module is configured to perform backpressure processing on the first priority service flow in response to the first device's receive buffer being greater than the buffer threshold, wherein the backpressure processing is used to instruct the service flow to be subject to flow control.

25. A backpressure processing device for a business flow, characterized in that, Applied to network devices, the device includes: The sending module is used to send a second service flow to a first device in a first data center connected to the network device. The second service flow has a second priority. The first device is used to connect a computing device inside the first data center with the network device outside the first data center. The receiving module is configured to receive a first backpressure message from the first device, the first backpressure message including a third priority and a second priority, the first backpressure message being used to instruct the network device to perform flow control on the service flow of the second priority; The control module is used to perform flow control on the service flow of the second priority based on the second priority in the first backpressure message.

26. A backpressure processing device for a business flow, characterized in that, A second device applied to a second data center, the device comprising: The sending module is used to send a second service flow to a network device connected to the second data center, wherein the second service flow has a second priority. The receiving module is configured to receive a second backpressure message from the network device, the second backpressure message including a third priority and a second priority, the second backpressure message being used to instruct the second device to perform flow control on the service flow of the second priority; The control module is used to perform flow control on the service flow of the second priority based on the second priority in the second backpressure message.

27. A switching device, characterized in that, The device includes a memory and a processor, the memory and the processor being connected; the memory is used to store computer-executable instructions; the processor is used to invoke the computer-executable instructions to perform the method as described in any one of claims 1-9 or 22-23.

28. A network device, characterized in that, The method includes a memory and a processor, the memory and the processor being connected; the memory is used to store computer-executable instructions; the processor is used to invoke the computer-executable instructions to perform the method as described in any one of claims 10-21.

29. A computer-readable storage medium, characterized in that, The method includes computer execution instructions that, when executed on a switch device, cause the switch device to perform the method as described in any one of claims 1-9 or 22-23, and when executed on a network device, cause the network device to perform the method as described in any one of claims 10-21.

30. A computer program product, characterized in that, The method includes computer execution instructions that, when executed on a switch device, cause the switch device to perform the method as described in any one of claims 1-9 or 22-23, and when executed on a network device, cause the network device to perform the method as described in any one of claims 10-21.