Patent ID: 7206311

Claim:
A method for transmitting a data block over a network from a first sending node to a first set of recipient nodes, comprising the steps of: in the first sending node: dividing the first set of recipient nodes into a subset of selected nodes, selected according to scoring criteria associated with each recipient node, and a subset of unselected nodes; assigning at least one of the unselected nodes to at least one selected node according to scoring criteria associated with the respective selected nodes; transmitting to each selected node a packet comprising a payload including the data block and a first list of the nodes assigned to the at least one selected node, the list dynamically associating the at least one selected node with the unselected nodes for the transmission of the data block to the unselected nodes; in at least one selected node: receiving the packet comprising a payload including the data block and a list of assigned nodes; dividing the list of assigned nodes into a subset of selected assigned nodes, selected according to scoring criteria associated with each assigned node, and a subset of unselected assigned nodes; reassigning at least one of the unselected assigned nodes to at least one selected assigned node according to the scoring criteria associated with the respective selected assigned nodes; and transmitting to each selected assigned node a reassigned packet comprising a payload including the data block and a list of the nodes reassigned to the selected assigned node.