Patent ID: 7236459

Claim:
A method for controlling data flow transmission between a first host and a second host, the method implemented by a network device disposed in a communications path between the first host and the second host, the method comprising monitoring, at the network device, the state of a data flow between the first host and the second host, wherein the monitored state includes a last sequence number of data acknowledged by the first host and the inbound rate of data transmitted by the first host to the second host; receiving, at the network device, a data packet of the data flow transmitted from the first host to the second host, wherein the data packet comprises an acknowledgment sequence number and data; if the acknowledgment sequence number in the received packet is greater than the last sequence number of data acknowledged by the first host, then: creating a first new packet including the acknowledgment sequence number; creating a second new packet including the data in the received data packet and the last sequence number of data acknowledged by the first host; passing the first new packet to an acknowledgment packet process operative to conditionally modify the first new packet, and schedule the first new packet for transmission; passing the second new packet to a data packet process operative to schedule the second new packet for transmission.