| US 7,457,257 B2 | ||
| Apparatus, system, and method for reliable, fast, and scalable multicast message delivery in service overlay networks | ||
| Chunqiang Tang, Ossining, N.Y. (US); Rong Nickle Chang, Pleasantville, N.Y. (US); and Christopher Ward, Glen Ridge, N.J. (US) | ||
| Assigned to International Business Machines Corporation, Armonk, N.Y. (US) | ||
| Filed on Nov. 17, 2005, as Appl. No. 11/281,792. | ||
| Prior Publication US 2007/0110063 A1, May 17, 2007 | ||
| Int. Cl. H04L 12/28 (2006.01) | ||
| U.S. Cl. 370—256 [370/390; 370/408; 370/432; 709/220; 709/238; 709/252] | 4 Claims |

| 1. 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.
|