Adaptively selecting timeouts for streaming media
First Claim
1. A method for operating an intermediate network cache, the method comprising:
- (A) receiving a request from a client computer system to transmit a sequence of a plurality of data packets at a specified bit rate, wherein the specified bit rate is a rate requested by the client computer system for receiving the plurality of data packets, and wherein the request is formatted according to an RTSP or a MMS protocol;
(B) comparing the specified bit rate requested by the client computer system with a predetermined bit rate associated with the intermediate network cache to determine a selected timing interval, wherein the predetermined bit rate indicates a bandwidth value of the intermediate network cache;
in the event that the specified bit rate is greater than the predetermined bit rate, pacing transmission of the data packets with a first timing interval as the selected timing interval;
in the event that the specified bit rate is less than the predetermined rate, pacing transmission of the data packets with a second timing interval as the selected timing interval;
(C) determining, in response to the pacing transmission of the data packets, a send time that defines when the server transmits to the client system a first data packet in the sequence of one or more data packets, wherein the send time includes a predetermined random time offset that has been assigned to the client system to control pacing of the transmission of the data packets to the client system;
(D) rounding the send time to align with the selected timing interval;
(E) transmitting the first data packet after the rounded send time has elapsed; and
(F) repeating steps (B) through (E) for each data packet in the sequence of one or more data packets, wherein the timing interval in step (B) is selected to optimize the intermediate network cache'"'"'s allocation of resources when determining the send time in step (C).
2 Assignments
0 Petitions
Accused Products
Abstract
The present invention provides a streaming media cache configured to select a timing interval, chosen from a set of one or more predetermined timing intervals, for each client that requests a data stream from the streaming media cache. Illustratively, clients requesting data streams below a predetermined bit rate (“bandwidth”) are assigned longer timing intervals than clients requesting data streams above the predetermined bit rate. More specifically, because the server can accommodate a larger number of relatively low-bandwidth clients than relatively high-bandwidth clients, the server selects timing intervals of longer duration for the relatively low-bandwidth clients so it may have more time to schedule send times for their requested packets.
130 Citations
26 Claims
-
1. A method for operating an intermediate network cache, the method comprising:
-
(A) receiving a request from a client computer system to transmit a sequence of a plurality of data packets at a specified bit rate, wherein the specified bit rate is a rate requested by the client computer system for receiving the plurality of data packets, and wherein the request is formatted according to an RTSP or a MMS protocol; (B) comparing the specified bit rate requested by the client computer system with a predetermined bit rate associated with the intermediate network cache to determine a selected timing interval, wherein the predetermined bit rate indicates a bandwidth value of the intermediate network cache; in the event that the specified bit rate is greater than the predetermined bit rate, pacing transmission of the data packets with a first timing interval as the selected timing interval; in the event that the specified bit rate is less than the predetermined rate, pacing transmission of the data packets with a second timing interval as the selected timing interval; (C) determining, in response to the pacing transmission of the data packets, a send time that defines when the server transmits to the client system a first data packet in the sequence of one or more data packets, wherein the send time includes a predetermined random time offset that has been assigned to the client system to control pacing of the transmission of the data packets to the client system; (D) rounding the send time to align with the selected timing interval; (E) transmitting the first data packet after the rounded send time has elapsed; and (F) repeating steps (B) through (E) for each data packet in the sequence of one or more data packets, wherein the timing interval in step (B) is selected to optimize the intermediate network cache'"'"'s allocation of resources when determining the send time in step (C). - View Dependent Claims (2, 3, 4)
-
-
5. An intermediate network cache comprising:
-
a processor and memory; a network adapter configured to send and receive data packets over a computer network; a network protocol engine configured to receive requests from the client system and configured to transmit data packets in a sequence of a plurality of data packets to the client system; a streaming media protocol engine configured to determine, in response to a request received by the network protocol engine, a specified bit rate to transmit a plurality of data packets to the client system, wherein the specified bit rate is a rate requested by the client system for receiving the plurality of data packets, and wherein the request is formatted according to an RTSP or a MMS protocol; an operating system to compare the specified bit rate requested by the client system with a predetermined bit rate associated with the intermediate network cache to determine a selected timing interval, wherein the predetermined bit rate indicates a bandwidth value of the intermediate network cache; in the event that the specified bit rate is greater than the predetermined bit rate, pacing transmission of the data packets with a first timing interval as a selected timing interval; in the event that the specified bit rate is less than the predetermined rate, pacing transmission of the data packets with a second timing interval as the selected timing interval; and a packet pacing sub-system configured (i) to receive a send time from the streaming media protocol engine, wherein the send time includes a predetermined random time offset that has been assigned to the client system to control pacing of the transmission of the data packets to the client system, (ii) to round the received send time to align with the selected timing interval, and (iii) to forward a data packet in the sequence of a plurality of data packets to the network protocol engine at the rounded send time. - View Dependent Claims (6, 7, 8, 9, 10)
-
-
11. An intermediate network cache comprising:
-
a processor; a network adapter configured to send and receive data packets over a computer network; a memory including a buffer cache that stores a sequence of one or more data packets, at least a portion of the memory being configured to store a sequence of instructions executable by the processor for; (A) receiving a request from a client computer system to transmit a sequence of a plurality of data packets at a specified bit rate, wherein the specified bit rate is a rate requested by the client computer system for receiving the plurality of data packets, and wherein the request is formatted according to an RTSP or a MMS protocol; (B) comparing the specified bit rate requested by the client computer system with a predetermined bit rate associated with the intermediate network cache to determine a selected timing interval, wherein the predetermined bit rate indicates a bandwidth value of the intermediate network cache, and in the event that the specified bit rate is greater than the predetermined bit rate, pacing transmission of the data packets with a first timing interval as the selected timing interval; in the event that the specified bit rate is less than the predetermined rate, pacing transmission of the data packets with a second timing interval as the selected timing interval; (C) determining, in response to the pacing transmission of the data packets, a send time that defines when the computer system transmits to the client system a first data packet in the sequence of one or more data packets, wherein the send time includes a predetermined random time offset that has been assigned to the client system to control pacing of the transmission of the data packets to the client system; (D) rounding the send time to align with the selected timing interval; (E) transmitting the first data packet after the rounded send time has elapsed; and (F) repeating steps (B) through (E) for each data packet in the sequence of one or more data packets, wherein the timing interval in step (B) is selected to optimize the computer system'"'"'s allocation of resources when determining the send time in step (C). - View Dependent Claims (12, 13, 14)
-
-
15. An intermediate network cache comprising:
-
means for receiving a request from a client computer system to transmit a sequence of a plurality of data packets at a specified bit rate, wherein the specified bit rate is a rate requested by the client computer system for receiving the plurality of data packets, and wherein the request is formatted according to an RTSP or a MMS protocol; means for comparing the specified bit rate requested by the client computer system with a predetermined bit rate associated with the intermediate network cache to determine a selected timing interval, wherein the predetermined bit rate indicates a bandwidth value of the intermediate network cache; in the event that the specified bit rate is greater than the predetermined bit rate, pacing transmission of the data packets with a first timing interval as the selected timing interval; in the event that the specified bit rate is less than the predetermined rate, pacing transmission of the data packets with a second timing interval as the selected timing interval; means for determining, in response to the selected timing interval, a send time that defines when the apparatus transmits to the client system a data packet in the sequence of one or more data packets, wherein the send time includes a predetermined random time offset that has been assigned to the client system to control pacing of the transmission of the data packets to the client system; means for rounding the send time to align with the selected timing interval; and means for transmitting the data packet after the rounded send time has elapsed. - View Dependent Claims (16, 17)
-
-
18. A computer-readable non-transitory media comprising instructions for execution in a processor for the practice of a method of operating an intermediate network cache comprising:
-
(A) receiving a request from a client computer system to transmit a sequence of a plurality of data packets at a specified bit rate, wherein the specified bit rate is a rate requested by the client computer system for receiving the plurality of data packets, and wherein the request is formatted according to an RTSP or a MMS protocol; (B) comparing the specified bit rate requested by the client computer system with a predetermined bit rate associated with the intermediate network cache to determine a selected timing interval, wherein the predetermined bit rate indicates a bandwidth value of the intermediate network cache, in the event that the specified bit rate is greater than the predetermined bit rate, pacing transmission of the data packets with a first timing interval as the selected timing interval; in the event that the specified bit rate is less than the predetermined rate, pacing transmission of the data packets with a second timing interval as the selected timing interval; (C) determining, in response to the selected timing interval, a send time that defines when the server transmits to the client system a first data packet in the sequence of one or more data packets, wherein the send time includes a predetermined random time offset that has been assigned to the client system to control pacing of the transmission of the data packets to the client system; (D) rounding the send time to align with the selected timing interval; (E) transmitting the first data packet after the rounded send time has elapsed; and (F) repeating steps (B) through (E) for each data packet in the sequence of one or more data packets, wherein the timing interval in step (B) is selected to optimize the intermediate network cache'"'"'s allocation of resources when determining the send time in step (C). - View Dependent Claims (19, 20)
-
-
21. An intermediate network cache comprising:
-
a memory configured to store a sequence of instructions executable by a processor for; (A) receiving a request from a client computer system to transmit a sequence of a plurality of data packets at a specified bit rate, wherein the specified bit rate is a rate requested by the client computer system for receiving the plurality of data packets, and wherein the request is formatted according to an RTSP or a MMS protocol; (B) comparing the specified bit rate requested by the client computer system with a predetermined bit rate associated with the intermediate network cache to determine a selected timing interval, wherein the predetermined bit rate indicates a bandwidth value of the intermediate network cache; in the event that the specified bit rate is greater than the predetermined bit rate, pacing transmission of the data packets with a first timing interval as the selected timing interval; in the event that the specified bit rate is less than the predetermined rate, pacing transmission of the data packets with a second timing interval as the selected timing interval; (C) determining, in response to the selected timing interval, a send time that defines when the server transmits to the client system a first data packet in the sequence of one or more data packets, wherein the send time includes a predetermined random time offset that has been assigned to the client system to control pacing of the transmission of the data packets to the client system; (D) transmitting the first data packet to the client system in accordance with the send time; and (E) repeating steps (B) through (D) for each data packet in the sequence of one or more data packets, wherein the timing interval in step (B) is selected to optimize the intermediate network cache'"'"'s allocation of resources when determining the send time in step (C). - View Dependent Claims (22, 23, 24)
-
-
25. A method for operating an intermediate network cache, the method comprising:
-
receiving a request from a client computer system to transmit a sequence of a plurality of data packets at a specified bit rate, wherein the specified bit rate is a rate requested by the client computer system for receiving the plurality of data packets, and wherein the request is formatted according to an RTSP or a MMS protocol; comparing the specified bit rate requested by the client computer system with a predetermined bit rate associated with the intermediate network cache to determine a selected timing interval, wherein the predetermined bit rate indicates a bandwidth value of the intermediate network cache; in the event that the specified bit rate is greater than the predetermined bit rate, pacing transmission of the data packets with a first timing interval as the selected timing interval; in the event that the specified bit rate is less than the predetermined rate, pacing transmission of the data packets with a second timing interval as the selected timing interval; determining, in response to the selected timing interval, a send time, wherein the send time includes a predetermined random time offset that has been assigned to the client computer system to control pacing of the transmission of the data packets to the client system; rounding the send time to correspond with the selected timing interval to generate a rounded send time; and transmitting a data packet at the rounded send time.
-
-
26. A computer-readable non-transitory media comprising instructions for execution in a processor for the practice of a method of operating an intermediate network cache that transmits a sequence of a plurality of data packets to a client system, the method comprising:
-
receiving a request from a client computer system to transmit a sequence of a plurality of data packets at a specified bit rate, wherein the specified bit rate is a rate requested by the client computer system for receiving the plurality of data packets, and wherein the request is formatted according to an RTSP or a MMS protocol; comparing the specified bit rate requested by the client computer system with a predetermined bit rate associated with the intermediate network cache to determine a selected timing interval, wherein the predetermined bit rate indicates a bandwidth value of the intermediate network cache, in the event that the specified bit rate is greater than the predetermined bit rate, pacing transmission of the data packets with a first timing interval as the selected timing interval; in the event that the specified bit rate is less than the predetermined rate, pacing transmission of the data packets with a second timing interval as the selected timing interval; determining a send time in response to identifying the client, wherein the send time includes a predetermined random time offset that has been assigned to the client system to control pacing of the transmission of the data packets to the client system; rounding the send time to correspond with the selected timing interval to generate a rounded send time; and transmitting a data packet at the rounded send time.
-
Specification