← Back to Patent Explorer
US5918002A Expired / Lapsed US ⏱️ 0.0 years remaining

Selective retransmission for efficient and reliable streaming of multimedia packets in a computer network

Assignee: Microsoft Technology Licensing LLC
•
Filing: 1997-03-14
•
Granted: 1999-06-29
•
Expires: 2017-03-14
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

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.

Inventors

  • 👤 Anders Edgar Klemets
  • 👤 Anthony William Cannon
  • 👤 Srinivas Prasad Vellanki
  • 👤 Hemanth Srinivas Ravi

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-29 06:25
CPC Classifications
H; H04; H04L; H04L65/00; H04L65/80; H04L1/00; H04L1/12; H04L1/16; H04L1/18; H04L1/1829; H04L1/1835; H04L1/1838; H04L1/1867; H04L1/1874; H04L1/1877; H04L65/1066; H04L65/1101; H04L65/1108; H04L67/00; H04L67/01; H04L67/50; H04L67/56; H04L67/568; H04L9/00; H04L9/40; H04L12/00; H04L12/64; H04L12/6418; H04L2012/6445; H04L2012/6459; H04L2012/6489; H04L2012/6494; H04L69/00; H04L69/28; H04L69/30; H04L69/32; H04L69/322; H04L69/329

Claims Analysis

