SMART PRE-FETCHING FOR PEER ASSISTED ON-DEMAND MEDIA
First Claim
1. A method for streaming a media file in a peer-to peer (P2P) network, comprising each peer using a computing device to perform steps for:
- evaluating connected neighbor peers in the P2P network to determine an aggregate server rate to support real-time playback of a media file;
streaming packets comprising the media file from a combination of server uploads and peer re-transmission of received streaming packets from one or more of the peers to other later arriving peers using a first portion of an upload bandwidth capability of re-retransmitting peers, such that between the server uploads and the peer re-transmissions, all peers receive sufficient data packets of the media file to provide local full quality playback of the media file according to the aggregate server rate;
allocating any surplus upload bandwidth capacity remaining at each peer, after using the first portion of the upload bandwidth capacity, to one or more specific downstream peers, and using that allocated surplus upload bandwidth capacity to transmit additional packets in excess of those needed to provide local full quality playback of the media file to a local content buffer maintained by each of the corresponding peers; and
wherein streaming packets of the media file across the P2P network enables a user selected video-on-demand (VoD) service to provide real-time streaming of user selected videos.
2 Assignments
0 Petitions
Accused Products
Abstract
A “Media Sharer” operates within peer-to-peer (P2P) networks to provide a dynamic peer-driven system for streaming high quality multimedia content, such as a video-on-demand (VoD) service, to participating peers while minimizing server bandwidth requirements. In general, the Media Sharer provides a peer-assisted framework wherein participating peers assist the server in delivering on-demand media content to other peers. Participating peers cooperate to provide at least the same quality media delivery service as a pure server-client media distribution. However, given this peer cooperation, many more peers can be served with relatively little increase in server bandwidth requirements. Further, each peer limits its assistance to redistributing only portions of the media content that it also receiving. Peer upload bandwidth for redistribution is determined as a function of surplus peer upload capacity and content need of neighboring peers, with earlier arriving peers uploading content to later arriving peers.
-
Citations
20 Claims
-
1. A method for streaming a media file in a peer-to peer (P2P) network, comprising each peer using a computing device to perform steps for:
-
evaluating connected neighbor peers in the P2P network to determine an aggregate server rate to support real-time playback of a media file; streaming packets comprising the media file from a combination of server uploads and peer re-transmission of received streaming packets from one or more of the peers to other later arriving peers using a first portion of an upload bandwidth capability of re-retransmitting peers, such that between the server uploads and the peer re-transmissions, all peers receive sufficient data packets of the media file to provide local full quality playback of the media file according to the aggregate server rate; allocating any surplus upload bandwidth capacity remaining at each peer, after using the first portion of the upload bandwidth capacity, to one or more specific downstream peers, and using that allocated surplus upload bandwidth capacity to transmit additional packets in excess of those needed to provide local full quality playback of the media file to a local content buffer maintained by each of the corresponding peers; and wherein streaming packets of the media file across the P2P network enables a user selected video-on-demand (VoD) service to provide real-time streaming of user selected videos. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A computer-readable medium having computer executable instructions for providing peer-assisted streaming media in a peer-to-peer (P2P) network, said computer executable instructions comprising:
-
recording an arrival time of each of a plurality of peers as each peer requests a common media file from a group of one or more servers; periodically assigning each peer to one of a plurality of neighborhoods including one or more other peers; periodically directing one or more of the peers to allocate a first portion of their available upload bandwidth capability to one or more other later arriving peers in the allocating peers neighborhoods; streaming packets of the requested media file from the server to one or more of the peers and re-transmitting one or more of the streamed media packets from one or more of those peers to one or more of the later arriving peers in those peers neighborhoods according to the allocated first portion of available upload bandwidth capability of those peers in order to fully satisfy a real-time demand level to provide full quality streaming playback of the media file for all peers in the P2P network; periodically directing one or more of the peers to allocate a second portion from their remaining available upload bandwidth capability to one or more other later arriving peers in those peers neighborhoods; and transmitting additional data packets of the media file from one or more of the peers that allocated a second portion of their available upload bandwidth to one or more of the later arriving peers in those peers neighborhoods according to the allocated second portion of available upload bandwidth capability in order to fill the content buffers of peers receiving the additional data packets in excess of the data packets needed to provide full quality streaming playback of the media file. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A system for streaming media to peers in a peer-to-peer (P2P) network, comprising using a plurality of computing devices for:
-
connecting each of a plurality of peers to a P2P network, which includes one or more servers, and allowing each peer to request a specific media file from the one or more servers; evaluating all peers to determine an aggregate server rate to support real-time playback of a media file for all peers and an upload bandwidth capacity of each peer; streaming packets comprising the media file from a combination of server uploads and peer re-transmission of received streaming packets from one or more of the peers to other later arriving peers using a first portion of the upload bandwidth capacity of the re-retransmitting peers, such that between the server uploads and the peer re-transmissions, all peers receive sufficient data packets of the media file to provide local full quality playback of the media file according to the aggregate server rate; periodically evaluating all peers and directing each peer to allocate any remaining available upload bandwidth capacity to the next later arriving peer; and using that allocated remaining available upload bandwidth capacity to transmit additional packets in excess of those needed to provide local full quality playback of the media file to a local content buffer maintained by each of the corresponding peers. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification