This is G o o g l e's cache of http://www.ctr.columbia.edu/~angin/e6950/sameh/aodv_final.html.
G o o g l e's cache is the snapshot that we took of the page as we crawled the web.
The page may have changed since that time. Click here for the current page without highlighting.
Google is not affiliated with the authors of this page nor responsible for its content. |
| These search terms have been highlighted: | wireless | ad | hoc | mode |
|
|
Simulation Environment for an Ad-Hoc Wireless Network
Simulation Environment for an Ad-Hoc Wireless Network
Running the AODV Routing Algorithm
EE6950: Wireless and Mobile Networking
Class Project Report
1. Introduction
Mobile Computing continues to enjoy rapid growth thanks to
recent technological advances in laptop computers. Moreover,
wireless data communication devices, such as wireless modems and
LANs, are becoming more and more popular as prices continue to
drop and data rates to rise. Wireless communications among
mobile users is therefore becoming more popular than ever
before.
There are two distinct approaches for enabling wireless mobile
computers to communicate with each other. The first is to
utilize the existing cellular network infrastructure originally
developed for voice communications using cellular phones. This
approach benefits from exploiting existing infrastructure to
carry data as well as voice. Among the major problems of this
approach is the problem of handoff: As a mobile host moves out
of the range of one base station and into the range of another,
how should the connection be smoothly handed over to the new
base station without noticeable delay or packet loss. The other
approach is to let users who wish to communicate with each other
form an ad-hoc network and collaborate amongst themselves
to deliver data packets from a source to its destination
possibly via one or more intermediate nodes. This form of
networking, although limited in range by the individual node's
transmission range, has several advantages when compared to
traditional cellular systems. The advantages of ad-hoc networks
include:
- On demand setup: Ad-hoc wireless networks don't rely on
wired basestations and therefore are capable of being deployed
in places with no existing infrastructures. This is
particularly useful in two scenarios:
- Disaster recovery
situations in places with non-existing or damaged
communications infrastructure and rapid deployment of a
communication network is needed.
- Conferencing among a group of people who wish to form a
temporary network without necessarily engaging the services of
any pre-existing network in the vicinity.
- Fault Tolerance: In a cellular system, a malfunction in
the base station will impair all mobiles in its cell. In
ad-hoc networks, a malfunction in one node can be easily
overcome through network reconfiguration.
- Unconstrained Connectivity: Wireless ad-hoc
networks take advantage of the nature of
the wireless communication medium. In other words, in a wired
network the physical cabling is done a priori restricting the
connection topology of the nodes. This restriction is not
present in the wireless domain and, provided that two nodes
are within hearing distance of each other, an instantaneous
link between them is automatically formed.
The objective of this project is to investigate the routing
problem in an ad-hoc wireless network. In particular, a novel
routing algorithm: Ad-Hoc On-Demand
Distance Vector Routing (AODV) as proposed by
Charles E. Perkins was implemented and simulated using a
collection of wireless nodes. The simulation environment was
designed from ground-up using Maisie programming language.
The remainder of this report is organized as follows: Section 2
describes the basic AODV algorithm showing its design goals,
architectural assumptions and principle of operation. In section
3, the simulation environment is explained: First an overview of
its software architecture is shown followed by a detailed
presentation of each of the major components involved. Some
preliminary test results are discussed in section 4. Finally,
possible directions for future work is presented in section 5.
2. The AODV Routing Algorithm
2.1 Introduction
The AODV routing algorithm [1] allows a
network of wireless nodes to communicate with each other by
cooperating in routing the data packets from source to destination
possibly through one or more intermediate nodes. The algorithm
tries to achieve a balanced tradeoff between the amount of
up-to-date routing information stored in every node and the
latency in finding a route to any given destination when
needed. One extreme is to keep complete routing information for
every possible destination stored in every node and thereby
ensuring immediate availability of routes when needed. Obviously
this will require a large overhead of routing messages that flood
the network and can be viewed as a brute force approach. The other
extreme is for every node to request routing information only when
it needs to communicate and thereby minimizing the amount of
routing messages in the network. However, the drawback of this
method is that the node might have to wait for an unpredictable
and/or untolerable amount of time between requiring a route and
sending the first data packet. The AODV algorithm tries to
establish a smooth middle point of operation between those two
extremes. The algorithm builds on a previous routing algorithm,
the Destination-Sequenced Distance-Vector Routing Algorithm (DSDV)
[2], and tries to alleviate some of the
problems associated with it. The design goals of the AODV
algorithm can thus be summarized as follows:
- To eliminate the need for global broadcast of
routing information throughout the ad-hoc network. This was a
major drawback with the DSDV algorithm limiting its scalability
to large populations of nodes.
- To minimize the latency when new routes are needed.
2.2 Architectural Assumptions
The AODV algorithm does not make any specific assumptions on the
underlying physical medium other than the following:
- Neighboring nodes can hear each other's broadcast:
Neighboring nodes are nodes separated by a distance less than
the transmission range of each node.
- Links between neighboring nodes are symmetric: If node A
can hear node B's transmission, this implies that node B can
hear node A's transmission.
2.3 Principle of Operation
For the routing to work efficiently, every node in the network
agrees to abide by a simple set of rules which collectively
constitute the AODV algorithm. The basic rules are (Please refer
to Figures 1 and 2 for an illustrtive scenario):
2.4 Advanced AODV features
The AODV algorithm provides a set of advanced features over the
basic algorithm mentioned above to further enhance its
performance. This includes backbone formation and promiscuous mode
of operation. However, these features are beyond the scope of this
project. The interested reader is referred to reference [1] for more details.
3. Wireless Ad-Hoc Network Simulation Environment
3.1 Overview
Figure 3 shows an overview of the software architecture of the
simulation envirnoment. It is composed of a collection of
maisie entities, each running autonomously in an infinite loop
until stopped by an end of simulation signal. Communications
among these entities is done through maisie
messages. Most message tpyes have a direct relation to
actual communication packets (e.g. hello, rreq, data_pkt)
although some messages are strictly for simualtion use
(e.g. send_data). The former will have a positive time-delay
associated with them while the latter are assumed to be
instantaneous.
The node entities represent the mobile
hosts in the ad-hoc network, each having a transmitter and
receiver sections. The nodes communicate with each other
through the channel entity which represents the wireless
medium. The LocationManager is an entity that simulates the
motion of the nodes. It updates the current position of each
node depending on user configurable motion parameters and
saves the updated information in a global structure called the
simulation table. This is in turn used by the channel to
decide which nodes are within "hearing distance" of each other.
The CommunicationManager simulates the network traffic
(i.e. application layer communications). It stimulates the
nodes to communicate with each other by invoking the source
node with a send_data message telling it which node it
should talk to and the length of the data packet.
Not shown in Figure 3 is the driver entity. This is
the equivalent of the main() function of a C-program. The
driver entity creates all other entities and prints out all
network statistics when the simulation time is over.
3.2 Assumptions
Before proceeding with a detailed description of the
aforementioned simulation entities, it might be instructive to
list the simplifying assumptions made in this environment:
- A node can transmit and receive at the same time. In
other words, there are separate uplink and downlink
channels. Furthermore, the node has separate data and routing
channels, thus it can transmit and receive data and routing
simultaneously. However, the node cannot transmit or receive
more than one data or routing packet at the same time.
- The node is assumed to have infinitely large transmission
and reception buffers. The packets get buffered until consumed
by the node in case of reception or until the transmitter is
ready in case of transmission.
- All network operations are communication bound. This
means that the processing time of the routing and data packets
is negligibly small compared to the communication time.
- Wireless channel impairements are not modeled. The
channel will always forward the message from one node to the
next provided that they are within hearing distance. Although
this is not a practical scenario, it should not affect the
simulation since we are only concerned with the routing
algorithm efficiency.
- The maximum speed of motion of any node is much less than
the speed of transmission of the longest data
packet. Therefore no partial packets are received: Either the
node will receive the whole packet if it is in the range of
transmission of the sending node or it will receive nothing if
it is out of range.
- Currently the routing algorithm does not make any retry
attempts on failed transmissions. It merely reports the error
condition for measurements. This will result in somewhat
pessimistic measurements because some communication failures
could be overcome by retransmission.
3.3 The Node Entity
The node entity is the central piece of the simulator. As
mentioned before, the node represents the mobile computer. It
implements the basic AODV routing algorithm: maintains tables
for routing information, neighbor information and pending route
requests. It also handles the three basic types of routing
messages: hello, rreq and rrep. Moreover, upon receiving a
trigger from the CommunicationManager, the node will send data
packets to the selected destination and wait for an acknowledge
signal. For performance evaluation, the nodes keep statistics
for the following quantities:
- The number of hellos, rreqs, rreps sent or received
- The time spent in sending or receiving data or ack packets
- The time spent in sending or receiving routing packets
- The number of data packets sent by the original source
- The number of data packets received by the final
destination
- The number of ack packets sent by the destination
- The number of ack packets received by the original source
of data
- The number of failures to forward data or ack packets due
to missing routing information
- The number of times a source times out while waiting for an
ack signal from the destination after sending a data packet.
These quantites are then individually averaged over all nodes in
the network and the times are reported as a percentage of the total
simulation time giving an overall measure of the efficiency of
the AODV algorithm.
3.4 The Channel
All communications between nodes go through the channel, which
represents the wireless medium. For simulation, the channel
consults the simulation table for the current location of the
communicating nodes. If they are within "hearing distance" then
the packet gets forwarded unaltered. Otherwise the packet is
dropped. The channel keeps track of dropped packets for
statistics. This also will be averaged over all nodes for
reporting.
Although currently very primitive, the idea of having a
channel entity in the simulation environment is very useful for
further development. It is in this entity where various channel
impairements such as bursty noise profiles or multipath fading
can be modeled. For a first implementation, however, it was
decided not to include these factors until the basic routing
algorithm becomes stable.
3.5 The LocationManager
To simulate the mobility of the nodes, the LocationManager
implements the following algorithm:
Every node stays stationary for a random period of time
between a lower limit, MINPAUSE, and an upper limit,
MAXPAUSE. It then will choose an arbitrary direction and move in
a straight line with a set speed for a set time. The speed is
again chosen randomly but lying within the range MINVEL and
MAXVEL and the motion time between MINMOVE and MAXMOVE. This way
the nodes appear to exhibit a random walk pattern, pausing and
moving alternately. By changing the pausing and moving time
limits, different average network mobilities can be
simulated. The average network mobility is defined as:

