- Invitation step:
- A node X
that is
not the
last node
will
send the following
control frame to
invite non-members to
join:
X.Solicit_successor1( X.succ )
will invite nodes in range (X .. X.succ) to join
|
- The
last
node L
will
send the following
control frame to
invite non-members to
join:
L.Solicit_successor2( L.succ )
will invite nodes in ranges (∞ .. L.succ)
and (L .. 0) to join
|
|
Example:
- Node insertion step
(or node joining step):
- The joining node will:
-
Update
its Predecessor
variable to
the inviter's successor
(= X.succ)
- Send the
Set_successor(
own_ID )
message to
the inviter node
|
- When the invitor node
receives the
Set_successor(joining_ID)
message, the
invitor node will:
-
Update
its Successor
variable to
the joining node ID
- Send the
Set_successor(invitorSucc)
to
its new successor
|
|
Example:
Suppose
node 2
joins
(i.e.:
node 2 is the
joining node)
- Node 2
updates
its variable
predecessor = 4:
- Node 2 then
sends
the message
Set_successor( 2 )
to node 4:
- Node 4 will
update its
Successor = 2:
- Node 4
will send the
"4.Set_successor(1)"
message its
new successor (node 2):
Note:
|
- Completion step:
- When the joining node receives
the Set_succesor( ) frame:
- The joining node set
its succesor
= invitor node ID
- Then joining node
sends a
token to its
new successor node
- When its new successor node
receives the
token,
it will
update its
successor
- The logical ring is
then complete !!!
|
|
|
Example: continued with the above...
|