Patent ID: 7916640

Claim:
An apparatus comprising: a plurality of ports configured to transmit and receive packets, each packet being associated with one of a plurality of sessions; a memory comprising a packet buffer configured to store the packets; a forwarding engine configured to transfer the packets between the ports; a classifier configured to identify packets that comprise data representing a transmit window size for one of the sessions; and a processor configured to determine whether to reduce the transmit window size for the one of the sessions by comparing a size of the packet buffer to a sum of (i) the transmit window size for the one of the sessions and (ii) transmit window sizes for others of the sessions, and when the transmit window size for the one of the sessions is to be reduced, modify the data representing the transmit window size for the one of the sessions to reduce the transmit window size for the one of the sessions before one or more of the plurality of ports transmits the packets comprising the data representing the transmit window size for the one of the sessions.