The idea is to study the performance of the AODV routing
algorithm and see its behavior as the average mobility is
increased.
3.6 The CommunicationManager
The CommunicationManager works in a similar manner to the
LocationManager in controlling the data traffic of the
network. Every node will refrain from communications (data and
not routing) for a while (MINWAIT - MAXWAIT). It will then
choose a destination at random and send to it a sequence of data
packets. The sending time, and hence the number of packets, is
controlled by the parameters MINBURST and MAXBURST. Two types of
data packets are modeled: A long packet with an average of 1016
bytes +-10% and a short packet with an average of 48 bytes +-
10%. The short packets mimic commands and the long packets
mimic data packets. Every time a node wishes to send it will
pick either the short or the long packet profile at random.
As the case with the mobility, the measured average
communication load is directly related to the controlling
parameters. The simulator will calculate average times for
engaging in data communications and routing communications
measured at each node as a percentage of the total time. This
will enable measuring the performance of the AODV routing
algorithm as the network traffic is varied.
4. Preliminary Results
A set of tests were run to get some preliminary measurements on
the AODV routing algorithm as well as test the simulation
environment itself. The following test conditions were
maintained throughout all tests:
- Number of Nodes: 16
- Total Area available: Square 9x9 m
- Minimum velocity of a moving node: 1 m/s
- Maximum velocity of a moving node: 2 m/s
- Total Simulation Time: 1000 msec
With the above parameters, the average mobility of the network
was increased by changing the ratio between the pausing and the
moving times of the nodes. The nodes were initially placed on a
two-dimensional grid with a distance of 2 m between neighboring
nodes. Although this is far from realistic, it helped debug the
simulation setup since it ensured complete connectivity when the
nodes were not allowed to move. Statistics for the number of routing
as well as data messages were recorded and are shown in Figures
4 and 5.


