Adaptive bandwidth estimation
First Claim
1. A method of combining a plurality of streams of data packets into a single combined stream of data packets and transmitting the combined stream from a first device, the method comprising:
- identifying a first set of packets from a first set of streams;
identifying a second set of packets from a different second set of streams;
associating the first set of packets with the second set of packets in the combined stream such that the associated packets have a combined size that is at least a threshold size, wherein the threshold size is at least a size needed for a second device receiving the combined stream to use the associated packets to estimate the bandwidth between the first and the second devices, wherein the associating comprises inserting into a packet in the second set of packets information that identifies at least one packet of the first set of packets;
transmitting the combined stream to the second device via a network connection between the first device and the second device;
receiving from the second device feedback comprising an estimation of bandwidth of the network connection, wherein the estimation is based on the associated packets;
determining, based on the feedback, that a set of packets having a size larger than the combined size of the associated packets would allow the second device to provide a more accurate estimation of the bandwidth; and
increasing the threshold size in response to the determining.
1 Assignment
0 Petitions
Accused Products
Abstract
Some embodiments provide a method of combining multiple streams of data packets into a single combined stream in a manner that facilitates accurate estimation of bandwidth of a connection over a network between two devices. When combining the streams into the combined stream, the method associates a set of packets from a first stream and a reference packet from a second stream to form a longer sequence of packets in the combined stream. The method sends the combined stream from a first device to a second device so that the second device can estimate the bandwidth of the connection between the first and second devices based on the inter-arrival times of the packets in the sequence of packets.
28 Citations
22 Claims
-
1. A method of combining a plurality of streams of data packets into a single combined stream of data packets and transmitting the combined stream from a first device, the method comprising:
-
identifying a first set of packets from a first set of streams; identifying a second set of packets from a different second set of streams; associating the first set of packets with the second set of packets in the combined stream such that the associated packets have a combined size that is at least a threshold size, wherein the threshold size is at least a size needed for a second device receiving the combined stream to use the associated packets to estimate the bandwidth between the first and the second devices, wherein the associating comprises inserting into a packet in the second set of packets information that identifies at least one packet of the first set of packets; transmitting the combined stream to the second device via a network connection between the first device and the second device; receiving from the second device feedback comprising an estimation of bandwidth of the network connection, wherein the estimation is based on the associated packets; determining, based on the feedback, that a set of packets having a size larger than the combined size of the associated packets would allow the second device to provide a more accurate estimation of the bandwidth; and increasing the threshold size in response to the determining. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A non-transitory computer readable medium of a first device, the non-transitory computer readable medium storing a computer program for combining a plurality of streams into one stream, the computer program comprising sets of instructions executable to cause a processor to:
-
combine different data streams of data packets into a single combined stream of data packets; associate, in the combined stream, a first set of data packets from one or more streams with a second packet from a different stream such that the associated packets have a combined size that is at least a specified threshold size, wherein the associating comprises inserting into a packet in the first set of data packets information that identifies the second packet; send the combined stream to a second device via a connection between the first and second devices; receive from the second device feedback comprising an estimation of bandwidth of the connection, wherein the estimation is based on the associated packets in the combined stream; determine, based on the feedback, that a set of packets having a size larger than the combined size of the associated packets in the combined stream would allow the second device to provide a more accurate estimation of the bandwidth; and increase the threshold size in response to the determining. - View Dependent Claims (9, 10, 11)
-
-
12. A method of increasing size of packet sequence in a stream of data packets by a first device, the method comprising:
-
sending a stream of data packets that includes a first packet sequence to a second device, the first packet sequence comprising a set of concatenated packets; receiving a feedback regarding network conditions from the second device, the feedback computed by the second device based on the stream of data packets; based on the feedback, determining whether a packet sequence larger than the first packet sequence would allow the second device to compute more accurate feedback; when determined that a packet sequence larger than the first packet sequence would allow the second device to compute more accurate feedback, determining whether to increase size of a later packet sequence, wherein the determining whether to increase the size of the later packet sequence comprises; determining, based on the feedback, a threshold packet sequence size that would allow the second device to compute more accurate feedback; evaluating the sizes of one or more subsequent packet sequences sent to the second device during a specified period of time after the receiving the feedback; and determining to increase the size of the later packet sequence if none of the evaluated sizes meet the determined threshold size; and when determined to increase, increase the size of the later packet sequence. - View Dependent Claims (13, 14, 15, 16, 17)
-
-
18. A non-transitory computer readable medium of a first device, the non-transitory computer readable medium storing a computer program for increasing size of packet sequence in a stream of data packets, the computer program comprising sets of instructions executable by a processor to:
-
send a stream of data packets that includes a first packet sequence to a second device, wherein the first packet sequence comprises a set of concatenated packets; receive a feedback regarding network conditions from the second device, the feedback computed by the second device based on the stream of data packets; determine, based on the feedback, whether a packet sequence larger than the first packet sequence would allow the second device to compute more accurate feedback; when determined that a packet sequence larger than the first packet sequence would allow the second device to compute more accurate feedback, determine whether to increase size of a later packet sequence, wherein the determining whether to increase the size of the later packet sequence comprises; determining, based on the feedback, a threshold packet sequence size that would allow the second device to compute more accurate feedback; evaluating the sizes of one or more subsequent packet sequences sent to the second device during a specified period of time after the receiving the feedback; and determining to increase the size of the later packet sequence if none of the evaluated sizes meet the determined threshold size; and when determined to increase, increase the size of the later packet sequence. - View Dependent Claims (19, 20, 21, 22)
-
Specification