US 12,495,003 B2
Bandwidth utilization-based congestion control
Yanlei Zhao, Saratoga, CA (US); Arunachalam Ramanathan, Union City, CA (US); Alexander Krits, Austin, TX (US); Yixin Zou, San Jose, CA (US); Zexing Jiang, Santa Clara, CA (US); Radhika Vyas, Cupertino, CA (US); Pavan Narasimhaprasad, Cedar Park, TX (US); and Gabriel Tarasuk-Levin, San Francisco, CA (US)
Assigned to VMware LLC, Palo Alto, CA (US)
Filed by VMware LLC, Palo Alto, CA (US)
Filed on Jun. 26, 2023, as Appl. No. 18/214,475.
Prior Publication US 2024/0430206 A1, Dec. 26, 2024
Int. Cl. H04L 47/2425 (2022.01); H04L 47/22 (2022.01); H04L 47/2441 (2022.01)
CPC H04L 47/2425 (2013.01) [H04L 47/225 (2013.01); H04L 47/2441 (2013.01)] 18 Claims
OG exemplary drawing
 
1. A method for performing congestion control for a particular packet flow associated with a first machine operating in a network, the method comprising:
at the first machine executing on a first host computer:
receiving, from a plurality of machines operating in the network and executing on other host computers, remote state data associated with a first plurality of packet flows traversing the plurality of machines in the network;
collecting local state data associated with a second plurality of packet flows associated with the first machine;
based on the received remote and local state data, adjusting an amount of bandwidth allocated to the particular packet flow associated with the first machine by adjusting a size of a congestion control window, which comprises one of (i) increasing the size of the congestion control window to increase the amount of data that can be sent as part of the particular packet flow before an acknowledgement is received from the destination of the particular packet flow and (ii) decreasing the size of the congestion control window to decrease the amount of data that can be sent as part of the particular packet flow before an acknowledgement is received from the destination of the particular packet flow;
wherein:
the first machine is a source of the particular packet flow;
adjusting the amount of bandwidth allocated to the particular flow comprises adjusting a size of a congestion control window that controls the amount of bandwidth allocated to the particular packet flow in order to adjust the amount of bandwidth allocated to the particular packet flow; and
the congestion control window controls the amount of bandwidth allocated to the particular packet flow by controlling an amount of data sent on the network by the first machine as part of the particular packet flow before an acknowledgement is received from a destination of the particular packet flow.