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
OG exemplary drawing
 
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.