Method and apparatus for improving HTTP adaptive streaming performance using TCP modifications at content source
First Claim
1. A method of sending hypertext transfer protocol (HTTP) adaptive streaming (HAS) content from a content source to a client over a transmission control protocol (TCP) connection between the content source and the client, the method comprising:
- measuring network delay values of the TCP connection;
determining a size of a starting TCP congestion window (cwnd) based on the measured delay values;
receiving a request for one or more first HAS data chunks from the client;
sending the one or more first HAS data chunks from the content source to the client over the TCP connection;
receiving a request for a second HAS data chunk from the client; and
sending the second HAS chunk from the content source to the client over the TCP connection using the starting cwnd,wherein the network delay values include idle delay values indicating an amount of delay in the TCP connection during an idle time period, the idle time period is a time period over which no HAS data chunks are being sent from the content source to the client, and determining the size of the starting cwnd includes setting the size of the starting cwnd based on the idle delay values.
14 Assignments
0 Petitions
Accused Products
Abstract
A method of sending hypertext transfer protocol (HTTP) adaptive streaming (HAS) content from a content source to a client over a transmission control protocol (TCP) connection between the content source and the client may include receiving a request for one or more first HAS data chunks from the client; sending the one or more first HAS data chunks to the client; generating idle delay values indicating an amount of delay in the TCP connection during an idle time period, the idle time period being a time period over which no HAS data chunks are being sent from the content source to the client; receiving a request for a second HAS data chunk from the client; setting the size of a starting TCP congestion window based on the idle delay values; and sending the second HAS chunk to the client using the starting TCP congestion window.
-
Citations
20 Claims
-
1. A method of sending hypertext transfer protocol (HTTP) adaptive streaming (HAS) content from a content source to a client over a transmission control protocol (TCP) connection between the content source and the client, the method comprising:
-
measuring network delay values of the TCP connection; determining a size of a starting TCP congestion window (cwnd) based on the measured delay values; receiving a request for one or more first HAS data chunks from the client; sending the one or more first HAS data chunks from the content source to the client over the TCP connection; receiving a request for a second HAS data chunk from the client; and sending the second HAS chunk from the content source to the client over the TCP connection using the starting cwnd, wherein the network delay values include idle delay values indicating an amount of delay in the TCP connection during an idle time period, the idle time period is a time period over which no HAS data chunks are being sent from the content source to the client, and determining the size of the starting cwnd includes setting the size of the starting cwnd based on the idle delay values. - View Dependent Claims (2, 3, 4, 5, 6, 10)
-
-
7. The method of 6, wherein generating the active delay values based on the measured plurality of second RTTs includes averaging RTTs falling in a moving window of the plurality of second RTTs.
-
8. The method of 6, further comprising:
-
storing the n longest successful RTTs from among the plurality of first RTTs and the plurality of second RTTs, successful RTTs being RTTs of data segments or loopback messages for which the content source received no indication of loss; and determining a lossless delay value based on an average of the n longest successful RTTs, wherein setting the size of the starting cwnd includes setting the size of a starting cwnd based on the idle delay values, the active delay value, and the lossless delay value.
-
-
9. The method of 8, further comprising:
-
determining a fraction value based on the idle delay values, the active delay value, and the lossless delay value; and determining whether the fraction value is greater than a reference value, wherein setting the size of the starting cwnd includes determining a product of the fraction value and a size of a last cwnd used to send the one or more first HAS chunks to the client, and setting the determined product as the size of the starting cwnd.
-
-
11. A network apparatus configured to send hypertext transfer protocol (HTTP) adaptive streaming (HAS) content to a client over a transmission control protocol (TCP) connection between the network apparatus and the client, the apparatus comprising:
-
a receiver unit configured to receive data; a transmitting unit configured to transmit data; a memory unit configured to store parameters corresponding with characteristics of the TCP connection; and a processing unit coupled to the transmitting unit, the receiving unit, and the memory unit and configured to control operations associated with sending HAS content to the client, the operations including, measuring network delay values of the TCP connection; and determining a size of a starting TCP congestion window (cwnd) based on the measured delay values, wherein the processor is further configured to control operations including, receiving a request for one or more first HAS data chunks from the client; sending the one or more first HAS data chunks to the client over the TCP connection; receiving a request for a second HAS data chunk from the client; and sending the second HAS chunk to the client over the TCP connection using the starting cwnd, wherein the network delay values include idle delay values indicating an amount of delay in the TCP connection during an idle time period, the idle time period is a time period over which no HAS data chunks are being sent from the content source to the client, and determining the size of the starting cwnd includes setting the size of the starting cwnd based on the idle delay values. - View Dependent Claims (12, 13, 14, 15, 16, 20)
-
-
17. The network apparatus of 16, wherein the processor is configured such that generating the active delay values based on the measured plurality of second RTTs includes averaging RTTs falling in a moving window of the plurality of second RTTs.
-
18. The network apparatus of 17, wherein the processor is further configured to control operations including,
storing the n longest successful RTTs from among the plurality of first RTTs and the plurality of second RTTs, successful RTTs being RTTs of data segments or loopback messages for which the content source received no indication of loss; - and
determining a lossless delay value based on an average of the n longest successful RTTs, wherein setting the size of the starting TCP congestion window includes setting the size of a starting TCP congestion window based on the idle delay values, the active delay value, and the lossless delay value.
- and
-
19. The network apparatus of 18, wherein the processor is further configured to control operations including
determining a fraction value based on the idle delay values, the active delay value, and the lossless delay value; - and
determining whether the fraction value is greater than a reference value, wherein setting the size of the starting cwnd includes determining a product of the fraction value and a size of a last cwnd used to send the one or more first HAS chunks to the client and setting the determined product as the size of the starting cwnd, if the fraction value is greater that the reference value, and setting the size of the staring cwnd in accordance with one the TCP standards defined by RFC 2861 and RFC 2581, if the fraction value is not greater that the reference value.
- and
Specification