Total Claims: 43
Claim 1
Independent Claim 221 words
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.
Claim 2
Dependent Claim 221 words
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.
Claim 3
Dependent Claim 65 words
The method of claim 1 wherein if said first missing data packet is an important data packet, then the first retransmission request packet is sent to said server for said important first missing data packet, even if said first Round -- Trip -- Time is greater than the first time remaining before said first missing data packet is due for processing by said on-demand application.
Claim 4
Dependent Claim 24 words
The method of claim 2 wherein said data stream is a video stream and said first missing data packet includes an I video frame.
Claim 5
Dependent Claim 25 words
The method of claim 2 wherein said data stream is a video stream and said first missing data packet includes a base layer video frame.
Claim 6
Dependent Claim 63 words
The method of claim 2 wherein said data stream is an audio stream, said first missing data packet is an audio packet and a data size of said audio packet is greater than a first difference between the first Round -- Trip -- Time and the first time remaining before said first missing data packet is due for processing by said on-demand application.
Claim 7
Dependent Claim 210 words
The method of claim 1 further comprising: (e) detecting that a second said missing data packet has not arrived at said client computer by a second ETA; and (f) computing a second Round -- Trip -- Time for said second missing data packet, the second Round -- Trip -- Time being an estimate of a period beginning from a time a second retransmission request is sent from the client computer to the stream server till a time a copy of said second missing data packet is received at the client computer from the stream server in response to the second retransmission request; (g) computing a second time remaining before said second missing data packet is due for processing by said on-demand application; and (h) if said second Round -- Trip -- Time is less than the second time, and if said second missing data packet has a higher priority than said first missing data packet, then sending the second retransmission request packet to said server for said second missing data packet prior to step (d); else if second missing data packet has a lower priority than said first missing data packet, then sending the second retransmission request packet to said server for said second missing data packet after step (d).
Claim 8
Dependent Claim 27 words
The method of claim 6 wherein said priority of first and second missing data packets is based on the respective data type of said missing data packets.
Claim 9
Dependent Claim 43 words
The method of claim 6 wherein said first missing data packet includes an I video frame, said second missing data packet includes a P video frame, and hence said first missing data packet has a higher priority than said second missing data packet.
Claim 10
Dependent Claim 45 words
The method of claim 6 wherein said first missing data packet includes a base layer video frame, said second missing data packet includes an enhancement layer video frame, and hence said first missing data packet has a higher priority than said second missing data packet.
Claim 11
Dependent Claim 58 words
The method of claim 6 wherein a first difference between the first Round -- Trip -- Time and the first time remaining is less than a second difference between the second Round -- Trip -- Time and the second time remaining, and hence said first missing data packet has a higher priority than said second missing data packet.
Claim 12
Dependent Claim 27 words
The method of claim 10 wherein said data stream is a video data stream and wherein said first and said second missing data packets include video frames.
Claim 13
Dependent Claim 25 words
The method of claim 10 wherein said data stream is an annotation stream and wherein said first and second missing data packets include annotation frames.
Claim 14
Dependent Claim 191 words
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.
Claim 15
Dependent Claim 191 words
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.
Claim 16
Dependent Claim 66 words
The client computer of claim 13 wherein if said first missing data packet is an important data packet, then the first retransmission request packet is sent to said server for said important first missing data packet, even if said first Round -- Trip -- Time is greater than the first time remaining before said first missing data packet is due for processing by said on-demand application.
Claim 17
Dependent Claim 25 words
The client computer of claim 14 wherein said data stream is a video stream and said first missing data packet includes an I video frame.
Claim 18
Dependent Claim 26 words
The client computer of claim 14 wherein said data stream is a video stream and said first missing data packet includes a base layer video frame.
Claim 19
Dependent Claim 64 words
The client computer of claim 14 wherein said data stream is an audio stream, said first missing data packet is an audio packet and a data size of said audio packet is greater than a first difference between the first Round -- Trip -- Time and the first time remaining before said first missing data packet is due for processing by said on-demand application.
Claim 20
Dependent Claim 184 words
The client computer of claim 13 wherein if a second said missing data packet has not arrived at said client computer by a second ETA and if a second Round -- Trip -- Time is less than a second time remaining before said second missing data packet is due for processing by said on-demand application, the second Round -- Trip -- Time being an estimate of a period beginning from a time a second retransmission request is sent to from the client computer to the stream server till a time a copy of said second missing data packet is received at the client computer from the stream server in response to the second retransmission request, then: if said second missing data packet has a higher priority than said first missing data packet, then sending the second retransmission request packet to said server prior to sending the first retransmission request packet; else if second missing data packet has a lower priority than said first missing data packet, then sending the second retransmission request packet to said server after to sending the first retransmission request packet.
Claim 21
Dependent Claim 28 words
The client computer of claim 18 wherein said priority of first and second missing data packets is based on the respective data type of said missing data packets.
Claim 22
Dependent Claim 44 words
The client computer of claim 18 wherein said first missing data packet includes an I video frame, said second missing data packet includes a P video frame, and hence said first missing data packet has a higher priority than said second missing data packet.
Claim 23
Dependent Claim 46 words
The client computer of claim 18 wherein said first missing data packet includes a base layer video frame, said second missing data packet includes an enhancement layer video frame, and hence said first missing data packet has a higher priority than said second missing data packet.
Claim 24
Dependent Claim 59 words
The client computer of claim 18 wherein a first difference between the first Round -- Trip -- Time and the first time remaining is less than a second difference between the second Round -- Trip -- Time and the second time remaining, and hence said first missing data packet has a higher priority than said second missing data packet.
Claim 25
Dependent Claim 28 words
The client computer of claim 22 wherein said data stream is a video data stream and wherein said first and said second missing data packets include video frames.
Claim 26
Dependent Claim 26 words
The client computer of claim 22 wherein said data stream is an annotation stream and wherein said first and second missing data packets include annotation frames.
Claim 27
Independent Claim 174 words
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.
Claim 28
Independent Claim 174 words
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.
Claim 29
Dependent Claim 171 words
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.
Claim 30
Dependent Claim 171 words
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.
Claim 31
Dependent Claim 71 words
The computer readable medium of claim 26 wherein upon determining the first missing data packet is an important data packet, the first retransmission request packet is sent to the server computer for the first missing data packet even upon determining the first Round -- Trip -- Time is greater than the first time remaining before the first missing data packet is due for processing by the application on the client computer.
Claim 32
Dependent Claim 26 words
The computer readable medium of claim 26 wherein the data stream is a video stream and the first missing data packet includes an I video frame.
Claim 33
Dependent Claim 27 words
The computer readable medium of claim 26 wherein the data stream is a video stream and the first missing data packet includes a base layer video frame.
Claim 34
Dependent Claim 68 words
The computer readable medium of claim 26 wherein the data stream is an audio stream, the first missing data packet is an audio packet and a data size of the audio packet is greater than a first difference between the first Round -- Trip -- Time and the first time remaining before the first missing data packet is due for processing by the application on the client computer.
Claim 35
Dependent Claim 277 words
The computer readable medium of claim 26, wherein the method further comprises: detecting that a second missing data packet has not arrived at the client computer by a second ETA; computing a second Round -- Trip -- Time for the second missing data packet, the second Round -- Trip -- Time being an estimate of a period beginning from a time a second retransmission request is sent from the client computer to the server computer till a time a copy of the second missing data packet is received at the client computer from the server computer in response to the second retransmission request; computing a second time remaining before the second missing data packet is due for processing by the application on the client computer; upon determining the second Round -- Trip -- Time is less than the second time remaining before the second missing data packet is due for processing by the application on the client computer, sending the second retransmission request to the server for the second missing data packet prior to sending a first retransmission request packet to the server computer upon determining the second missing data packet has a higher priority than the first missing data packet; and upon determining the second Round -- Trip -- Time is less than the second time remaining before the second missing data packet is due for processing by the application on the client computer, sending the second retransmission request to the server for the second missing data packet after sending the first retransmission request packet to the server computer upon determining the second missing data packet has a lower priority than the first missing data packet.
Claim 36
Dependent Claim 29 words
The computer readable medium of claim 31 wherein the priority of first and second missing data packets is based on the respective data type of the missing data packets.
Claim 37
Dependent Claim 45 words
The computer readable medium of claim 31 wherein the first missing data packet includes an I video frame, the second missing data packet includes a P video frame, and hence the first missing data packet has a higher priority than the second missing data packet.
Claim 38
Dependent Claim 47 words
The computer readable medium of claim 31 wherein the first missing data packet includes a base layer video frame, the second missing data packet includes an enhancement layer video frame, and hence the first missing data packet has a higher priority than the second missing data packet.
Claim 39
Dependent Claim 60 words
The computer readable medium of claim 31 wherein a first difference between the first Round -- Trip -- Time and the first time remaining is less than a second difference between the second Round -- Trip -- Time and the second time remaining, and hence the first missing data packet has a higher priority than the second missing data packet.
Claim 40
Dependent Claim 29 words
The computer readable medium of claim 35 wherein the data stream is a video data stream and wherein the first and the second missing data packets include video frames.
Claim 41
Dependent Claim 27 words
The computer readable medium of claim 35 wherein the data stream is an annotation stream and wherein the first and second missing data packets include annotation frames.
Claim 42
Dependent Claim 189 words
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.
Claim 43
Dependent Claim 189 words
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.

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2002-06-28 2002-12-28 2003-06-29 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2006-06-28 2006-12-28 2007-06-29 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2010-06-28 2010-12-28 2011-06-29 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag