23.03.2017 Views

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

Create successful ePaper yourself

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

Routing in Wireless Networks 4-9<br />

in highly mobile networks. TBRPF performs neighbor discovery using “differential” HELLO messages<br />

that report only changes in the status of neighbors. This results in HELLO messages that are much<br />

smaller than those of other link-state routing protocols.<br />

4.5.3 Dynamic Source Routing Protocol<br />

This protocol was created in 1996 [JM96,JM01], and like other protocols, it has been widely studied and<br />

also modified [DRL03]. Currently, its state is experimental [JHM07], like that of OLSR. DSR is a reactive<br />

routing protocol. An important characteristic to consider is that this protocol requires that each message<br />

sent contains the complete address from the source node to the destination node (source based).<br />

When a node needs to know the path to the destination, it sends a Route Request (RREQ) message and<br />

the route discovery procedure is initiated. Each node adds its own identifier when the RREQ is resent,<br />

and in this way, the route record is created.<br />

To detect RREQ duplicates, each node in the network maintains a list with the pair [source address,<br />

request_id]. When a node receives a RREQ message, it follows the following steps: (1) If the pair<br />

[source address, request_id] for this route discovery are in the recent search list of this node, it dismisses<br />

it and does not process the RREQ message. (2) If the address of this node is in the route record<br />

of the RREQ message, it dismisses it and does not process it. (3) If the search objective is the node<br />

address, the route record already contains the route from source to destination and the route reply<br />

(RREP) message is sent. (4) Otherwise, this node adds its own address in the route record of the RREQ<br />

message and resends the search.<br />

If the node that receives the RREQ is the destination or it contains information about the destination,<br />

it replies with a RREP message. The RREP message is sent through the same path that has been<br />

discovered, and this same message holds the route from the source node to the destination. If the<br />

link is not bidirectional, a new route discovery is carried out to send the RREP message. When the<br />

source node receives the RREP, it stores the route from source to destination included in the RREP<br />

in the route cache. While RREQ and RREP messages pass through intermediate nodes, they store the<br />

information in their route cache. While waiting for the route discovery to finish, the node can continue<br />

sending and receiving messages to/from other nodes. When the source node receives the RREP<br />

message, it can send data packets to the destination node, and the header of those packets includes the<br />

route they have to follow. This way, intermediate nodes use the route included in the packet to decide<br />

which node they have to send the packet to. When the packet reaches its destination, it is delivered to<br />

the network layer.<br />

Each node has a route cache where the path to a destination node is stored. Each entry in the route cache<br />

has an associated lifetime after which the entry is deleted from the cache. The use of this route cache in<br />

each node offers two advantages: Firstly, more speed in the route discovery—if a node that receives a RREQ<br />

for a path to destination that is already known (because it already has it in its cache), it can reply with a<br />

RREP, using the local routing cache. Secondly, the transmission of RREQ is reduced, because if the path to<br />

the destination is already known because a node has it stored in its route cache, there is no need to continue<br />

transmitting RREQ messages. If a route breaks, the source node can consider another route that it has in<br />

its cache for the same address. If it does not have a route stored, it starts route discovery again. Figure 4.4<br />

shows an example of the route cache stored in the nodes. However, using the route cache can cause two<br />

problems. When two nodes receive a RREQ at the same time and both of them reply based on the routes<br />

stored in their caches, sending their responses at the same time, this can cause message collisions and<br />

network congestion. However, simultaneous replies can be avoided by adding a delay before replying with<br />

the information in the cache. The second problem is that formation of a loop may occur in a route sent in<br />

a RREP message. Therefore, to solve this problem, if a node receives a RREQ and is not the objective of the<br />

search but can reply with information in its cache, the node dismisses the reply if the route contains a loop.<br />

The node will reply only with its cache with a route in which it appears at the end of the route stored in the<br />

RREQ message and at the beginning of the path obtained in the route cache.<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!