Patent ID: 7593333

Claim:
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: θ = { B s if ⁢ ⁢ … ⁢ ⁢ B s ≤ B s ⁢ ⁢ 1 + B s ⁢ ⁢ 2 , ( B s ⁢ ⁢ 1 + B s ⁢ ⁢ 2 ) + B s - ( B s ⁢ ⁢ 1 + B s ⁢ ⁢ 2 ) N 1 if ⁢ ⁢ … ⁢ ⁢ B s ≥ B s ⁢ ⁢ 1 + B s ⁢ ⁢ 2 , ⁢ ⁢ with ⁢ ⁢ B s ⁢ ⁢ 1 = N 1 N 1 - 1 ⁢ ⁢ B 1 ⁢ ⁢ and ⁢ ⁢ B s ⁢ ⁢ 2 = N 2 N 1 ⁢ ⁢ B 2 , where B S is a bandwidth of the source node, N 1 is a number of content-requesting peer nodes, B 1 is an average bandwidth of the N 1 content-requesting peer nodes, N 2 is a number of non-content requesting peer nodes, B 2 is an average bandwidth of the N 2 non-content requesting peer nodes, B s1 is an equivalent source node bandwidth when each of the content requesting peer nodes are forwarding data, and B s2 is an equivalent source node bandwidth when each of the non-content requesting peer nodes are forwarding data.