Reactive Routing Protocol for Mobile Ad-Hoc Networks · Reactive Routing Protocol for Mobile Ad-Hoc...

66
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

Transcript of Reactive Routing Protocol for Mobile Ad-Hoc Networks · Reactive Routing Protocol for Mobile Ad-Hoc...

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

Reactive Routing Protocol for Mobile Ad-Hoc Networks 1

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 2

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 3

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 4

Contents

1. 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

2. Overview of Reactive Routing Protocol 9

2.1. Route Discovery 9

2.2. Route Maintenance 15

3. 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. List of Acronyms 65

Reactive Routing Protocol for Mobile Ad-Hoc Networks 5

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 search-

and-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 6

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 7

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 8

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 9

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 10

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 11

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 12

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 13

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 14

C T

A

D

O

E

B

F

(a)

C T

A

D

O

E

B

F

(b)

Figure 1: Route discovery process showing link traversals by routing packets in

(a) broadcast method, and (b) Incremental Search Method of RRP.

No. of Links Traversed = 26

Route Discovery Packet / Route Verification Packet

Route Confirmation Packet

Route Discovery Packet / Route Verification Packet

Route Confirmation Packet

Route Response Packet

No. of Links Traversed = 20

Reactive Routing Protocol for Mobile Ad-Hoc Networks 15

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 16

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 17

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 18

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 19

3.1. Packet Formats of Routing Packets

3.1.1. Route Discovery Packet �DIS�

(TYP) Packet Type

(HPC) Hop Count

(RCT) Route Cost

(DIN) Dis_Identification No.

(K) No. of Dis_Targets

(DIV) Dis_Via Address

(DIT [1]) Dis_Target Address [1]

| |

(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 20

3.1.3. Route Response Packet �RES�

(TYP) Packet Type

(HPC) Hop Count

(RCT) Route Cost

(DIN) Dis_Identification No.

(N) No. of Neighbors

(DIT) Dis_Target Address

(ORG) Originator Address

(TGT) Target Address

(NBR [1]) Neighbor Address [1]

| |

(NBR [N]) Neighbor Address [N]

(LCT [1]) Link Cost [1]

__ __ (LCT [N]) Link Cost [N]

3.1.4. Route Confirmation Packet �CON�

(TYP) Packet Type

(HPC) Hop Count

(RCT) Route Cost

(DIN) Dis_Identification No

(RON) Route No.

(NNT) Next to Next Hop towards Target

(ORG) Originator Address

(TGT) Target Address

Reactive Routing Protocol for Mobile Ad-Hoc Networks 21

3.1.5. Route Acknowledgement Packet �ACK�

(TYP) Packet Type

(DIN) Dis_Identification No

(RON) Route No.

(NNO) Next to Next Hop towards Originator

(ORG) Originator Address

(TGT) Target Address

3.1.6. Route Invalid Packet �INV�

(TYP) Packet Type

(INT) Invalid Type

(DIN) Dis_Identification No

(RON) Route No.

(SIN) Sender of INV Packet

(ORG) Originator Address

(TGT) Target Address

3.1.7. Route Modification Packet �MOD�

(TYP) Packet Type

(HPC) Hop Count

(RCT) Route Cost

(DIN) Dis_Identification No

(RON) Route 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 22

3.1.8. Route Repair Packet �RPR�

(TYP) Packet Type

(HPC) Hop Count

(RCT) Route Cost

(DIN) Dis_Identification No

(RON) Route No.

(RPO) Repair_Originator Address

(RPT) Repair_Target Address

(ORG) Originator Address

(TGT) Target Address

3.1.9. Route Repair Confirmation Packet �RCN�

(TYP) Packet Type

(HPC) Hop Count

(RCT) Route Cost

(DIN) Dis_Identification No

(RON) Route 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 23

3.2. Data Structures Maintained by Each Mobile Node

3.2.1. Active Routing Table <Routing_Table (A)>

(DIN) Dis_Identification 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

3.2.2. Passive Routing Table <Routing_Table (P)>

(DIN) Dis_Identification 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

Time

Reactive Routing Protocol for Mobile Ad-Hoc Networks 24

3.2.3. Discovery Table <DIS_Table>

(DIN) Dis_Identification

No.

(TGT) Target Address

Timeout

(NCD) Nodes Covered

RES Received

(Yes / No)

3.2.4. Dis_Identification Number Table <DIN_Table>

(DIN) Dis_Identification No.

(TGT) Target Address

Reactive Routing Protocol for Mobile Ad-Hoc Networks 25

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 26

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

Repair_Flag (Yes / No)

Timeout

Reactive Routing Protocol for Mobile Ad-Hoc Networks 27

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 28

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 29

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 30

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 31

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]) = (NBR) fields of Neighbor_List

