IP Library › Granted Patent US 11,509,593
Granted Patent B2
US 11,509,593 · App. 17/185,020 · Granted Nov 22, 2022

Congestion control for low latency datacenter networks

Inventors: Gautam Kumar (Fremont, CA); Nandita Dukkipati (Palo Alto, CA); Keon Jang (Santa Clara, CA); Inho Cho (Santa Clara, CA)
Assignee: Google LLC
H04L47/283H04L43/0864H04L47/17H04L47/27H04W28/021H04W28/0883
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 11,509,593
App. No.
17/185,020
Granted
Nov 22, 2022
Kind
B2
Abstract

Systems and methods for controlling congestion of a data network are provided. An engine round-trip time (RTT) and a fabric RTT for a network flow are determined. An engine-based congestion window size for the flow is determined based on the engine RTT and a target engine RTT. A fabric-based congestion window size for the flow is determined based on the fabric RTT and a target fabric RTT. The smaller of the engine-based congestion window size and the fabric-based window size is selected for use in transmitting a future packet associated with the flow. The target engine RTT is determined based in part on the current congestion window used to transmit packets for the flow and/or the target fabric RTT is determined based on a number of hops packets associated with the flow traverse from a source to a destination associated with the flow.

Claims (32)

1. A method comprising:

obtaining a total round-trip time (RTT) for a network flow;

determining an engine RTT for the network flow, and determining a fabric RTT for the network flow by subtracting the engine RTT from the total RTT;

determining an engine-based congestion window size for the flow based on the engine RTT and a target engine RTT;

determining a fabric-based congestion window size for the flow based on the fabric RTT and a target fabric RTT; and

selecting a smaller of the engine-based congestion window size and the fabric-based window size for use in transmitting at least one future packet associated with the flow.

2. The method of claim 1 , further comprising determining the target engine RTT based in part on a current congestion window used to transmit packets for the flow.

3. The method of claim 2 , wherein the target engine RTT is determined based in part on the current congestion window used to transmit packets for the flow by increasing a base target engine RTT by a value or factor that is inversely proportional to the current congestion window size for the flow.

4. The method of claim 2 , wherein the target engine RTT is determined based in part on the current congestion window used to transmit packets for the flow by increasing a base target engine RTT by a value or factor that is inversely proportional to a square root of the current congestion window size for the flow.

5. The method of claim 1 , further comprising determining the target fabric RTT based on a number of hops packets associated with the flow traverse from a source network device for the flow to a destination network device associated with the flow.

6. The method of claim 5 , further comprising determining the number of hops traversed by packets associated with the flow.

7. The method of claim 5 , wherein the target fabric RTT is determined based on a number of hops packets associated with the flow traverse from a source network device for the flow and a destination network device associated with the flow by adding an amount of time to a base target fabric RTT equal to a time constant multiplied by the number of hops.

8. The method of claim 1 , further comprising determining the target fabric RTT based in part on a current congestion window used to transmit packets for the flow.

9. The method of claim 8 , wherein the target fabric RTT is determined based in part on the current congestion window used to transmit packets for the flow by increasing a base target fabric RTT by a value or factor that is inversely proportional to the current congestion window size for the flow.

10. The method of claim 8 , wherein the target fabric RTT is determined based in part on the current congestion window used to transmit packets for the flow by increasing a base target fabric RTT by a value or factor that is inversely proportional to a square root of the current congestion window size for the flow.

11. A system comprising:

one or more processors; and

a non-transitory machine-readable medium comprising instructions stored therein, which when executed by the one or more processors, cause the one or more processors to perform operations comprising:

obtaining a total round-trip time (RTT) for a network flow;

determining an engine RTT for the network flow, and determining a fabric RTT for the network flow by subtracting the engine RTT from the total RTT;

determining an engine-based congestion window size for the flow based on the engine RTT and a target engine RTT;

determining a fabric-based congestion window size for the flow based on the fabric RTT and a target fabric RTT; and

selecting a smaller of the engine-based congestion window size and the fabric-based window size for use in transmitting at least one future packet associated with the flow.

12. The system of claim 11 , wherein the operations further comprise determining the target engine RTT based in part on a current congestion window used to transmit packets for the flow.

13. The system of claim 12 , wherein the target engine RTT is determined based in part on the current congestion window used to transmit packets for the flow by increasing a base target engine RTT by a value or factor that is inversely proportional to the current congestion window size for the flow.

14. The system of claim 12 , wherein the target engine RTT is determined based in part on the current congestion window used to transmit packets for the flow by increasing a base target engine RTT by a value or factor that is inversely proportional to a square root of the current congestion window size for the flow.

15. The system of claim 11 , wherein the operations further comprise determining the target fabric RTT based on a number of hops packets associated with the flow traverse from a source network device for the flow to a destination network device associated with the flow.

16. The system of claim 15 , wherein the operations further comprise determining the number of hops traversed by packets associated with the flow.

17. The system of claim 15 , wherein the target fabric RTT is determined based on a number of hops packets associated with the flow traverse from a source network device for the flow and a destination network device associated with the flow by adding an amount of time to a base target fabric RTT equal to a time constant multiplied by the number of hops.

18. The system of claim 11 , wherein the operations further comprise determining the target fabric RTT based in part on a current congestion window used to transmit packets for the flow.

19. The system of claim 18 , wherein the target fabric RTT is determined based in part on the current congestion window used to transmit packets for the flow by increasing a base target fabric RTT by a value or factor that is inversely proportional to the current congestion window size for the flow.

20. The system of claim 18 , wherein the target fabric RTT is determined based in part on the current congestion window used to transmit packets for the flow by increasing a base target fabric RTT by a value or factor that is inversely proportional to a square root of the current congestion window size for the flow.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 29, 2021
From: KUMAR, GAUTAM; DUKKIPATI, NANDITA; JANG, KEON; CHO, INHO
To: GOOGLE LLC
Reel/Frame 057637/0843 →
Continuity (2)
Continuation 16455134 · Jun 27, 2019
Related Publication 20210184981A1 · Jun 17, 2021
Cited By (1)
US 12,513,089