IP Library Granted Patent US 12706852
Granted Patent B2
US 12706852 · App. 18/361,042 · Granted Aug 11, 2026

Network congestion handling method, apparatus, and device

Inventors: Tianyang Ma (Shenzhen, CN); Xuelian Deng (Shenzhen, CN); Tianxiang Chen (Hangzhou, CN)
Assignee: Huawei Technologies Co., Ltd.
H04L47/263H04L47/25H04L47/26H04L47/12
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12706852
App. No.
18/361,042
Granted
Aug 11, 2026
Kind
B2
Abstract

A network congestion handling method is provided. The method is applied to an HPC cluster including a plurality of hosts, and the plurality of hosts are connected via a network device. A transmit end obtains a first acknowledgment message including a network congestion scenario identifier. The network congestion scenario identifier is an identifier indicating a scenario in which network congestion occurs in a process in which the transmit end transmits data to a receive end, and the transmit end and the receive end are any two hosts in the plurality of hosts. Then, the transmit end adjusts a data sending rate of the transmit end based on the network congestion scenario identifier.

Claims (56)

1 . A method, applied to a high-performance computing (HPC) cluster, the HPC cluster comprising a plurality of hosts, the plurality of hosts being connected via at least one network device, and the method comprising:

obtaining, by a transmit end, a first acknowledgment message, wherein the first acknowledgment message comprises a network congestion scenario identifier, the network congestion scenario identifier indicates a scenario in which network congestion is occurring in a process in which the transmit end transmits data to a receive end, and the transmit end and the receive end are comprised in the plurality of hosts; and

adjusting, by the transmit end, a data sending rate of the transmit end based on the network congestion scenario identifier; and

wherein the network congestion scenario identifier indicates that network congestion occurs at the receive end, a data flow transmitted by the transmit end to the receive end comprises at least one first-type data flow and at least one second-type data flow, the network congestion scenario identifier comprises a congestion factor, the congestion factor is calculated based on the at least one first-type data flow having a first weight, the at least one second-type data flow having a second weight, a length of a first flow table for the at least one first-type data flow, and a length of a second flow table for the at least one second-type data flow, and wherein the first-type data flow and the second-type data flow have different lengths; and

wherein the congestion factor is equal to a sum of the length of the first flow table multiplied by the first weight and the length of the second flow table multiplied by the second weight, the length of the first flow table is a quantity of data flows recorded in the first flow table, and the length of the second flow table is a quantity of data flows recorded in the second flow table; and

wherein the first flow table records a plurality of flows having a length larger than a threshold, the second flow table records a plurality of flows having a length smaller than the threshold, and the first weight is determined based on a difference between the threshold and an average length of the plurality of flows having the length larger than the threshold.

2 . The method according to claim 1 , wherein adjusting, by the transmit end, the data sending rate of the transmit end based on the network congestion scenario identifier comprises:

adjusting, by the transmit end based on the congestion factor, a data sending rate at which the transmit end sends the at least one first-type data flow.

3 . The method according to claim 1 , wherein the scenario comprises common transmission path network congestion, and adjusting, by the transmit end, the data sending rate of the transmit end based on the network congestion scenario identifier comprises:

obtaining, by the transmit end, a priority of a to-be-sent data flow; and

adjusting, by the transmit end based on the priority of the to-be-sent data flow, a rate at which the transmit end sends the data flow.

4 . The method according to claim 3 , wherein a priority of the at least one first-type data flow is higher than a priority of the at least one second-type data flow, and a rate at which the transmit end sends the at least one first-type data flow is higher than a rate at which the transmit end sends the at least one second-type data flow.

5 . The method according to claim 1 , wherein the first weight is larger than the second weight.

6 . A method, applied to a high-performance computing (HPC) cluster, the cluster comprising a plurality of hosts, the plurality of hosts being connected via at least one network device, and the method comprising:

obtaining, by a receive end, a common transmission path network congestion identifier or a data receiving rate, wherein the common transmission path network congestion identifier indicates that network congestion is occurring on a common transmission path in a process of transmitting data from a transmit end to the receive end, and the transmit end and the receive end are comprised in the plurality of hosts;

determining, by the receive end, a network congestion scenario based on the common transmission path network congestion identifier or the data receiving rate; and

sending, by the receive end, a first acknowledgment message to the transmit end, wherein the first acknowledgment message comprises a network congestion scenario identifier, and the network congestion scenario identifier indicates a scenario in which network congestion is occurring in the process of transmitting data from the transmit end to the receive end; and

wherein the network congestion scenario identifier indicates that network congestion occurs at the receive end, a data flow transmitted by the transmit end to the receive end comprises at least one first-type data flow and at least one second-type data flow, the network congestion scenario identifier comprises a congestion factor, the congestion factor is calculated based on the at least one first-type data flow having a first weight, the at least one second-type data flow having a second weight, a length of a first flow table for the at least one first-type data flow, and a length of a second flow table for the at least one second-type data flow, and wherein the at least one first-type data flow and the at least one second-type data flow have different lengths; and

