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

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

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!