Patent ID: 7239611

Claim:
In a transmitting computer system that is network connectable to a receiving computer system via a computer network data path, the computer network data path including at least a transmitting side data link and a receiving side data link, a method for determining that an application data stream can be delivered from the transmitting computer system to the receiving computer system without congesting any of the data links included in the computer network data path, the method comprising: an act of receiving a requested application data transfer rate from an application that requests delivery of the application data stream from the transmitting computer system to the receiving computer system, the requested application data transfer rate representing an estimation of the bandwidth that will be consumed during delivery of the application data stream; an act of passively detecting a transmission side data load on the transmission side data link; an act of calculating that, based on the transmission side data load, the available bandwidth capacity on the transmitting side data link is sufficient to support a stream of data at the requested application data transfer rate; an act of transmitting a first packet-pair data packet onto the computer network data path for delivery to the receiving computer system or an intermediate computer system; an act of, subsequent to transmitting the first packet-pair data packet, transmitting a corresponding second packet-pair data packet onto the computer network data for delivery to the receiving computer system or the intermediate computer system, the second packet-pair data packet being similar in size to the first packet-pair data packet; an act of receiving an indication that the available bandwidth capacity on the bottleneck data link of the computer network data path is sufficient to receive a stream of data at the requested application data transfer rate; an act of identifying transmission parameters for configuring trains of probing data packets to simulate transmitting the application data stream at the requested application data transfer rate; an act of temporarily transmitting a train of probing data packets in accordance with the identified transmission parameters to simulate transmission of the application data stream onto the computer network data path; and an act of receiving an indication that the train of data probing packets did not cause any of the data links of the computer network data path to transition into a congested state.