wherein the congestion factor is equal to a sum of the length of the first flow table multiplied by the first weight and the length of the second flow table multiplied by the second weight, the length of the first flow table is a quantity of data flows recorded in the first flow table, and the length of the second flow table is a quantity of data flows recorded in the second flow table; and

wherein the first flow table records a plurality of flows having a length larger than a threshold, the second flow table records a plurality of flows having a length smaller than the threshold, and the first weight is determined based on a difference between the threshold and an average length of the plurality of flows having the length larger than the threshold.

7 . The method according to claim 6 , wherein obtaining, by the receive end, the common transmission path network congestion identifier or the data receiving rate comprises:

obtaining, by the receive end, the common transmission path network congestion identifier and the data receiving rate.

8 . The method according to claim 7 , wherein determining, by the receive end, the network congestion scenario based on the common transmission path network congestion identifier or the data receiving rate comprises:

determining, by the receive end, the network congestion scenario based on the common transmission path network congestion identifier and the data receiving rate.

9 . The method according to claim 6 , further comprising obtaining the data receiving rate by:

initializing a timer;

counting, using a counter, a sum of data volumes of received data packets within a timing period of the timer; and

obtaining the data receiving rate based on the timing period and the sum of data volumes of received data packets.

10 . The method according to claim 6 , further comprising:

maintaining, by the receive end, the first flow table for the at least one first-type data flow; and

maintaining, by the receive end, the second flow table for the at least one second-type data flow.

11 . The method according to claim 6 , wherein the first weight is larger than the second weight.

12 . A high-performance computing cluster, comprising:

a plurality of hosts connected via at least one network device, the plurality of hosts comprising a receive end and a transmit end;

wherein the receive end is configured to:

obtain a common transmission path network congestion identifier or a data receiving rate, wherein the common transmission path network congestion identifier indicates that network congestion is occurring on a common transmission path in a process of transmitting data from the transmit end to the receive end, and the transmit end and the receive end are comprised in the plurality of hosts;

determine a network congestion scenario based on the common transmission path network congestion identifier or the data receiving rate; and

send a first acknowledgment message to the transmit end, wherein the first acknowledgment message comprises a network congestion scenario identifier, and the network congestion scenario identifier indicates a scenario in which network congestion is occurring in the process of transmitting data from the transmit end to the receive end; and

wherein the transmit end is configured to:

obtain the first acknowledgment message; and

adjust a data sending rate of the transmit end based on the network congestion scenario identifier; and

wherein the network congestion scenario identifier indicates that network congestion occurs at the receive end, a data flow transmitted by the transmit end to the receive end comprises at least one first-type data flow and at least one second-type data flow, the network congestion scenario identifier comprises a congestion factor, the congestion factor is calculated based on the at least one first-type data flow having a first weight, the at least one second-type data flow having a second weight, a length of a first flow table for the at least one first-type data flow, and a length of a second flow table for the at least one second-type data flow, and wherein the at least one first-type data flow and the at least one second-type data flow have different lengths; and

wherein the congestion factor is equal to a sum of the length of the first flow table multiplied by the first weight and the length of the second flow table multiplied by the second weight, the length of the first flow table is a quantity of data flows recorded in the first flow table, and the length of the second flow table is a quantity of data flows recorded in the second flow table; and

wherein the first flow table records a plurality of flows having a length larger than a threshold, the second flow table records a plurality of flows having a length smaller than the threshold, and the first weight is determined based on a difference between the threshold and an average length of the plurality of flows having the length larger than the threshold.

13 . The cluster according to claim 12 , wherein the transmit end is configured to adjust, based on the congestion factor, a data sending rate at which the transmit end sends the first-type data flow.

14 . The cluster according to claim 12 , wherein the network congestion scenario comprises common transmission path network congestion, and the transmit end is configured to:

obtain a priority of a to-be-sent data flow; and

adjust, based on the priority of the to-be-sent data flow, a rate at which the transmit end sends the data flow.

15 . The cluster according to claim 14 , wherein a priority of the at least one first-type data flow is higher than a priority of the at least one second-type data flow, and a rate at which the transmit end sends the at least one first-type data flow is higher than a rate at which the transmit end sends the at least one second-type data flow.

16 . The cluster according to claim 12 , wherein obtaining the common transmission path network congestion identifier or the data receiving rate comprises:

obtaining the common transmission path network congestion identifier and the data receiving rate.

17 . The cluster according to claim 16 , wherein determining the network congestion scenario based on the common transmission path network congestion identifier or the data receiving rate comprises:

determining the network congestion scenario based on the common transmission path network congestion identifier and the data receiving rate.

18 . The cluster according to claim 12 , wherein the first weight is larger than the second weight.

19 . The cluster according to claim 12 , wherein the cluster has a Dragonfly+ topology.

20 . The cluster according to claim 12 , wherein the cluster has a FatTree topology.