In a client computer, a method for selectively retransmitting missing data packets of a data stream from a server to said client computer via an unreliable computer network, the method useful in association with an on-demand application of said client computer, the client computer including a playout buffer for storing a plurality of data packets of said data stream being transmitted from the server to the client computer, the method comprising:
- (a) detecting that a first said missing data packet has not arrived at said client computer by a first expected time of arrival (ETA);
- (b) computing a first Round.sub.-- Trip.sub.-- Time for said first missing data packet, the first Round.sub.-- Trip.sub.-- Time being an estimate of a period beginning from a time a first retransmission request is sent from the client computer to the stream server till a time a copy of said first missing data packet is received at the client computer from the stream server in response to the first retransmission request;
- (c) computing a first time remaining before said first missing data packet is due for processing by said on-demand application;
- and
- (d) if said first Round.sub.-- Trip.sub.-- Time is less than said first time, then sending said first retransmission request packet to said server for said first missing data packet.