The following observations were made:
- Although the average number of routing messages is
greater than the number of data packets, the actual time spent
on routing packets is much less than the time spent sending or
receiving data. This is because the average length of the data
packets is an order of magnitude larger than that of routing
messages. Although not shown in the figures, the above tests
recorded that on the average, every node spent 36 % of the
time sending or receiving data and only 1.6 % of the time
sending or receiving routing messages.
- Examining Figure 5, the following anomaly was observed:
When a node receives a route request for which it has the
answer in its routing table, it replies with the route rather
than forwarding it to the destination (so as to cut on the
unnecessary propagation of further rreqs). Now the route
reply is unicast back to the source and the source can in turn
start to communicate with the destination. The problem here is
that the reverse path is only set up to the point of the node
that replied and may not be set up all the way to the
destination. This manifests itself when the destination
receives the packet, it sometimes cannot send an ack back to
the source when it has no routing info for it. (Notice
that the number of ACKs sent is less than the number of data
packets received even with a fixed topology and no mobility
where everything should be ideal ).
A possible solution is to introduce a new type of routing
message: This will get unicast to the destination from the
node that replied. All nodes along the path will then update
their routing info to the source.
5. Future Work
The possibilities for further research on this project are
endless. There are three main directions for future work:
- Enhancements of the current implementation of the AODV
algorithm: As mentioned earlier, the current version of the
simulation implements only the basic AODV algorithm and even
that cannot be considered complete yet. Besides completing the
basic algorithm, various advanced features as described in
section 2 can be implemented and tested.
- Enhancements to the simulation environment: Currently the
simulator runs in batch mode. The user sets the desired
parameters to control the environment, runs the simulation and
examines the output at the end. A more interactive approach
would be desirable, where one can single step through the
simulation time and interactively set parameters and query node
information. Furthermore, the current means to visualize the
ad-hoc network is through netviz
software. Although powerful and
easy to use, it remains an output-only tool. A more elaborate
graphical user interface is sought where the user can for
example click on a node and query its routing table.
- Restructuring the implementation of AODV so as to be able to
run the same code on the simulator as well as on real wireless
networks: Obviously, the role of the simulation ends after being
satisfied with the performance of the AODV algorithm and the
next step is to apply the code on actual hardware. By being able
to use the same code, many potential problems of porting and
code maintenance can be avoided.
Acknowledgements
I thank Prof. Andrew Campbell for the wealth of knowledge I gained
through him teaching this course. I also thank Charles Perkins for
allowing me to work with him on simulating his routing
algorithm. Many thanks to George Aggelou for his support in
programming the AODV algorithm.
References
- Charles E. Perkins. Ad-hoc On Demand
Distance Vector Routing (unpublished work).
- Charles E. Perkins & Pravin
Bhagwat. Highly Dynamic Destination-Sequenced Distance-Vector
Routing (DSDV) for Mobile Computers, ACM Sigcomm ,
pp. 234-244, August 1994.
-
David Johnson & David Maltz. Dynamic Source Routing in
Ad-Hoc Wireless Networks,Mobile Computing, Tomasz
Imelinsky, editor. Kluwer Academic Publishers, 1996. To be
published.
-
R. Bagrodia et al. A Hierarchical Simulation
Environment for Mobile Wireless Networks,Proceedings of the
1995 Winter Simulation Conference , December 1995.
- Maisie Programming
Language.
- NetViz : A
network visualization tool from RoofTop Communications.