IP Library Granted Patent US 12,413,540
Granted Patent B2
US 12,413,540 · App. 17/734,627 · Granted Sep 9, 2025

Network congestion notification method, agent node, and computer device

Inventor: Wei Zhang (Nanjing, CN)
Assignee: HUAWEI TECHNOLOGIES CO., LTD.
H04L49/358H04L47/11H04L47/129H04L47/263H04L47/30H04L47/50H04L47/803H04L69/161
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 12,413,540
App. No.
17/734,627
Granted
Sep 9, 2025
Kind
B2
Abstract

A network congestion notification method and network node are provided in a network system. The network node receives a remote direct memory access (RDMA) packet, where the RDMA packet carries a source queue pair number corresponding to a transmit end and a destination queue pair number corresponding to a receive end. The network node generates a congestion notification packet when detecting network congestion, where a destination queue pair number of the congestion notification packet is the source queue pair number. Then the network node sends the congestion notification packet to the transmit end so that the transmit end may decrease a sending rate of a data flow to which the first data packet belongs.

Claims (70)

1. A method, comprising:

receiving, by a network node, a remote direct memory access (RDMA) packet, wherein the RDMA packet comprises a first destination queue pair number corresponding to a receive end, and wherein the network node is between a transmit end of the RDMA packet and the receive end of the RDMA packet;

generating, by the network node, a congestion notification packet when detecting network congestion, wherein the congestion notification packet comprises a second destination queue pair number, wherein the second destination queue pair number is of a queue pair of the transmit end of the RDMA packet, and wherein the congestion notification packet is configured to instruct the transmit end to decrease a sending rate of a data flow to which the RDMA packet belongs;

sending, by the network node, the congestion notification packet to the transmit end;

receiving, by the network node, a connection establishment packet in a connection establishment process between the transmit end and the receive end, wherein the connection establishment packet comprises a first base transport header (BTH), wherein the first BTH comprises a third destination queue pair number, and wherein the second destination queue pair number is the same as the third destination queue pair number;

receiving, by an agent node, a first data packet of the transmit end, wherein the first data packet carries the first destination queue pair number;

obtaining, by the agent node, a source queue pair number of the first data packet based on the first destination queue pair number;

dividing, by the agent node, the source queue pair number into a first part and a second part; and

generating, by the agent node, the RDMA packet by adding the first part to a first field of the first data packet and adding the second part to a second field of the first data packet.

2. The method of claim 1 , wherein the RDMA packet further comprises a first explicit congestion notification (ECN) bit, wherein a value of the first ECN bit indicates that the transmit end has ECN capability, wherein the congestion notification packet further comprises a second ECN bit, and wherein a value of the second ECN bit indicates a congestion state.

3. The method of claim 2 , wherein the congestion notification packet further comprises a queue depth, at a congestion moment, of a queue to which the data flow of the RDMA packet belongs on the network node, and wherein the method further comprises:

selecting a sending period of the congestion notification packet based on the queue depth; and

sending the congestion notification packet to the transmit end based on the sending period.

4. The method of claim 1 , wherein the congestion notification packet further comprises a queue depth, at a congestion moment, of a queue to which the data flow of the RDMA packet belongs on the network node, and wherein the method further comprises:

selecting a sending period of the congestion notification packet based on the queue depth; and

sending the congestion notification packet to the transmit end based on the sending period.

5. The method of claim 1 , wherein the method further comprises obtaining, by the network node, the second destination queue pair number according to the first destination queue pair number.

6. The method of claim 1 , wherein the first field comprises a User Datagram Protocol (UDP) header of the first data packet, and wherein the second field comprises a reserved field in a second BTH of the first data packet.

7. The method of claim 6 , wherein the agent node comprises the network node.

8. The method of claim 6 , further comprising sending, by the agent node, the RDMA packet to the network node.

9. A method, comprising:

generating, by a transmit end, a remote direct memory access (RDMA) packet, wherein the RDMA packet comprises a first destination queue pair number corresponding to a receive end;

sending, by the transmit end, the RDMA packet to the receive end using a network node;

receiving, by the transmit end, a congestion notification packet, wherein the congestion notification packet is based on network congestion, wherein the congestion notification packet comprises a second destination queue pair number, wherein the second destination queue pair number is of a queue pair of the transmit end of the RDMA packet, and wherein the congestion notification packet is configured to instruct the transmit end to decrease a sending rate of a data flow to which the RDMA packet belongs;

