Selective retransmission for efficient and reliable streaming of multimedia packets in a computer network
First Claim
1. 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-- Trip-- Time for said first missing data packet, the first Round-- Trip-- 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-- Trip-- Time is less than said first time, then sending said first retransmission request packet to said server for said first missing data packet.
3 Assignments
0 Petitions
Accused Products
Abstract
An efficient and reliable transmission protocol for transmitting multimedia streams from a server to a client computer over a diverse computer network including local area networks (LANs) and wide area networks (WANs) such as the internet. The client computer includes a playout buffer for temporary storage of incoming data packets. When the client computer detects that a data packet has not arrived at said client computer by an expected time of arrival (ETA), a round trip time for the data packet is computed. The round trip time is an estimate of a period beginning from the time a retransmission request is sent to from the client computer to the stream server till the time a copy of the missing data packet is received at the client computer from the stream server in response to the retransmission request. If the round trip time is less than the time remaining before the missing packet is no longer useful to the on-demand application, then a retransmission request packet is sent to the server. Conversely if the round trip time is greater than the time remaining, i.e., the missing packet is likely to arrive after the usefulness of the packet has expired, then sending a retransmission request is likely to result in the late arrival of the missing data packet. Accordingly, the missing packet is discarded. This selective retransmission protocol can also be practiced with dynamic bandwidth selection wherein the transmission rate is dynamically matched to the available bandwidth capacity of the network connection between the server and the client computer.
-
Citations
38 Claims
-
1. 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-- Trip-- Time for said first missing data packet, the first Round-- Trip-- 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-- Trip-- Time is less than said first time, then sending said first retransmission request packet to said server for said first missing data packet. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A client computer useful in association with a stream server, said client computer coupled to said stream server via an unreliable computer network, the client computer comprising:
a playout buffer for storing a plurality of data packets of said data stream being transmitted from the server to the client computer, and wherein if a first said missing data packet has not arrived at said client computer by a first expected time of arrival (ETA) and if a first Round-- Trip-- Time of said first missing data packet is less than a first time remaining before said first missing data packet is due for processing by an on-demand application of said client computer, the first Round-- Trip-- Time being an estimate of a period beginning from a time a first retransmission request is sent to 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, then said first retransmission request packet is sent to said server for said first missing data packet. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24)
-
25. A method comprising:
-
detecting that a first missing data packet has not arrived at a client computer by a first expected time of arrival (ETA); computing a first Round-- Trip-- Time for the first missing data packet, the first Round-- Trip-- Time being an estimate of a period beginning from a time a first retransmission request is sent from the client computer to a server computer till a time a copy of the first missing data packet is received at the client computer from the server computer in response to the first retransmission request; computing a first time remaining before the first missing data packet is due for processing by an application on the client computer; sending a first retransmission request packet to the server computer for the first missing data packet upon determining the first Round-- Trip-- Time is less than the first time; and matching a transmission rate dynamically to an available bandwidth capacity of a network connection between the server computer and the client computer.
-
-
26. A computer readable medium having computer executable instructions for causing a client computer to perform a method comprising:
-
detecting that a first missing data packet from a data stream has not arrived at the client computer by a first expected time of arrival (ETA); computing a first Round-- Trip-- Time for the first missing data packet, the first Round-- Trip-- Time being an estimate of a period beginning from a time a first retransmission request is sent from the client computer to a server computer till a time a copy of the first missing data packet is received at the client computer from the server computer in response to the first retransmission request; computing a first time remaining before the first missing data packet is due for processing by an application on the client computer; and sending a first retransmission request packet to the server computer for the first missing data packet upon determining the first Round-- Trip-- Time is less than the first time. - View Dependent Claims (27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37)
-
-
38. A computer readable medium having computer executable instructions for causing a client computer to perform a method comprising:
-
detecting that a first missing data packet has not arrived at a client computer by a first expected time of arrival (ETA); computing a first Round-- Trip-- Time for the first missing data packet, the first Round-- Trip-- Time being an estimate of a period beginning from a time a first retransmission request is sent from the client computer to a server computer till a time a copy of the first missing data packet is received at the client computer from the server computer in response to the first retransmission request; computing a first time remaining before the first missing data packet is due for processing by an application on the client computer; sending a first retransmission request packet to the server computer for the first missing data packet upon determining the first Round-- Trip-- Time is less than the first time; and matching a transmission rate dynamically to an available bandwidth capacity of a network connection between the server computer and the client computer.
-
Specification