System and method for receiver-driven streaming in a peer-to-peer network
First Claim
1. A computer-readable medium having computer executable instructions for providing client-driven streaming of multimedia data packets in a peer-to-peer (P2P) network, said computer executable instructions comprising:
- maintaining a plurality of client request queues on a client computer, each client request queue corresponding to one of a plurality of serving peers in a cluster of serving peers;
sending a client request of one or more data packets from the client computer to one or more of the serving peers;
wherein the client data packet requests to any serving peer are provided via a reliable and order preserving link to the serving peer, such that the serving peers do not need to identify the data packets sent in reply to the client requests;
adding each data packet request to the corresponding request queue when it is sent from the client to one of the serving peers,removing each packet request from the corresponding request queue when the corresponding data packet is received by the client from the serving peer;
providing each received data packet to a common staging queue maintained by the client; and
assembling the data packets in the common staging queue into corresponding multimedia data packets.
6 Assignments
0 Petitions
Accused Products
Abstract
A “PeerStreamer” provides receiver-driven peer-to-peer (P2P) media streaming for loosely coupled P2P networks. Peers in the network perform only simple operations, may cache all or part of the streaming media, do not collaborate with other peers, may be unreliable, and may drop offline or come online during any given streaming session. Clients in the network operate in real-time to coordinate peers, stream media from multiple peers, perform load balancing, handle online/offline states of peers, and perform decoding and rendering the streaming media. In one embodiment, the PeerStreamer uses high rate erasure resilient coding to allow multiple serving peers to hold partial media without conflict, such that clients simply retrieve fixed numbers of erasure coded blocks regardless of where and what specific blocks are retrieved. In another embodiment, the PeerStreamer uses embedded coded media to vary streaming bitrates according to available serving bandwidths and client queue status.
-
Citations
10 Claims
-
1. A computer-readable medium having computer executable instructions for providing client-driven streaming of multimedia data packets in a peer-to-peer (P2P) network, said computer executable instructions comprising:
-
maintaining a plurality of client request queues on a client computer, each client request queue corresponding to one of a plurality of serving peers in a cluster of serving peers; sending a client request of one or more data packets from the client computer to one or more of the serving peers; wherein the client data packet requests to any serving peer are provided via a reliable and order preserving link to the serving peer, such that the serving peers do not need to identify the data packets sent in reply to the client requests; adding each data packet request to the corresponding request queue when it is sent from the client to one of the serving peers, removing each packet request from the corresponding request queue when the corresponding data packet is received by the client from the serving peer; providing each received data packet to a common staging queue maintained by the client; and assembling the data packets in the common staging queue into corresponding multimedia data packets. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
Specification