decreasing, by the transmit end, the sending rate of the data flow to which the RDMA packet belongs according to the congestion notification packet; and

sending or receiving, by the transmit end, a connection establishment packet in a connection establishment process between the transmit end and the receive end, wherein the connection establishment packet comprises a first base transport header (BTH), wherein the first BTH comprises a third destination queue pair number, and wherein the second destination queue pair number is the same as the third destination queue pair number,

wherein the transmit end comprises an agent node,

wherein generating, by the transmit end, the RDMA packet comprises:

generating, by the transmit end, a first data packet, wherein the first data packet carries the first destination queue pair number;

obtaining, by the agent node, a source queue pair number based on the first destination queue pair number; and

adding, by the agent node, the source queue pair number to the first data packet to obtain the RDMA packet, and

wherein adding the source queue pair number to the first data packet to obtain a second data packet comprises:

dividing the source queue pair number into a first part and a second part;

adding the first part to a checksum field in a User Datagram Protocol (UDP) header of the first data packet; and

adding the second part to a reserved field in a second BTH of the first data packet to obtain the RDMA packet.

10. The method of claim 9 , wherein the RDMA packet further comprises a first explicit congestion notification (ECN) bit, wherein a value of the first ECN bit indicates that the transmit end has ECN capability, wherein the congestion notification packet further comprises a second ECN bit, and wherein a value of the second ECN bit indicates a congestion state.

11. The method of claim 9 , wherein the second destination queue pair number is obtained according to the first destination queue pair number.

12. A system, comprising:

a transmit end configured to:

generate a remote direct memory access (RDMA) packet, wherein the RDMA packet comprises a first destination queue pair number corresponding to a receive end; and

send the RDMA packet to the receive end;

a network node between the transmit end and the receive end and configured to:

receive the RDMA packet;

generate a congestion notification packet when detecting network congestion, wherein the congestion notification packet comprises a second destination queue pair number, wherein the second destination queue pair number is of a queue pair of the transmit end of the RDMA packet, and wherein the congestion notification packet is configured to instruct the transmit end to decrease a sending rate of a data flow to which the RDMA packet belongs;

send the congestion notification packet to the transmit end;

send or receive, a connection establishment packet in a connection establishment process between the transmit end and the receive end, wherein the connection establishment packet comprises a first base transport header (BTH), wherein the first BTH comprises a third destination queue pair number, and wherein the second third destination queue pair number is the same as the third destination queue pair number;

receive the congestion notification packet; and

decrease the sending rate of the data flow to which the RDMA packet belongs according to the congestion notification packet, and

wherein a source queue pair number in the RDMA packet comprises:

a first part in a checksum field in a User Datagram Protocol (UDP) header of the RDMA packet; and

a second part in a reserved field in a second BTH of the RDMA packet.

13. The system of claim 12 , wherein the RDMA packet further comprises a first explicit congestion notification (ECN) bit, wherein a value of the first ECN bit indicates that the transmit end has ECN capability, wherein the congestion notification packet further comprises a second ECN bit, and wherein a value of the second ECN bit indicates a congestion state.

14. The system of claim 13 , wherein the congestion notification packet further comprises a queue depth at a congestion moment, of a queue to which the data flow of the RDMA packet belongs on the network node, and wherein when sending the congestion notification packet to the transmit end, the network node is configured to:

select a sending period of the congestion notification packet based on the queue depth; and

send the congestion notification packet to the transmit end based on the sending period.

15. The system of claim 12 , wherein the congestion notification packet further comprises a queue depth, at a congestion moment, of a queue to which the data flow of the RDMA packet belongs on the network node, and wherein sending the congestion notification packet to the transmit end comprises:

selecting a sending period of the congestion notification packet based on the queue depth; and

sending the congestion notification packet to the transmit end based on the sending period.

16. The system of claim 12 , wherein the network node configured to obtain the second destination queue pair number according to the first destination queue pair number.

17. A method, comprising:

generating, by a transmit end, a remote direct memory access (RDMA) packet, wherein the RDMA packet comprises a first destination queue pair number corresponding to a receive end;

sending, by the transmit end, the RDMA packet to the receive end using a network node;

