Reactive Routing Protocol for Mobile Ad

Reactive Routing Protocol
for
Mobile Ad-Hoc Networks
A Thesis Submitted in Partial Fulfillment of the Requirements for the
Degree of
Master of Technology
in
Computer Applications
By
Arun Mukhija
Under Guidance of
Dr. Ranjan Bose
(Department of Electrical Engineering)
Department of Mathematics
Indian Institute of Technology, Delhi
December 2001
CERTIFICATE
This is to certify that the dissertation entitled “Reactive Routing Protocol for Mobile
Ad-Hoc Networks” submitted by Arun Mukhija in partial fulfillment for the award of
the degree of Master of Technology in Computer Applications to Indian Institute of
Technology Delhi, is a bona fide record of work carried out by him under my
supervision and guidance. This work has not been submitted elsewhere for the award
of any degree or diploma.
Dr. Ranjan Bose
Department of Electrical Engineering
Indian Institute of Technology Delhi
Reactive Routing Protocol for Mobile Ad-Hoc Networks
1
Acknowledgement
I have great pleasure in expressing my heartiest gratitude to my project guide Dr.
Ranjan Bose for his able guidance, valuable suggestions, constructive criticism and for
providing a clear direction to the project from time to time. His continuous
encouragement and guidance has been a constant source of inspiration throughout this
project.
Thanks are also due to the faculty members of Department of Mathematics and our
program coordinator Dr. S. K. Gupta for their support and encouragement.
Arun Mukhija
Department of Mathematics
Indian Institute of Technology Delhi
Reactive Routing Protocol for Mobile Ad-Hoc Networks
2
Abstract
Reactive Routing Protocol is a bandwidth efficient on-demand routing protocol for
Mobile Ad-Hoc Networks. The protocol comprises of two main functions of Route
Discovery and Route Maintenance. Route Discovery function is responsible for the
discovery of new route, when one is needed and Route Maintenance function is
responsible for the detection of link breaks and repair of an existing route. The
protocol achieves its bandwidth efficiency by using Incremental Search Method for
Route Discovery and Surroundings Repair Method for Route Maintenance.
Incremental Search Method limits the number of routing messages such that the
number of links traversed during Route Discovery are minimized and hence
bandwidth is efficiently utilized. And by using Surroundings Repair Method a node
attempts to repair its surroundings in the event of a link failure, in order to find an
alternate route skipping this broken link and thus it attempts to minimize the routing
overhead. Simulation results illustrate the performance and demonstrate efficient
utilization of bandwidth by Reactive Routing Protocol.
Reactive Routing Protocol for Mobile Ad-Hoc Networks
3
Contents
1.
2.
3.
Introduction
5
1.1.
Mobile Ad-Hoc Networks (MANETs)
5
1.2.
Routing in MANETs
5
1.3.
Other Routing Protocols Suggested for MANETs
6
1.4.
Layout of the Thesis
8
Overview of Reactive Routing Protocol
9
2.1.
Route Discovery
9
2.2.
Route Maintenance
15
Detailed Operation of Reactive Routing Protocol
18
3.1.
Packet Formats of Routing Packets
19
3.2.
Data Structures Maintained by Each Mobile Node
23
3.3.
Event – Action Plans
27
4.
Performance Evaluation
50
5.
Further Optimizations
57
6.
Future Work
59
7.
Conclusion
60
References
61
Appendix
64
A.1. Terminology Used
64
A.2.
65
List of Acronyms
Reactive Routing Protocol for Mobile Ad-Hoc Networks
4
Chapter - 1
Introduction
_____________________________________________________________________
1.1. Mobile Ad-Hoc Networks (MANETs)
A Mobile Ad-Hoc Network (MANET) is an infrastructureless collection of mobile
nodes that can arbitrarily change their geographic locations such that these networks
have dynamic topologies which are composed of bandwidth constrained wireless
links.
MANET nodes are equipped with wireless transmitters and receivers. At a given time
depending on the nodes positions and their transmitter and receiver coverage patterns
and transmission power levels, a wireless connectivity in the form of a random,
multi hop graph or ad-hoc network exists between the nodes. This ad-hoc topology
may change with time as the nodes move or change their transmission and reception
parameters [1].
The current applications of MANETs are in defense operations, emergency searchand-rescue operations, meetings and conventions and other scenarios where quick
sharing of information is desired without any fixed infrastructure available [2]. But in
future there could be many more commercial applications of these networks.
1.2. Routing in MANETs
To enable communication within a MANET, a routing protocol is required to establish
routes between participating nodes. Because of limited transmission range, multiple
Reactive Routing Protocol for Mobile Ad-Hoc Networks
5
network hops may be needed to enable data communication between two nodes in the
network. Since MANET is an infrastructureless network, each mobile node operates
not only as a host but also as a router, forwarding packets for other mobile nodes in
the network [1, 3].
There are frequent unpredictable topological changes in these networks, which makes
the task of finding and maintaining routes as difficult. Conventional routing protocols
based on distance vector or link state algorithms can not be applied here, since the
amount of routing related traffic would waste a large portion of the wireless
bandwidth, and such discovered routes would soon become obsolete due to mobility of
nodes [3, 4, 5].
In MANETs mobile nodes share the same frequency channel thereby limiting the
network capacity. Thus one of the highly desirable properties of a routing protocol for
MANETs is that it should be bandwidth efficient.
1.3. Other Routing Protocols Suggested for MANETs
Several routing protocols have been proposed for MANETs, which differ in the
approach used for discovering a new route and maintaining a known route when nodes
move. These protocols can be broadly classified as
(a) proactive routing protocols such as DSDV [6], FSR [7], WRP [8, 9], CGSR [10],
GSR [11] etc.
(b) on-demand routing protocols such as DSR [12, 13, 14], AODV [15, 16], TORA
[17, 18], ABR [19] etc.
In the proactive routing protocols nodes continuously search for routing information
within the network, so that when a route is needed it is already available. While in the
on-demand routing protocols a route is searched when it is needed.
Reactive Routing Protocol for Mobile Ad-Hoc Networks
6
In the proactive routing protocols as compared to the on-demand routing protocols, a
constant propagation of routing information is involved, which incurs substantial
routing related traffic. Moreover such protocols require each mobile node to maintain
routes to each possible target in the MANET, which most likely exceeds the
requirements of any node and thus the routing overhead expended in establishing such
unrequired routes is wasted. Since bandwidth is a scarce resource in MANETs, these
limitations imposed by proactive routing protocols make them less attractive as
compared to on-demand routing protocols in a bandwidth constrained MANET
environment. ZRP [20] presents a hybrid behavior of proactive and reactive routing
schemes which has advantages and disadvantages of both the schemes, depending on
the value chosen for zone radius parameter used to limit the scope of proactive
scheme.
The on-demand routing protocols suggested for MANETs, such as Dynamic Source
Routing (DSR) Protocol [12, 13], Ad-Hoc On-Demand Distance Vector (AODV)
Routing [15, 16], Temporally Ordered Routing Algorithm (TORA) [17, 18] and
Associativity Based Routing (ABR) [19] etc., basically make use of broadcast based
methods for route discovery. They differ in their routing packet formats, data
structures maintained by each node, various optimizations applied in route discovery
and in their approach for maintaining routes.
In a broadcast based method, when an originator node wants to send data packets to a
target node, and it does not have a valid route to this target node, it broadcasts a route
request packet to its neighbors. These neighbors forward the route request packet to
their neighbors and this process goes on until either the target node or an intermediate
node with a valid route to target node is located. Each node receiving a particular route
request packet broadcasts it only once to its neighbors, and it discards the subsequent
receptions of the same route request packet, to minimise routing overhead. Duplicate
receptions are detected using sequence numbers associated with route request packets.
This method of route discovery floods the entire network with the route request
packets thus this method of route discovery is also called Flooding Method.
Reactive Routing Protocol for Mobile Ad-Hoc Networks
7
The shortcoming of Flooding Method is that it floods the entire network with the route
requests even when the target node is just a few hops away from the originator node.
An improvement over the Flooding Method, as suggested by the authors of AODV
Routing [16] to reduce the wastage of bandwidth of a MANET, is the Expanding Ring
Method. In the Expanding Ring Method, the originator node initially uses a time to
live (TTL) field equal to some constant in the route request packet and initiates the
route discovery as before. When no valid route is received by the originator node
within a certain timeout interval, it increments the TTL field of route request packet
and reinitiates route discovery process. This process goes on till a valid route is
received by the originator node or upto a maximum number of retries.
Expanding Ring Method although better than the Flooding Method in terms of overall
bandwidth utilization of MANET, is still not a very efficient method, as it still wastes
a lot of bandwidth due to redundant link traversals. In fact Expanding Ring Method is
sometimes more expensive than Flooding Method, e.g. when the originator node and
target node lie at opposite extremes of the network.
This wastage of bandwidth in case of Flooding Method and Expanding Ring Method
is because each participating node normally receives route request packets from all its
neighbors and except for the first one all subsequent receptions are redundant. Thus
although these methods of route discovery are simple in operation but this simplicity
comes at the cost of wasting valuable bandwidth.
1.4. Layout of the Thesis
Chapter 2 gives an overview of a more bandwidth-efficient routing protocol for
MANETs, called “Reactive Routing Protocol”. The detailed operation of Reactive
Routing Protocol is given in Chapter 3. Chapter 4 presents the simulation results and
discusses performance evaluation. Chapter 5 suggests some further optimizations.
Chapter 6 gives the scope for future work and Chapter 7 concludes the work.
Reactive Routing Protocol for Mobile Ad-Hoc Networks
8
Chapter - 2
Overview of Reactive Routing Protocol
_____________________________________________________________________
Reactive Routing Protocol (RRP) is a bandwidth-efficient on-demand routing protocol
for MANETs. In this protocol the originator node initiates the route search process,
whenever it needs to send data packets to a target node. Thus the need for a route
triggers the process of route search, hence the name Reactive Routing Protocol.
RRP is intended to be implemented in the network layer of mobile nodes i.e. in the
layer 3 of ISO OSI reference model. Route Discovery and Route Maintenance
functions of the protocol are described next.
2.1. Route Discovery
RRP is different from other suggested on-demand routing protocols, mainly in the way
that it does not use any broadcast based method for new route discovery but uses the
Incremental Search Method (ISM), thus making it more bandwidth-efficient and
reducing the number of links traversed for the same routes discovered as compared to
a broadcast based method .
In the Incremental Search Method of RRP, each node ‘A’ maintains a list of its
immediate neighbors i.e. the nodes that have direct communication link with ‘A’. In
addition to the address of neighbor, ‘A’ also records the link cost to this neighbor and
the time of neighbor discovery in its neighbor list. This time of neighbor discovery is
recorded only once for each new neighbor discovered and is not changed during the
re-discovery of an existing neighbor. The neighbor list is maintained by periodically
sending “Echo” packets by each node and the node receiving “Echo” packet is
_____________________________________________________________________
Broadcast based method here stands for Flooding Method and Expanding Ring Method etc.
Reactive Routing Protocol for Mobile Ad-Hoc Networks
9
required to respond back immediately. Measurement of the round-trip time and
dividing it by two gives the link cost to this neighbor [4]. The neighbor list is used not
just for route discovery but also for route maintenance and can be used for other
optimizations to the protocol.
Under the Incremental Search Method, whenever an originator node ‘O’ needs to send
data packets to a target node ‘T’ and it has a valid route to ‘T’ in its routing tables or
neighbor list, it can proceed with the data transfer to ‘T’ through this route. Else if
‘O’ could not find a valid route to ‘T’ and the route discovery process for ‘T’ is not
currently on, ‘O’ would send a route discovery packet with an incremented value of
Dis_Identification Number for this target node ‘T’, to each of its neighbors from the
neighbor list. ‘O’ also maintains a list of the nodes to which it has sent route discovery
packets for each target node ‘T’, in its Discovery Table. Originator Address, Target
Address and Dis_Identification Number uniquely identify a route discovery packet.
Each node ‘A’ that receives a route discovery packet would look for a route to ‘T’ in
its routing tables and neighbor list. In case ‘A’ finds a route to ‘T’ in its routing tables
or neighbor list, it would send a route verification packet to ‘T’ so that ‘T’ could reply
with a route confirmation packet back to ‘O’. This is done to ensure that this route is
valid and is not broken. If no route confirmation packet is received by ‘A’ within a
certain timeout period associated with each sending of route verification packet, then
‘A’ can presume that this route is not valid anymore. So in the case that ‘A’ does not
have a valid route to ‘T’ or it could not find any route to ‘T’ in its routing tables or
neighbor list, ‘A’ would send a route response packet back to ‘O’, which would
contain the list of nodes that are immediate neighbors of ‘A’. ‘A’ also records the
reverse path towards ‘O’ in its temporary routing table with the next hop being the
node that last forwarded this route discovery packet.
On receiving such a route response packet from node ‘A’ the intermediate nodes
record the forward path towards ‘A’ in their temporary routing tables with the next
hop being the node that last forwarded this route response packet. When the originator
Reactive Routing Protocol for Mobile Ad-Hoc Networks
10
node ‘O’ receives route response packet, it considers each of neighbor node ‘X’ of ‘A’
to send route discovery packet, only if it has not sent a route discovery packet to ‘X’
before, by looking at its entry in Discovery Table. Thus the repeated sendings of route
discovery packet are avoided and each node receives route discovery packet for a
particular route discovery at most once. ‘O’ records forward path to all such neighbors
of ‘A’ to which it intends to send route discovery packets, in its temporary routing
table with the next hop being the node that last forwarded this route response packet,
and also lists them in the corresponding entry in its Discovery Table. ‘O’ then lists all
such neighbors to which it intends to send route discovery packets, in a single route
discovery packet and forwards it to ‘A’ and ‘A’ in turn forwards it to each of these
nodes individually. This saves multiple sendings of individual route discovery packets
to each of these nodes on the same links and hence saves bandwidth.
This process goes on till either ‘O’ receives a route confirmation packet from ‘T’,
which means route is discovered successfully, or till all the nodes reachable from ‘O’
have been covered in which case it can conclude that node ‘T’ is currently unreachable
from node ‘O’. This conclusion of ‘T’ being currently unreachable from ‘O’ is drawn
automatically after a certain timeout period associated with each new route discovery
in the Discovery Table.
In case of target node ‘T’ being currently unreachable, the originator node ‘O’ may
restart the route discovery for ‘T’ after waiting for a certain time, in the hope that the
network topology might have changed during this time due to mobility of nodes and
‘T’ would now have become reachable through some route from ‘O’.
A route discovery process might return more than one route from ‘O’ to ‘T’, in which
case ‘O’ would keep most optimal route in its Active Routing Table and other routes
in its Passive Routing Table. The Passive Routing Table helps in expediting future
route discoveries or when the route in Active Routing Table gets broken. The metric to
decide most optimal route to keep in Active Routing Table can be Hop Count i.e.
number of links from ‘O’ to ‘T’ or the Route Cost which is sum of the link costs of all
Reactive Routing Protocol for Mobile Ad-Hoc Networks
11
links from ‘O’ to ‘T’. In case of a tie with one metric, the other metric is used as the
deciding factor for the most optimal route and if both metrics are equal the route
bearing lower route number i.e. the route first confirmed by ‘T’ is kept in Active
Routing table and the others in Passive Routing Table.
In RRP, routing tables need to maintain only next hop and next to next hop
information for each target entry and not the complete route upto the target node thus
saving table space. Next to next hop information is used for Route Maintenance as
described in the next sub-section. Similarly the data packets need to contain only the
target node address and not the complete source route, like in DSR Protocol [12], thus
cutting down the overhead incurred in carrying complete source route with every data
packet sent.
Routes recorded in the Active Routing Table are associated with a timeout field. Each
time a route is used for forwarding data packets its associated timeout field is updated
to its new value. If a route is not used before its timeout value is reached, it gets
deleted from Active Routing Table and is entered in Passive Routing Table. Similarly
each route present in a temporary routing table is associated with a timeout field and
each time this route is used for forwarding routing packets its associated timeout field
is updated to its new value. If this route is not used before its timeout value is reached,
it gets deleted from temporary routing table and may be entered in Passive Routing
Table, if space permits. Routes in the Passive Routing Table are not associated with
any timeout field but with a time field corresponding to the time when this route was
last used. Passive Routing Tables can have an upper bound on its size and can be
maintained as a first in first out data structure to limit its growth. Whenever a route
present in Passive Routing Table is intended to be used for forwarding data packets,
e.g. in the event of an active route being broken, and this route in Passive Routing
Table is older than some threshold route life, then a route verification packet is sent to
the target node of this route. And the route can be used only after getting route
confirmation packet from the target node to ensure that this route is currently valid and
is not broken.
Reactive Routing Protocol for Mobile Ad-Hoc Networks
12
As an illustration of the Incremental Search Method, for the similar network topology,
26 links are traversed during route discovery process in case of broadcast method as in
Figure 1(a), while in case of Incremental Search Method only 20 links are traversed as
in Figure 1(b).
Thus the main advantage of Incremental Search Method is that the number of links
traversed for a particular route discovery are reduced as compared to a broadcast based
method, which makes RRP more bandwidth efficient. This bandwidth-efficiency of
RRP is all the more evident with the increase in degree of each node because
redundant link traversals are totally avoided here.
Another major advantage of this method is that node ‘O’ and other intermediate nodes
know the routes to several other nodes in the network apart from ‘T’ through their
temporary routing tables, which can be stored in their Passive Routing Tables in case
the space permits. This would fasten the future route discoveries as the nodes would
now have thicker routing tables, thereby reducing the routing overhead for future route
discoveries and adding more to the bandwidth efficiency of RRP.
Reactive Routing Protocol for Mobile Ad-Hoc Networks
13
C
T
A
D
Route Discovery Packet /
Route Verification Packet
E
Route Confirmation Packet
O
B
F
No. of Links Traversed = 26
(a)
C
T
A
D
O
Route Discovery Packet /
Route Verification Packet
Route Response Packet
E
Route Confirmation Packet
B
F
(b)
Figure 1:
No. of Links Traversed = 20
Route discovery process showing link traversals by routing packets in
(a) broadcast method, and (b) Incremental Search Method of RRP.
Reactive Routing Protocol for Mobile Ad-Hoc Networks
14
2.2. Route Maintenance
RRP uses Surroundings Repair Method (SRM), for the detection of link breaks and
repair of an existing route. To implement Surroundings Repair Method each node
keeps record of next hop and next to next hop for each target entry in its routing
tables . This method works both proactively and reactively.
In the proactive approach, each node ‘A’ when it detects a change in its neighbor list
in the way that its link to an old neighbor node ‘B’ is now broken, it initiates
Surroundings Repair Method for those routes in its Active Routing Table that use ‘B’
as their next hop. In the reactive approach, when node ‘A’ is unable to forward data
packets to node ‘B’ due to a break in its link to ‘B’, it initiates Surroundings Repair
Method for all those routes in its Active Routing Table that use ‘B’ as their next hop.
In this method ‘A’ attempts to repair each route in its Active Routing Table that uses
‘B’ as its next hop by finding an alternate route to its next to next hop ‘C’ towards the
target node ‘T’. ‘A’ sends a route repair packet for the node ‘C’ to all its neighbors
from the neighbor list. In case a neighbor node ‘N’ receiving route repair packet has
‘C’ as its immediate neighbor, it forwards route repair packet to ‘C’ so that ‘C’ could
reply with a route repair confirmation packet back to ‘A’ through ‘N’ so that ‘N’ could
record this route in its Active Routing Table. Else if ‘N’ does not have ‘C’ as its
immediate neighbor it ignores this route repair packet. In case ‘A’ receives a route
repair confirmation packet from ‘C’ through ‘N’ before a certain timeout period it
means route is repaired successfully with the hop count of repaired route being same
as that of original route and only the segment ‘A’-‘B’-‘C’ of original route being
replaced now by ‘A’-‘N’-‘C’ and the routing tables are modified accordingly. ‘A’ can
now proceed with the data transfer through this repaired route. Else if no route repair
confirmation packet is received by ‘A’ within a certain timeout period associated with
_____________________________________________________________________
The next to next hop information can be obtained from the next hop node, as next to next
hop is the next hop of next hop towards target node.
Reactive Routing Protocol for Mobile Ad-Hoc Networks
15
each route repair attempt, ‘A’ sends a route invalid packet back to the originator node
‘O’. The intermediate nodes and the node ‘O’, after receiving route invalid packet,
delete this route from their Active Routing Tables and may enter it in their Passive
Routing Tables, if the space permits. The originator node ‘O’ can now reinitiate the
process of route search for the target node ‘T’ if it intends to send more data packets to
node ‘T’.
The motivation behind Surroundings Repair Method is that there may be a small local
change in the network topology such that the link from ‘A’ to ‘B’ is broken but the
overall network topology has not changed significantly.
As an example, Figure 2(a) illustrates break in the link ‘A’-‘B’ in a route from ‘O’ to
‘T’ before running Surroundings repair Method, while Figure 2(b) illustrates the
repaired route with the segment ‘A’-‘B’-‘C’ now replaced by the segment ‘A’-‘N’-‘C’
after running Surroundings Repair Method.
The advantage of Surroundings Repair Method is that if a route is repaired
successfully the overhead incurred in sending a route invalid packet back to the
originator node and in initiating the new route search by the originator node is saved.
Thus the overall bandwidth efficiency of MANET is improved by using Surroundings
Repair Method.
Reactive Routing Protocol for Mobile Ad-Hoc Networks
16
N
A
T
C
O
B
(a)
N
A
T
C
O
B
(b)
Figure 2:
(a) Failure of link ‘A’-‘B’ on a route from ‘O’ to ‘T’, and (b) Route
repaired by replacing segment ‘A’-‘B’-‘C’ with segment ‘A’-‘N’-‘C’.
Reactive Routing Protocol for Mobile Ad-Hoc Networks
17
Chapter - 3
Detailed Operation of Reactive Routing Protocol
_____________________________________________________________________
Detailed operation of Reactive Routing Protocol is explained in the following sections
by means of:
(a)
Details of Packet Formats of Routing Packets in section 3.1.
(b)
Details of Data Structures Maintained by Each Mobile Node in section 3.2.
(c)
Details of Event – Action Plans in section 3.3.
Reactive Routing Protocol for Mobile Ad-Hoc Networks
18
3.1. Packet Formats of Routing Packets
3.1.1.
Route Discovery Packet ‘DIS’
(HPC)
Hop Count
(RCT)
Route Cost
(DIN)
Dis_Identification No.
(DIV)
Dis_Via Address
(DIT [1])
Dis_Target Address [1]
(TYP)
Packet Type
(K)
No. of Dis_Targets
|
|
(DIT [K])
Dis_Target Address [K]
(ORG)
Originator Address
(TGT)
Target Address
3.1.2. Route Verification Packet ‘VER’
(TYP)
Packet Type
(HPC)
Hop Count
(RCT)
Route Cost
(DIN)
Dis_Identification No
(SVR)
Sender of VER Packet
(ORG)
Originator Address
(TGT)
Target Address
Reactive Routing Protocol for Mobile Ad-Hoc Networks
19
3.1.3. Route Response Packet ‘RES’
(HPC)
Hop Count
(RCT)
Route Cost
(DIN)
Dis_Identification No.
(DIT)
Dis_Target Address
(ORG)
Originator Address
(TGT)
Target Address
(NBR [1])
Neighbor Address [1]
(TYP)
Packet Type
(N)
No. of Neighbors
|
|
(LCT [1])
Link Cost [1]
(NBR [N])
Neighbor Address [N]
__ __
(LCT [N])
Link Cost [N]
3.1.4. Route Confirmation Packet ‘CON’
(HPC)
Hop Count
(RCT)
Route Cost
(DIN)
Dis_Identification No
(NNT)
Next to Next Hop towards Target
(ORG)
Originator Address
(TGT)
Target Address
Reactive Routing Protocol for Mobile Ad-Hoc Networks
(TYP)
Packet Type
(RON)
Route No.
20
3.1.5.
Route Acknowledgement Packet ‘ACK’
(TYP)
Packet Type
(DIN)
Dis_Identification No
(NNO)
Next to Next Hop towards Originator
(ORG)
Originator Address
(TGT)
Target Address
3.1.6.
(RON)
Route No.
Route Invalid Packet ‘INV’
(TYP)
Packet Type
(INT)
Invalid Type
(DIN)
Dis_Identification No
(SIN)
Sender of INV Packet
(ORG)
Originator Address
(TGT)
Target Address
(RON)
Route No.
3.1.7. Route Modification Packet ‘MOD’
(HPC)
Hop Count
(RCT)
Route Cost
(DIN)
Dis_Identification No
(NT)
Next Hop towards Target
(NNT)
Next to Next Hop towards Target
(ORG)
Originator Address
(TGT)
Target Address
Reactive Routing Protocol for Mobile Ad-Hoc Networks
(TYP)
Packet Type
(RON)
Route No.
21
3.1.8. Route Repair Packet ‘RPR’
(HPC)
Hop Count
(RCT)
Route Cost
(DIN)
Dis_Identification No
(RPO)
Repair_Originator Address
(RPT)
Repair_Target Address
(ORG)
Originator Address
(TGT)
Target Address
(TYP)
Packet Type
(RON)
Route No.
3.1.9. Route Repair Confirmation Packet ‘RCN’
(HPC)
Hop Count
(RCT)
Route Cost
(DIN)
Dis_Identification No
(RPO)
Repair_Originator Address
(RPT)
Repair_Target Address
(NNT)
Next to Next Hop towards Target
(ORG)
Originator Address
(TGT)
Target Address
Reactive Routing Protocol for Mobile Ad-Hoc Networks
(TYP)
Packet Type
(RON)
Route No.
22
3.2. Data Structures Maintained by Each Mobile Node
3.2.1. Active Routing Table <Routing_Table (A)>
(DIN)
Dis_Ide
ntificati
on No.
(RON)
Route
No.
(ORG)
Originat
or
Address
(NH)
Next
Hop
Address
(NNH)
Next to
Next
Hop
Address
(TGT)
Target
Address
(HPC)
Hop
Count
(RCT)
Route
Cost
Timeout
(RCT)
Route
Cost
Time
3.2.2. Passive Routing Table <Routing_Table (P)>
(DIN)
Dis_Ide
ntificati
on No.
(RON)
Route
No.
(ORG)
Originat
or
Address
(NH)
Next
Hop
Address
(NNH)
Next to
Next
Hop
Address
Reactive Routing Protocol for Mobile Ad-Hoc Networks
(TGT)
Target
Address
(HPC)
Hop
Count
23
3.2.3. Discovery Table <DIS_Table>
(DIN)
Dis_Identification
No.
3.2.4.
(TGT)
Target Address
Timeout
(NCD)
Nodes Covered
RES Received
(Yes / No)
Dis_Identification Number Table <DIN_Table>
(DIN)
Dis_Identification No.
(TGT)
Target Address
Reactive Routing Protocol for Mobile Ad-Hoc Networks
24
3.2.5.
Temporary Table <Temp_Table>
(NH)
Next Hop
Address
(TGT)
Target Address
(HPC)
Hop Count
(RCT)
Route Cost
Timeout
3.2.6. Verification Table <VER_Table>
(DIN)
Dis_Identific
ation No.
(ORG)
Originator
Address
(TGT)
Target
Address
Timeout
Reactive Routing Protocol for Mobile Ad-Hoc Networks
25
3.2.7. Neighbor List <Neighbor_List>
(NBR)
Neighbor Address
(LCT)
Link Cost
Time
3.2.8. Route Repair Table <RPR_Table>
(DIN)
Dis_Identific
ation No.
(RON)
Route No.
(ORG)
Originator
Address
(TGT)
Target
Address
Reactive Routing Protocol for Mobile Ad-Hoc Networks
Repair_Flag
(Yes / No)
Timeout
26
3.3. Event – Action Plans
3.3.1. Event 1: Originator node ‘O’ has packets to send to a Target node ‘T’
Caused by: Layer above network layer of node ‘O’
Action taken by node ‘O’:
1.
Look for an entry of node ‘T’ in the target address, (TGT) field of
Routing_Table (A). If a matching entry is found, start sending these packets
to ‘T’ through its next hop (NH). Else proceed to step 2.
2.
Look for an entry of node ‘T’ in the (TGT) field of DIS_Table. If a matching
entry is found it means route discovery for ‘T’ is currently on, so these packets
are kept in the buffer. Else proceed to step 3.
3.
Look for an entry of node ‘T’ in the neighbor address, (NBR) field of
Neighbor_List and next to next hop, (NNH) field of Routing_Table (A) and
(TGT) field of Temp_Table (s). If a matching entry is found, make a new entry
for this route in the Routing_Table (A) and start sending these packets to ‘T’.
Else proceed to step 4.
4.
Look for an entry of node ‘T’ in (TGT) field and (NNH) field of
Routing_Table (P). If a matching entry is found go to step 5, else go to step 6.
5.
Calculate the difference in Current_Time and Time field of matched entry. If
this difference is less than Route_Life it means this route is still valid, make an
entry for this route in the Routing_Table (A) and start sending these packets to
‘T’. Else if this difference is more than Route_Life, look for an entry of ‘T’ in
the DIN_Table, if a matching entry is found increment this value, else make a
new entry in DIN_Table with (TGT) as ‘T’ and Dis_Identification No., (DIN)
Reactive Routing Protocol for Mobile Ad-Hoc Networks
27
as 0. Send a ‘VER’ packet to ‘T’ through its next hop ‘N’, with the fields of
‘VER’ packet as
Packet Type, (TYP)
=
3
Hop Count, (HPC)
=
initialized with 0
Route Cost, (RCT)
=
(LCT) field of Neighbor_List
corresponding to ‘N’
Dis_Identification No., (DIN) =
(DIN) field of DIN_Table
corresponding to ‘T’
Sender of VER Packet, (SVR) =
‘O’
Originator Address, (ORG)
=
‘O’
Target Address, (TGT)
=
‘T’
Also make an entry in the VER_Table with (DIN), (ORG) and (TGT) as
(DIN), (ORG) and (TGT) fields of ‘VER’ packet and Timeout as
Current_Time + Verification_Life. In case no ‘CON’ packet is received by ‘O’
for this entry before Timeout, then proceed as in step 6.
6.
‘O’ initiates new route discovery for ‘T’. First of all look for an entry of ‘T’ in
the DIN_Table, if a matching entry is found increment this value else make a
new entry in DIN_Table with (TGT) as ‘T’ and (DIN) as 0. Next an entry in
DIS_Table is created for this new route discovery with (DIN) field as (DIN)
field of DIN_Table corresponding to ‘T’, (TGT) field as ‘T’, Timeout as
Current_Time + Discovery_Life, nodes covered (NCD) as list of neighbors
from Neighbor_List and RES Received field for these nodes initialised with
‘No’. Next it sends ‘DIS’ packet to all its neighbors ‘N’ from Neighbor_List
with the fields of ‘DIS’ packet as
Packet Type, (TYP)
=
1
Hop Count, (HPC)
=
initialized with 0
Reactive Routing Protocol for Mobile Ad-Hoc Networks
28
Route Cost, (RCT)
=
(LCT) field of Neighbor_List
corresponding to ‘N’
Dis_Identification No., (DIN) =
(DIN) field of DIN_Table
corresponding to ‘T’
No. of Dis_Targets, (K)
=
1
Dis_Via Address, (DIV)
=
‘O’
Dis_Target Address, (DIT[1]) =
‘N’
Originator Address, (ORG)
=
‘O’
Target Address, (TGT)
=
‘T’
Note: ‘O’, ‘T’ and ‘N’ mean IP address of nodes ‘O’, ‘T’ and ‘N’.
Reactive Routing Protocol for Mobile Ad-Hoc Networks
29
3.3.2.
Event 2: Node ‘A’ receives ‘DIS’ packet
Caused by: Layer below network layer of node ‘A’
Action taken by node ‘A’:
1.
First of all increment hop count, (HPC) of ‘DIS’ packet. Then check to see if
‘A’ matches with one of the (DIT [I]) fields of ‘DIS’ packet. If it does not
match go to step 2, else proceed to step 3.
2.
Check to see if the (DIV) field of ‘DIS’ packet is same as ‘A’. If it is not same
forward this packet to its next hop ‘N’ towards (DIV) by looking at its entry in
Temp_Table with the (RCT) field of ‘DIS’ packet updated as (RCT) field of
‘DIS’ packet + (LCT) field corresponding to ‘N’ from Neighbor_List. Also
update the Timeout field of Temp_Table corresponding to the entry for (DIV)
as Timeout = Current_Time + Temp_Route_Life. Else if (DIV) field of ‘DIS’
packet is same as ‘A’, forward this packet to each of the (DIT [I]) fields of
‘DIS’ packet by looking at its entry in the Neighbor_List with (RCT) field of
‘DIS’ packet updated as (RCT) field of ‘DIS’ packet + (LCT) field
corresponding to (DIT [I]) field from Neighbor_List.
3.
Make a reverse route towards (ORG) in its Temp_Table, with (NH) as the
node that forwarded this ‘DIS’ packet, (TGT) as (ORG) field of ‘DIS’ packet,
(HPC) and (RCT) as (HPC) and (RCT) fields of ‘DIS’ packet and Timeout as
Current_Time + Temp_Route_Life. Look for an entry of (TGT) field of ‘DIS’
packet in its (NBR) field of Neighbor_List, (NNH) and (TGT) fields of
Routing_Table (A) and (P) and (TGT) field of Temp_Table. In case a
matching entry is found go to step 4, else go to step 5.
4.
Send ‘VER’ packet to (TGT) field of ‘DIS’ packet, through its next hop ‘N’
with the fields of ‘VER’ packet as
Reactive Routing Protocol for Mobile Ad-Hoc Networks
30
Packet Type, (TYP)
=
3
Hop Count, (HPC)
=
(HPC) field of ‘DIS’ packet
Route Cost, (RCT)
=
(RCT) field of ‘DIS’ packet +
(LCT) field of Neighbor_List corresponding to ‘N’
Dis_Identification No., (DIN) =
(DIN) field of ‘DIS’ packet
Sender of VER Packet, (SVR) =
‘A’
Originator Address, (ORG)
=
(ORG) field of ‘DIS’ packet
Target Address, (TGT)
=
(TGT) field of ‘DIS’ packet
Also make an entry in the VER_Table with (DIN), (ORG) and (TGT) as
(DIN), (ORG) and (TGT) fields of ‘VER’ packet and Timeout as
Current_Time + Verification_Life. In case no ‘CON’ packet is received by ‘A’
for this entry before Timeout, then proceed as in step 5.
5.
Send a ‘RES’ packet back to (ORG) through its next hop ‘N’ by looking at its
entry in the Temp_Table, with the fields of ‘RES’ packet as
Packet Type, (TYP)
=
2
Hop Count, (HPC)
=
initialized with 0
Route Cost, (RCT)
=
(LCT) field of Neighbor_List
corresponding to ‘N’
Dis_Identification No., (DIN) =
(DIN) field of ‘DIS’ packet
No. of Neighbors, (N)
No. of neighbors in the
=
Neighbor_List of node ‘A’
Dis_Target Address, (DIT)
=
‘A’
Originator Address, (ORG)
=
(ORG) field of ‘DIS’ packet
Target Address, (TGT)
=
(TGT) field of ‘DIS’ packet
Neighbor Addresses, (NBR [1] .. [N])
Link Costs, (LCT [1] .. [N])
=
=
(NBR) fields of Neighbor_List
(LCT) fields of Neighbor_list
corresponding to NBR [1] to [N]
Note: ‘A’ and ‘N’ mean IP address of nodes ‘A’ and ‘N’.
Reactive Routing Protocol for Mobile Ad-Hoc Networks
31
3.3.3.
Event 3: Node ‘A’ receives ‘RES’ packet
Caused by: Layer below network layer of node ‘A’
Action taken by node ‘A’:
1.
Increment the hop count, (HPC) of ‘RES’ packet. Then check to see if the
(ORG) field of ‘RES’ packet is same as ‘A’. If it is not same go to step 2, else
proceed to step 3.
2.
Make an entry for a route to (DIT) field of ‘RES’ packet in its Temp_Table
with (NH) as node that forwarded this ‘RES’ packet, (TGT) as (DIT) field of
‘RES’ packet, (HPC) and (RCT) as (HPC) and (RCT) fields of ‘RES’ packet
and Timeout as Current_Time + Temp_Route_Life. Then forward this ‘RES’
packet to (ORG) field of ‘RES’ packet through its next hop ‘N’ by looking at
the entry for (ORG) in the (TGT) field of Temp_Table, with the (RCT) field of
‘RES’ packet updated as (RCT) field of ‘RES’ packet + (LCT) field
corresponding to ‘N’ from Neighbor_List. Also update the Timeout field of
Temp_Table corresponding to the entry for (ORG) as Timeout = Current_Time
+ Temp_Route_Life.
3.
Look for an entry of (TGT) in DIS_Table, in case no matching entry is found it
means route for this (TGT) is already discovered and just discard this ‘RES’
packet. Else if a matching entry is found update the DIS_Table by making the
RES Received field corresponding to (DIT) as ‘Yes’. Then consider each of
(NBR [1]) to (NBR [N]) sent in ‘RES’ packet to check if it is already there in
the (NCD) field of DIS_Table. In case it is already there ignore this address.
And if it is not there make an entry for this (NBR [I]) in the DIS_Table with
(NCD) as (NBR [I]) and RES Received as ‘No’, and at the same time make an
entry for a route to this (NBR[I]) in the Temp_Table with (NH) as the node ‘N’
that forwarded this ‘RES’ packet, (TGT) as (NBR [I]), (HPC) as 1 + (HPC)
Reactive Routing Protocol for Mobile Ad-Hoc Networks
32
field of ‘RES’ packet, (RCT) as (RCT) field of ‘RES’ packet + LCT [I] field of
‘RES’ packet and Timeout as Current_Time + Temp_Route_Life. Let the
number of such (NBR [I]) nodes which are newly entered in DIS_Table be M.
Send a ‘DIS’ packet to (DIT) field of ‘RES’ packet (only if M > 0), through its
next hop ‘N’, with the fields of ‘DIS’ packet as
Packet Type, (TYP)
=
1
Hop Count, (HPC)
=
initialized with 0
Route Cost, (RCT)
=
(LCT) field of Neighbor_List
corresponding to ‘N’
Dis_Identification No., (DIN) =
(DIN) field of ‘RES’ packet
No. of Dis_Targets, (K)
=
M
Dis_Via Address, (DIV)
=
(DIT) field of ‘RES’ packet
Dis_Target Address, (DIT[1]…[K]) = (NBR [I1]…[IM]) fields of ‘RES’ packet
Originator Address, (ORG)
=
(ORG) field of ‘RES’ packet
Target Address, (TGT)
=
(TGT) field of ‘RES’ packet
Delete the entry corresponding to (DIT) field of ‘RES’ packet from
Temp_Table and if the space permits enter this route in Routing_Table (P)
with Time as (Timeout field of Temp_Table – Temp_Route_Life) else discard
this route.
Note: ‘A’ and ‘N’ mean IP address of nodes ‘A’ and ‘N’.
Reactive Routing Protocol for Mobile Ad-Hoc Networks
33
3.3.4.
Event 4: Node ‘A’ receives ‘VER’ packet
Caused by: Layer below network layer of node ‘A’
Action taken by node ‘A’:
1.
Increment the hop count, (HPC) field of ‘VER’ packet. Then check to see if
the (TGT) field of ‘VER’ packet is same as ‘A’. If it is not same go to step 2,
else proceed to step 3.
2.
Construct a route back to (ORG) in Temp_Table with (NH) as the node that
forwarded this ‘VER’ packet, (TGT) as (ORG) field of ‘VER’ packet, (HPC)
and (RCT) as (HPC) and (RCT) fields of ‘VER’ packet and Timeout as
Current_Time + Temp_Route_Life. Forward this packet towards (TGT) field
of ‘VER’ packet through its next hop ‘N’ by looking at its entry in
Neighbor_List, Routing_Table (A), Routing_Table (P) or Temp_Table (s),
with the (RCT) field of ‘VER’ packet updated as (RCT) field of ‘VER’ packet
+ (LCT) field corresponding to ‘N’ from Neighbor_List.
3.
It means ‘A’ is the intended target of this ‘VER’ packet. Look for a route back
to (ORG) in its Routing_Table (A), in case no such entry exists or an entry
with a lower value of (DIN) field than the (DIN) field of ‘VER’ packet exists,
delete such entries from Routing_Table (A) and (P), allot this new route a
route number (RON) as 0 and construct a route back to (ORG) in its
Routing_Table (A). In case an entry with the same (DIN) already exists, look
for more such entries in Routing_Table (P) and allot this new route a route
number (RON) as 1 + highest of these existing route numbers. Then compare
the (HPC) (or (RCT)) of this new route with the existing route in
Routing_Table (A) and the one with the lower value of (HPC) (or (RCT)) is
kept in Routing_Table (A) and the other in Routing_Table (P). In case both
(HPC) (or (RCT)) are same, one with the lower value of (RCT) (or (HPC)) is
Reactive Routing Protocol for Mobile Ad-Hoc Networks
34
kept in Routing_Table (A). In case both (HPC) and (RCT) values are same, the
new route bearing higher route number (RON) is kept in Routing_Table (P).
The entry of new route in Routing_Table (A) or (P) is created with (DIN) as
(DIN) of ‘VER’ packet, (RON) as just allotted route number to this route,
(ORG) as node ‘A’ itself, (NH) as node ‘N’ that forwarded this ‘VER’ packet,
(NNH) initialised to NULL, (TGT) as (ORG)
field of
‘VER’ packet,
(HPC) and (RCT) as (HPC) and (RCT) fields of ‘VER’ packet and Timeout as
Current_Time + Route_Life or Time as Current_Time. Send a ‘CON’
packet back to (ORG) field of ‘VER’ packet through its next hop ‘N’, with
the fields of ‘CON’ packet as
Packet Type, (TYP)
=
4
Hop Count, (HPC)
=
initialized with 0
Route Cost, (RCT)
=
(LCT) field of Neighbor_List
corresponding to ‘N’
Dis_Identification No., (DIN) =
(DIN) field of ‘VER’ packet
Route No., (RON)
just allotted route no. to this route
=
Next to next hop towards Target, (NNT)
=
NULL
Originator Address, (ORG)
=
(ORG) field of ‘VER’ packet
Target Address, (TGT)
=
(TGT) field of ‘VER’ packet
Note: ‘A’ and ‘N’ mean IP address of nodes ‘A’ and ‘N’.
Reactive Routing Protocol for Mobile Ad-Hoc Networks
35
3.3.5.
Event 5: Node ‘A’ receives ‘CON’ packet
Caused by: Layer below network layer of node ‘A’
Action taken by node ‘A’:
1.
Increment the hop count, (HPC) field of ‘CON’ packet. Look for a matching
entry in its VER_Table with (DIN), (ORG) and (TGT) same as (DIN), (ORG)
and (TGT) fields of ‘CON’ packet. If a matching entry is found delete this
entry from VER_Table. Then check to see if the (ORG) field of ‘CON’ packet
is same as ‘A’. If it is not same go to step 2, else proceed to step 3.
2.
Look for a route towards (ORG) and (TGT) in its Routing_Table (A), in case
no such entry exists or an entry with a lower value of (DIN) field than the
(DIN) field of ‘CON’ packet exists, delete such entries from Routing_Table
(A) and (P) and construct a route towards (ORG) and (TGT) in Routing_Table
(A). (While deleting, entries for both (ORG) and (TGT) are deleted
simultaneously). In case an entry with the same (DIN) already exists in the
Routing_Table (A), compare the (HPC) (or (RCT)) of this route with the new
route, and the one with the lower value of (HPC)
(or (RCT)) is kept in
Routing_Table (A) and the other in Routing_Table (P). In case both (HPC) (or
(RCT)) are same, one with the lower value of (RCT) (or (HPC)) is kept in
Routing_Table (A). In case both (HPC) and (RCT) values are same, one with
the lower (RON) is kept in Routing_Table (A) and the one with higher (RON)
in Routing_Table (P). When creating new entry, entries for both (ORG) and
(TGT) are created simultaneously. Entry of (ORG) in Routing_Table (A) or
(P) is created with (DIN) and (RON) as (DIN) and (RON) fields of ‘CON’
packet, (ORG) as (TGT) field of ‘CON’ packet and (TGT) as (ORG) field of
‘CON’ packet, (NH), (HPC) and (RCT) as (NH), (HPC) and (RCT) fields of
Temp_Table entry corresponding to entry of (ORG), (NNH) as NULL and
Timeout as Current_Time + Route_Life or Time as Current_Time. Entry of
Reactive Routing Protocol for Mobile Ad-Hoc Networks
36
(TGT) in Routing_Table (A) or (P) is created with (DIN), (RON), (ORG),
(TGT), (HPC) and (RCT) as (DIN), (RON), (ORG), (TGT), (HPC) and (RCT)
fields of ‘CON’ packet, (NH) as node that forwarded this ‘CON’ packet,
(NNH) as (NNT) field of ‘CON’ packet and Timeout as Current_Time +
Route_Life or Time as Current_Time. Then forward this ‘CON’ packet
towards (ORG) through its next hop ‘N’, with the (NNT) field of ‘CON’
packet changed to the node that last forwarded this ‘CON’ packet and (RCT)
field of ‘CON’ packet updated as (RCT) field of ‘CON’ packet + (LCT) field
corresponding to ‘N’ from Neighbor_List. Also send an ‘ACK’ packet back to
the node that forwarded this ‘CON’ packet with the fields of ‘ACK’ packet as
Packet Type, (TYP)
=
5
Dis_Identification No., (DIN) =
(DIN) field of ‘CON’ packet
Route No., (RON)
(RON) field of ‘CON’ packet
=
Next to next hop towards Originator, (NNO)
=
(NH) field of
Routing_Table for the entry of (ORG)
3.
Originator Address, (ORG)
=
(ORG) field of ‘CON’ packet
Target Address, (TGT)
=
(TGT) field of ‘CON’ packet
Remove the entry coresponding to this (TGT) from DIS_Table and also free
the space of Temp_Table corresponding to this route discovery. If the space
permits it can store these routes of Temp_Table in its Routing_Table (P). Look
for a route to (TGT) in the Routing_Table (A), in case no such entry exists
enter the new route to (TGT) in the Routing_Table (A). In case an entry with
the same (DIN) exists compare the (HPC) (or (RCT)) of this route with the
new route and the one with the lower value of (HPC) (or (RCT)) is kept in
Routing_Table (A) and the other in Routing_Table (P). In case both (HPC) (or
(RCT)) are same, one with the lower value of (RCT) (or (HPC)) is kept in
Routing_Table (A). In case both (HPC) and (RCT) values are same, one with
lower (RON) is kept in Routing_Table (A) and the other in Routing_Table (P).
The entry of new route in Routing_Table (A) or (P) is created with (DIN),
Reactive Routing Protocol for Mobile Ad-Hoc Networks
37
(RON), (ORG), (TGT), (HPC) and (RCT) as (DIN), (RON), (ORG), (TGT),
(HPC) and (RCT) fields of ‘CON’ packet, (NH) as node that forwarded this
‘CON’ packet, (NNH) as (NNT) field of ‘CON’ packet and Timeout as
Current_Time + Route_Life or Time as Current_Time. Send an ‘ACK’ packet
back to the node that forwarded this ‘CON’ packet with the fields of ‘ACK’
packet as
Packet Type, (TYP)
=
5
Dis_Identification No., (DIN) =
(DIN) field of ‘CON’ packet
Route No., (RON)
(RON) field of ‘CON’ packet
=
Next to next hop towards Originator, (NNO)
=
NULL
Originator Address, (ORG)
=
(ORG) field of ‘CON’ packet
Target Address, (TGT)
=
(TGT) field of ‘CON’ packet
Note: ‘A’ and ‘N’ mean IP address of nodes ‘A’ and ‘N’.
Reactive Routing Protocol for Mobile Ad-Hoc Networks
38
3.3.6.
Event 6: Node ‘A’ receives ‘ACK’ packet
Caused by: Layer below network layer of node ‘A’
Action taken by node ‘A’:
1.
Update the entry in Routing_Table (A) or (P) with the (DIN) and (RON) fields
same as (DIN) and (RON) fields of ‘ACK’ packet and (ORG) field same as
(TGT) field of ‘ACK’ packet and (TGT) field same as (ORG) field of ‘ACK’
packet, by setting the (NNH) field as (NNO) field of ‘ACK’ packet.
Note: ‘A’ means IP address of node ‘A’.
Reactive Routing Protocol for Mobile Ad-Hoc Networks
39
3.3.7.
Event 7: Node ‘A’ detects a break in its link to node ‘B’
Caused by: Layer below network layer of node ‘A’
Action taken by node ‘A’:
1.
Consider each route in Routing_Table (A) that uses ‘B’ as its next hop and for
each such route repeat the following steps.
2.
Let target node of this route to be repaired be ‘T’, the corresponding originator
node be ‘O’ and its next to next hop towards target be ‘C’. In case ‘C’ is not
equal to NULL go to step 3. Else if ‘C’ is not NULL it means ‘T’ was next hop
of ‘A’ i.e. ‘B’ is same as ‘T’. Since link to ‘B’ is currently broken, send an
‘INV’ packet back to ‘O’ through its next hop by looking at its entry in the
Routing_Table (A) with the fields of ‘INV’ packet as
3.
Packet Type, (TYP)
=
6
Invalid Type, (INT)
=
1
Dis_Identification No., (DIN) =
(DIN) field of route to be repaired
Route No., (RON)
(RON) field of route to be repaired
=
Sender of INV Packet, (SIN) =
‘A’
Originator Address, (ORG)
=
‘O’
Target Address, (TGT)
=
‘T’
Look for an entry of node ‘T’ in the (NBR) field of Neighbor_List, in case no
matching entry is found go to step 4. Else if a matching entry is found make
(NH) field of route to be repaired as ‘T’, (NNH) as NULL, (HPC) as 1, (RCT)
as (LCT) field of Neighbor_List corresponding to ‘T’ and Timeout as
Current_Time + Route_Life in the Routing_Table (A). Let (NH) field of
Routing_Table (A) corresponding to route towards ‘O’ be ‘M’. Send ‘MOD’
packet to ‘T’ with the fields of ‘MOD’ packet as
Reactive Routing Protocol for Mobile Ad-Hoc Networks
40
Packet Type, (TYP)
=
9
Hop Count, (HPC)
=
(HPC) field of Routing_Table (A)
corresponding to route towards ‘O’
Route Cost, (RCT)
=
(RCT) field of Routing_Table (A)
corresponding to route towards ‘O’ + (LCT)
field of Neighbor_List corresponding to ‘T’
Dis_Identification No., (DIN) =
(DIN) field of route to be repaired
Route No., (RON)
(RON) field of route to be repaired
=
Next hop towards Target, (NT)
=
‘A’
Next to next hop towards Target, (NNT)
=
‘M’
Originator Address, (ORG)
=
‘T’
Target Address, (TGT)
=
‘O’
Also send a ‘MOD’ packet to ‘M’ with the fields of ‘MOD’ packet as
Packet Type, (TYP)
=
9
Hop Count, (HPC)
=
1
Route Cost, (RCT)
=
(LCT) field of Neighbor_List
corresponding to ‘T’ + (LCT) field of
Neighbor_List corresponding to ‘M’
4.
Dis_Identification No., (DIN) =
(DIN) field of route to be repaired
Route No., (RON)
(RON) field of route to be repaired
=
Next hop towards Target, (NT)
=
‘A’
Next to next hop towards Target, (NNT)
=
‘T’
Originator Address, (ORG)
=
‘O’
Target Address, (TGT)
=
‘T’
Look for an entry in RPR_Table with the (DIN), (RON), (ORG) and (TGT)
fields same as (DIN), (RON), (ORG) and (TGT) fields of route to be repaired.
In case no matching entry is found proceed to step 5. Else if a matching entry
is found check to see if the Repair_Flag is set to ‘Yes’ or ‘No’. If the
Reactive Routing Protocol for Mobile Ad-Hoc Networks
41
Repair_Flag is set to ‘Yes’ it means route repair for this route is currently on so
these data packets are kept in the buffer. Else if the Repair_Flag is set to ‘No’
it means the route could not be repaired successfully earlier so these data
packets are discarded.
5.
Make an entry in RPR_Table with (DIN), (RON), (ORG) and (TGT) as (DIN),
(RON), (ORG) and (TGT) fields of route to be repaired, Repair_Flag as ‘Yes’
and Timeout as Current_Time + Route_Repair_Life. Send a ‘RPR’ packet to
all its neighbors ‘N’ from Neighbor_List with the fields of ‘RPR’ packet as
Packet Type, (TYP)
=
7
Hop Count, (HPC)
=
(HPC) field of Routing_Table (A)
corresponding to route towards ‘O’
Route Cost, (RCT)
=
(RCT) field of Routing_Table (A)
corresponding to route towards ‘O’ + (LCT)
field of Neighbor_List corresponding to ‘N’
Dis_Identification No., (DIN) =
(DIN) field of route to be repaired
Route No., (RON)
(RON) field of route to be repaired
=
Repair_Originator Address, (RPO)
=
‘A’
Repair_Target Address, (RPT)
=
‘C’
Originator Address, (ORG)
=
(ORG) field of route to be repaired
Target Address, (TGT)
=
(TGT) field of route to be repaired
In case no ‘RCN’ packet is received by ‘A’ within a timeout period after
sending ‘RPR’ packet update the corresponding entry in RPR_Table such that
set the Repair_Flag as ‘No’ and set Timeout as Current_Time + Deletion_Life,
after which this entry is deleted from the RPR_Table. Send an ‘INV’ packet
back to ‘O’ through its next hop with the fields of ‘INV’ packet as
Packet Type, (TYP)
=
6
Invalid Type, (INT)
=
1
Reactive Routing Protocol for Mobile Ad-Hoc Networks
42
Dis_Identification No., (DIN) =
(DIN) field of route to be repaired
Route No., (RON)
(RON) field of route to be repaired
=
Sender of INV Packet, (SIN) =
‘A’
Originator Address, (ORG)
=
‘O’
Target Address, (TGT)
=
‘T’
Note: ‘A’, ‘B’, ‘C’, ‘M’, ‘N’, ‘O’ and ‘T’ mean IP address of nodes ‘A’, ‘B’, ‘C’, ‘M’,
‘N’, ‘O’ and ‘T’.
Reactive Routing Protocol for Mobile Ad-Hoc Networks
43
3.3.8.
Event 8: Node ‘A’ receives ‘INV’ packet
Caused by: Layer below network layer of node ‘A’
Action taken by node ‘A’:
1.
Look for the entry of now invalid route in the Routing_Table (A) with the
(DIN), (RON), (ORG) and (TGT) fields same as (DIN), (RON), (ORG) and
(TGT) fields of ‘INV’ packet. Delete this route from Routing_Table (A) and
enter this route in Routing_Table (P) with Time as Current_Time –
2*Route_Life. If (ORG) field of ‘INV’ packet is not same as ‘A’, forward this
packet towards (ORG) through its next hop by looking at its entry in
Routing_Table (A).
Note: ‘A’ means IP address of node ‘A’.
Reactive Routing Protocol for Mobile Ad-Hoc Networks
44
3.3.9.
Event 9: Node ‘A’ receives ‘RPR’ packet
Caused by: Layer below network layer of node ‘A’
Action taken by node ‘A’:
1.
First of all increment the (HPC) field of ‘RPR’ packet. Then check to see if
(RPT) field of ‘RPR’ packet is same as ‘A’. If it is not same go to step 2, else
proceed to step 3.
2.
Look for an entry of (RPT) field of ‘RPR’ packet in the (NBR) field of
Neighbor_List. If a matching entry is found update the (RCT) field of ‘RPR’
packet as (RCT) field of ‘RPR’ packet + (LCT) field of Neighbor_List
corresponding to (RPT) and forward this packet to (RPT) field of ‘RPR’
packet.
3.
Look for an entry in its Routing_Table (A) with the (DIN) and (RON) fields
same as (DIN) and (RON) fields of ‘RPR’ packet, (ORG) as (TGT) field of
‘RPR’ packet and (TGT) as (ORG) field of ‘RPR’ packet. If a matching entry
is found update this entry such that make (NH) field of this route as the node
‘N’ that forwarded this packet, (NNH) as (RPO) field of ‘RPR’ packet, (HPC)
and (RCT) fields as (HPC) and (RCT) fields of ‘RPR’ packet. (Ignore all
subsequent ‘RPR’ packets for the same route for a certain interval of time to
avoid duplication). Let (NH) field of Routing_Table (A) corresponding to
route towards (TGT) be ‘M’. Send a ‘RCN’ packet to the node ‘N’ with the
fields of ‘RCN’ packet as
Packet Type, (TYP)
=
8
Hop Count, (HPC)
=
(HPC) field of Routing_Table (A)
corresponding to route towards (TGT)
Reactive Routing Protocol for Mobile Ad-Hoc Networks
45
Route Cost, (RCT)
=
(RCT) field of Routing_Table (A)
corresponding to route towards (TGT) + (LCT)
field of Neighbor_List corresponding to ‘N’
Dis_Identification No., (DIN) =
(DIN) field of ‘RPR’ packet
Route No., (RON)
(RON) field of ‘RPR’ packet
=
Repair_Originator Address, (RPO)
=
(RPO) field of ‘RPR’ packet
Repair_Target Address, (RPT)
=
(RPT) field of ‘RPR’ packet
Originator Address, (ORG)
=
(ORG) field of ‘RPR’ packet
Target Address, (TGT)
=
(TGT) field of ‘RPR’ packet
Next to next hop towards Target, (NNT) = ‘M’
Also send a ‘MOD’ packet to ‘M’ with the fields of ‘MOD’ packet as
Packet Type, (TYP)
=
9
Hop Count, (HPC)
=
(HPC) field of ‘RPR’ packet
Route Cost, (RCT)
=
(RCT) field of ‘RPR’ packet +
(LCT) field of Neighbor_List corresponding to ‘M’
Dis_Identification No., (DIN) =
(DIN) field of ‘RPR’ packet
Route No., (RON)
(RON) field of ‘RPR’ packet
=
Next hop towards Target, (NT)
=
‘A’
Next to next hop towards Target, (NNT)
=
‘N’
Originator Address, (ORG)
=
(TGT) field of ‘RPR’ packet
Target Address, (TGT)
=
(ORG) field of ‘RPR’ packet
Note: ‘A’, ‘M’ and ‘N’ mean IP address of nodes ‘A’, ‘M’ and ‘N’.
Reactive Routing Protocol for Mobile Ad-Hoc Networks
46
3.3.10. Event 10: Node ‘A’ receives ‘RCN’ packet
Caused by: Layer below network layer of node ‘A’
Action taken by node ‘A’:
1.
First of all increment the (HPC) field of ‘RPR’ packet. Then check to see if
(RPO) field of ‘RCN’ packet is same as ‘A’. If it is not same go to step 2, else
proceed to step 3.
2.
Enter a route towards (TGT) field of ‘RCN’ packet in its Routing_Table (A)
with (HPC), (RCT), (DIN), (RON), (ORG) and (TGT) as (HPC), (RCT),
(DIN), (RON), (ORG) and (TGT) fields of ‘RCN’ packet, (NH) as the node
that forwarded this ‘RCN’ packet, (NNH) as (NNT) field of ‘RCN’ packet and
Timeout as Current_Time + Route_Life. Also enter a route towards (ORG)
field of ‘RCN’ packet in Routing_Table (A) with (DIN) and (RON) as (DIN)
and (RON) fields of ‘RCN’ packet, (ORG) as (TGT) field of ‘RCN’ packet and
(TGT) as (ORG) field of ‘RCN’ packet. Forward this packet to (RPO) field of
‘RCN’ packet with the (RCT) field of ‘RCN’ packet updated as (RCT) field of
‘RCN’ packet + (LCT) field of Neighbor_List corresponding to (RPO) and
(NNT) field of ‘RCN’ packet updated as the node that forwarded this ‘RCN’
packet.
3.
Delete the entry in its RPR_Table with the (DIN), (RON), (ORG) and (TGT)
fields same as (DIN), (RON), (ORG) and (TGT) fields of ‘RCN’ packet.
Update the entry in its Routing_Table (A) with the (DIN), (RON), (ORG) and
(TGT) fields same as (DIN), (RON), (ORG) and (TGT) fields of ‘RCN’ packet
such that make (NH) as the node that forwarded this ‘RCN’ packet, (HPC) and
(RCT) as (HPC) and (RCT) fields of ‘RCN’ packet and Timeout as
Current_Time + Route_Life. Let node ‘M’ be the (NH) field of Routing_Table
Reactive Routing Protocol for Mobile Ad-Hoc Networks
47
(A) corresponding to route towards (ORG). Send a ‘MOD’ packet to the node
‘N’ that forwarded this ‘RCN’ packet with the fields of ‘MOD’ packet as
Packet Type, (TYP)
=
9
Hop Count, (HPC)
=
(HPC) field of Routing_Table (A)
corresponding to route towards (ORG)
Route Cost, (RCT)
=
(RCT) field of Routing_Table (A)
corresponding to route towards (ORG) + (LCT)
field of Neighbor_List corresponding to ‘N’
Dis_Identification No., (DIN) =
(DIN) field of ‘RCN’ packet
Route No., (RON)
(RON) field of ‘RCN’ packet
=
Next hop towards Target, (NT)
=
‘A’
Next to next hop towards Target, (NNT)
=
‘M’
Originator Address, (ORG)
=
(TGT) field of ‘RCN’ packet
Target Address, (TGT)
=
(ORG) field of ‘RCN’ packet
Also send a ‘MOD’ packet to ‘M’ with the fields of ‘MOD’ packet as
Packet Type, (TYP)
=
9
Hop Count, (HPC)
=
(HPC) field of ‘RCN’ packet
Route Cost, (RCT)
=
(RCT) field of ‘RCN’ packet +
(LCT) field of Neighbor_List corresponding to ‘M’
Dis_Identification No., (DIN) =
(DIN) field of ‘RCN’ packet
Route No., (RON)
(RON) field of ‘RCN’ packet
=
Next hop towards Target, (NT)
=
‘A’
Next to next hop towards Target, (NNT)
=
‘N’
Originator Address, (ORG)
=
(ORG) field of ‘RCN’ packet
Target Address, (TGT)
=
(TGT) field of ‘RCN’ packet
Note: ‘A’, ‘M’ and ‘N’ mean IP address of nodes ‘A’, ‘M’ and ‘N’.
Reactive Routing Protocol for Mobile Ad-Hoc Networks
48
3.3.11. Event 11: Node ‘A’ receives ‘MOD’ packet
Caused by: Layer below network layer of node ‘A’
Action taken by node ‘A’:
1.
Update the entry in Routing_Table (A) with (DIN), (RON), (ORG) and (TGT)
fields same as (DIN), (RON), (ORG) and (TGT) fields of ‘MOD’ packet such
that make (HPC) as 1 + (HPC) field of ‘MOD’ packet, (RCT) as (RCT) field of
‘MOD’ packet, (NH) as (NT) field of ‘MOD’ packet, (NNH) as (NNT) field of
‘MOD’ packet and Timeout as Current_Time + Route_Life.
Note: ‘A’ means IP address of node ‘A’.
Reactive Routing Protocol for Mobile Ad-Hoc Networks
49
Chapter - 4
Performance Evaluation
_____________________________________________________________________
To gain an insight into the performance of Reactive Routing Protocol, a simulator is
developed in java to compare the bandwidth consumption in case of Flooding Method
(FM), Expanding Ring Method (ERM) and in case of RRP. Simulator preview is
shown in Figure 3. The metric to measure the bandwidth consumption is taken as the
number of links traversed by routing packets. The inputs to the simulator are Size of
network (i.e. total number of nodes in the network), Density of network (i.e. degree of
each node in the network) and Distance to target (i.e. number of hops from originator
node to target node).
Some results of simulation for varying inputs are plotted in the form of following
graphs:
Graph 1 : “No. of Links Traversed Vs Distance to target” for 1000 nodes network
with degree of each node as 3, 5, 7, 9, 11 and 15.
Graph 2 : “No. of Links Traversed Vs Degree of each Node” for 1000 nodes
network with Distance to target as 2, 3, 4, 5, 6 and 8.
Graph 3 : “No. of Links Traversed Vs Distance to target” for 100 nodes network
with degree of each node as 2, 3, 5, 8, 10 and 15.
Graph 4 : “No. of Links Traversed Vs Degree of each Node” for 100 nodes
network with Distance to target as 2, 3, 4, 5, 6 and 8.
_____________________________________________________________________
Note: The above simulator is available for use at http://www.geocities.com/arunmukhija/research.html
Reactive Routing Protocol for Mobile Ad-Hoc Networks
50
Figure 3:
Preview of Simulator.
Reactive Routing Protocol for Mobile Ad-Hoc Networks
51
No. of Nodes = 1000, Degree = 3
No. of Nodes = 1000, Degree = 5
6000
8000
7000
4000
FM
3000
ERM
RRP
2000
No. of Links Traversed
No. of Links Traversed
5000
1000
6000
5000
4000
3000
2000
1000
0
0
1
2
3
4
5
6
7
1
8
2
No. of Nodes = 1000, Degree = 7
4
5
6
7
8
No. of Nodes = 1000, Degree = 9
12000
16000
14000
8000
FM
6000
ERM
RRP
4000
No. of Links Traversed
10000
No. of Links Traversed
3
Distance to Target
Distance to Target
2000
12000
10000
8000
6000
4000
2000
0
0
1
2
3
4
5
6
7
8
1
2
Distance to Target
3
4
5
6
7
8
Distance to Target
No. of Nodes = 1000, Degree = 11
No. of Nodes = 1000, Degree = 15
35000
25000
30000
15000
FM
ERM
RRP
10000
No. of Links Traversed
No. of Links Traversed
20000
25000
20000
15000
10000
5000
5000
0
0
1
2
3
4
5
6
7
1
8
2
3
4
5
6
7
8
Distance to Target
Distance to Target
GRAPH 1
Reactive Routing Protocol for Mobile Ad-Hoc Networks
52
No. of Nodes = 1000, Distance to Target = 3
16000
16000
14000
14000
12000
12000
10000
FM
8000
ERM
RRP
6000
4000
No. of Links Traversed
No. of Links Traversed
No. of Nodes = 1000, Distance to Target = 2
2000
10000
8000
6000
4000
2000
0
0
3
5
7
9
11
13
15
3
5
Degree of each Node
16000
16000
14000
14000
12000
12000
10000
FM
8000
ERM
RRP
6000
4000
No. of Links Traversed
No. of Links Traversed
9
11
13
15
No. of Nodes = 1000, Distance to Target = 5
No. of Nodes = 1000, Distance to Target = 4
10000
8000
6000
4000
2000
2000
0
0
3
5
7
9
11
13
3
15
5
7
9
11
13
15
Degree of each Node
Degree of each Node
No. of Nodes = 1000, Distance to Target = 6
No. of Nodes = 1000, Distance to Target= 8
16000
35000
14000
30000
12000
10000
FM
8000
ERM
RRP
6000
4000
No. of Links Traversed
No. of Links Traversed
7
Degree of each Node
25000
20000
15000
10000
5000
2000
0
0
3
5
7
9
11
13
15
3
Degree of each Node
5
7
9
11
13
15
Degree of each Node
GRAPH 2
Reactive Routing Protocol for Mobile Ad-Hoc Networks
53
No. of Nodes = 100, Degree = 2
No. of Nodes = 100, Degree = 3
500
800
700
400
350
300
FM
250
ERM
200
RRP
150
100
No. of Links Traversed
No. of Links Traversed
450
600
500
400
300
200
100
50
0
0
1
2
3
4
5
6
7
1
8
2
3
5
6
7
8
No. of Nodes = 100, Degree = 8
1600
900
1400
800
1200
1000
FM
800
ERM
RRP
600
400
No. of Links Traversed
No. of Links Traversed
No. of Nodes = 100, Degree = 5
200
700
600
500
400
300
200
100
0
0
1
2
3
4
5
6
7
8
1
Distance to Target
2
3
4
5
Distance to Target
No. of Nodes = 100, Degree = 10
No. of Nodes = 100, Degree = 15
1600
1200
1400
800
FM
600
ERM
RRP
400
200
No. of Links Traversed
1000
No. of Links Traversed
4
Distance to Target
Distance to Target
1200
1000
800
600
400
200
0
0
1
2
3
4
5
1
Distance to Target
2
3
4
Distance to Target
GRAPH 3
Reactive Routing Protocol for Mobile Ad-Hoc Networks
54
No. of Nodes = 100, Distance to Target = 3
1600
1600
1400
1400
1200
1200
1000
FM
800
ERM
600
RRP
400
No. of Links Traversed
200
1000
800
600
400
200
0
0
15
Degree of each Node
Degee of each Node
No. of Nodes = 100, Distance to Target = 4
No. of Nodes = 100, Distance to Target = 5
1200
1600
1000
1200
1000
FM
800
ERM
RRP
600
400
No. of Links Traversed
No. of Links Traversed
1400
800
600
400
200
200
0
0
1
3
5
7
9
11
13
1
15
2
3
4
5
6
7
8
9
10
Degree of each Node
Degree of each Node
No. of Nodes = 100, Distance to Target = 6
No. of Nodes = 100, Distance to Target = 8
1000
1600
900
1400
700
600
FM
500
ERM
400
RRP
300
No. of Links Traversed
800
No. of Links Traversed
15
13
13
11
11
9
9
7
7
5
5
3
1
1
3
No. of Links Traversed
No. of Nodes = 100, Distance to Target = 2
1200
1000
800
600
400
200
200
100
0
0
1
2
3
4
5
6
7
1
2
3
4
5
Degree of each Node
Degree of each Node
GRAPH 4
Reactive Routing Protocol for Mobile Ad-Hoc Networks
55
Some of the observations from the graphs presented are as follows:
Observations from Graph 1 : RRP is found to be much more efficient than FM for
low distance to target, but this difference is diminished as distance to target increases.
Such that for a low degree of each node (=3) and high distance to target (=8), RRP is
actually less efficient than FM. However for higher degree of each node RRP continues
to be most efficient. RRP is more efficient than ERM for all the cases and this
difference is more and more evident as the degree of each node is increased and as the
distance to target is increased. Similar observations can be drawn from Graph 3 as
well.
Observations from Graph 2 : Both RRP and ERM are much more efficient than FM
for low distance to target. However this difference is reduced as distance to target is
increased. In face ERM is actually less efficient than FM when distance to target is
quite high (=8). RRP continues to be more efficient than ERM and the difference is
much higher for higher degree of each node and for higher distance to target. Similar
observations hold good for Graph 4 as well.
______________________________________________________________________
Note: Efficiency here means bandwidth efficiency and is measured in terms of number of links traversed.
Reactive Routing Protocol for Mobile Ad-Hoc Networks
56
Chapter - 5
Further Optimizations
_____________________________________________________________________
A number of further optimizations are possible in addition to the basic operation of
Reactive Routing Protocol described in Chapters 2 and 3. These optimizations which
may result in the improved performance of protocol are discussed as under.
•
Prefer to include stable neighbor nodes in a prospective route during route
discovery process. As the routes composed of stable nodes obviously tend to be
more stable and thus result in the reduced routing overhead during route
maintenance phase. The metric to measure Stability_Value of a neighbor node can
be taken as (Current_Time – Time the neighbor was first discovered). Preference
to a stable neighbor node can be given in the following ways.
1. Only the neighbor nodes having Stability_Value greater than some threshold
value are considered to be included in the route response packet.
2. Stability_Value can be made a part of link cost by some formula so that links
with lower transmission time and those towards more stable neighbor nodes
tend to preferred. Since in the basic operation of protocol we prefer routes
composed of lower link costs, the new formula for link cost to a neighbor node
would be directly proportional to the transmission time over that link and
inversely proportional to the Stability_Value of neighbor node. Different
weights can be assigned to the above two component values and the trade-off
is decided depending upon the preference for a more stable route or for a route
with lowest transmission time.
•
In the basic operation of protocol we have described link cost to a neighbor node
as the time required to traverse the link to this neighbor node. This link cost is
Reactive Routing Protocol for Mobile Ad-Hoc Networks
57
measured as part of the neighbor discovery process which is done quite frequently
after regular short intervals of time. At some point in time the link cost may reflect
an instantaneous peak in the transmission time due to a temporary increase in load
on this link. This instantaneous peak in the link cost may send in wrong signals
about the high congestion on this link, which is otherwise quite a congestion free
link. In order to enable link cost to reflect the correct congestion data on this link
over a large interval of time and to compensate for the occasional peaks in its
value, the link cost should be taken as the average of old value of link cost and
newly observed value of link cost. Again different weights can be assigned to
above two component values in computing the average depending on our
preference to give more significance to the currently observed congestion data or
the congestion data over a large interval of time.
•
If a node ‘A’ experiences congestion on its link to node ‘B’, it can adventure to
initiate the Surroundings Repair Method for this link in the hope to find an
alternate route which is less congested and hence faster than the present route.
Thus the Surroundings Repair Method can be initiated not just in case of link
failures but also in case of congested links.
Reactive Routing Protocol for Mobile Ad-Hoc Networks
58
Chapter - 6
Future Work
_____________________________________________________________________
Future work on this project involves the following.
•
Security considerations and the problem of non cooperative nodes are not
addressed here and the future work may be the addressal of these issues.
•
Interconnection of mobile ad-hoc network with an infrastructure based network
may also be part of the future work.
•
Links between two nodes are assumed to be symmetric i.e. bidirectional. This
assumption poses no problems in the working of protocol because if a
unidirectional link is encountered it can not be used due to its inability to forward
response packet in the reverse direction of discovery packet, and thus a
unidirectional link will not be included in the formation of any route. The future
work may be to identify some way of utilizing unidirectional links in the
formation of routes.
Reactive Routing Protocol for Mobile Ad-Hoc Networks
59
Chapter - 7
Conclusion
_____________________________________________________________________
This thesis has presented a new on-demand routing protocol called “Reactive Routing
Protocol” for mobile ad-hoc networks, to provide a bandwidth efficient routing
solution for such networks. Route Discovery part of this protocol is managed by
Incremental Search Method which is more bandwidth efficient than conventional
broadcast based methods used for route discovery in other protocols suggested for
MANETs. Bandwidth efficiency of Incremental Search Method is primarily due to
reduced number of links traversed for the same routes discovered as compared to the
broadcast based methods. This efficiency is further augmented by the supplementary
routing information available to the originator node and other intermediate nodes as an
additional benefit of route discovery process, which helps in expediting future route
discoveries. Route Maintenance function of this protocol is taken care of by
Surroundings Repair Method, which stimulates each node to repair and maintain its
local surroundings to ensure the connectivity of each route passing through it. Thus
the Surroundings Repair Method also helps in reducing routing overhead and thus
adds to the overall bandwidth efficiency of this protocol. The bandwidth efficiency
characteristic of this protocol is well supported by the simulation results presented.
Reactive Routing Protocol for Mobile Ad-Hoc Networks
60
References
[1] S. Corson and J. Macker, “Mobile Ad-Hoc Networking (MANET): Routing
Protocol Performance Issues and Evaluation Considerations”, IETF RFC 2501,
January 1999.
[2] Elizabeth M. Royer and C-K Toh, “A Review of Current Routing Protocols for
Ad-Hoc Mobile Wireless Networks”, IEEE Personal Communications, Vol. 6,
No. 2, pp. 46-55, April 1999.
[3] David B. Johnson, “Routing in Ad Hoc Networks of Mobile Hosts”, Proceedings
of IEEE Workshop on Mobile Computing Systems and Applications, December
1994.
[4] Andrew S. Tanenbaum, “Computer Networks”, Third Edition, Prentice Hall of
India, Chapter 5, pp. 339-478, October 2000.
[5] J.-P. Hubaux, Th. Gross, J.-Y. Le Boudec and M. Vetterli, “Towards SelfOrganized Mobile Ad Hoc Networks: The Terminodes Project”, IEEE
Communications Magazine, January 2001.
[6] Charles E. Perkins and Pravin Bhagwat, “Highly Dynamic DestinationSequenced Distance-Vector Routing (DSDV) for Mobile Computers”, Computer
Communications Review, pp. 234-244, October 1994.
[7] Atsushi Iwata, Ching-Chuan Chiang, Guangyu Pei, Mario Gerla and Tsu-Wei
Chen, “Scalable Routing Strategies for Ad Hoc Wireless Networks”, IEEE
Journal on Selected Areas in Communications, Special Issue on Ad-Hoc
Networks, pp. 1369-79, August 1999.
Reactive Routing Protocol for Mobile Ad-Hoc Networks
61
[8] Shree Murthy and J. J. Garcia-Luna-Aceves, “An Efficient Routing Protocol for
Wireless Networks”, ACM Mobile Networks and Applications Journal, Special
Issue on Routing in Mobile Communication Networks, pp. 183-197, October
1996.
[9] Shree Murthy and J. J. Garcia-Luna-Aceves, “A Routing Protocol for Packet
Radio Networks”, Proceedings of MOBICOM’95, pp. 86-95.
[10] Ching-Chuan Chiang, Hsiao-Kuang Wu, Winston Liu, Mario Gerla, “Routing in
Clustered Multihop, Mobile Wireless Networks with Fading Channel”,
Proceedings of IEEE SICON’97, pp. 197-211, April 1997.
[11] Tsu-Wei Chen and Mario Gerla, “Global State Routing: A New Routing Scheme
for Ad-Hoc Wireless Networks”, Proceedings of IEEE ICC’98.
[12] David B. Johnson and David A. Maltz, “Dynamic Source Routing in Ad-Hoc
Wireless Networks”, Mobile Computing, edited by Tomasz Imielinski and Hank
Korth, Kluwer Academic Publishers, Chapter 5, pp. 153-181, 1996.
[13] David B. Johnson, David A. Maltz, Yih-Chun Ho and Jorjeta G. Jetcheva, “The
Dynamic Source Routing Protocol for Mobile Ad-Hoc Networks”, IETF Internet
Draft draft-ietf-manet-dsr-05.txt, March 2001 (Work in Progress).
[14] David A. Maltz, Josh Broch, Jorjeta Jetcheva and David B. Johnson, “The Effects
of On-Demand Behavior in Routing Protocols for Multi-Hop Wireless Ad Hoc
Networks”, IEEE Journal on Selected Areas in Communications, Special Issue on
Mobile And Wireless Networks, August 1999.
[15] Charles E. Perkins and Elizabeth M. Royer, “Ad Hoc On-Demand Distance
Vector Routing”, Proceedings of 2nd IEEE Workshop on Mobile Computing
Systems and Applications, February 1999.
Reactive Routing Protocol for Mobile Ad-Hoc Networks
62
[16] Charles E. Perkins, Elizabeth M. Royer and Samir R. Das, “Ad Hoc OnDemand Distance Vector (AODV) Routing”, IETF Internet Draft draft-ietfmanet-aodv-08.txt, March 2001 (Work in Progress).
[17] Vincent D. Park and M. Scott Corson, “A Highly Adaptive distributed Routing
Algorithm for Mobile Wireless Networks”, Proceedings of INFOCOM’97, April
1997.
[18] V. Park and S. Corson, “Temporally-Ordered Routing Algorithm (TORA)
Version 1 Functional Specification”, IETF Internet Draft draft-ietf-manet-toraspec-04.txt, July 2001 (Work in Progress).
[19] Chai-Keong Toh, “A Novel Distributed Routing Protocol To Support Ad-Hoc
Mobile Computing”, Proceedings of 1996 IEEE Fifteenth Annual International
Phoenix Conference on Computers and Communications, pp. 480-486, March
1996.
[20] Zygmunt J. Haas, “A New Routing Protocol for The Reconfigurable Wireless
Networks”, Proceedings of IEEE International Conference on Universal Personal
Communication (ICUPC’97).
Reactive Routing Protocol for Mobile Ad-Hoc Networks
63
Appendix
A.1. Terminology Used
Node:
A MANET router that implements Reactive Routing Protocol and is
identified by a unique IP address.
Link:
A logical connection between two nodes, such that these nodes can
communicate with each other directly without the need of any
intermediate node.
Neighbor:
Two nodes are said to be neighbors if they are within each others
communication range i.e. a link exists between them.
Topology:
Described by a random graph whose vertices represent the set of nodes
and edges represent the set of links between nodes.
Route:
A route from node ‘a’ to node ‘b’ is a sequence of links required to be
traversed in a fixed order by a packet, in order to reach from node ‘a’ to
node ‘b’.
Hop:
A link required to be traversed by a data or control packet . Hop count
of a route is equal to number of links composing the route.
Active Route: A route that has been used to forward data packet within last
“Route_Life” interval of time.
Passive Route: A route that has not been used to forward data packet within last
“Route_Life” interval of time.
Reactive Routing Protocol for Mobile Ad-Hoc Networks
64
A.2. List of Acronyms
ABR
Associativity Based Routing
AODV
Ad Hoc On-Demand Distance Vector Routing
CGSR
Clusterhead Gateway Switch Routing Protocol
DSDV
Highly Dynamic Destination-Sequenced Distance-Vector Routing
DSR
Dynamic Source Routing Protocol
FSR
Fisheye State Routing
GSR
Global State Routing
ISM
Incremental Search Method
MANET
Mobile Ad-Hoc Network
RRP
Reactive Routing Protocol
SRM
Surroundings Repair Method
TORA
Temporally-Ordered Routing Algorithm
WRP
Wireless Routing Protocol
ZRP
Zone Routing Protocol
Reactive Routing Protocol for Mobile Ad-Hoc Networks
65