Patent ID: 7720085

Claim:
In a digital data communication network employing packets for conveying information, a method for use at a controller between a data source and a data destination in a flow path for controlling flow of data, the method comprising: receiving, at the controller, a data packet of a Transport Control Protocol (TCP) data flow from a data source; queuing, the data packet of the TCP data flow on a queue and subsequently transmitting the data packet at a scheduled delay to achieve a target rate for the TCP data flow, if a measured rate of the TCP data flow exceeds the target rate or a prior packet of the data flow is stored on the queue; entering a queue drain-down phase when a first threshold number of packets of the TCP data flow are stored on the queue, wherein the queue drain-down phase comprises: queuing the data packet of the TCP data flow on a queue and subsequently transmitting the data packet at a scheduled delay to achieve a target rate for the TCP data flow, if a prior packet of the data flow is stored on the queue; bypassing, after entering the queue drain-down phase, the queuing step of the drain-down phase for subsequent packets of the TCP data flow when the number of packets of the TCP data flow stored on the queue falls below a second threshold number of packets; and controlling window size, amount of acknowledged data and timing of response of acknowledgments of data in the flow path between the data source and the data destination.