receiving, by the transmit end, a congestion notification packet, wherein the congestion notification packet is based on network congestion, wherein the congestion notification packet comprises a second destination queue pair number, wherein the second destination queue pair number is of a queue pair of the transmit end of the RDMA packet, and wherein the congestion notification packet is configured to instruct the transmit end to decrease a sending rate of a data flow to which the RDMA packet belongs;

decreasing, by the transmit end, the sending rate of the data flow to which the RDMA packet belongs according to the congestion notification packet; and

sending or receiving, by the transmit end, a connection establishment packet in a connection establishment process between the transmit end and the receive end, wherein the connection establishment packet comprises a first base transport header (BTH), wherein the first BTH comprises a third destination queue pair number, and wherein the second destination queue pair number is the same as the third destination queue pair number;

wherein the transmit end comprises an agent node, and

wherein generating the RDMA packet comprises:

obtaining, by the agent node, a source queue pair number based on the first destination queue pair number;

dividing, by the agent node, the source queue pair number into a first part and a second part; and

adding, by the agent node, the first part to a checksum filed in a User Datagram Protocol field and adding the second part to a second BTH to generate the RDMA packet.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 2, 2022
From: ZHANG, WEI
To: HUAWEI TECHNOLOGIES CO., LTD.
Reel/Frame 059783/0641 →
Priority Claims (1)
CN 201710687388.0 · Aug 11, 2017 · national
Continuity (3)
Continuation 16786461 · Feb 10, 2020
Continuation PCTCN2018095602 · Jul 13, 2018
Related Publication 20220263767A1 · Aug 18, 2022
References Cited (36)
US 7369498B1 · Ma · 2008 [cited by examiner]
US 9270489B1 · Wells et al. · 2016 [cited by applicant]
US 10148581B2 · Shahar · 2018 [cited by examiner]
US 10257273B2 · Govind · 2019 [cited by examiner]
US 20060203730A1 · Zur · 2006 [cited by applicant]
US 20080002578A1 · Coffman et al. · 2008 [cited by applicant]
US 20130080561A1 · Fox et al. · 2013 [cited by applicant]
US 20130080562A1 · Fox et al. · 2013 [cited by applicant]
US 20140244965A1 · Manula · 2014 [cited by examiner]
US 20150341273A1 · Naouri et al. · 2015 [cited by applicant]
US 20150381505A1 · Sundararaman et al. · 2015 [cited by applicant]
US 20160380896A1 · Caulfield et al. · 2016 [cited by applicant]
US 20170171075A1 · Sajeepa et al. · 2017 [cited by applicant]
US 20180198715A1 · Shmilovici · 2018 [cited by examiner]
US 20190116126A1 · Shen et al. · 2019 [cited by applicant]
US 20200396170A1 · Gafni · 2020 [cited by examiner]
CN 101166140A · 2008 [cited by applicant]
CN 101188611A · 2008 [cited by applicant]
CN 101227495A · 2008 [cited by applicant]
CN 102594713A · 2012 [cited by applicant]
CN 102868671A · 2013 [cited by applicant]
CN 102891803A · 2013 [cited by applicant]
CN 104394093A · 2015 [cited by applicant]
CN 104753816A · 2015 [cited by applicant]
CN 105897605A · 2016 [cited by applicant]
CN 106027412A · 2016 [cited by applicant]
CN 107493238A · 2017 [cited by applicant]
WO 2008003249A1 · 2008 [cited by applicant]
WO WO2013132213A1 · 2013 [cited by examiner]
WO 2015078219A1 · 2015 [cited by applicant]
WO 2016041580A1 · 2016 [cited by applicant]
WO WO2017215392A1 · 2017 [cited by examiner]
Darren Harkins “RDMA over Converged Ethernet,” May 31, 2017, XP055698288, 24 pages. [cited by applicant]
Infiniband Trade Association 1 2, “Supplement to InfiniBand TM Architecture Specification vol. 1 Release 1.2.1,” Infiniband Trade Association, Sep. 2, 2014, 23 pages. [cited by applicant]
Zhu, Y., et al., “Congestion Control for Large-Scale RDMA Deployments,” XP058071188, Aug. 17-21, 2015, 14 pages. [cited by applicant]
Yan Zhang et al., “On Mitigating TCP Incast in Data Center Networks,” This paper was presented as part of the Mini-Conference at IEEE Infocom, 2011, 5 pages. [cited by applicant]