Efficient one-to-many content distribution in a peer-to-peer computer network
First Claim
1. A method for distributing content to a plurality of nodes on a computer network, comprising:
- dividing the content into a plurality of blocks;
assigning each block of the plurality of blocks to a single node of the plurality of nodes for redelivery only by the single assigned node in proportion to a capacity of the node such that a node having a larger capacity is assigned more blocks and a node having a smaller capacity is assigned fewer blocks;
sending each of the plurality of blocks from a source node to an assigned node of the source node for redelivery, if the assigned node is not the source node;
redelivering the block by the assigned node to remaining content requesting nodes; and
adjusting a content sending rate, θ
, in a dynamic manner based on a maximum throughput under prevailing conditions by using the equation;
where BS is a bandwidth of the source node, N1 is a number of content-requesting peer nodes, B1 is an average bandwidth of the N1 content-requesting peer nodes, N2 is a number of non-content requesting peer nodes, B2 is an average bandwidth of the N2 non-content requesting peer nodes, Bs1 is an equivalent source node bandwidth when each of the content requesting peer nodes are forwarding data, and Bs2 is an equivalent source node bandwidth when each of the non-content requesting peer nodes are forwarding data.
2 Assignments
0 Petitions
Accused Products
Abstract
A content distribution method and system for distributing content over a peer-to-peer network such that the full potential throughput of the network is achieved. The content distribution method divides the content to be distributed into many small blocks. Each of the content blocks then is assigned to a node, which can be a content-requesting node, a non-content-requesting node or a source node. Content is assigned based on a capacity of the node, where nodes having a larger capacity are assigned a greater number of content blocks and nodes having a smaller capacity are assigned a fewer content blocks. The capacity generally is defined as the upload bandwidth of the node. Redistribution queues are employed to control the throughput of the distribution. This bandwidth control strategy ensures that upload bandwidths of the peer and source nodes are fully utilized even with network anomalies such as packet losses and delivery jitters.
117 Citations
40 Claims
-
1. A method for distributing content to a plurality of nodes on a computer network, comprising:
-
dividing the content into a plurality of blocks; assigning each block of the plurality of blocks to a single node of the plurality of nodes for redelivery only by the single assigned node in proportion to a capacity of the node such that a node having a larger capacity is assigned more blocks and a node having a smaller capacity is assigned fewer blocks; sending each of the plurality of blocks from a source node to an assigned node of the source node for redelivery, if the assigned node is not the source node; redelivering the block by the assigned node to remaining content requesting nodes; and adjusting a content sending rate, θ
, in a dynamic manner based on a maximum throughput under prevailing conditions by using the equation;where BS is a bandwidth of the source node, N1 is a number of content-requesting peer nodes, B1 is an average bandwidth of the N1 content-requesting peer nodes, N2 is a number of non-content requesting peer nodes, B2 is an average bandwidth of the N2 non-content requesting peer nodes, Bs1 is an equivalent source node bandwidth when each of the content requesting peer nodes are forwarding data, and Bs2 is an equivalent source node bandwidth when each of the non-content requesting peer nodes are forwarding data. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. A computer-implemented method for delivering content from a source node to a plurality of content-requesting nodes on a computer network, comprising:
-
splitting the content to be delivered into a plurality of smaller content blocks; assigning each of the content blocks to a single node for redelivery only by the single assigned node in proportion to a capacity of the single assigned node such that a node having a larger capacity is assigned more blocks and a node having a smaller capacity is assigned fewer blocks; sending each of the content blocks from the source node to its assigned not, if the assigned node is not the source node; redistributing the content blocks from the assigned node to the remaining content requesting peer nodes; and adjusting a content sending rate, θ
, in a dynamic manner based on a maximum throughput under prevailing conditions by using the equation;where BS is a bandwidth of the source node, N1 is a number of content-requesting peer nodes, B1 is an average bandwidth of the N1 content-requesting peer nodes, N2 is a number of non-content requesting peer nodes, B2 is an average bandwidth of the N2 non-content requesting peer nodes, Bs1 is an equivalent source node bandwidth when each of the content requesting peer nodes are forwarding data, and Bs2 is an equivalent source node bandwidth when each of the non-content requesting peer nodes are forwarding data. - View Dependent Claims (20, 21, 22, 23, 24, 25, 26, 27)
-
-
28. A method for distributing content between nodes in a peer-to-peer computer network, comprising:
-
separating the content into a number of smaller content blocks; assigning each of the content blocks only to a single node for redelivery only by the single assigned node in proportion to a capacity of the single assigned node such that a node having a larger capacity is assigned more blocks and a node having a smaller capacity is assigned fewer blocks; employing redistribution queues between the nodes; reassigning the content blocks using the redistribution queues such that any changes in the upload bandwidth of the assigned node results in a change to the number of blocks assigned to that node for redistribution; and adjusting a content sending rate, θ
, in a dynamic manner based on a maximum throughput under prevailing conditions by using the equation;where BS is a bandwidth of the source node, N1 is a number of content-requesting peer nodes, B1 is an average bandwidth of the N1 content-requesting peer nodes, N2 is a number of non-content requesting peer nodes, B2 is an average bandwidth of the N2 non-content requesting peer nodes, Bs1 is an equivalent source node bandwidth when each of the content requesting peer nodes are forwarding data, and Bs2 is an equivalent source node bandwidth when each of the non-content requesting peer nodes are forwarding data. - View Dependent Claims (29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40)
-
Specification