23.03.2017 Views

wilamowski-b-m-irwin-j-d-industrial-communication-systems-2011

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

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

4-10 Industrial Communication Systems<br />

A<br />

B<br />

[S, E, F, J, D] [E, F, J, D]<br />

S<br />

E<br />

[F, J, D], [F, E, S]<br />

F<br />

C<br />

[C, S]<br />

G<br />

H<br />

[G, C, S]<br />

K<br />

I<br />

[J, F, E, S]<br />

J<br />

D<br />

M<br />

Y<br />

N<br />

Z<br />

L<br />

FIGURE 4.4<br />

Example of the route cache in the DSR protocol.<br />

4.5.4 ad Hoc On-Demand Distance Vector Routing Protocol<br />

The AODV protocol is built on the destination-sequenced distance-vector (DSDV) protocol. The<br />

improvement here is to minimize the number of transmissions required to create routes, because<br />

as they are on demand, the nodes that are not placed in the chosen path do not have to maintain<br />

the route or participate in table interchanges. Several studies on this protocol have been carried out<br />

[PR99,RP99,RP00], and it has been modified [SWL03] several times. Currently, it is a protocol in<br />

experimental state [PBD03].<br />

When a node wants to transmit to a destination and it does not have a valid route, it must start the<br />

path discovery process. To do this, in the first place, it broadcasts a RREQ message to its neighbors,<br />

which in turn sends it to their own neighbors and so on, until it gets to the destination or to an intermediate<br />

node that has a route to the destination. Like DSDV, it uses sequence numbers to identify the most<br />

recent routes and delete loops. Each node maintains two counters: the node’s sequence number (to avoid<br />

loops) and Broadcast_ID that is increased when a transmission is initiated in the node.<br />

To identify a single RREQ, it uses the Broadcast_ID and the IP address of the source node. The<br />

RREQ contains the following fields: source_addr, number_sequence_#, broadcast_id, dest_addr, dest_<br />

sequence_#, and hop_cnt. Intermediate nodes only reply to RREQ messages if they have a route to the<br />

destination with a sequence number greater or equal to the one stored in the RREQ, in other words, only<br />

if they have equal routes (in age) or more recent. While the RREQ is sent, intermediate nodes increase<br />

the “hop_cnt” field, and they also register in their routing table the address of the neighbor from which<br />

they first received the message, to establish the Reverse Path, where RREQs are still sent, and at the same<br />

time, the Reverse Path is being established. The copies of the same RREQ received after that coming<br />

from other neighbors are dismissed.<br />

Once the “destination node/intermediate node with recent route” has been found, it replies with a unicast<br />

packet known as RREP to the neighbor from which it received the first RREQ. The RREP uses the<br />

links that had been established before as reverse path. The RREP contains the following fields: source_addr,<br />

dest_addr, dest_sequence_#, hop_cnt, and lifetime or expiration time for the Reverse Path. The RREP uses<br />

the reverse path established to the source node. In its route, all the nodes the RREP passes through write<br />

the Reverse Path as the most recent route to the destination node. From that we can conclude that the<br />

AODV holds only bidirectional links. In Figure 4.5, the AODV route discovery procedure is shown.<br />

If a source node moves, it is able to restart the discovery protocol to find a new route to the destination.<br />

If an intermediate node moves, its previous neighbor (in the source-destination direction) broadcasts<br />

(until the source node is reached) a not-requested RREP with a “recent” sequence number (in other words,<br />

greater than the sequence number known) and with a number of hops to the destination equal to infinite.<br />

That way, the source node restarts the route discovery process in the case that it still needs the route.<br />

When the link breakage happens, the node must invalidate the existing route in the routing table<br />

entry. The node must list the affected destinations and determine which neighbors can be affected by<br />

© <strong>2011</strong> by Taylor and Francis Group, LLC

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

Saved successfully!

Ooh no, something went wrong!