Abstract: A method and system for transferring data between a sender and a receiver in a packet-based network is disclosed. The method comprises establishing a data channel, establishing a feedback channel, sending data to the receiver over the data channel, sending an acknowledgment to a sender on the feedback channel at a predetermined interval, using the acknowledgment to track data sent successfully and unsuccessfully to the receiver, resending data unsuccessfully sent to the receiver, and self-tuning to optimize throughput based upon the acknowledgement and react to changing network conditions.
Abstract: A computer data transmission system is provided with proportional-integral-derivative (PID) control over a data transmission rate so as to maximize use of available bandwidth of a datagram-based network. A data channel and a separate feedback channel are established between the sender and receiver units of the system. The sender unit coupled to the data and feedback channels sends datagrams over the data channel to the receiver continuously until a source of data is exhausted or paused by the receiver unit. The receiver unit sends acknowledgment messages over the feedback channel to the sender unit at predetermined intervals. A PID controller in the sender unit uses the information provided in the acknowledgment messages to track unsuccessfully transmitted datagrams and to adapt the data transmission rate to any changing network transfer conditions. In particular, the rate of datagram loss may be used as a PID process variable to control an inter-datagram delay of the sender.