Patent ID: 8472338

Claim:
A method for transmitting a data block over a network from a sending node to a set of recipient nodes, comprising: determining the maximum number of recipient nodes to which the sending node can send simultaneous transmission streams based on the size of the data block; determining whether there are more recipient nodes in the set of recipient nodes than the maximum number of recipient nodes; if there are more recipient nodes than the maximum number of recipient nodes: dividing the set of recipient nodes into a subset of selected nodes and a subset of unselected nodes, wherein the number of selected nodes correspond to the maximum number of recipient nodes and wherein the selected nodes are selected according to scoring criteria associated with each recipient node; assigning at least one of the unselected nodes to at least one selected node according to scoring criteria associated with the respective selected nodes; approximately simultaneously transmitting to each selected node a packet including the data block and a list of the unselected nodes assigned to the selected node, the list dynamically associating the selected node with the unselected nodes for the transmission of the data block by each selected node to the unselected nodes.