Patent ID: 8230106

Claim:
An acknowledgement signal regulator for controlling transmission of acknowledgement signals to a TCP data source, comprising: a data queue for storing data packets having sequence numbers, said packets received from the TCP source; an acknowledgement signal queue for storing acknowledgement signals to be transmitted to the TCP source; a data monitor for determining the number of data packets in the data queue and the number of acknowledgement signals in the acknowledgement signal queue; and an acknowledgement signal release manager for determining the available capacity of the data queue and estimating the number of data packets in transit to the data queue and managing the release of acknowledgement signals to the TCP source so as to prevent an undesired overflow of the data queue, the acknowledgement signal release manager estimating the size of a TCP window at the TCP based on a difference between a largest sequence number in the data queue and a smallest sequence number in the acknowledgment signal queue and adjusting based on the estimate of the size of the TCP window, the acknowledgement signal release manager computing a space availability variable indicating the space available in the data queue; computing a release count variable indicating the number of acknowledgement signals that have been transmitted to the TCP source and an estimate of the number of inbound data packets; and updating the value of the space availability variable by subtracting the value of the release count variable from the value of the space availability variable, updating of the space availability variable including selecting one of a conservative mode in which the computation of the space availability variable is performed so as to reserve additional space in the data queue beyond that indicated by the number of data packets in and bound for the data queue, and a nonconservative mode in which computation of the space availability variable is performed so that such additional space in the data queue is not reserved, reservation of space in the data queue.