Patent ID: 8228800

Claim:
A computer-implemented process for minimizing transmission delays associated with transmitting data packets generated by a local application hosted on a source computer over a data communications network to a remote application hosted on a destination computer, comprising using the source computer to perform the following process actions: measuring the currently available bandwidth of the network; inputting an initial sequence of the data packets generated by the local application into a transmit queue; forming an initial sequence of output packets from the data packets in the transmit queue; transmitting the initial sequence of output packets over the network to the remote application during a succession of transmission opportunities, wherein the rate of transmission is started at a rate that does not employ the full amount of the last-measured available bandwidth and is then ramped up to the full amount of the last-measured available bandwidth; in conjunction with transmitting the initial sequence of output packets over the network to the remote application, monitoring a transmission delay indicator which is routinely computed using acknowledgement packets received from the destination computer and whenever the indicator specifies that the transmission delay is increasing, reducing said rate of transmission until the indicator specifies that said delay is unchanged; remembering the last rate of transmission used to transmit the last output packet to the remote application; and following the occurrence of one or more transmission opportunities during which no output packets are transmitted to the remote application, and upon the formation of a subsequent sequence of output packets, transmitting the subsequent sequence of output packets over the network to the remote application, wherein the starting rate of transmission is set to be a prescribed percentage of the remembered last rate of transmission and the rate of transmission is ramped up to the measured bandwidth, and in conjunction with transmitting the subsequent sequence of output packets over the network to the remote application, monitoring the transmission delay indicator and whenever the indicator specifies that the transmission delay is increasing, reducing said rate of transmission until the indicator specifies that said delay is unchanged.