IP Library › Granted Patent US 10,999,206
Granted Patent B2
US 10,999,206 · App. 16/455,134 · Granted May 4, 2021

Congestion control for low latency datacenter networks

Inventors: Gautam Kumar (Mountain View, CA); Nandita Dukkipati (Menlo Park, CA); Keon Jang (Mountain View, CA); Inho Cho (Gimhae Gyeongsangnam-do, KR)
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 10,999,206
App. No.
16/455,134
Granted
May 4, 2021
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 (40)

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, wherein the method further comprises at least one of:

determining the target engine RTT based in part on a current congestion window used to transmit packets for the flow; or

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.

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

3. The method of claim 1 , 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.

4. The method of claim 1 , 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.

5. The method of claim 1 , 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.

6. The method of claim 1 , wherein determining an engine-based congestion window size comprises decreasing the engine-based congestion window size in response to the engine RTT exceeding the target engine RTT.

7. The method of claim 1 , wherein determining the fabric-based congestion window size comprises decreasing the fabric-based congestion window size in response to the fabric RTT exceeding the target fabric RTT.

8. The method of claim 1 , wherein:

the target engine RTT is determined based in part on the current congestion window used to transmit packets for the flow; and

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.

9. The method of claim 1 , further comprising updating the target fabric RTT for a flow in response to determining a change in the number of hops packets associated with the flow traverse.

10. The method of claim 1 , further comprising updating the target engine RTT in response to changing a 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, wherein the operations further comprise at least one of:

determining the target engine RTT based in part on a current congestion window used to transmit packets for the flow; or

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.

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

13. The system of claim 11 , 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.

14. The system of claim 11 , 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.

15. The system of claim 11 , 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.

16. The system of claim 11 , wherein determining an engine-based congestion window size comprises decreasing the engine-based congestion window size in response to the engine RTT exceeding the target engine RTT.

17. The system of claim 11 , wherein determining the fabric-based congestion window size comprises decreasing the fabric-based congestion window size in response to the fabric RTT exceeding the target fabric RTT.

18. The system of claim 11 , wherein:

the target engine RTT is determined based in part on the current congestion window used to transmit packets for the flow; and

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.

19. The system of claim 11 , wherein the operations further comprise updating the target fabric RTT for a flow in response to determining a change in the number of hops packets associated with the flow traverse.

20. The system of claim 11 , wherein the operations further comprise updating the target engine RTT in response to changing a current congestion window size for the flow.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 18, 2019
From: KUMAR, GAUTAM; DUKKIPATI, NANDITA; JANG, KEON; CHO, INHO
To: GOOGLE LLC
Reel/Frame 051034/0165 →
Continuity (1)
Related Publication 20200412658A1 · Dec 31, 2020