Efficient transmission of data to multiple network nodes
First Claim
1. 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;
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;
selecting a subset of selected nodes from the set of recipient nodes corresponding to the maximum number of recipient nodes based on a scoring criteria associated with each recipient node;
assigning at least one unselected node from the set of recipient nodes to at least one selected node according to scoring criteria associated with the respective selected nodes; and
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.
2 Assignments
0 Petitions
Accused Products
Abstract
An improved method, system, and computer program product for efficient transmission of data to multiple network nodes is disclosed. A method for transmitting a data block over a network from a first sending node to a first set of recipient nodes, comprises, in the first sending node, a) 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, b) assigning at least one of the unselected nodes to at least one selected node according to scoring criteria associated with the respective selected nodes, c) transmitting to each selected node a packet including the data block and a list of the nodes assigned to the selected node.
-
Citations
19 Claims
-
1. 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; 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; selecting a subset of selected nodes from the set of recipient nodes corresponding to the maximum number of recipient nodes based on a scoring criteria associated with each recipient node; assigning at least one unselected node from the set of recipient nodes to at least one selected node according to scoring criteria associated with the respective selected nodes; and 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. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17)
-
-
18. 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; 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; selecting a subset of selected nodes from the set of recipient nodes corresponding to the maximum number of recipient nodes with highest effective bandwidth; assigning at least one unselected node from the set of recipient nodes to at least one selected node according to scoring criteria associated with the respective selected nodes; and 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.
-
-
19. 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; 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; selecting a subset of selected nodes from the set of recipient nodes corresponding to the maximum number of recipient nodes with highest effective bandwidths; computing for each selected node a fair share value determined by taking the ratio of an effective bandwidth for the respective selected node to a sum of effective bandwidths for all of the selected nodes; assigning at least one unselected node from the set of recipient nodes to at least one selected node according to the fair share value; and 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.
-
Specification