13.07.2015 Views

Page 2 Lecture Notes in Computer Science 2865 Edited by G. Goos ...

Page 2 Lecture Notes in Computer Science 2865 Edited by G. Goos ...

Page 2 Lecture Notes in Computer Science 2865 Edited by G. Goos ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

74 R. Shah and N.C. Hutch<strong>in</strong>son3.1 The Source NodeWhen a node X is unable to f<strong>in</strong>d a route to node Y or has lost the route tonode Y, it buffers the message M meant for Y and requests the neighbour list ofall of its neighbours. After the neighbour list is received from all its neighbours,node X selects the neighbour<strong>in</strong>g node Z that has most neighbours that are notneighbours of X and adds it to its picked set. It then elim<strong>in</strong>ates all of thoseneighbour<strong>in</strong>g nodes that are also the neighbours of Z <strong>by</strong> putt<strong>in</strong>g them <strong>in</strong> theelim<strong>in</strong>ated set. Node X repeats the same selection and elim<strong>in</strong>ation process withthe neighbour<strong>in</strong>g nodes set after remov<strong>in</strong>g node Z and those nodes that werejust added to the elim<strong>in</strong>ated set. The process ends when all the neighbour<strong>in</strong>gnodes of X are either <strong>in</strong> the picked or <strong>in</strong> the elim<strong>in</strong>ated set. The algorithm canbe described <strong>in</strong> set notation as follows:neigh(X) = neighbour list of node Npicked(X) = emptyelim<strong>in</strong>ated(X) = emptywhile(neigh(X) is not empty)Select a node Z : Z ∈ neigh(X)and ∀ M ( M ∈ neigh(X) and M ≠ Z|neighbour list of node Z - neighbour list of X| ≥|neighbour list of node M - neighbour list of X| )picked(X) = picked(X) ⋃ {Z}elim<strong>in</strong>ated(X) = elim<strong>in</strong>ated(X) ⋃{M : M ∈ neigh(X) and M ∈ neighbour list of node Z}neigh(X) = neigh(X) - picked(X) - elim<strong>in</strong>ated(X)endwhileAfter this process completes, the nodes <strong>in</strong> the picked set are sent the messageM and the elim<strong>in</strong>ated set <strong>in</strong> a HOLD control message. Each application message,M is uniquely identified <strong>by</strong> the tuple:A HOLD message sent <strong>by</strong> node X consists of the follow<strong>in</strong>g fields:The message-type field <strong>in</strong>dicates that its a HOLD message. The nodes <strong>in</strong>the elim<strong>in</strong>ated set are sent a NACK for message M which they buffer <strong>in</strong> theirNAKMSG queue. Node X and the nodes <strong>in</strong> the picked set buffer message M <strong>in</strong>their HOLDMSG queue.3.2 Other Selected NodesWhen a node R receives a HOLD control message from another node S, it startsa similar selection process to select other nodes to hold the application messageM. Like the orig<strong>in</strong>al source node, node R requests the neighbour list from all of

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!