Patent ID: 7457257

Claim:
A method for nodes in a network, comprising a plurality of computer nodes connected through a plurality of network devices, to create a logical network overlay of said network comprising the steps of: each of said nodes creating an overlay section by the steps of: selecting a first set of nodes as nearby neighbor nodes; selecting a second set of nodes at random as random neighbors; sending a first plurality of messages, one message to each node of said first and said second set of nodes requesting establishment of a link to each of said nodes; receiving a second plurality of messages from each of said nodes; comprising link acceptances or link rejections; and establishing links with nodes sending link acceptance messages; wherein, each node has a predetermined threshold number for nearby neighbors and a predetermined threshold number for random neighbors and whereby link acceptance is based on at least one of said threshold numbers and performance metrics; and constructing a multicast tree for multicasting message in said overlay, wherein said constructing a multicast tree comprises applying a distance vector multicast routing (DVMRP) protocol to said overlay; one node of said overlay periodically sending at least one root message along said tree, thereby notifying nodes of said network of a tree structure; and each node identifying a plurality of neighbor nodes comprising at least one tree neighbor logically connected to said each node by a tree link and at least one overlay neighbor logically connected to said node by an overlay link that is not a tree link; upon detection of a message at said each node, said each node determining if a particular message was sent from one of said at least one of said tree neighbors; if said particular message was sent from one of said at least one of said tree neighbors, omitting the message ID for said particular message from a gossip to be sent to said one of said at least one tree neighbors; if said particular message was not sent from one of said at least one tree neighbors, multicasting each said message to the at least one tree neighbor and saving a message ID for each said multicast message; and said each node periodically sending a gossip comprising the message ID for each said multicast message to said at least one overlay neighbor wherein said each node selects a different overlay neighbor to be said at least one overlay neighbor to receive each successive gossip in a round robin manner.