Link Costs, (LCT [1] .. [N]) = (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 32

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 33

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 34

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 35

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 36

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 37

(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)

Originator Address, (ORG) = (ORG) field of �CON� packet

Target Address, (TGT) = (TGT) field of �CON� packet

3. 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 38

(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 39

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 40

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

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�

3. 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 41

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�

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�

4. 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 42

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 43

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 44

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 45

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 46

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 47

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 48

(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 49

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 50

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 51

Figure 3: Preview of Simulator.

Reactive Routing Protocol for Mobile Ad-Hoc Networks 52

GRAPH 1

No. of Nodes = 1000, Degree = 3

0

1000

2000

3000

4000

5000

6000

1 2 3 4 5 6 7 8

Distance to Target

No.

of L

inks

Tra

vers

ed

FMERMRRP

No. of Nodes = 1000, Degree = 5

0

1000

2000

3000

4000

5000

6000

7000

8000

1 2 3 4 5 6 7 8

Distance to Target

No.

of L

inks

Tra

vers

ed

No. of Nodes = 1000, Degree = 7

0

2000

4000

6000

8000

10000

12000

1 2 3 4 5 6 7 8

Distance to Target

No.

of L

inks

Tra

vers

ed

FMERMRRP

No. of Nodes = 1000, Degree = 9

0

2000

4000

6000

8000

10000

12000

14000

16000

1 2 3 4 5 6 7 8

Distance to Target

No.

of L

inks

Tra

vers

ed

No. of Nodes = 1000, Degree = 11

0

5000

10000

15000

20000

25000

1 2 3 4 5 6 7 8

Distance to Target

No.

of L

inks

Tra

vers

ed

FMERMRRP

No. of Nodes = 1000, Degree = 15

0

5000

10000

15000

20000

25000

30000

35000

1 2 3 4 5 6 7 8

Distance to Target

No.

of L

inks

Tra

vers

ed

Reactive Routing Protocol for Mobile Ad-Hoc Networks 53

GRAPH 2

No. of Nodes = 1000, Distance to Target = 2

0

2000

4000

6000

8000

10000

12000

14000

16000

3 5 7 9 11 13 15

Degree of each Node

No.

of L

inks

Tra

vers

ed

FMERMRRP

No. of Nodes = 1000, Distance to Target = 3

0

2000

4000

6000

8000

10000

12000

14000

16000

3 5 7 9 11 13 15

Degree of each Node

No.

of L

inks

Tra

vers

ed

No. of Nodes = 1000, Distance to Target = 4

0

2000

4000

6000

8000

10000

12000

14000

16000

3 5 7 9 11 13 15

Degree of each Node

No.

of L

inks

Tra

vers

ed

FMERMRRP

No. of Nodes = 1000, Distance to Target = 5

0

2000

4000

6000

8000

10000

12000

14000

16000

3 5 7 9 11 13 15

Degree of each Node

No.

of L

inks

Tra

vers

ed

No. of Nodes = 1000, Distance to Target = 6

0

2000

4000

6000

8000

10000

12000

14000

16000

3 5 7 9 11 13 15

Degree of each Node

No.

of L

inks

Tra

vers

ed

FMERMRRP

No. of Nodes = 1000, Distance to Target= 8

0

5000

10000

15000

20000

25000

30000

35000

3 5 7 9 11 13 15

Degree of each Node

No.

of L

inks

Tra

vers

ed

Reactive Routing Protocol for Mobile Ad-Hoc Networks 54

GRAPH 3

No. of Nodes = 100, Degree = 2

0

50

100

150

200

250

300

350

400

450

500

1 2 3 4 5 6 7 8

Distance to Target

No.

of L

inks

Tra

vers

ed

FMERMRRP

No. of Nodes = 100, Degree = 5

0

200

400

600

800

1000

1200

1400

1600

1 2 3 4 5 6 7 8

Distance to Target

No.

of L

inks

Tra

vers

ed

FMERMRRP

No. of Nodes = 100, Degree = 8

0

100

200

300

400

500

600

700

800

900

1 2 3 4 5

Distance to Target

No.

of L

inks

Tra

vers

ed

No. of Nodes = 100, Degree = 10

0

200

400

600

800

1000

1200

1 2 3 4 5

Distance to Target

No.

of L

inks

Tra

vers

ed

FMERMRRP

No. of Nodes = 100, Degree = 3

0

100

200

300

400

500

600

700

800

1 2 3 4 5 6 7 8

Distance to Target

No.

of L

inks

Tra

vers

ed

No. of Nodes = 100, Degree = 15

0

200

400

600

800

1000

1200

1400

1600

1 2 3 4

Distance to Target

No.

of L

inks

Tra

vers

ed

Reactive Routing Protocol for Mobile Ad-Hoc Networks 55

GRAPH 4

No. of Nodes = 100, Distance to Target = 3

0

200

400

600

800

1000

1200

1400

1600

1 3 5 7 9 11 13 15

Degee of each Node

No.

of L

inks

Tra

vers

ed

No. of Nodes = 100, Distance to Target = 4

0

200

400

600

800

1000

1200

1400

1600

1 3 5 7 9 11 13 15

Degree of each Node

No.

of L

inks

Tra

vers

ed

FMERMRRP

No. of Nodes = 100, Distance to Target = 5

0

200

400

600

800

1000

1200

1 2 3 4 5 6 7 8 9 10

Degree of each Node

No.

of L

inks

Tra

vers

ed

No. of Nodes = 100, Distance to Target = 6

0

100

200

300

400

500

600

700

800

900

1000

1 2 3 4 5 6 7

Degree of each Node

No.

of L

inks

Tra

vers

ed

FMERMRRP

No. of Nodes = 100, Distance to Target = 2

0

200

400

600

800

1000

1200

1400

1600

1 3 5 7 9 11 13 15

Degree of each Node

No.

of L

inks

Tra

vers

ed

FMERMRRP

No. of Nodes = 100, Distance to Target = 8

0

200

400

600

800

1000

1200

1400

1600

1 2 3 4 5

Degree of each Node

No.

of L

inks

Tra

vers

ed

Reactive Routing Protocol for Mobile Ad-Hoc Networks 56

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 57

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 58

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 59

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 60

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 61

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 Self-

Organized Mobile Ad Hoc Networks: The Terminodes Project�, IEEE

Communications Magazine, January 2001.

[6] Charles E. Perkins and Pravin Bhagwat, �Highly Dynamic Destination-

Sequenced 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 62

[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 63

[16] Charles E. Perkins, Elizabeth M. Royer and Samir R. Das, �Ad Hoc On-

Demand Distance Vector (AODV) Routing�, IETF Internet Draft draft-ietf-

manet-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-tora-

spec-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 64

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 65

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