Peer-to-peer streaming of non-live content
First Claim
1. A method for viewing streamed content over a network, the method comprising:
- receiving, by a receiving peer via a first connection, a first portion of a content stream from a transmitting peer in a peer-to-peer network, the first portion including less than the entire content stream, a first priority level assigned to the first connection based on the first connection being a peer-to-peer type connection;
playing, by the receiving peer, the received first portion of the content stream;
computing, by the receiving peer, a bid representing a maximum number of bits to be received by the receiving peer from a server included in the network;
submitting, by the receiving peer, the bid to the server;
responsive to the bid, obtaining, by the receiving peer via a second connection, a second portion of the content stream from the server, a second priority level assigned to the second connection based on the second connection being a server-to-peer type connection;
granting, by the receiving peer, the second connection assigned the second priority level a higher priority to bandwidth access than is granted to the first connection assigned the first priority level; and
playing, by the receiving peer, the obtained second portion of the content stream.
2 Assignments
0 Petitions
Accused Products
Abstract
A Peer-to-Peer protocol such as BitTorrent is used to assist streaming. Peers download streaming content from the P2P network while simultaneously playing the downloaded content. As the stream plays, an end system downloads any missing pieces directly from a server or other infrastructure node. This method roughly squares server capacity and can be refined to require on average 0(1) servers regardless of the number of concurrent users. Thus BitTorrent assisted streaming scales better than traditional server-client and other infrastructure-only solutions, each of which requires a number of infrastructure nodes that scale linearly as a function of the number of users. Unlike End-System-Multicast, BitTorrent assisted streaming does not subject users to the vagaries of intermediate unreliable, potentially bandwidth-constrained end-systems; the departure of any single end-system has minimal impact on overall performance; and BitTorrent has a well-crafted incentive mechanism for encouraging users to contribute their upstream capacity.
-
Citations
35 Claims
-
1. A method for viewing streamed content over a network, the method comprising:
-
receiving, by a receiving peer via a first connection, a first portion of a content stream from a transmitting peer in a peer-to-peer network, the first portion including less than the entire content stream, a first priority level assigned to the first connection based on the first connection being a peer-to-peer type connection; playing, by the receiving peer, the received first portion of the content stream; computing, by the receiving peer, a bid representing a maximum number of bits to be received by the receiving peer from a server included in the network; submitting, by the receiving peer, the bid to the server; responsive to the bid, obtaining, by the receiving peer via a second connection, a second portion of the content stream from the server, a second priority level assigned to the second connection based on the second connection being a server-to-peer type connection; granting, by the receiving peer, the second connection assigned the second priority level a higher priority to bandwidth access than is granted to the first connection assigned the first priority level; and playing, by the receiving peer, the obtained second portion of the content stream. - View Dependent Claims (3, 4, 5, 6, 7, 8, 9)
-
-
2. The method of claim h wherein the second portion of the content stream is obtained from the server responsive to a determination while the first portion is being received that the first portion will not include the second portion.
-
10. A method for receiving streamed content over a network, the stream including a plurality of ordered pieces, the method comprising:
-
obtaining, by a receiving peer, a first set of pieces of the stream from at least one transmitting peer in a peer-to-peer network via at least a first connection, a first priority level assigned to the first connection based on the first connection being a peer-to-peer type connection; playing, by the receiving peer, at least a portion of the first set of pieces; determining, by the receiving peer, that at least one ordered piece of the plurality of ordered pieces of the stream is not included in the first set of pieces; determining, by the receiving peer, that the at least one ordered piece of the plurality of ordered pieces will not be received from the peer-to-peer network prior to the local playback reaching the at least one ordered piece; computing, by the receiving peer, a bid representing a maximum number of bits to be received by the receiving peer from a server included in the network; submitting, by the receiving peer, the bid to the server; and responsive to the bid, obtaining, by the receiving peer, the at least one ordered piece from the server via a second connection, a second priority level assigned to the second connection based on the second connection being a server-to-peer type connection; and wherein the second connection assigned the second priority level is granted a higher priority to bandwidth access than is granted to the first connection assigned the first priority level. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. A computer program product for viewing streamed content over a network, the computer program product stored on a non-transitory computer-readable medium and including program code for causing a processor to execute steps comprising:
-
receiving, by a receiving peer via a first connection, a first portion of a content stream from a transmitting peer in a peer-to-peer network, the first portion including less than the entire content stream, a first priority level assigned to the first connection based on the first connection being a peer-to-peer type connection; playing, by the receiving peer, the received first portion of the content stream; computing, by the receiving peer, a bid representing a maximum number of bits to be received by the receiving peer from a server included in the network; submitting, by the receiving peer, the bid to the server; responsive to the bid, obtaining, by the receiving peer via a second connection, a second portion of the content stream from the server, a second priority level assigned to the second connection based on the second connection being a server-to-peer type connection; granting, by the receiving peer, the second connection assigned the second priority level a higher priority to bandwidth access than is granted to the first connection assigned the first priority level; and playing, by the receiving peer, the obtained second portion of the content stream. - View Dependent Claims (20, 21, 22, 23, 24, 25, 26, 34)
-
-
27. A computer program product for receiving streamed content over a network, the stream including a plurality of ordered pieces, the computer program product stored on a non-transitory computer-readable medium and including program code for causing a processor to execute the steps of:
-
obtaining, by a receiving peer, a first set of pieces of the stream from at least one transmitting peer in a peer-to-peer network via at least a first connection, a first priority level assigned to the first connection based on the first connection being a peer-to-peer type connection; playing, by the receiving peer, at least a portion of the first set of pieces; determining, by the receiving peer, that at least one ordered piece of the plurality of ordered pieces of the stream is not included in the first set of pieces; determining, by the receiving peer, that the at least one ordered piece of the plurality of ordered pieces will not be received from the peer-to-peer network prior to the local playback reaching the at least one ordered piece; computing, by the receiving peer, a bid representing a maximum number of bits to be received by the receiving peer from a server included in the network; submitting, by the receiving peer, the bid to the server; and responsive to the bid, obtaining, by the receiving peer, the at least one ordered piece from the server via a second connection, a second priority level assigned to the second connection based on the second connection being a server-to-peer type connection; and wherein the second connection assigned the second priority level is granted a higher priority to bandwidth access than is granted to the first connection assigned the first priority level. - View Dependent Claims (28, 29, 30, 31, 32, 33, 35)
-
Specification