| CPC H04L 47/2425 (2013.01) [H04L 47/225 (2013.01); H04L 47/2441 (2013.01)] | 18 Claims |

|
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.
|