System and method for streaming media objects
First Claim
1. A method of streaming a requested segment of a media object in a peer-to-peer network having a plurality of nodes including a plurality of end nodes and a core node, the method comprising:
- routing a request for the requested segment to a target end node assigned to a key space zone corresponding to the requested segment;
if a segment index of the media object exists at the target end node;
determining that the requested segment is not stored at any of the plurality of end nodes if a location list of the segment index is empty; and
determining that the requested segment is stored at one of the plurality of end nodes if the location list is not empty;
in response to determining that the requested segment is stored at one of the plurality of end nodes, streaming the requested segment of the media object from an end node of the plurality of end nodes at which the requested segment of the media object is stored;
if the segment index does not exist at the target end node, determining that the requested segment is not stored at any of the plurality of end nodes; and
in response to determining that the requested segment is not stored at any of the plurality of end nodes;
retrieving the media object from a remote media server based on a uniform resource locator of the media object via the core node,determining, at the core node, a plurality of segments of the media object, wherein the plurality of segments includes the requested segment,storing the segment index at the core node,streaming the media object from the core node, anddesignating the core node as a streaming server for streaming all subsequent requests for the requested segment of the media object,wherein the remote media server is not in the peer-to-peer network and the core node is a dedicated proxy in the peer-to-peer network between the plurality of end nodes and the remote media server.
1 Assignment
0 Petitions
Accused Products
Abstract
A method and system for streaming media objects. A streaming system includes a group of end nodes and at least one core node connected via an overlay network. The end nodes cache segments of media objects and stream the media objects to a client segment by segment. Each end node stores segment indices for locating segments cached on end nodes or a core node in the system. The core node is a dedicated proxy which fetches media objects from a remote media server and streams the media objects to a client when the media objects are unavailable from the end nodes.
50 Citations
14 Claims
-
1. A method of streaming a requested segment of a media object in a peer-to-peer network having a plurality of nodes including a plurality of end nodes and a core node, the method comprising:
-
routing a request for the requested segment to a target end node assigned to a key space zone corresponding to the requested segment; if a segment index of the media object exists at the target end node; determining that the requested segment is not stored at any of the plurality of end nodes if a location list of the segment index is empty; and determining that the requested segment is stored at one of the plurality of end nodes if the location list is not empty; in response to determining that the requested segment is stored at one of the plurality of end nodes, streaming the requested segment of the media object from an end node of the plurality of end nodes at which the requested segment of the media object is stored; if the segment index does not exist at the target end node, determining that the requested segment is not stored at any of the plurality of end nodes; and in response to determining that the requested segment is not stored at any of the plurality of end nodes; retrieving the media object from a remote media server based on a uniform resource locator of the media object via the core node, determining, at the core node, a plurality of segments of the media object, wherein the plurality of segments includes the requested segment, storing the segment index at the core node, streaming the media object from the core node, and designating the core node as a streaming server for streaming all subsequent requests for the requested segment of the media object, wherein the remote media server is not in the peer-to-peer network and the core node is a dedicated proxy in the peer-to-peer network between the plurality of end nodes and the remote media server. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A streaming system, comprising:
-
a plurality of nodes in a peer-to-peer network, the plurality of nodes comprising; a plurality of end nodes, each comprising; a memory comprising; segments of media objects and segment indices for locating segments of the media objects; a subset of a distributed hash table for storing the segment indices having location information of the segments of media objects wherein each segment index comprises a location list which lists each end node or a core node at which a corresponding segment of the media objects is stored, wherein the location list comprises an internet protocol address and a port number for each end node or core node at which the corresponding segment of the media objects is stored; and segment indices of the segments having segment identifiers; wherein each end node is assigned a key space zone and stores the segment indices of the segments having segment identifiers corresponding to the key space zone; means for streaming requested segments of the media objects to a client; means for searching the memory for a segment index corresponding to the requested segments of the media objects; means for selecting an end node or the core node listed in the location list of corresponding segments to be used to stream the requested segments; and means for routing a location of the end node or the core node to the client; and a core node that is a dedicated proxy between the plurality of end nodes and a remote media server that is not in the peer-to-peer network, the core node comprising; means for fetching the media objects from the remote media server based on a uniform resource locator of the media objects and storing the segment indices for locating the requested segments of the media objects when the requested segments are not stored at any of the plurality of end nodes, means for indicating that the core node is a streaming server for streaming all subsequent requests for the requested segments of the media objects, and means for streaming the media objects. - View Dependent Claims (14)
-
Specification