Patent ID: 8230098

Claim:
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.