Method for streaming multimedia information over public networks
DC CAFCFirst Claim
1. In a network having a content server which hosts a plurality of streaming multimedia (SM) objects which comprise a plurality of time-ordered packets for distribution over said network through a plurality of helper servers (HS) to a plurality of clients, a method of reducing latency associated with distributing said plurality of SM objects from said content server and said plurality of helper servers HSs to said plurality of clients, said method comprising:
- servicing a first request received from one of said plurality of clients, including a requested starting position of said SM object, for one of said plurality of SM objects by allocating a first ring buffer in a memory associated with said one of said plurality of HSs for storing data representing a first portion of one of said plurality of SM objects, wherein said first portion includes a packet having an associated time-stamp approximately equal to the requested starting position;
maintaining the first ring buffer in the memory as a sliding window by replacing stored data with data representing successive portions of said one of said plurality of SM objects; and
allocating a second ring buffer to service a further request for said one of said plurality of SM objects received at said one of said plurality of helper servers, if it is determined that said further request cannot be serviced from said first ring buffer, otherwise servicing said further request from said first ring buffer.
5 Assignments
Litigations
3 Petitions
Reexaminations
Accused Products
Abstract
A method and apparatus for enhancing existing caching systems to better support streaming media over the Internet and other public network system are disclosed herein. By using helpers inside the network, which operate as caching and streaming agents, existing caching techniques are enhanced to better support streaming media over the Internet. The helpers serve to implement several methods specifically designed to support streaming media, including proxy caching, client request aggregation which describes the use of memory and disk resources at the helpers, and data transfer rate control to reduce start-up latency.
The method and apparatus advantageously reduces server and network loads by employing the above methods to overcome arrival time and range heterogeneity in client requests thereby improving the quality perceived by end users.
-
Citations
17 Claims
-
1. In a network having a content server which hosts a plurality of streaming multimedia (SM) objects which comprise a plurality of time-ordered packets for distribution over said network through a plurality of helper servers (HS) to a plurality of clients, a method of reducing latency associated with distributing said plurality of SM objects from said content server and said plurality of helper servers HSs to said plurality of clients, said method comprising:
-
servicing a first request received from one of said plurality of clients, including a requested starting position of said SM object, for one of said plurality of SM objects by allocating a first ring buffer in a memory associated with said one of said plurality of HSs for storing data representing a first portion of one of said plurality of SM objects, wherein said first portion includes a packet having an associated time-stamp approximately equal to the requested starting position;
maintaining the first ring buffer in the memory as a sliding window by replacing stored data with data representing successive portions of said one of said plurality of SM objects; and
allocating a second ring buffer to service a further request for said one of said plurality of SM objects received at said one of said plurality of helper servers, if it is determined that said further request cannot be serviced from said first ring buffer, otherwise servicing said further request from said first ring buffer. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
calculating a temporal distance between said first request and said further request;
comparing the calculated temporal distance with a buffer temporal distance associated with said first ring buffer; and
determining that the calculated temporal distance is greater than the buffer temporal distance.
-
-
3. The method according to claim 2, wherein said temporal distance is calculated as:
-
4. The method according to claim 2, wherein the temporal distance is a function of the request time and the requested starting position for said one of said plurality of SM objects.
-
5. The method according to claim 1, wherein said further request is determined not to be serviceable from said first ring buffer by determining that said requested starting time is not contained in a range between a largest timestamp associated with a packet stored in the buffer and a smallest time-stamp associated a packet stored in the buffer.
-
6. The method according to claim 2, wherein the buffer temporal distance is a measure of the allocated buffer size in units of time.
-
7. The method according to claim 1, wherein said stored data comprises a plurality of data segments, wherein each of said plurality of data segments is sourced from one of said content server and/or said plurality of HSs.
-
8. The method according to claim 1, wherein a further ring buffer associated with said one of said plurality of SM objects is allocated in the memory, if it is determined that a previously allocated ring buffer associated with said one of said plurality of SM objects cannot service a current request for said one of said plurality of SM objects.
-
9. The method of claim 8, wherein the number of ring buffers capable of being allocated in memory is dependent upon the size of the memory.
-
10. The method according to claim 1, further including the step of replacing stored data with data representing successive portions of said one of said plurality of SM objects, wherein said step further comprises the steps of:
-
a) determining that said first ring buffer is full;
b) initiating a garbage collector event including the steps of;
i) determining that a stored packet having the lowest associated time-stamp is less than the current position associated with a most recently received request and wherein said stored packet having the associated lowest time-stamp value is less than the difference between the stored packet having an associated highest time-stamp value and the buffer temporal distance;
ii) removing said stored packet from said first ring buffer, if determination step (i) is true;
iii) repeating steps(i) through (ii), until determination step (i) is no longer true, iv) de-initiating said garbage collector event, until it is determined that step (a) is true again and returning to step (b).
-
-
11. The method according to claim 1, wherein said first ring buffer is de-allocated from the memory upon removing all stored packets from said first ring buffer.
-
12. The method according to claim 1, wherein said time-ordered packets are RTP packets.
-
13. In a network having a content server which hosts streaming multimedia (SM) objects, each of said SM objects comprising a plurality of time-ordered packets for distribution over said network through a plurality of HSs to a plurality of clients, a method of reducing latency associated with distributing said SM objects from said content server and said plurality of helpers (HS) to said plurality of clients, said method comprising:
-
receiving a first request for an SM object, including a requested starting position, received from one of said plurality of clients at one of said plurality of HSs;
allocating a first ring buffer in a memory associated with said one of said plurality of HSs upon receiving said first request;
retrieving said SM object comprising said plurality of time-ordered packets from at least one of said plurality of HSs including said one of said plurality of HSs and said content server;
sequentially storing said plurality of time-ordered packets from said retrieved SM object in said first ring buffer by replacing lower time-ordered packets with higher time-ordered packets;
servicing a second request for said SM object from said first ring buffer, if it is determined that said subsequent request includes a starting request position within a range between a largest timestamp associated with a packet stored in the buffer and a smallest time-stamp associated a packet stored in the buffer; and
allocating a second ring buffer in the memory, if it is determined at the servicing step that said second request cannot be serviced from said first ring buffer. - View Dependent Claims (14, 15)
forwarding said first request for said SM object from said one of said plurality of HSs to said content server; and
receiving at least said first portion of said requested SM object at said one of said plurality of HSs from said content server in response to said forwarded first request.
-
-
16. A method of reducing latency in a network having a content server which hosts streaming media (SM) objects which comprise a plurality of time-ordered segments for distribution over said network through a plurality of helpers (HSs) to a plurality of clients, said method comprising:
-
receiving a request for an SM object from one of said plurality of clients at one of said plurality of helper servers;
allocating a buffer at one of said plurality of HSs to cache at least a portion of said requested SM object;
downloading said portion of said requested SM object to said requesting client, while concurrently retrieving a remaining portion of said requested SM object from one of another HS and said content server; and
adjusting a data transfer rate at said one of said plurality of HSs for transferring data from said one of said plurality of helper servers to said one of said plurality of clients.
-
-
17. A network of interconnected helper servers (HSs), each of said interconnected helpers comprising
means for receiving and processing real-time streaming protocol (RTSP) requests from clients; -
means for forwarding client requests to a content server;
means for streaming data to a plurality of clients using the real-time (RTP) protocol;
means for managing available memory in the form of a buffer pool, each buffer in said buffer pool being associated with an SM object identified by a uniform resource locator (URL);
means for mapping URLs identifying said objects received as a parameter along with an SM object request to local filenames;
means for managing the disk space allocated for caching by implementing a cache replacement policy;
means for recording data onto said cache and reading data from said cache; and
scheduler means for managing data producer, data consumer, and garbage collector events, wherein said data producer events are events which source at least a portion of said SM object to said one of said plurality of helper servers to be stored in one of said buffers in said buffer pool, said data consumer events are RTSP requests from clients, and garbage collector events are events associated with removing a portion of said SM objects stored in said buffer pool to free the available memory.
-
Specification