You are on page 1of 93

A GUARANTEED GEOCASTING USING VIRTUAL SURROUNDING FACE

APPROACH IN WIRELESS SENSOR NETWORKS

By

Registration Number: 97209405016

of
Sun College of Engineering and Technology

A PROJECT REPORT (Phase – II)

Submitted to the

FACULTY OF INFORMATION AND COMMUNICATION ENGINEERING

In partial fulfillment of the requirements


for the award of the degree
of

MASTER OF ENGINEERING

in

COMPUTER SCIENCE AND ENGINEERING

ANNA UNIVERSITY OF TECHNOLOGY


TIRUNELVELI

June 2011
BONAFIDE CERTIFICATE

Certified that this project report titled “A GUARANTEED GEOCASTING USING

VIRTUAL SURROUNDING FACE APPROACH IN WIRELESS SENSOR NETWORKS”

is the bonafide work of (Registration Number: 97209405016) who carried out

the research under my supervision. Certified further, that to the best of my knowledge the work

reported herein does not form part of any other project report or dissertation on the basis of

which a degree or award was conferred on an earlier occasion on this or any other candidate.

Supervisor Head of the Department

Submitted to Project Viva Voce Examination held on ________________

Internal Examiner External Examiner

ACKNOWLEDGEMENT
First and most obviously, I give all the glory and honor to our ALMIGHTY, THE
LORD for his abundant grace that sustained me to the successful completion of the report.
Second, my gratitude goes to Dr.E.Babu Raj M.E., M.S., Ph.D, Professor,
Department of Computer Science and Engineering, Sun College of Engineering and Technology,
, who guided me to carry out this research with interest and involvement.

I take privilege to thank Er.C.Thayaparan M.E, Chairman, Sun group of


Institutions, for his commendable support and encouragement for the completion of this thesis
work with perfection. With profound reference and high regards, I thank Dr. Sreenivasa
Purushothaman M.E., Ph.D, Principal Sun College of Engineering and Technology, for the
motivation provided by him during this research work which enabled me to complete this work
successfully.

I thank Mrs. R.A.Isabel M.E., Professor and Head, and Mr. S.Jeba Anand M.E.,
Assistant Professor, Department of Computer Science and Engineering, Sun College of
Engineering and Technology, for their guidance and help rendered in successfully completing
this thesis.

Finally, I thank my mother Mrs. T.Nagalakshmi for her continuous support and
blessings. I thank my father Mr.S.A.Perumal and my brother N.A.P.Karthikeyan for their
constant encouragement and prayer in doing this research work. I have been blessed, motivated
and helped by a great number of friends, colleagues and supporters throughout the thesis work
and my gratitude goes to all of them.

N.A.P.SIVASUBRAMANIYAN

ABSTRACT
Geocasting is a variation on the notion on the notion of multicasting. Geocasting is useful
for sending messages to nodes in a specified geographical region. This region is the geocast
region. Mobile enable Wireless Sensor Network (mWSN) has been proposed to realize large-
scale information gathering via networking wireless sensors and mobile sinks. Traditionally,
geocasting has been known as the appropriate scheme for providing effective data dissemination
from a source to all nodes in a geographically restricted region. However, since the geocasting
typically assumes the restricted region is stationary, it is hard to directly adopt the traditional
geocasting in order to offer effective data delivery to mobile sink groups that have
geographically collective mobility. In a geocasting problem, a message is sent from one node to
all the nodes located in a designated region. For example, a monitoring center needs to contact
all active sensors within a monitored area to either gather data from them periodically or provide
its location to sensors covering a certain area for event reporting. Intelligent flooding methods
exist for this task when all active sensors belong to the monitored area. However, when a
particular area containing only a small subset of active sensors needs to be monitored, the
problem reduces to geocasting. Most existing geocasting solutions are shown not to guarantee
delivery. Some of them achieve guaranteed delivery with high cost. A VSFG technique is
proposed here to achieve geocasting with guaranteed delivery with low cost. VSFG assumes the
nodes to be stationary at the time of Geocasting. A SKIP method and a local DS based restricted
flooding technique are also proposed to further reduce the cost. Later, VSFG is compared with
some of the existing techniques.
ததடடடபடபணதசட சரகடகமட
கமடபதயதலடலல உணரதகளதனட பதணணயதடததலட, ஓரட உணரதயதலதரநடத, பதணணயதடததலட கறதபடபதடடட ஏததனமட
ஒர பகததயதலட உளடள உணரதகளகடக தகவலட அனபடபவத ஜததயலகலஸடடஙட எனபடபடமட. (எ.கல) ஓரட
உணரடவத, பதணணயதடததனட ஒர பகததணய கணடகலணததடத, தகவலட தசகரததடத, அவடவபடதபலத
அதனணடய இரபடபதடமட மறடறமட அணதசட சலரடநடத தகவலடகணள அபடபகததயதலட உளடள உணரதகளகடக
ததரதயபடபடதடதகதறத. இதறடக பறடபல உகடததகளட நணடமணறயதலட இரநடதலலமட, அணவ அணனதடத
உணரதகளகடகமட தகவலட அனபடபவணததய இலகடகலககட தகலணடட தசயலடபடகதனடறன. சதல உகடததகளட
கறதபடபதடடட இடதடததலட உளடள உணரதகளகடக தகவலட அனபடபதனலலமட, அணவ அததக தநரதடணத
எடதடததகலளடகதனடறன. தமலமட தகவலட கதணடகடகமட உதடததரவலதமமட இலடணல.
இபடபதரசடசணனகடக ததரடவ கலணமட தநலகடகதலட, வதரடசடசவலட சரடதரரணடடஙட தபஸட ஜததயலகலஸடடஙட எனடகதற
பததய உகடததணயகட ணகயலணடட கணறநடத தநரதடததலட உதடததரவலதமலன மணறயதலட தகவலட அனபடபமட
மணறணய இஙடதக மறடதபலதடதளடதளனட.

CHAPTER TITLE Page No

Abstract i
ததடடடபடபணதசட சரகடகமட ii

1. Introduction 1

1.1. Networks 1
1.1.1 Client Server Networks 1
1.1.2 Peer-to-Peer Networks 1
1.1.3 Wireless Networks 2
1.1.4 Mobile Ad Hoc Networks 2
1.1.5 Wireless Sensor Networks 3
1.2 Research on Wireless Sensor Networks 3
1.3 Characteristics 5
1.4 Applications 7
1.4.1 Environmental Monitoring 7
1.4.2 Hazard Monitoring 8
1.4.3 Disaster Monitoring 8
1.4.4 Military Applications 8
1.4.5 Health Care Applications 8
1.4.6 Industrial Process and Control 9
1.4.7 Security and Surveillance 9
1.4.7.1 Home Intelligence 10
1.4.7.2 Smart Home 10
1.4.7.3 Remote Metering 10
1.5 Design Challenges 11
1.6 Design Objectives 12
1.7 Geocasting 14
1.8 Issues and Challenges 15
1.9 Routing Protocols for Geocasting 16
1.9.1 Routing with Flooding:Simple Flooding 16
1.9.2 Routing with Directed Flooding: LBM 16
1.9.3 Vornoi Diagrams 17
1.9.4 Mesh 17
1.9.5 Routing without Flooding: URAD 17
1.10 Problem Statement 17
1.11 Benefits of this Project 18
1.12 Organization of the thesis 18

2 Literature Survey 19

3. Design of the Project 31

3.1. Concept of Virtual Surrounding Face 31

3.2 Distributed Virtual Surrounding Face Geocasting Algorithm 31

3.3 Packet Forwarding Procedure 33


3.4 Design View 36

4. System Implementation 37

4.1 VSF Forwarding 37


4.1.1 Location Based Routing 38
4.1.2 Face Routing 40

4.2 VSF Traversal 41


4.2.1 Face Traversal Rule 43
4.2.2 Skipping Technique in Face Traversal 47
4.2.3 Termination condition of SFR for Double –Direction Face 52
Traversal
4.2.4 Dominating Set based Restricted Flooding 53
4.3 Simulation Results for base networks 57
4.4 Simulation Results for void networks 59
4.5 Experimental Analysis 61
4.6 Research Tool Used 61
4.6.1 NS2 62
4.7 Property and Performance Analysis 62
4.7.1 Guaranteed Message Delivery in VSFG 63
4.7.2 Guaranteed Message Delivery in VSFG1 63
4.7.3 Guaranteed Message Delivery in VSFG2 64
4.7.4 Performance Analysis of VSFG 64
4.7.5 Analytical Performance Comparison 65

5. Concluding Remarks 67

Publications 69

References 70
LIST OF FIGURES

FIG NO PARTICULARS PAGE NO

1.1 Routing Protocols for Geocasting 16

3.1 Scenario of VSFG 32


3.2 Packet Forwarding Procedure inside the Network Layer 33
3.3 Design of Virtual Surrounding Face Geocasting 35
4.1 Main modules in the implementation of VSF Forwarding 37
4.2 Packet header contents 38
4.3 Hello Packet Field 39
4.4 Greedy Location Based Routing 39
4.5 Failure of Greedy Location Based Routing 40
4.6 Main modules in the implementation of VSF Traversal 41
4.7 Boundary of VSF connected via internal nodes z & t 42
4.8 VSF connected via external crossing edge yu 43
4.9 Single and Double Directional Face Traversal 43
4.10 Entrance Node having Two Neighbors 44
4.11 Entrance Node having only one Neighbor 45
4.12 Half plane of line (euv,v) in the derivation of skipping conditions 48
4.13 Two cases of searching space (shaded areas) of u with respect to x 49
4.14 Infinite Skipping Sequence 51
4.15 Missing Node during Skipping 52
4.16 Termination Condition of Face Traversal 52
4.17 Double directional traversal in SKIP 53
4.18 Illustration of connection between outer and inner VSF pieces. In 56
the figure, the dashed circle denotes the transmission range of node
y.

LIST OF ABBREVATIONS

mWSN Mobile Wireless Sensor Network


VSFG Virtual Surrounding Face Geocasting
DS Dominating Set

P2P Peer-to-Peer
PDA Personal Digital Assistant
QoS Quality of Service
MANET Mobile Adhoc Network
CPU Central Processing Unit
DSP Digital Signal Processing
RF Radio Frequency
WSNs Wireless Sensor Networks
MEMS Micro Electronic Mechanical Systems
TV Television
VCR Video Cassette Recorder
DVD Digital Video Disc
CD Compact Disc
GFG Greedy Face Greedy
GG Gabriel Graph
SFR Skipping Face Routing
DFFTT Depth First Face Tree Traversal
RFIFT Restricted Flooding With Intersected Face Traversal
EZMG Entrance Zone Multicasting based Geocasting
MPR Multipoint Relay
CDS Connected Domain Set
VSF Virtual Surrounding Face
MSG Message
UDG Unit Disk Graph
1

CHAPTER 1
INTRODUCTION
1.1 Networks
A network is simply two or more nodes connected together so they can exchange
information. A small network can be as simple as two nodes linked together by a single cable. A
large network may connect thousands of nodes and other devices together. The node which sends
a data is called source node and the node which receives the data is called destination node.
Based on the type of connection, speed of the data transfer, topology and various other
parameters we have various types of networks like: wired networks, wireless networks, high
speed networks, adhoc networks and so on.

1.1.1 Client Server Networks


The Client-Server network model usually consists of one or more server computers that
provide services and information to a number of workstation computers. These services can
consist of many different roles, including: file services, web services, email services, domain
name lookup services, document version system services, Internet sharing services, etc. A great
example of the Client-Server network model is actually the World Wide Internet. On the Internet
clients, or computer with web browsers, access web sites that are hosted on servers.

1.1.2 Peer-to-peer Networks


Peer-to-peer (P2P) is an approach to content distribution in which digital files are
transferred between “peer” computers over the Internet. With P2P, the client machines are peers
and communicate with one another. A computer in the network can submit a request for specific
content, and any peer in the network that has a copy of the file can send it, resulting in a many-
to-many model that does not rely on a central repository. Because they do not rely on a central
server to deliver content, P2P networks tend to be faster and much more reliable—as long as at
least one other computer in the network has a file, others can access it. Any user of a P2P
network is as likely to be a contributor as a consumer, and, in this sense, P2P approximates the
original conception of the Internet as a network of connections among individuals and
organizations that give and take information.
2

1.1.3 Wireless Networks


In a wireless network nodes are connected using radio waves instead of wires. As long as
a node is within range of a wireless access point, it can move from place to place while
maintaining un-ethered access to other nodes. This can make networking extremely portable.
Whether it’s because you have made a call using a mobile phone, received a message on your
pager, checked your email from a PDA or even just seen an advert related to it, we have all come
across a wireless data or voice network!

If a user, application or company wishes to make data portable, mobile and accessible
then wireless networking is the answer. A wireless networking system would rid of the downtime
you would normally have in a wired network due to cable problems. It would also save time and
money due to the fact that you would spare the expense of installing a lot of cables. Also, if a
client computer needs to relocate to another part of the office then all you need to do is move the
machine with the wireless network card.

Wireless networking can prove to be very useful in public places – libraries, guest houses,
hotels, cafeterias, and schools are all places where one might find wireless access to the Internet.
From a financial point of view, this is beneficial to both the provider and the client. The provider
would offer the service for a charge – probably on a pay per use system, and the client would be
able to take advantage of this service in a convenient location; away from the office or home. A
drawback of wireless Internet is that the QoS (Quality of Service) is not guaranteed and if there
is any interference with the link then the connection may be dropped.

1.1.4 Mobile Ad Hoc Networks

The increasing popularity of video, voice and data communications over the Internet
and the rapid penetration of mobile telephony have stimulated a change in consumers’
expectations. Even though voice still accounts for a significant part of the world’s mobile
communications traffic, the number of group-oriented services and multimedia applications is
increasing. The evolution of wireless communication technologies has reached a point where it is
both popular and easy to integrate them into portable computing devices, which have initially
3

been intended for personal use. Recent advances in radio communication and computer
technologies have led to the development of mobile computing environments. These recent
advancements in wireless and mobile technology are evident from the fact of the widespread
usage of mobile and wireless devices such as laptops, palmtops, personal digital assistants etc.
The users in this environment can change their locations while retaining network connections. A
variant of this mobile computing environment is known as Mobile Ad hoc networks (MANETs);
these are wireless and mobile networks, which are self-organizing and rapidly deployable and
have no fixed infrastructure. Hence, a MANET is a collection of wireless mobile nodes forming
a dynamically temporary network without the use of any existing fixed network infrastructure or
centralized administration [1]. Even if the source and destination mobile hosts are not in the
transmission range, data packets are forwarded to the destination mobile host by relaying
transmission through other mobile hosts that exist between the two mobile hosts. In MANETs,
since mobile hosts move freely, link failures occur frequently and this causes frequent network
partitions. For example, if a MANET is divided into two partitions due to the migration of
mobile hosts, mobile hosts in one of the two partitioned networks cannot access the data held by
mobile hosts in the other network. Thus, data accessibility in MANETs is lower than that in the
conventional fixed networks.

1.1.5 Wireless Sensor Networks

A sensor network is defined as being composed of a large number of nodes which are
deployed densely in close proximity to the phenomenon to be monitored [17]. Each of these
nodes collects data and its purpose is to route this information back to a sink. The network must
possess self-organizing capabilities since the positions of individual nodes are not predetermined.
1.2 Research on Wireless Sensor Networks
Cooperation among nodes is the dominant feature of this type of network, where groups of
nodes cooperate to disseminate the information gathered in their vicinity to the user.
Major differences between sensor and ad-hoc networks are
i) Number of nodes can be orders of magnitude higher.
ii) Sensor nodes are densely deployed.
iii) Sensor nodes are prone to failure.
iv) Frequent topology changes.
4

v) Broadcast communication paradigm.


vi) Limited power, processing and power capabilities.
vii) Possible absence of unique global identification per node.

Each node consists of processing capability (one or more microcontrollers, CPUs or DSP
chips), may contain multiple types of memory (program, data and flash memories), have a RF
transceiver (usually with a single Omni-directional antenna), have a power source (e.g., batteries
and solar cells), and accommodate various sensors and actuators. The nodes communicate
wirelessly and often self-organize after being deployed in an ad hoc fashion. Systems of 1000s or
even 10,000 nodes are anticipated. Such systems can revolutionize the way we live and work.

Currently, wireless sensor networks(WSNs) are beginning to be deployed at an accelerated


pace. It is not unreasonable to expect that in 10-15 years that the world will be covered with
wireless sensor networks with access to them via the Internet. This can be considered as the
Internet becoming a physical network. This new technology is exciting with unlimited potential
for numerous application areas including environmental, medical, military, transportation,
entertainment, crisis management, homeland defense, and smart spaces.

Since a wireless sensor network is a distributed real-time system a natural question is how
many solutions from distributed and real-time systems can be used in these new systems?
Unfortunately, very little prior work can be applied and new solutions are necessary in all areas
of the system. The main reason is that the set of assumptions underlying previous work has
changed dramatically. Most past distributed systems research has assumed that the systems are
wired, have unlimited power, are not real-time, have user interfaces such as screens and mice,
have a fixed set of resources, treat each node in the system as very important and are location
independent. In contrast, for wireless sensor networks, the systems are wireless, have scarce
power, are real-time, utilize sensors and actuators as interfaces, have dynamically changing sets
of resources, aggregate behavior is important and location is critical. Many wireless sensor
networks also utilize minimal capacity devices which places a further strain on the ability to use
past solutions.

Wireless Sensor Networks (WSNs) have been widely considered as one of the most
important technologies for the twenty – first century. Enabled by recent advances in micro-
electronic mechanical systems (MEMS) and wireless communication technologies, tiny, cheap,
5

and smart sensors deployed in a physical area and networked through wireless links and the
Internet provide unprecedented opportunities for a variety of civilian and military applications,
for example, environmental monitoring, battle field surveillance, and industry process control.
Distinguished from traditional wireless communication networks, for example, cellular systems
and mobile ad hoc networks (MANET), WSNs have unique characteristics, for example, denser
level of node deployment, higher unreliability of sensor nodes, and severe energy, computation,
and storage constraints, which present many new challenges in the development and application
of WSNs. In the past decade, WSNs have received tremendous attention from both academia and
industry all over the world. A large amount of research activities have been carried out to explore
and solve various design and application issues, and significant advances have been made in the
development and deployment of WSNs. It is envisioned that in the near future WSNs will be
widely used in various civilian and military fields, and revolutionize the way we live, work, and
interact with the physical world.

1.3 Characteristics
A WSN typically consists of a large number of low-cost, low-power, and multifunctional
sensor nodes that are deployed in a region of interest. These sensor nodes are small in size, but
are equipped with sensors, embedded microprocessors, and radio transceivers, and therefore have
not only sensing capability, but also data processing and communicating capabilities. They
communicate over a short distance via a wireless medium and collaborate to accomplish a
common task, for example, environment monitoring, battlefield surveillance, and industrial
process control. Compared with traditional wireless communication networks, for example,
cellular systems and MANET, sensor networks have the following unique characteristics and
constraints

i) Dense Node Deployment


Sensor nodes are usually densely deployed in a field of interest. The number
of sensor nodes in a sensor network can be several orders of magnitude higher than
that in a MANET.
6

ii) Battery-Powered Sensor Nodes


Sensor nodes are usually powered by battery. In most situations, they are
deployed in a harsh or hostile environment, where it is very difficult or even
impossible to change or recharge the batteries.

iii) Severe Energy, Computation, and Storage Constraints


Sensor nodes are highly limited in energy, computation, and storage
capacities.

iv) Self – Configurable


Sensor nodes are usually randomly deployed without careful planning and
engineering. Once deployed, sensor nodes have to autonomously configure
themselves into a communication network.

v) Application Specific
Sensor networks are application specific. A network is usually designed and
deployed for a specific application. The design requirements of a network change
with its application.

vi) Unreliable Sensor Nodes


Sensor nodes are usually deployed in harsh or hostile environments and
operate without attendance. They are prone to physical damages or failures.

vii) Frequent Topology Change


Network topology changes frequently due to node failure, damage, addition,
energy depletion, or channel fading.
viii) No Global Identification
Due to the large number of sensor nodes, it is usually impossible to build a
global addressing scheme for a sensor network because it would introduce a high
overhead for the identification maintenance.
7

ix) Many-to-One Traffic Pattern


In most sensor network applications, the data sensed by sensor nodes flow
from multiple source sensor nodes to a particular sink, exhibiting a many-to-one
traffic pattern.

x) Data Redundancy
In most sensor network applications, sensor nodes are densely deployed in a
region of interest and collaborate to accomplish a common sensing task. Thus, the
data sensed by multiple sensor nodes typically have a certain level of correlation or
redundancy.

1.4 Applications
Wireless sensors have significant advantages over conventional wired sensors. They can
not only reduce the cost and delay in deployment, but also be applied to any environment,
especially those in which conventional wired sensor networks are impossible to be deployed, for
example, inhospitable terrains, battlefields, outer space, or deep oceans. WSNs were originally
motivated by military applications, which range from large - scale acoustic surveillance systems
for ocean surveillance to small networks of unattended ground sensors for ground target
detection. However, the availability of low-cost sensors and wireless communication has
promised the development of a wide range of applications in both civilian and military fields.
This section introduces a few examples of sensor network applications.

1.4.1 Environmental Monitoring


Environmental monitoring is one of the earliest applications of sensor networks.
In environmental monitoring, sensors are used to monitor a variety of environmental
parameters or conditions.

1.4.2 Hazard Monitoring


Sensors can be used to monitor biological or chemical hazards in locations,
for example, a chemical plant or a battlefield.
1.4.3 Disaster Monitoring
Sensors can be densely deployed in an intended region to detect natural or
non-natural disasters. For example, sensors can be scattered in forests or revivers to
detect forest fires or floods. Seismic sensors can be instrumented in a building to
8

detect the direction and magnitude of a quake and provide an assessment of the
building safety.

1.4.4 Military Applications


WSNs are becoming an integral part of military command, control,
communication, and intelligence (C3I) systems. Wireless sensors can be rapidly deployed
in a battlefield or hostile region without any infrastructure. Due to ease of deployment,
self-configurability, untended operation, and fault tolerance, sensor networks will play
more important roles in future military C3I systems and make future wars more
intelligent with less human involvement.
Battlefield Monitoring
Sensors can be deployed in a battlefield to monitor the presence of forces and
vehicles, and track their movements, enabling close surveillance of opposing forces.
Object Protection
Sensor nodes can be deployed around sensitive objects, for example, atomic
plants, strategic bridges, oil and gas pipelines, communication centers, and military
headquarters, for protection purpose.

1.4.5 Health Care Applications


WSNs can be used to monitor and track elders and patients for health care
purposes, which can significantly relieve the severe shortage of health care personnel and
reduce the health care expenditures in the current health care systems.

i) Behavior Monitoring
Sensors can be deployed in a patient’s home to monitor the behaviors of the patient.
For example, it can alert doctors when the patient falls and requires immediate
medical attention. It can monitor what a patient is doing and provide reminders or
instructions over a television or radio.
ii) Medical Monitoring
Wearable sensors can be integrated into a wireless body area network
(WBAN) to monitor vital signs, environmental parameters, and geographical
locations, and thus allow long-term, noninvasive, and ambulatory monitoring of
patients or elderly people with instantaneous alerts to health care personal in case of
9

emergency, immediate reports to users about their current health statuses, and real-
time updates of users’ medical records.

1.4.6 Industrial Process and Control


In industry, WSNs can be used to monitor manufacturing processes or the
condition of manufacturing equipment. For example, wireless sensors can be
instrumented to production and assembly lines to monitor and control production
processes. Chemical plants or oil refiners can use sensors to monitor the condition of
their miles of pipelines. Tiny sensors can be embedded into the regions of a machine that
are inaccessible by humans to monitor the condition of the machine and alert for any
failure. Traditionally, equipment is usually maintained on a schedule basis, for example,
every 3 months for a check- up, which is costly. According to related statistics, a US
equipment manufacturer spends billions of dollars in maintenance every year. With
sensor networks, maintenance can be conducted based on the condition of equipment,
which is expected to significantly reduce the cost for maintenance, increase machine
lifetime, and even save lives.

1.4.7 Security and Surveillance


WSNs can be used in many security and surveillance applications. For example,
acoustic, video, and other kinds of sensors can be deployed in buildings, airports,
subways, and other critical infrastructure, for example, nuclear power plants or
communication centers to identify and track intruders, and provide timely alarms and
protection from potential attacks. Unlike applications that do not require a fixed
infrastructure, many security applications can afford to establish an infrastructure for
power supply and communications.

1.4.7.1 Home Intelligence


WSNs can be used to provide more convenient and intelligent living
environments for human beings.

1.4.7.2 Smart Home


Wireless sensors can be embedded into a home and connected to form an
autonomous home network. For example, a smart refrigerator connected to a smart
10

stove or microwave oven can prepare a menu based on the inventory of the
refrigerator and send relevant cooking parameters to the smart stove or microwave
oven, which will set the desired temperature and time for cooking. The contents and
schedules of TV, VCR, DVD, or CD players can be monitored and controlled
remotely to meet the different requirements of family members.

1.4.7.3 Remote Metering


Wireless sensors can be used to remotely read utility meters in a home, for
example, water, gas, or electricity, and then send the readings to a remote center
through wireless communication.
In addition to the above applications, self-configurable WSNs can be used in many other
areas, for example, disaster relief, traffic control, warehouse management, and civil engineering.
However, a number of technical issues must be solved before these exciting applications become
a reality.

1.5 Design Challenges

The unique network characteristics present many challenges in the design of sensor
networks, which involve the following main aspects:
i) Limited Energy Capacity
Sensor nodes are battery powered and thus, has very limited energy capacity.
This constraint presents many new challenges in the development of hardware and
software, and the design of network architectures and protocols for sensor networks.
To prolong the operational lifetime of a sensor network, energy efficiency should be
considered in every aspect of sensor network design, not only hardware and software,
but also network architectures and protocols.
ii) Limited Hardware Resources
Sensor nodes have limited processing and storage capacities, and thus can
only perform limited computational functionalities. These hardware constraints
present many challenges in software development and network protocol design for
sensor networks, which must consider not only the energy constraint in sensor nodes,
but also the processing and storage capacities of sensor nodes.
11

iii) Massive and Random Deployment


Most sensor networks consist of a large number of sensor nodes, from
hundreds to thousands or even more. Node deployment is usually application
dependent, which can be either manual or random. In most applications, sensor nodes
can be scattered randomly in an intended area or dropped massively over an
inaccessible or hostile region. The sensor nodes must autonomously organize
themselves into a communication network before they start to perform a sensing task.
iv) Dynamic and Unreliable Environment
A sensor network usually operates in a dynamic and unreliable environment.
On one hand, the topology of a sensor network may change frequently due to node
failures, damages, additions, or energy depletion. On the other hand, sensor nodes are
linked by a wireless medium, which is noisy, error prone, and time varying. The
connectivity of the network may frequently disrupt because of channel fading or
signal attenuation.
v) Diverse Applications
Sensor networks have a wide range of diverse applications. The requirements
for different applications may vary significantly. No network protocol can meet the
requirements of all applications. The design of sensor networks is application
specific.

1.6 Design Objectives


The characteristics of sensor networks and requirements of different applications have a
decisive impact on the network design objectives in terms of network capabilities and network
performance. The main design objectives for sensor networks include the following several
aspects:
i) Small Node Size
Reducing node size is one of the primary design objectives of sensor
networks. Sensor nodes are usually deployed in a harsh or hostile environment in
large numbers. Reducing node size can facilitate node deployment, and also reduce
the cost and power consumption of sensor nodes.
12

ii) Low Node Cost


Reducing node cost is another primary design objective of sensor networks.
Since sensor nodes are usually deployed in a harsh or hostile environment in large
numbers and cannot be reused, it is important to reduce the cost of sensor nodes so
that the cost of the whole network is reduced.

iii) Low Power Consumption


Reducing power consumption is the most important objective in the design of
a sensor network. Since sensor nodes are powered by battery and it is often very
difficult or even impossible to change or recharge their batteries, it is crucial to reduce
the power consumption of sensor nodes so that the lifetime of the sensor nodes, as
well as the whole network is prolonged.

iv) Self-Configurability
In sensor networks, sensor nodes are usually deployed in a region of interest
without careful planning and engineering. Once deployed, sensor nodes should be
able to autonomously organize themselves into a communication network and
reconfigure their connectivity in the event of topology changes and node failures.
Scalability: In sensor networks, the number of sensor nodes may be on the order of
tens, hundreds, or thousands. Thus, network protocols designed for sensor networks
should be scalable to different network sizes.

v) Adaptability
In sensor networks, a node may fail, join, or move, which would result in
changes in node density and network topology. Thus, network protocols designed for
sensor networks should be adaptive to such density and topology changes.

vi) Reliability
For many sensor network applications, it is required that data be reliably
delivered over noisy, error - prone, and time-varying wireless channels. To meet this
requirement, network protocols designed for sensor networks must provide error
control and correction mechanisms to ensure reliable data delivery.
13

vii) Fault Tolerance


Sensor nodes are prone to failures due to harsh deployment environments and
unattended operations. Thus, sensor nodes should be fault tolerant and have the
abilities of self-testing, self-calibrating, self-repairing, and self- recovering.

viii) Security
In many military applications, sensor nodes are deployed in a hostile
environment and thus are vulnerable to adversaries. In such situations, a sensor
network should introduce effective security mechanisms to prevent the data
information in the network or a sensor node from unauthorized access or malicious
attacks.
ix) Channel Utilization
Sensor networks have limited bandwidth resources. Thus, communication
protocols designed for sensor networks should efficiently make use of the bandwidth
to improve channel utilization.

x) QoS Support
In sensor networks, different applications may have different quality-of-
service (QoS) requirements in terms of delivery latency and packet loss. For example,
some applications, for example, fire monitoring, are delay sensitive and thus require
timely data delivery. Some applications, for example, data collection for scientific
exploration, are delay tolerant but cannot stand packet loss. Thus, network protocol
design should consider the QoS requirements of specific applications.

Most sensor networks are application specific and have different application requirements. It
is not necessary and actually impractical to implement all the design objectives in a single
network. Instead, only part of these objectives should be considered in the design of a specific
network in order to meet its application requirements.

1.7 Geocasting
Geocasting in wireless sensor network is a task to deliver a message from a source node to
all nodes located within a given geographic region. Geocasting is a concept that fits the nature of
14

typical WSN applications very well. For example, a monitoring center needs to contact all active
sensors within a monitored area to either gather data from them periodically or provide its
location to sensors covering a certain area for event reporting. Intelligent flooding methods exist
for this task when all active sensors belong to the monitored area. However, when a particular
area containing only a small subset of active sensors needs to be monitored, the problem reduces
to geocasting. An important objective of geocasting[18] is to ensure message delivery while
maintaining a low transmission cost (lower number of transmissions). Guaranteed delivery
ensures that every sensor in a region receives a copy of the geocasting message. Since sensors
are generally powered by batteries, the limited energy of sensors requires geocasting to consume
as little energy as possible.

1.8 Issues and Challenges


Recent technological advances have enabled the development of low-cost, low-power,
multifunctional sensor devices. These nodes are autonomous devices with integrated sensing,
processing, and communication capabilities. Sensor networks consist of a large number of sensor
node that collaborate using wireless communication and asymmetric many-to-one data. Indeed,
sensor nodes usually send their data to a specific node called the sink node or monitoring station,
which collects the requested information. All nodes cannot communicate directly with the
monitoring station, since such communication may be over long distances that will drain power
quickly. Hence, sensors operate in a self-organized and decentralized manner, and message
communication takes place via multi-hop spreading. To enable this, the network must maintain
the best connectivity as long as possible. A sensor’s battery is not replaceable, and sensors may
operate in hostile or remote environments. Therefore, energy consumption is considered the most
important resource, and the network must be self-configured and self-organized. The best energy
conservation method is to put as many sensors as possible to sleep. The network must be
connected to remain functional so that the monitoring station may receive messages sent by any
of the active sensors. An intelligent strategy for selecting and updating a set of active sensors that
are connected is needed in order to extend the network lifetime. This problem is known as the
connected area coverage problem, which aims to dynamically activate and deactivate sensors
while maintaining the full coverage of the monitoring area. Efficient solutions to the connected
area coverage problem were discussed by some researchers. When this coverage step is
performed first, the large sensor network becomes reasonably sparse but remains connected. If
all active sensors are dedicated to monitoring the same event, the monitoring center may spread
15

the task and establish a reverse broadcast tree using any intelligent flooding protocol. If the
network is reasonably sparse, even blind flooding (where each node receiving a message will
retransmit it exactly once) is a viable option. However, when the region to be monitored for
particular event contains only a small portion of active sensors, flooding the whole network may
be an inefficient way to spread the task. This research aims to provide an efficient solution to the
geocasting problem.

1.9 Routing Protocols for Geocasting


Geocast protocols can be mainly categorized based on whether they are designed for
infrastructure networks and whether they are based on flooding the network or on forwarding a
geocast packet on a particular routing path.
The geocast routing protocol would still be the basic mechanism to deliver messages
from a sender to a geographic region. A neighbor is a node that can be reached without the help
of intermediate nodes, that is, it is within the wireless transmission range of a node.

Geocast

Flooding Directed Flooding No Flooding

Adhoc Networks Adhoc Networks Adhoc Networks Infrastructure


Networks

Simple Flooding LBM URAD,GEO GeoNode


Tora

Voronoi,
Figure 1.1 Routing Protocols for Geocasting
GeoGrid,mesh

1.9.1 Routing with Flooding :Simple Flooding


A node broadcasts a received packet to all neighbors, provided that this packet was not
already received before in order to avoid loops and endless flooding. A node delivers a packet if
the own location is within the specified destination region, which is included in each geocast
packet.
16

1.9.2 Routing with Directed Flooding :LBM

By increasing the forwarding zone, the probability for reception of a geocast packet at all
destination nodes can be increased; overhead is also increased.

1.9.3 Voronoi Diagrams

A voronoi diagram partitions the network in n voronoi regions. The voronoi region of a
neighbor consists of all nodes that are closer to this neighbor than to any other neighbor. The
voronoi partitions intersecting with the geocast destination region belong to the forwarding zone
and are selected for geocast forwarding.

1.9.4 Mesh

After a node inside the destination region received the initial packet to join the mesh, a
unicast reply is sent back to the sender on the reverse path and flooding is stopped.

1.9.5 Routing without Flooding :URAD

Each node inside the destination region sends a received geocast packet with a 1-hop
broadcast to all neighbors. Sequence numbers of flooded geocast packets are stored to prevent a
node from flooding the same packet more than once, which allows proper termination of the
algorithm.

1.10 Problem Statement

In order to preserve the scarce bandwidth and energy consumption of sensor nodes and
increase their lifetime, it is desirable to have efficient geocasting mechanisms with low overhead
that are able to deliver the data to all nodes within the geocast region. The challenge is that in
order to reach all nodes in the region, the packet may have to traverse other nodes outside the
region causing extra overhead. There is a tradeoff between the ratio of region nodes reached and
the overall overhead incurred due to a geocast transmission. For example, in order to guarantee
that all nodes in the region receive a geocast packet, global flooding, by sending the packet to all
nodes in the network, may be used which causes very high bandwidth and energy consumption,
and can significantly reduce the network lifetime. Other proposed geocast mechanisms that do
not rely on global flooding or global information about the network use restricted forwarding
zones to limit the number of nodes that forward the geocast packet, and thus they do not
guarantee that all nodes in the region receive the packet. This is more significant in sparse
17

networks and networks with irregular distributions or obstacles, where due to disconnections in
geographical regions it may not be possible to reach all nodes in the geocast region through a
limited forwarding zone. In this project, a mechanism that achieves guaranteed delivery without
global flooding and without nodes having global information about the network has been
proposed.

1.11 Benefits of this Project

i) The design and evaluation of efficient and robust geocasting protocols that combine
geographic routing mechanisms with restricted flooding to achieve high delivery rate and low
overhead.
ii) Presenting a guaranteed delivery mechanism based on the observation that by traversing all
faces intersecting a region in a connected planar graph, every node of the graph inside the region
is traversed. Although this theorem is known, the design of a SKIP algorithm in combination to
reduce the transmission cost is new. The algorithm is efficient by using a combination of face
routing and SKIP technique.
iii) Providing an adaptive mechanism in which nodes perform face routing selectively and only
when needed based on the density and node distribution in their neighborhood to reduce the
unnecessary overhead.
iv) Thorough analysis and comparison of the performance of a class of geocasting protocols
under different scenarios.

1.12 Organization of the Thesis

The rest of the report is structured as follows. In Chapter 2, a detailed survey of various routing
protocols and many other existing approaches has been made. In Chapter 3 the Design and
implementation aspects of the project have been explained. Chapter 4 explains the
implementation of the Virtual Surrounding Face Geocasting and the experimental analysis of the
same has been done in Chapter 5. Chapter 6 concludes the work and says about the future work
that could be done.
18

CHAPTER 2
LITERATURE SURVEY

The concept of geocasting [13] was introduced by Imielinski and Navas(1997). Generally,
geocasting algorithms reduce transmission costs by using location-based routing to deliver a
message to a node in a geocasting region R. The node in R then performs restricted flooding
within R. Hence, three categories are reviewed in the related work: location-based routing,
geocasting algorithms, and broadcasting algorithms. Finally, some of the approaches towards
geocasting in WSNs are reviewed.

2.1 Location Based Routing


In this section we present an overview of ad hoc routing protocols that make forwarding
decisions based on the geographical position of a packet’s destination. Other than the
destination’s position, each node need know only its own position and the position of its one-hop
neighbors in order to forward packets. Since it is not necessary to maintain explicit routes,
position-based routing does scale well even if the network is highly dynamic. This is a major
advantage in a mobile ad hoc network where the topology may change frequently. The main
prerequisite for position-based routing is that a sender can obtain the current position of the
destination.
Location-based routing has been extensively studied many researchers. For example,
Gupta (2006) et al in their work proposed a technique where every node in a network knows its
geographic location and the locations of all its neighbors [7]. When a source node transmits a
message to a destination node with a known location, the source and all intermediate forwarding
nodes make their routing decisions based solely on the destination location and the locations of
their neighbors. Since the nodes are not required to maintain routing tables, the routing overhead
is significantly reduced.
2.1.1 Greedy Packet Forwarding
Finn (1987) proposed the first formal location-based routing algorithm [5] based on a
greedy principle, in which each node chooses the neighbor closest to the destination as its next
forwarding node. Using greedy packet forwarding, the sender of a packet includes the
approximate position of the recipient in the packet. This information is gathered by an
appropriate location service (e.g., one of those described above). When an intermediate node
19

receives a packet, it forwards the packet to a neighbor lying in the general direction of the
recipient. Ideally, this process can be repeated until the recipient has been reached.
Unfortunately, greedy routing may fail to find a path between sender and destination,
even though one does exist. The problem here is that S is closer to the destination D than any of
the nodes in its transmission range [17] as discussed by Hou and Li (1986). Greedy routing
therefore has reached a local maximum from which it cannot recover.
To counter this problem Takagi and Kleinrock (1984) has been suggested that the packet
should be forwarded to the node with the least backward (negative) progress if no nodes can be
found in the forward direction[8]. However, this raises the problem of looping packets, which
cannot occur when packets are forwarded only toward the destination with positive progress. So
the researchers Hou and Li (1986) proposed not to forward packets that have reached a local
maximum at all [18].
2.1.2 Face Routing
To ensure message delivery, face routing [15] was introduced by Bose and Morin in
1999. They have proved the correctness of the same in 2001[16]. In face routing, a planar graph
derived from the network topology is used, and the network area is partitioned into a set of faces.
To transmit a message from a source to a destination t, the message traverses the face intersecting
the line segment st from s to t.
If an edge e on the boundary of the traversed face intersects with st and the intersecting point is
closer to t than to s, the face, which is next to e and closer to t than the currently traversed face, is
traversed. The process is repeated until t is found.
To find a routing path close to the optimal path, the Greedy-Face-Greedy (GFG) algorithm which
combines the greedy routing and the face routing is proposed by Kranakis et al (1999) [3]. In
GFG, nodes conduct greedy routing whenever it is possible. In the case when a void exists in the
forwarding direction, face routing is used to send the message around the void. Hence, GFG
guarantees message delivery and significantly reduces the path lengths as stated by Kuhn et al in
[4].
In the existing approaches, a packet is forwarded through all intermediate nodes though
there exists a direct neighbor introducing extra transmissions. One intuition is that in dense
networks, these additional transmissions may be significant compared with the total number of
transmissions for face traversal.
20

2.1.3 Skipping Face Routing


To reduce the cost, a SKIP method [9] is proposed by Lian and Kshirasagar Naik (2008)
to allow the nodes during traversal solely based on the one-hop neighbors of the nodes. It has
been described to work on the GG to reduce the total number of transmissions associated to face
traversal. The basic idea of SFR is to define a set of conditions by which a node can skip some
intermediate nodes during face traversal.
In SFR, the authors define a set of sufficient conditions by which a node decides if it can
skip one or more intermediate nodes in face traversal. One of the desired properties of SFR is
that each node in SFR only needs to know locations of its one-hop neighbors, and therefore, no
additional communication overhead is required.
Frey and Stojmenovic (2006) have stated that SFR can be embedded in GFG with minor
modifications [6]. Various studies show that SFR can save up to 40% of the total number of
transmissions required by the existing pure face routing algorithms. They also show that GFG
embedded with SFR can save up to 30% of the total transmissions required by the original GFG.
There are two methods to traverse a face: single-directional traversal and double-
directional traversal. In the former, Right-Hand rule or Left-Hand rule is used. Most of the
existing approaches use single-directional traversal. On the other hand, the latter applies both
Right-Hand rule and Left-Hand rule concurrently. The drawback with the single-direction
traversal is the longer face traversal time.
2.2 Geocasting Algorithms
Geocasting can be easily achieved by flooding the network, thereby achieving guaranteed
message delivery. However, flooding is not energy efficient since it requires at least N
transmissions, where N is the total number of nodes in the network. Three classes of geocasting
algorithms have been studied in the literature to reduce the flooding cost.
2.2.1 Algorithms based on Restricted Forwarding Zone
In the first class of algorithms, a restricted forwarding zone covering both the source
node and the geocasting region is used to limit the scope of flooding. For example, in Location-
Based Multicast [21], [23] described by Ko and Vaidya (2002), the minimum rectangle
containing both the source and the geocasting region is chosen as the forwarding zone. Next,
restricted flooding is performed by nodes within the forwarding zone. Forwarding zone defined
here for geocasting is similar to that defined for unicast routing [22] by Ko and Vaidya (1998).
With the use of a forwarding zone, geocast packets are forwarded by a smaller set of nodes, as
compared to geocast flooding. To increase the probability that a data packet will reach all
21

members in the geocast group, the forwarding zone may include, in addition to the geocast
region itself, other areas around the geocast region. When the geocast region does not include the
source node S, a path from S to geocast group members may include nodes outside the geocast
region. Therefore, additional region should be included in the forwarding zone, so that
forwarding zone. To be a useful geocast protocol, it is necessary to achieve a high probability
that a geocast is delivered to each geocast member. The accuracy of the protocol can be increased
by increasing the size of the forwarding zone. However, data delivery overhead may also
increase with size of the forwarding zone. Thus there exists a tradeoff between accuracy of
geocast delivery and the overhead of the geocast delivery.
These algorithms incur high flooding costs since the forwarding zone may be much larger
than the geocasting region. Moreover, these algorithms do not guarantee message delivery as
discussed by Stojmenovic (2004) in [10].
2.2.2 Intelligent Flooding Algorithms
Qayyum (2002) et al and Liao et al explains some intelligent flooding techniques in [2] to reduce
the high flooding cost. However, these algorithms do not ensure the delivery of messages.
Qayyum et al proposed a Multi Point Relaying technique for flooding where only a selected
number of nodes propagate the message. In pure flooding, each node retransmits without
exception, so there are more chances that the message reaches all the nodes, as compared to
multipoint relaying.

2.2.3 Unicast based Restricted Flooding


In the third class, a geocasting is divided into two phases: location-based unicasting and
restricted flooding. In the first phase, location-based routing is used to route a message from a
source node to a node in the geocasting region. In the second phase, restricted flooding is
performed by the nodes in the region. Generally, this approach reduces the transmission cost.
There is, however, no guaranteed message delivery if the topology graph in the geocasting region
is not connected.
Various algorithms combining the ideas of location-based unicasting and restricted
flooding with face traversal were also proposed with guaranteed message delivery.

2.2.3.1 Depth-First Face Tree Traversal (DFFTT)


22

Bose (2001) in his paper described the DFFTT [16]. The algorithm guarantees delivery to
all nodes connected to the source, in which the packet follows a path from source node (thus
single copy of the packet is in the network at any time). To improve latency, parallel paths (and
multiple copies of the packet) can be explored at any branches of the face tree being used. The
algorithm does not require any memory to be left at nodes, and need only carry some small
amount of information with the packet (if entry edges are predetermined for a given source, the
message need only contain sender and source information). The algorithm first applies GFG to
route toward a node inside a geocasting region. That node then selects a nearby point S inside the
face to act as an artificial source. The face tree from S is constructed in the following way. Given
a node S and a face f of a planar graph, the entry edge entry(f, S) is the edge from f that is closest
to S. To break the ties, several keys for comparison of edges are used. The primary key is the
distance of the edge to S, where the distance is decided by a point C from the edge that is closest
to S. If the distances are the same, the secondary key used is the counterclockwise direction of
vector SC. In case of further ties (which may occur only when two edges share a common closer
endpoint C), consider the size of the angle ÐSCD, where D is the other endpoint of the edge. If
that still does not resolve it, consider the vector CD, which then must be different. It also has
been proved that all entry edges are on the boundaries of two faces. In the face tree, the parent of
a face f is the face p(f) that contains its entry edge e(f) on its boundary. Obviously, then, p(f) itself
has another entry face closer to S, which confirms that a tree of faces is indeed constructed. The
face tree is dynamically constructed during geocasting operation. The geocasting algorithm
follows depth first searchbased traversal of the face tree. For each node in the face tree, it
actually traverses the corresponding face. When an entry edge is encountered, the traversal enters
a new face. When the traversal (which may recursively go to deeper levels) is completed, it
returns to the face. Traversal of each face begins from one end of its entry edge and finishes at
the other end of it. A face tree from S is drawn with directed edges intersecting entry edges
(dashed lines).

2.2.3.2 Restricted Flooding with Intersected Face Traversal (RFIFT)


Bose (2001) also introduced the notion of Restricted Flooding [16] with Intersected Face
Traversal (RFIFT). First phase of RFIFT is identical to DFFTT. In the second phase, RFIFT
performs restricted flooding within R and traverses all the faces intersecting R. Each face
23

traversal is determined by a pair of nodes: internal border node and external border node. An
internal border node is a node in R with a planar neighbor outside of R.
Here, two nodes are planar neighbors if an edge connecting these two nodes belongs to the
planarized network graph. Similarly, an external border node is a node outside R, but with a
planar neighbor in R. In RFIFT, each internal border node performs traversal by using left-hand
rule with respect to all of its planar neighbors that are external border nodes. In some cases like
the one shown below, RFIFT has also to be modified. The problem with RFIFT is that it does not
guarantee delivery in all circumstances.

2.2.3.3 Entrance Zone Multicasting based Geocasting (EZMG)


Bose (2001) also describes a multicast based approach called Entrance Zone Multicasting
[16] based Geocasting. This algorithm sub-divides the surrounding area of a region R into a set
of entrance zones. Each source node sends a multicast message to all entrance zones. Each node
in entrance zones receiving the message broadcasts the message, and all nodes in R that hear the
message perform restricted flooding in R. This algorithm consists of multicasting toward the
centers of all entrance zones, and flooding from the first nodes encountered in each non empty
zone. A zone center is any node inside it (e.g., its center of mass or intersection of zone
diagonals).
The preceding three algorithms guarantee message delivery, but they
incur high transmission costs.

2.3 Broadcasting Algorithms

Broadcasting is a process to send a message to all nodes in a network.


Bose (2001) in his work has said that efficient broadcasting algorithms can
be modified and applied to reduce the cost of restricted flooding in the
geocasting algorithms [16]. A straightforward broadcasting can be achieved by using
flooding. However, flooding has many drawbacks, such as high cost, contention, and serious
message collision.

2.3.1 Cluster Based Broadcasting


The algorithms achieve broadcasting by sending messages to voted cluster headers. A
node with a local minimal ID will elect itself as a cluster head. All surrounding nodes of a head
24

are members of the cluster identified by the heads ID. Within a cluster, a member that can
communicate with a node in another cluster is a gateway. To take mobility into account, when
two heads meet, the one with a larger ID gives up its head role.
Considering the case that the backbone of the network consists of the fixed cluster heads
and dynamically selected gateways that depend on the source of a broadcast; that is, the
gateways are selected at the time when a cluster head needs to relay the packet. Since this
backbone is constructed step by step as the broadcast traverses the network, some pruning
techniques can be used to reduce the. Broadcast redundancy. Generally, pruning techniques can
eliminate some redundant broadcasting operations between two downstream neighbors of a
sender if these two neighbors know that they have received a broadcast packet from the same
upstream sender. For a simple network with 3 nodes u, v and w, suppose node u broadcasts a
packet, both nodes v and w receive the packet, and then they rebroadcast the packet to each
other. Apparently, the last two transmissions are redundant. There is many ways to reduce this
kind of transmission redundancy. When a node receives a broadcast packet, if it can back-off a
short period of time before it relays the packet, it may receive more copies of the same packet
from its other neighbors. If all of its neighbors can be covered by these already received
broadcast copies, it can resign its role of re-broadcast operation. Another way to reduce
transmission redundancy is to piggyback the covered nodes with the broadcast packet when the
sender broadcasts a packet. From the information of the piggybacked packet, each receiver can
compute which subset of its neighbor set has already received the packet.

2.3.2 Multipoint relay Algorithm


Qayyum (2002) et al have discussed a multipoint relay [2] based broadcasting approach.
They have discussed the mechanism to efficiently do the flooding of broadcast messages in the
mobile wireless networks. The goal of Multipoint Relays is to reduce the flooding of broadcast
packets in the network by minimizing the duplicate retransmissions locally. This technique
restrict the number of re-transmissions as much as possible by efficiently selecting a small subset
of neighbors which covers (in terms of one-hop radio range) the same network region which the
complete set of neighbors does. This small subset of neighbors is called multipoint relays of a
given network node. The scheme of multipoint relays provides an adequate solution to reduce the
flooding of broadcast messages in the network, while attaining the same goal of transferring the
message to every node in the network with a high probability.
25

Multipoint relaying technique works in a distributed way, keeping in view the mobile and
dispersed nature of the network nodes. Each node calculates its own set of multipoint relays,
which is completely independent of other nodes’ selection of their MPRs. Each node reacts when
its neighbor node change and accordingly modifies its MPR set to cover its two-hop neighbors.
An important aspect for the utilization of the multipoint relays is the manner in which
these multipoint relays are selected by each node. Obviously, the goal is to achieve the maximum
performance by selecting an optimal set of these MPRs by each node. But this task is not a trivial
one. If the mechanism of selecting the MPRs is too simple, it may not select efficiently the
MPRS in the dynamic and complex situations, and the expected performance gain would not be
achieved. On the other hand, if the algorithm of MPR selection is very long and complicated to
provide a near to optimal MPR set, it may become difficult to implement it or it may generate its
own control traffic (to gather information for its functioning) that becomes comparable to the
saving in the flooding of messages. So there must be a compromise in designing such an
algorithm for the selection of multipoint relays: it should be easy to implement, and it should
give near to optimal MPR set in the “majority” of cases.
The information needed to calculate the multipoint relays is the set of one-hop neighbors
and the two-hop neighbors, i.e. the neighbors, most protocols use some form of HELLO
messages that are sent locally by each node to declare its presence. In a mobile environment,
these messages are sent periodically as a keep alive signals to refresh the information. To obtain
the information of two-hop neighbors, one solution is that each node attach the list of its own
neighbors, while sending its HELLO messages. In this way, each node can independently
calculate its one-hop and two-hop neighbor set. Once a node has this information, it can select
the minimal number of one-hop neighbors which covers all of its two-hop neighbors.

2.3.3 Dominating Set based Broadcasting


In this approach, a connected dominating set (CDS) is defined, such that for every node
in the network, the node either belongs to CDS or has a direct neighbor in CDS. Flooding is
performed only by the nodes belonging to the CDS.

Wu and Li (2001) in their work have explained a dominating set [14] based routing
scheme for ad hoc wireless networks. Routing based on a connected dominating set is a
promising approach, where the searching space for a route is reduced to nodes in the set. A set is
dominating if all the nodes in the system are either in the set or neighbors of nodes in the set.
26

They propose a simple and efficient distributed algorithm for calculating connected dominating
set in ad hoc wireless networks, where connections of nodes are determined by their
geographical distances. The scheme employs an update/recalculation algorithm for the connected
dominating set when the topology of the ad hoc wireless network changes dynamically.
An efficient version of this scheme has been proposed in [16] by Stojmenovic (2002)
which significantly reduce or eliminate the communication overhead of a broadcasting task by
applying the concept of localized dominating sets. Their maintenance does not require any
communication overhead in addition to maintaining positions of neighboring nodes.
Retransmission by only internal nodes in a dominating set is sufficient for reliable broadcasting.
Existing dominating sets are improved by using node degrees instead of their IDs as primary
keys. The scheme also aims to eliminate neighbors that already received the message and
rebroadcast only if the list of neighbors that might need the message is nonempty. A
retransmission after negative acknowledgements scheme is also described. The important
features of proposed algorithms are their reliability (reaching all nodes in the absence of message
collisions), significant rebroadcast savings, and their localized and parameterless behavior. The
reduction in communication overhead for broadcasting task is measured experimentally.
Dominating sets based broadcasting, enhanced by neighbor elimination scheme and highest
degree key, provides reliable broadcast with <53 percent of node retransmissions (on random
unit graphs with 100 node) for all average degrees d.
Thus a DS of a network is defined as a set of nodes such that for any node in the network,
the node either belongs to DS or has a direct neighbor in DS. A connected dominating set (CDS)
is a DS such that for any two nodes in CDS, there is a path connecting the two nodes and all
nodes on the path belong to CDS. By constructing CDS of a network, flooding is performed only
by the nodes belongs to CDS.

2.4 Geocasting Approaches


There were also some of the geocasting approaches undertaken in various networks.
Some of them are reviewed.
2.4.1 GeoCast - Geographic Addressing and Routing
Julio C.Navas(1997) and Tomasz have discussed the concept of geographic addressing
and routing [11]. The aim is to integrate the concept of physical location into the design of the
Internet which relies on logical addressing. The system is composed of three main components:
the GeoHosts, GeoNodes, and the GeoRouters. GeoRouters are in charge of moving a
27

geographic message from a sender to a receiver. The GeoNode is an entry/exit point for the
routing system. Its main function is to store incoming geographic messages for the duration of
their lifetime and to periodically multicast them on all of the subnets or wireless cells to which it
is attached. Each subnet and each wireless cell will have at most one GeoNode. The lifetime of a
geographic message is specified by the sender of the message. Message lifetimes are necessary
because the receivers of geographic messages may be mobile and may possibly arrive at the
message desitnation just after the geographic message first arrives.The GeoHost is located on all
computer hosts which are capable of receiving and sending geographic messages. Its role is to
notify all client processes about the availability of geographic messages, the host computer’s
current geographic location, and the address of the local GeoNode.
2.4.2 Tree Based Geocast
Yi Zhao(2009) et all describes a new scenario of Geocast [24] protocol in which a source
node locating outside the mobile ad hoc network sends packets to all sensor nodes within a
specified geographical region in order to gather monitoring data from sensor nodes within the
region.
Consequently, a new Geocast protocol is put forward to improve the current Geocast
protocols by supporting this heterogeneous network environment. Their protocol attains energy
efficiency and accuracy through the use of a tree- based routing algorithm in Geocast region.
Meanwhile, by using dynamic hello-message frequency and link lifetime evaluation, their
method ensures the stability of route from the source node to Geocast region.
2.5 Inference from the Literature:
An important objective of geocasting is to ensure message delivery while maintaining a
low transmission cost (lower number of transmissions. Guaranteed delivery ensures that every
sensor in a region receives a copy of the geocasting message. Since sensors are generally
powered by batteries, the limited energy of sensors requires geocasting to consume as little
energy as possible. Many algorithms have been proposed in the literature to achieve geocasting.
Most of them do not guarantee message delivery and incur high transmission costs. Some of
them achieve it in continuous geocasting.
28

CHAPTER 3
DESIGN OF THE PROJECT

3.1 Concept of Virtual Surrounding Face


For any two faces that share an edge, if the shared edge is ignored, the two faces are
merged into one face with a larger area. For a geocasting region R, if we repeatedly merge all
faces intersecting with R by ignoring the edges intersecting the boundary of R, we will eventually
find a face large enough to contain R. This face is called a virtual surrounding face (VSF) of R.
An example of VSF is illustrated in Fig. 3. A node on the boundary of a VSF is called a VSF
node, and an edge on the VSF boundary is called a VSF edge. The objective of defining a VSF is
as follows. To deliver a message to all the nodes in R, the message can be sent to one node on the
boundary of the VSF. The message traverses the boundary of the VSF and each internal border
node overhearing the traversal message performs restricted flooding within R. Then all the nodes
in R will eventually receive the message.
3.2 Distributed Virtual Surrounding Face Geocasting Algorithm
In this section, the design of VSF geocasting (VSFG) is explained which consists of the
following three tasks.
i) VSF Forwarding
A source node transmits a geocasting message containing the specification of a region R
to a node on the boundary of the VSF by using location-based routing [15], such as GFG.
ii) VSF Traversal
Node u as chosen above starts VSF traversal. VSF traversal described in this section will
be replaced by the SKIP technique.
iii) VSF Restricted Flooding
During VSF traversal, each node in R overhearing the traversal message for the first time
performs restricted flooding within R. Restricted flooding presented in this section will be
replaced by the DS-based restricted flooding.
29

Figure 3.1 Scenario of VSFG

The goals of this project are

i) Guaranteed message delivery


ii) Short delivery time
iii) Low transmission cost
iv) Avoid potential message collisions
v) Reducing message complexity of RFIFT
30

3.3 Packet Forwarding Procedure

The forwarding process undertaken upon reception of a packet is shown in Figure.

Figure 3.2 Packet Forwarding inside the network layer

1. Messages first arrive at the dispatcher either locally or from the network. The dispatcher
determines the protocol identifier, either from the higher-layer component if local, or
otherwise from the message itself.
31

2. The message is subsequently sent to the corresponding FE based on the identifier.


3. The FE checks whether an application has registered to intercept messages of this
protocol, if so the message is handed to the application, otherwise the RE is queried to
determine the specific next hop(s) for the message, or provide some cost value to
determine if the current node is closer to the message destination. Since the RE is the
only component that understands the address format, it can attach the identifier of the
flow to which the message belongs for purposes of scheduling later in the OQ.
4. FE then sends the message to the OQ specifying whether it should be forwarded or sent
to a higher-layer component.
5. At the OQ, if the message is determined by the RE to be destined for this node, or by the
Network Service Manager to be intercepted, it is sent up the stack, otherwise the message
is to be forwarded, and is scheduled for transmission based on the implemented policy.

VSF Traversal
) DSForwarding
Engine

Res
tric

Flo
ted

odi
Coordinates

Coordinates
Coordinates

ng
Restricted
Forwarding
Geographic

Geographic
etGeographic
G(S,

CDLP, GG

CDLP, GG
GG
R,O
et nextptio

Face
MS

Output
Engine
Messa

Messa
Routing

[Option]
n)

MSG(S,
Input
Engine

Engine
Engine
Routing
Routing
Greedy

CDLP,
next
next

dPlanar
Planar
Planar
Graph

Graph
Graph
g
ardin
Forw
Engi
ge

ge

RNG
RNG
RNG

VSF
+

altional
ne

ding
ting

ersal
R,

Forwardin MSG(S,R,u,trav(u,v.Left-
or

or
or
ps

ps
ps
le
ce

IP
et
32

payloa
d eo
Lf
Lp
Phase(
G or
F)

(X,Y)
Dest

ords
co-
Msg_u
id

Figure 3.3 Design of Virtual Surrounding Face Geocasting

3.4 Design view


33

Let MSG(s,R,[option]…) be a message containing the source s and a region R. The


option field contains the task-related information. Each node u knows its own location and
location of all neighbors in NUDG(u). It is assumed that all nodes don’t change their locations
during the geocasting task.

VSF forwarding delivers the message to a destination reference point r, which is chosen
as the geographic point in R with the shortest distance to s. Every node receiving a message will
check, if it is that VSF node.

Once the VSF node is reached, VSF node performs Skipping Face Traversal (VSF
Traversal). Here a double directional face traversal is performed (left and right hand rule) along
with the SKIP algorithm to reduce the traversal cost and time delay.

Each internal node overhearing the message, performs Local DS based Restricted
Flooding which further reduces the cost.

The project is planned as three main modules as follows

i) VSF Forwarding
ii) VSF Traversal
iii) Local DS based Restricted Flooding

CHAPTER 4
34

SYSTEM IMPLEMETATION

Implementation is the carrying out, execution, or practice of a plan, a method, or any


design for doing something. As such, implementation is the action that must follow any
preliminary thinking in order for something to actually happen. In computer science, an
implementation is a realization of a technical specification or algorithm as a program, software
component, or other computer system through programming and deployment. A detailed
description and implementation of Virtual Surrounding Face Geocasting is given below.

4.1 VSF Forwarding

VSF forwarding forwards the message from the source node to a node on the virtual
surrounding face.

MS
Engine

G(S,
Routin

R,O
ptio
g

n) Get
Geogra

Coordi
next nates
phic
Forwarding

Input Greedy +
hops Face
Messag
Engine

Routing Planar
e
Graph
CDLP, GG
or
RNG

Figure 4.1 Main modules in the implementation of VSF Forwarding

Each node maintains knowledge of its coordinates as well as those of its neighbors'.
Next-hop(s) to which a packet is forwarded is(are) determined using the destination's coordinates
carried within the RE header.
35

Figure 4.2 Packet header contents. The routing header includes state for face routing.

Two routing phases exist, greedy and face routing. In greedy routing, nodes forward the
packet to the neighbor closest to the destination. If the current node is closest compared to all its
neighbors, the forwarding node switches to the next phase: face routing. Packets are then
forwarded along the face edges of an underlying planar graph, changing faces when appropriate
and applying rules that guarantee progress towards the destination. In this phase, additional state
has to be carried in the packet: the current phase, the node's coordinates when face routing begun
(Lp), as well as the coordinates (Lf) and the edge (e0) where the packet entered the current face. At
each step the node checks if greedy can resume and does so if possible.

Figure shows the modules implementing geographic routing and the contents of their
corresponding headers. The routing topology components provide two abstractions: (1)
Geographic Coordinates, which maintains and provides the coordinates of the current node and
its neighbors, and (2) Planar Graph, which provides a planarized version of the underlying
connectivity graph. The Planar Graph functionality can, for instance, be provided by CLDP,
Gabriel Graph, or Relative Neighborhood Graph. The RE is responsible for determining the next-
hop to the destination, and maintains state in the RE header.

4.1.1 Location Based Routing

Each node maintains its position using GPS and broadcast HELLO packet to its neighbors.
36

HELLO

Source ID Source Location Source Speed

Neighbor list: IDs and location

Forwarding Pointers

Figure 4.3 Hello Packet Field

Each node maintains a routing table for all nodes within two hops. This helps to forward the
message to the neighbor closest to the destination. The greedy message forwarding is shown
below.

Figure 4.4 Greedy Location Based Routing

The algorithm fails if a void (a large sub-area without nodes) exists in the forwarding direction,
that is, the message reaches an intermediate node that is closer to the destination than any of its
neighbor nodes.
37

Figure 4.5 Failure of Greedy Location Based Routing

In this condition, the face routing is started. During Face routing, every node checks whether it
can restore greedy location based routing.

4.1.2 Face Routing


In face routing, a planar graph derived from the network topology is used, and the
network area is partitioned into a set of faces. To transmit a message from a source to a
destination t, the message traverses the face intersecting the line segment st from s to t.
If an edge e on the boundary of the traversed face intersects with st and the intersecting
point is closer to t than to s, the face, which is next to e and closer to t than the currently
traversed face, is traversed. The process is repeated until t is found.
To find a routing path close to the optimal path, the Greedy-Face-Greedy (GFG)
algorithm combines the greedy routing and the face routing. In GFG, nodes conduct greedy
routing whenever it is possible. In the case when a void exists in the forwarding direction, face
routing is used to send the message around the void. Hence, GFG guarantees message delivery
and significantly reduces the path lengths.

4.2 VSF Traversal


During this step, the message is traversed along the virtual surrounding face.
MSG(S,R,u,trav(u,v.Left-Right)
Double
Directional
Forwarding

Face Planar
Traversal
Engine

Graph
Get
Engine
Routin

+ CDLP, GG
Geogra

Coordi

next SKIP
nates

or
phic

hops
g

RNG
38

Figure 4.6 Main modules in the implementation of VSF Traversal

A node u chosen on the VSF starts VSF Traversal. This is also aided by skipping
technique described later. For a network with a node set V, VSF traversal associated with a
geocasting region R is performed on top of GG(V). In other words, each node involved in face
traversal computes u’s next traversed node based on NGG(u), and ignores all crossing edges with
u as one end point.
Not always the VSF nodes are well connected by VSF edges. There exist several situations
where the message has to traverse through the nodes in the geocasting region to complete the
VSF traversal. Two examples of such situations are discussed below.
39

Figure 4.7 Boundary of VSF connected via internal nodes z & t

In some situations, VSF nodes are connected via a crossing edge that connects two
internal and external border nodes. Fig 4.7 shows one such example, where boundary tvwx is
connected to the outer boundary via path yzut. When t, which does not receive a traversal
message, overhears a flooding message from u, t starts its own face traversal.
VSF nodes may also be connected via an external crossing edge as shown in fig 4.8. Here
the VSF boundary is connected with the outer face boundary via etu, which is ignored during VSF
traversal. In this case, when u overhears the traversal message that is sent from node t and is
designated for another node for the first time, u starts its own face traversal if etu intersects R.
40

Figure. 4.8 VSF connected via external crossing edge yu


The node selected during VSF forwarding starts VSF traversal and is called an entrance
node. Each entrance node traverse a face by using a message MSG(s,R,u,trav(…)), where
trav(…) is the traversal rule used.
4.2.1 Face Traversal rule
There are two traversal methods: left hand traversal and righr hand traversal. In the
former, a person explores a face by keeping her right hand on the walls (edges) and she will
eventually visit all edges on the face. In the latter, a person explores a face by keeping her left
hand on the walls.

Figure 4.9 Single and Double directional face traversal


i) Initiation of VSF Traversal

To reduce traversal time and guarantee delivery, each entrance node simultaneously initiates
a VSF traversal in two directions by using the Right-Hand and the Left-Hand Rule. Two possible
starting cases are shown below:
41

Figure. 4.10 Entrance node having two neighbors

In fig 4.10, entrance node u with two neighbors v1 and w1 can find the next traversal node on
the VSF by ignoring the crossing edge eux of R. Then, u sends MSG(s, R, u, trav(u,v1,Left)) to
v1, and MSG(s, R, u, trav(u,v1,Right)) to w1. When v1 receives the message designated for itself,
v1 knows itself to be a node and forwards MSG(s, R, u, trav(v1,v2,Left)) to v2. Similar steps are
repeated until the termination condition described later is satisfied.
42

Figure 4.11 Entrance node having only one neighbor

In the figure above, entrance node u with only one VSF neighbor sends v a message
MSG(s,R,u,trav(u,v,Left – Right)), where Left – Right indicates to apply both Left – and Right-
Hand Rules. When v receives MSG, since v has only one traversal node w, v modifies the
message to MSG(s,R,u,trav(v,w,Left – Right)) and send it to w. Once w receives the message,
due to the Left-Right instruction in the message, and w having two VSF neighbors z and y, w
sends MSG(s,R.u.trav(w,z,Left)) and ,SG(s,R,u,trav(w,y,Right)) to z and y, respectively.

ii) Termination of VSF Traversal

To prevent from having messages traversing a VSF many times, each VSF node uses a
termination condition to decide if the received message can be discarded. Let function
nect(q,MSG) return the node which will be traversed next when node q receives a traversal
message MSG. For example in fig.4.10, if w receives MSG(s,R,u,trav(v,w,Left) from v,
next(w,MSG(s,R,u,trav(v,w,Left)))=z. Then we have:

iii) Termination Condition for VSF

Assume that a VSF node u receives a traversal message MSG1(s,R,i1,trav(v1,u,Rule1)


from node v1 but u does not forward MSG1 to other nodes yet. Once u receives another
43

message MSG2(s,R,i2,trav(v2,u,Rule2) from v2,u terminates the traversal if the following


condition is TRUE:(next(u,MSG1)=v2) AND (next(u,MSG2)=v1) AND (Rule1≠Rule2).

In the preceding condition, v1 and v2 may be the same node. One example of this case is
shown in fig 4.10, in which node u receives two traversal messages from node v with
different traversal rules. The VSF traversal is given in algorithm 1. It is possible that a node u
receives two MSGs which satisfy the termination condition before u forwards any traversal
message. In this case, u must broadcast the message once to guarantee delivery (Lines 5-8 of
Algorithm 1).

Algorithm 1:VSF Traversal


For each node u in V – VR receiving a MSG from node v;
1. BEGIN
2. if (MSG is a face traversal message) {
3. if (u is the MSG recipient) {
4. if (Termination condition is satisfied)
5. if (u has not forwarded any traversing message and u is an external border
node) {
6. u broadcasts the content of MSG;
7. }
8. U discards MSG;
9. } else { //Termination condition is not satisfied.
10. u forwards the MSG to the node v=next(u,MSG);
11. }
12. } else { // u is not the MSG recipient
13. if (u receives MSG first time and euv is an external crossing edge) {
14. u starts its face traversal;
15. } else { u discards MSG;}
16. }
17. } else if (MSG is a broadcasting message) {
18. if( u receives MSG first time and euv is an crossing edge) {
19. u waits for a time period;
20. if (timeout and u does not receives face traversal MSG) {
44

21. U starts its face traversal;


22. }
23. } else { u discards MSG;}
24. }
25. END

4.2.2 Skipping Technique in Face Traversal

In dense networks, some nodes can skip intermediate nodes to reduce transmission cost
during VSF traversal. Such an algorithm called SKIP is introduced here to work solely based
on the one-hop neighbor knowledge of each node. In SFR, a set of sufficient conditions are
defined by which a node decides if it can skip one or more intermediate nodes in face
traversal. One of the desired properties of SFR is that each node in SFR only needs to know
locations of its one-hop neighbors, and therefore, no additional communication overhead is
required. SFR can be embedded in GFG with minor modifications.

i) Single node Skipping Conditions


The single node skipping conditions are first addressed by which a node can determine if
it can skip one intermediate node. All the results in this section are obtained by using Right-Hand
Rule during face traversal and the discussion is based on GG. Similar results hold for Left-Hand
Rule too. The proofs of the lemmas have been ignored here.
Assume that node x knows locations of its one-hop neighbors, and a node u is the next
traversed node of x during face traversal. From viewpoint of x, if x can skip u and sends the
traversal message to node v depends on the two conditions as follows:
C1: by which x can determine if u and v are Gabriel neighbors of each other.
C2: by which x can determine if v is the next traversed node with respect of u.
Let (u.v) denote the circle with the line segment connecting u and v as its diameter, and
c(u,v) the center point of (u,v). Lemma 1 answers the Condition C1.

Lemma 1: Let u and v be two neighbors of a node x. If d(x,c(u,v)) + d(u,v)/2≤1, x can determine
whether u and v are Gabriel neighbors of each other.
45

To derive condition C2, let me define some terms as follows. For an edge euv in GG(V), let
+
(euv,v) denote the perpendicular line of euv through v, (euv,v) partitions the network plane into
+
two half planes (Fig 4.11). Let , (euv,v) denote the half plane (shaded area in the figure) not
containing u. We have the following Lemma.

Lemma 2: For two nodes u and v which are Garberial neighbors of each other, u can not have a
+
Gabriel neighbor located in the half plane (euv,v).

(euv,v)

u line (euv,v)

Figure 4.12 Half plane of line (euv,v) in the derivation of skipping conditions

Figure 4.13 Two cases of searching space (shaded areas) of u with respect to x
Then skipping condition (condition C2) is derived as follows. Let (u) denote the unit
disk centered at u, and denote a ray starting at u through x. Considering fig. 4.12(a), assume
46

that u is the next visited node with respect to x. Node x scans its covered area by rotating
clockwise (keeping u stationary) until find the first encountered node v which is a Gabriel
neighbor of u. This step is called Gabriel neighbor scan process of performed by x (denoted
by scan( ,x)), and the angle xuv is called scan angle. Then we need to find a condition by
which x can determine if v is the next visited node with respect to u based solely on x’s local
knowledge. Assume that v is the node obtained by using scan( ,x) in figure 4.12(a). Two
lines (euv,v) and (eux,x) are drawn and then decision region of u (denoted by Ω(u)) as
follows.
Case 1: If the two lines intersect at a point w within the scan angle and located in (u),
Ω(u) is defined as the trapezium wxuv (the shaded area in Fig. 4.12(a)).

Case 2: If not the case 1, let w1 denote the intersected point of (euv,v and (u)located
in the scan angle xuv. Ω(u) is defined as the area enclosed by line segments w1v, vu, ux, xw2,
and are w2w1 (the shaded region in fig. 4.12(b)).

Thus the single node skipping condition can be derived as in Lemma 3.

Lemma 3: For the nodes x, u and v shown in Fig. 4.12, u is the next visited node with respect to
x, and v is the node found by the scan process scan( ,x). If decision region Ω(u) is fully
contained by (u) and there is no node in Ω(u), x can determine by using its local knowledge
that v is the next visited node with respect to u.
ii) Multiple-node Skipping Condtion

The preceding section gives the condition in which a traversal message skips one
intermediate node. In many applications, nodes are densely deployed so that it is possible
to skip over multiple nodes. Hence, a multiple-node skipping condition for nodes with
one-hop neighbor information. First, assume that a node s, which holds a traversal
message, determines that s can skip (k-1) nodes, and the traversing sequence without
skipping is s s1 … sk-2 x u. Then it is obtained that:
Lemma 4: For the sequence of nodes s s1 s2 … sk-2 x u given above, let v be the
node found by the scan process scan( ,s). then if the decision region Ω(u) is fully located in
47

(s) and there is node located in Ω(u), s can determine by its local knowledge that v is the next

visited node with respect to u.


From Lemma 3, a node s can find a sequence of skipped nodes satisfying Lemma 4. This process
ends if no node can be found. Then, s sends the message to the last node in the skipping
sequence. Let SKIP denote the multiple-nodes skipping algorithm for a node with one-hop
neighbor information and its pseudo-code is given in Algorithm 2.

Algorithm 2: Multiple-nodes skipping algorithm (SKIP) for nodes with one-hop neighbor
Information
1. Input: a node s which holds the current traversing message
2. Outout: a list L of nodes that will be traversed from s in the visited order
3. BEGIN
4. u the next visited node of s; x s;
5. for (true)
6. append u at the end of to the list L;
7. V the node found by the process scan( ,s);
8. if((Ω(u) (s))&&( Ω(u) contains no node)) then { x u; u v;} //Lemma 4
9. else break;
10. end if
11. end for
12. END

iii) Avoidance of Infinite Loop

SKIP may return a list containing infinite number of nodes in a special situation illustrated in fig.
4.13. In the figure, the face is bounded by a node sequence L’=x u w. However, starting at x
and using SKIP, the returned sequence L will repeat L’ infinite number of times. One solution to
avoid an infinite sequence is that the sequence L stops adding a newly found node r when r is in
48

L. However, this solution will lose a chance in which x can skip more nodes. As illustrated in fig.
4.14, a true skipping sequence is x u w u v. If using the preceding solution, x transmits
its message to w, instead of to v.
To avoid infinite sequences and not miss skipped nodes, a skip halting rule is given as
follows. Let L denote the sequence found by SKIP so far, and L=s1 s2 … sk-1. For any

Figure 4.14 Infinite skipping sequence

Figure 4.15 Missing node during skipping


two consecutive traversing node sk and sk+1 obtained by SKIP, if sk=si and sk+1=si+1 for some i<k,
then, sk is appended at the end of L and SKIP is terminated.
4.2.3 Termination Condition of SFR for Double-Direction Face Traversal
In SFR, a node involved in a face traversal uses a traversing message MSG(source,
destination, trav(…)), where the source is the node trying to communicate to the destination, and
trav(…) is the traversing method defined in Section 4.2.1. For example, in the double directional
face traversal shown in fig. 4.9, a traversing message sent by u is MSG(s,d,trav(u,x,Left,u)). To
avoid traversing a face many times, each node receiving MSGs must check a termination
condition, by which a node decides if the received MSGs can be discarded.
The termination condition can be stated as follows. For two Gabriel neighbors u and v
receiving two traversing messages, if the message at u will traverse v next and the message at v
49

Figure 4.16 Termination condition of face traversal

Figure 4.17 Double directional traversal in SKIP


will traverse u next, these two messages are discarded by u or v depending on which node
transmits its traversing message first. If u transmits its traversing message to v first, then v
discards both the messages. As illustrated in fig.4.15, a double-direction face traversal is started
at a node s and the two traversal messages MSG(s, d, trav(v,w,Left,s)) and
MSG(s,d,trav(y,w,Right,s)) reach the node w. According to the termination, w determines
completion of face traversal and discards both the messages. VSFG combined with SKIP is to be
called as VSFG1 in the latter sections.

4.2.4 Dominating Set based Restricted Flooding


The last step of VSFG is the restricted flooding which, however, has significant
drawbacks: high cost, contention and message collision. An algorithm is proposed to replace
restricted flooding in VSFG to overcome the drawbacks.
When each node knows the locations of its neighbors, the algorithm in [10] and [13]
allows the node to determine if it is in the DS without extra message exchange. This algorithm is
designed to build a DS for the entire network, called a global DS. The algorithm can be directly
applied in VSFG. However, for networks with stationary nodes, global DS incurs a load
50

balancing problem. This is because the global DS is fixed and all broadcasts are performed by
the nodes in the DS. These nodes deplete energy much faster than the others. Instead of global
DS, a local DS which varies for different geocasting regions and broadcasting order s of nodes is
constructed.
This local DS construction is performed by each internal node u which overhears a
geocasting MSG. Assume that each node has a unique ID. Once u overhears an MSG with a
geocasting region R and u has not broadcasted the MSG yet, u computes and maintains four
neighbor sets below:
Ntx(u)
the set of UDG neighbors of u which have already transmitted the MSG (the MSG can
be either a VSF traversal message or a broadcasting message with R).
Nrx(u)
the set of UDG neighbors of u such that for υ € Nrx(u), v is an internal node of R
and v has not transmitted the MSG yet.
Next(u)
the set of GG neighbors of u such that v € Next(u), v has no UDG neighbor in
Ntx(uv), evu forms a crossing edge, and v has not transmitted the MSG yet.
Nint(u)
the set of UDG neighbors of u such that for each node v in Nint(u), v is an internal node
of R, v is not in Ntx(u) Nrx(u), and v has not transmitted the MSG yet.
Let ID(x) denote the ID of node x. Then u determines if it broadcasts the MSG or not by
using the following two rules.
Rule 1: if Next(u) Nint(u) is empty, u discards the MSG. Otherwise, u performs Rule 2 as
follows.
Rule 2: for every node v € Next(u) Nint(u), if there exists a node w in Nrx(u) such that ID(w) >
ID(u) and v is a UDG neighbor of w, then u discards the MSG. Otherwise, u belongs to the local
DS and broadcasts the MSG.

Algorithm 3: Local DS-based Restricted Flooding


1. BEGIN
2. while (u overhears MSG from x with R) {
3. if ((u is in R) == false) { u ignores MSG and goes to line 2;}
4. Ntx(u) Ntx(u) {x}; u computes Nrx(u), Next(u), and Nint(u);
5. if (Next(u) Nint(u) == Ø) { u discards the MSG; exit; }
51

6. for (every node v in Next(u) Nint(u)) {


7. need-Broadcast true;
8. for (every node w in Nrx(u))) {
9. if (ID(w) > ID(u) && v is a UDG neighbor of w) {
10. need-Broadcast false; break;
11. }
12. }
13. if (need-Broadcast == false) { u discards the MSG; exit; }
14. u chooses a random back-off time ∆t and sets a timer;
15. while (the timer is not timeout) {
16. if (u receives a new MSG from a node not in Ntx(u) {
17. u cancels the timer; goto Line 3;
18. }
19. } // timeout occurs
20. u broadcasts the MSG; exit;
21. }
22. END

Local DS-based restricted flooding is given in Algorithm 3. The intuitions behind


Algorithm 3 are as follows. For each internal node overhearing a MSG but not transmitting the
MSG yet, u has a responsibility to transmit the MSG to the set of its neighbors which do not
receive the MSG, and this set is called a responsible set of u. Obviously, the neighbors of u in
Ntx(u) Nrx(u) have received the MSG. Hence, the responsible set of u is Next(u) Nint(u)
which consists of neighbors of u without receiving the MSG based on u’s local knowledge.
However, if u can pass its responsibilities for all the nodes in Next(u) Nint(u) to other nodes in
Nrx(u), u needs not transmit the MSG. Rules 1 and 2 depict these situations.
Rule 1 shows a simple situation in which if all u’s neighbors have received the MSG, u
can simply discard the MSG. In Rule 2, for node v in Next(u) Nint(u), if u finds a neighbor w
which has received the MSG, it is possible that u passes the responsibility for v to w. To avoid
that u passes to w while w passes back to u, the IDs of u and w are used to break the loop. If the
responsibilities of all nodes in u’s responsible set can be passed to other nodes in Nrx(u), u drops
the MSG.
52

Figure 4.18 Illustration of connection between outer and inner VSF pieces. In the figure, the
dashed circle denotes the transmission range of node y.
Nodes in Next(u) Nint(u) as the responsible set instead of Nint(u) is because VSF of a
region R nay consist of several pieces which are connected only via nodes in R. In this case,
message delivery is guaranteed only if we consider Next(u) Nint(u). Fig. 4.17 shows an example
in which VSF piece tvwx is connected via nodes u in R to the outer VSF piece. Since t is in
Next(u), if we only consider Nint(u) without including Next(u), u will not broadcast the MSG (based
on Rule 1), resulting in that t, v,w, and x are not visited and all nodes in the right part of R do not
receive the MSG.
VSFG1 embedded with algorithm 3 is named as VSFG2. In VSFG2, different local DSs
are constructed for different geocasting regions. In addition, different transmitting orders of
nodes result in different local DSs. Hence, VSFG2 does not have the load balancing problem
incurred in global DSs [10].
4.3 Simulation Results for base networks
The first experiment is done by using a routing-level simulator on randomly generated networks.
In each sample network, nodes are randomly distributed in a 20 X 20 area such that the average
degree is g. The value of g is varied to observe the impact of the network density on the number
of transmissions. All nodes have an identical transmission radius of 1 unit. These sample
networks are called base networks. For each , 10 base networks are generated in the simulation.
For each base network, 10W X H rectangular geocasting regions were randomly generated. The
values of W X H are varied to observe the impact of sizes of regions on transmission costs.
Fig. 4.19(a)–(c) shows Cf,Cr and C for geocasting regions with W=3 and H=1.5 . The x
axis denotes the average degree g of networks. The vertical bars in Fig. 41.9(a) correspond to
53

95% confidence interval of the mean value. To make the figure clear, we did not include
confidence intervals in other figures and they are in a small range around the sample mean.
Similarly, Fig. 4.20(a)–(c) shows Cf,Cr and C for regions with with W=5 and H=2.5 . From these
figures, we have the following observations.
First, from Figs. 4.19(a) and 4.20(a), Cf of VSFG1 is identical to that of VSFG2 and is
much smaller than that of RFIFT. The higher the network density is, the higher the reduction
percentage of Cf comparing with RFIFT. It may be noted that in Fig. 4.19(a), Cf in a network
with g=10 is higher than Cf in a network with g=15 for the same algorithm. This is because in
sparse networks, the probability of traversed faces containing the outer boundary of the entire
network is higher, resulting in the high transmission cost.
Second, according to Figs. 4.19(b) and 4.20(b), VSFG1 and RFIFT have identical costs of
restricted flooding. On the other hand, VSFG2 significantly reduces the flooding cost Cr of
RFIFT. From the figures, it can be observed that VSFG2 has almost an identical Cr in networks
with different densities. In RFIFT, Cr is proportional to the densities of networks.
54

Third, according to Figs. 4.19(c) and 4.20(c), VSFG1 reduces the total cost C of RFIFT
by 20%, and VSFG2 reduces the total cost of RFIFT by 30% to 65%.

Fig 4.19 Three costs for base networks with 3 X 1.5 geocasting regions
55

For fixed geocasting regions, when the network density increases, the reduction
percentage of C in VSFG1 remains approximately unchanged comparing with RFIFT. In the same
situations, the reduction percentage of C in VSFG2 increases comparing with RFIFT. This is
because VSFG2 has an identical Cr in networks with different densities. Cr has higher impact on
than for large regions, and has less impact on C than Cf for small regions. When the size of
region increases, the reduction percentage of C in VSFG1 decreases slightly comparing with
RFIFT. In the same situations, the reduction per centage of C in VSFG2 increases. This is because
for large regions, the cost Cr has a higher impact on C.

Fig 4.20 Three costs for base networks with 5 X 2.5 geocasting regions
4.4 Simulation Results for Void Networks
In the second experiment, the performance of void networks are
evaluated. Simulation is performed on a set of sample void networks
generated from the base networks. For each base
56

network, place a number of 1.5 X 1.5 square voids are randomly placed
within the network area, and all the nodes in the voids are removed. The
value of the void number is varied from 15 to 30.
Figs. 4.21-4.24 show the simulation results in void networks. The total
costs of three algorithms are shown since the face traversal cost and the
restricted flooding cost follow the similar distributions shown in Figs. 4.19
and 4.20. From Figs. 4.21-4.24, following observations are made.

Fig 4.21 Costs for void networks with 15 voids and 3 X 1.5 regions

Fig 4.22 Costs for void networks with 30 voids and 3 X 1.5 regions
First, VSFG1 reduces 20% to 25% of the total cost C involved in RFIFT,
VSFG2 and reduces 30% to 65% of in RFIFT. For a fixed R and a fixed void
number, the reduction percentage of C in VSFG1 approximately remains
unchanged with the increase of network densities comparing with RFIFT. In
the same situations, VSFG2 performs slightly better with the increase of
network densities. This result is similar to that obtained in base networks,
and the reason is similar as well.
57

Fig 4.23 Costs for void networks with 15 voids and 5 X 2.5 regions

Fig 4.24 Costs for void networks with 30 voids and 5 X 2.5 regions

Second, for a fixed geocasting region and a fixed network density,


comparing with RFIFT, the reduction percentages of C for VSFG1 and VSFG2
decrease slightly when the number of voids in networks increases. Third,
comparing with RFIFT, VSFG1 and VSFG2 can achieve a slightly higher
performance gain in base networks than in void networks.

4.5 EXPERIMENTAL ANALYSIS


In this section, the performance of RFIFT, VSFG1, and VSFG2 are compared. Due to the
approximately identical unicasting costs Cu in the three algorithms, we do not show Cu
individually. Instead, the traversal cost Cf, is used. The flooding cost Cr, and the total cost C as
performance metrics. Two sets of experimental results are presented in various network
topologies with stationary nodes. First, the three algorithms are compared in networks with
randomly inserted voids, which represent some practical network topologies due to the existence
of obstacles.
58

4.6 RESEARCH TOOL USED


All these analysis are done with the network simulator ns2 2.29 under fedora 7.

4.6.1 NS2
NS or Network Simulator is a discrete event network simulator, meaning that the
sequence is divided to chronological time units and each time unit will hold one or more events
that will be performed.
NS is an open source model implemented mainly in C++ and provides a simulation
interface through O-Tcl/TCL script languages. NS also has plentiful online documentation and
those are the reasons for its wide use in academia.
NS supports several popular network protocols (TCP, UDP, etc.) and enables wired,
wireless and even satellite networks. There are also supported AODV, DSDV, TORA and other
routing protocols.
The main form of working with NS is to build a simulation scenerio in the form of a .tcl
script file and run it with NS.
i) NAM

Nam is a Tcl/TK based animation tool for viewing network simulation traces and real
world packet traces. It is mainly intended as a companion animator to the NS simulator. Using
NAM the user can graphically see the network and data transportation. NAM supports topology
layout, packet level animation and various data inspection tools.
ii) TCL

Tool Command Language is a very powerful and easy to learn scripting language, often
referred to as a programing language. TCL is widely used for scripted applications, GUI
(Tcl/Tk), testing and file processing.
TCL is also used as the API for NS.
4.7 PROPERTY AND PERFORMANCE ANALYSIS
In this section, the guaranteed message delivery for VSFG family is proved, asymptotic
bounds are analyzed, and performance of VSFG family is compared with existing approaches.

4.7.1 Guaranteed Message Delivery in VSFG


59

Guaranteed message delivery is justified due to three properties below. In the discussions,
it is assumed that a network UDG(v) is connected, and GG(V) is the Gabriel graph.
Property 1
For every node outside a VSF transmitting a message to a node in a geocasting region R
on top of GG(V), the message must pass through at least one VSF node.
Let Ψ = {F1,F2,...,Fk } be the set of faces that intersect R on GG(V), and VΨ be the set of
nodes not in R but on the boundary of Fi for an arbitary i(1≤ i≤k). Let be the node
set in which each node is an end point of a crossing edge of R. Then we have Properties 2 and 3
as follows.
Property 2
Visiting all nodes in and performing re- stricted flooding within R is sufficient to
ensure delivery.
Property 3
Each node in is located on the boundary of the VSF formed by VSFG.
By using the preceding three Properties, Theorem 1 can be obtained immediately as follows.
Theorem 1
VSFG guarantees message delivery.

4.7.2 Guaranteed Message Delivery in VSFG1


Guaranteed message delivery of VSFG1 is justified due to two VSF properties as follows.

Property 4
VSFG1 guarantees delivery of the geocasting message to all VSF nodes of the geocasting
region R.
Property 5
VSFG1 ensures delivery of geocasting message to all internal border nodes of the
geocasting region R.
From Properties 4 and 5, Theorem 2 is obtained as follows.
Theorem 2
VSFG1 guarantees message delivery.
4.7.3 Guaranteed Message Delivery in VSFG2
60

The difference of VSFG1 and VSFG2 is that VSFG2 uses DS-based restricted flooding. By
property 4, VSFG1 guarantees to visit all VSF nodes. We prove that DS-based restricted flooding
can deliver messages to all nodes in R as the simple restricted flooding does in Theorem 3 as
follows.
Theorem 3
VSFG2 guarantees message delivery.
4.7.4 Performance Analysis of VSFG
Similar to the existing approaches [10], the total transmission cost of VSFG is
subdivided into three parts associated to the three phases as follows:
i) VSF forwarding

Let be the forwarding cost measured by the transmissions required in forwarding.

ii) VSF traversal

Let be the traversal cost measured by the number of transmissions required to traverse
VSF.
iii) Restricted flooding

Let denote the total cost (number of transmissions) in restricted flooding.


Obviously, C=Cu + Cf +Cr. In the first phase, GFG is modified to find the entrance node.
In the second phase, Cf is given in Theorem 4.
Theorem 4: The total number of transmissions Cf required in VSF traversal is bounded by Cf ≤
2n in VSFG, VSFG1, and VSFG2, where n is the total number of VSF nodes.
In the restricted flooding phase, the worst case in VSFG family is that each node in the
region broadcasts once. Let k be the number of nodes in the region. Then we have Cr≤ k.

4.7.5 Analytical Performance Comparison


RFIFT [10] is the known most efficient algorithm with guaranteed message delivery, so
we compare VSFG with RFIFT. RFIFT and VSFG have three similar phases; the costs involved
in these three phases are discussed separately.
In the forwarding phase, RFIFT chooses the center point of a geocasting region R as the
destination reference point. In contrast, VSF uses a point in R with the shortest distance to the
61

geocasting source as the reference point. Hence, the path discovered in VSF is slightly shorter
than that in RFIFT.
In the face traversal phase, referring to the results shown in [18], the total number of
transmissions in this phase is constrained by , where is the number of nodes that are on the
faces intersecting R. From Theorem 4, it is easy to show that n , where n is the total number
of VSF nodes in VSFG (also VSFG1 and VSFG2). Therefore, VSFG reduces the upper bound of
the traversal cost from 3n in RFIFT to 2n.
In the restricted flooding phase, since VSFG2, uses local DS-based restricted flooding, its
cost is much smaller than the cost in RFIFT for dense networks.
CHAPTER 5
CONCLUDING REMARKS

In Chapter 2, a detailed survey regarding various routing protocols in different networks


have been made. Throughout the literature survey, the focus was on geocasting. Finally, it is
studied that there is no protocol which ensures guaranteed delivery of geocast messages in
WSNs. So that the vision is narrowed towards WSNs. A new method for Geocasting in WSNs
has been proposed with the basic idea and suitable diagrams and implementation details of this
module is explained.
In the latter chapters, VSF Traversal and DS based Restricted flooding are explained and
the performance of VSFG is compared with the existing approaches.
Thus, in VSFG, a virtual surrounding face (VSF) of a geocasting region is constructed by
ignoring edges intersecting the region. By traversing all the boundary nodes of VSF and
performing restricted flooding within the geocasting region, all nodes are guaranteed to receive
the message. In addition, SKIP algorithm and the DS-based restricted flooding further reduces
the cost. The VSFG2 algorithm which combines these two algorithms reduces the cost.
Among the existing algorithms, RFIFT has the lowest transmission cost. In RFIFT, the
cost for face traversal is limited to 3n, where n is the number of nodes on the boundaries of faces
intersecting R. In the algorithms of VSFG family, this bound is reduced to 2n. In addition, by
applying SKIP and local DS-based restricted flooding, VSFG significantly improves the
performance on average cases for dense networks. From the simulation results, VSFG 2 reduces
upto 65% of the total cost required in RFIFT.
62

5.1 Applying VSFG in realistic networks


VSFG fails in realistic wireless networks as it requires topology graphs to be planar. In practical,
the constructed Gabriel graphs by VSFG may not be planar. Several realistic test-beds show such
observations. However, VSFG is still useful and applicable in realistic environments.
First, many applications are deployed in environments with small obstacles. One realistic
application is the contour map monitoring project deployed above the surface of sea. In such
applications, signal coverage areas are close to unit disk and VSFG can be directly applied.
In other situations in which VSFG fails frequently, one solution is possible to overcome
the problem. The basic idea is to construct an overlay unit disk graph (OUDG) above the realistic
sensor network satisfying the properties of UDG. Construction of OUDG is based on the two
following rules.
Rule 1
if two nodes are within unit distance D but not direct neighbors, a virtual path between
the two nodes can be built and treat them as neighbors of each other in OUDG.
Rule 2
if two nodes are not within distance D but they are direct neighbors, this link is removed
from the OUDG.

5.2 Future Work


VSFG can be directly applied over OUDGs. However, OUDG construction requires that
each node knows the locations of all nodes in the network, which is not practical. A realistic way
is that let each node know the locations of nodes within m hops to u. With m-hop neighbor
information, an intermediate graph can be constructed based on Rules 1 and 2. The constructed
graph may not be an OUDG. The Gabriel graph built above an intermediate graph may contain
intersected edges. However, according to experiments results not shown here, intermediate
graphs constructed with m=2 or m=3 have very high probabilities to support VSFG without
failure in most of situations.
63

PUBLICATIONS
1. “A GUARANTEED GEOCASTING USING VIRTUAL SURROUNDING APPROACH
IN WIRELESS SENSOR NETWORKS” in the International Conference on Intelligent
Science and Technology at Sun College of Engineering and Technology, Nagercoil on
Mar-2011
2. “A GUARANTEED GEOCASTING USING VIRTUAL SURROUNDING APPROACH
IN WIRELESS SENSOR NETWORKS” in the National Conference on Intelligent
Techniques in Control Optimization and Signal Processing at Kalasilingam University,
Krishnankovil on Apr-2011
64

REFERENCES

1. A. K.Daniel, R.Singh and J.P.Saini “Swarm Intelligence Based Routing Technique for
Heterogenous Mobile Adhoc Network using Link Stability Factors for QoS,” GJCAT,vol.
1, no. 1, pp. 1–10, 2011.

2. A. Qayyum, L. Viennot, and A. Laouiti, “Multipoint relaying for flooding broadcast


messages in mobile wireless networks,” in Proc.Hawaii Int. Conf. System Sciences,
2002, pp. 3898–3907.

3. E. Kranakis, H. Singh, and J. Urrutia, “Compass routing on geometric networks,” in


Proc. Canadian Conf. Computational Geometry, 1999, pp. 51–54.

4. F. Kuhn, R. Wattenhofer, and A. Zollinger, “Asymptotically optimal geometric mobile ad


hoc routing,” in Proc. ACMWorkshop on Discrete Algorithms and Methods for Mobile
Computing and Communications, 2002, pp. 24–33.

5. G. G. Finn, “Routing and addressing problems in large metropolitan internetworks,” ISI


Research Report ISU/RR-87-180, 1987.

6. H. Frey and I. Stojmenovic, “On delivery guarantees of face and combined greedy-face
routing algorithms in ad hoc and sensor networks,” in Proc. ACM MOBICOM, 2006, pp.
390–401.

7. H. Gupta, Z. Zhou, S. R. Das, and Q. Gu, “Connected sensor cover: Self-organization of


sensor networks for efficient query execution,” IEEE/ACM Trans. Networking, vol. 14,
no. 1, pp. 55–67, Feb. 2006.
8. H. Takagi and L. Kleinrock, “Optimal Transmission Ranges for Randomly Distributed
Packet Radio Terminals,” IEEE Trans. Commun., vol. 32, no. 3, Mar. 1984, pp. 246–57.

9. Jie Lian, Kshirsagar Naik: Skipping technique in face routing for wireless ad hoc and
sensor networks. IJSNET 4(1/2): 92-103 (2008).
65

10. I. Stojmenovic, “Geocasting with guaranteed delivery in sensor networks,” IEEE


Wireless Commun., vol. 11, no. 6, pp. 29–37, Dec. 2004.

11. Julio C. Navas and Tomasz Imielinski, “GeoCast – Geographic Addressing and Routing,”
in Proceedings of the 3rd annual ACM/IEEE international conference on Mobile
computing and networking (MobiCom), Budapest, Hungary, 1997, pp. 66–76.

12. J. Carle and D. Simplot-Ryl, “Energy Efficient Area Monitoring by Sensor Networks,”
IEEE Comp., Feb. 2004, pp. 40–47.

13. J.C. Navas and T. Imielinski. Geocast - geographic addressing and routing. In Proc. of
ACM/IEEE MOBICOM, Budapest, Hungary, Sept. 1997.

14. J. Wu and H. Li, “A dominating-set-based routing scheme in ad hoc wireless networks,”


Telecommun. Syst. J., vol. 3, Special Issue onWireless Networks, pp. 63–84, 2001.

15. P. Bose, P. Morin, I. Stojmenovic, and J. Urrutia, “Routing with guaranteed delivery in ad
hoc wireless networks,” in Proc. ACM Workshop on Discrete Algorithms and Methods
for Mobile Computing and Communications, 1999, pp. 48–55.

16. P. Bose, P. Morin, I. Stojmenovic, and J. Urrutia, “Routing with guaranteed delivery in ad
hoc wireless networks,” Wireless Networks, vol.7, no. 6, pp. 609–616, 2001.

17. Sherin M. Youssef, A. Baith Mohamed, and Mark A. Mikhail, “An enhanced security
architecture for wireless sensor network” DNCOCO'09 Proceedings of the 8th WSEAS
international conference on Data networks, communications, computers, pp. 216-224

18. T.C. Hou and V. O.K. Li, “Transmission Range Control in Multihop Packet Radio
Networks,” IEEE Trans. Commun., vol. 34, no. 1, Jan. 1986, pp. 38–44.

19. T.Imielinski, J.C.Navas, GPS-based geographic addressing, routing, and resource


discovery, Communications of the ACM 42 (4) (1999) 86–92.

20. W. H. Liao et al., “Geogrid: A geocasting protocol for mobile ad hoc networks based on
grid,” J. Internet Technol., vol. 1, no. 2, pp. 23–32, 2000.
66

21. Y. B. Ko and N. H. Vaidya, “Flooding-based geocasting protocols for mobile ad hoc


networks,” Mobile Networks and Applications, vol. 7, no. 6, pp. 471–480, 2002.

22. Y.B. Ko and N.H. Vaidya, Location-aided routing (LAR) in mobile ad hoc networks, in:
Proc.of ACM/IEEE International Conference on Mobile Computing and Networking
(MobiCom), Dallas, TX (October 1998) pp. 66—75.

23. Y. B. Ko and N. H. Vaidya, “Geocasting in mobile ad hoc networks: Location-based


multicast algorithms,” in Proc. Workshop on Mobile Computer System and Applications,
1999, pp. 101–110.

24. Yi Zhao, Ung Heo, Peng Qui, Xin Wan, and Jaeho Choi, “An Efficient Tree-Based
Scheme for Geocast Protocol in Heterogeneous Wireless Sensor Network”, in the 6 th
International Conference on Information Technology and Applications, 2009, pp. 228-
233.
APPENDIX
SOURCE CODE
set PI 3.1415926535897

#
=====================================================================
=
# Define Protocol Defaults
#
=====================================================================
=

## VSFG Options
Agent/VSFG set bdesync_ 0.5 ;# beacon desync random component
Agent/VSFG set bexp_ [expr 3*([Agent/VSFG set bint_]+[Agent/VSFG set
bdesync_]*[Agent/VSFG set bint_])] ;# beacon timeout interval
Agent/VSFG set pint_ 1.5 ;# peri probe interval
Agent/VSFG set pdesync_ 0.5 ;# peri probe desync random component
Agent/VSFG set lpexp_ 8.0 ;# peris unused timeout interval
Agent/VSFG set drop_debug_ 1 ;#
Agent/VSFG set peri_proact_ 1 ;# proactively generate peri probes
Agent/VSFG set use_implicit_beacon_ 1 ;# all packets act as beacons; promisc.
Agent/VSFG set use_timed_plnrz_ 0 ;# replanarize periodically
Agent/VSFG set use_congestion_control_ 0
Agent/VSFG set use_reactive_beacon_ 0 ;# only use reactive beaconing

set val(bint) 0.5 ;# beacon interval


set val(use_mac) 1 ;# use link breakage feedback from MAC
set val(use_peri) 1 ;# probe and use perimeters
set val(use_planar) 1 ;# planarize graph
set val(verbose) 1 ;#
set val(use_beacon) 1 ;# use beacons at all
set val(use_reactive) 0 ;# use reactive beaconing
set val(locs) 0 ;# default to OmniLS
set val(use_loop) 0 ;# look for unexpected loops in peris

set val(agg_mac) 1 ;# Aggregate MAC Traces


set val(agg_rtr) 0 ;# Aggregate RTR Traces
set val(agg_trc) 0 ;# Shorten Trace File

#
=====================================================================
=
# Define NS Object Defaults
#
=====================================================================
=

# In case normal MovementTrace Option is a no-go


Node/MobileNode set movtrace_ 1

# Should ARP Lookup be used in LL


LL set useARP_ 0

# Routing Protocol Prefered (might break Protocol)


Queue/DropTail/PriQueue set Prefer_Routing_Protocols 0

#
=====================================================================
=
# Define Options
#
=====================================================================
=

set val(chan) Channel/WirelessChannel


set val(prop) Propagation/TwoRayGround
set val(netif) Phy/WirelessPhy
set val(mac) Mac/802_11
set val(ifq) Queue/DropTail/PriQueue
set val(ll) LL
set val(ant) Antenna/OmniAntenna
set val(x) 2000 ;# X dimension of the topography
set val(y) 2000 ;# Y dimension of the topography
set val(ifqlen) 512 ;# max packet in ifq
set val(seed) 1.0
set val(adhocRouting) VSFG ;# AdHoc Routing Protocol
set val(nn) 100 ;# how many nodes are simulated
set val(stop) 40.0 ;# simulation time
set val(use_gk) 0 ;# > 0: use GridKeeper with this radius
set val(zip) 0 ;# should trace files be zipped
set val(bw) 2Mb
set val(bs) 2Mb
set val(rr) 250

set path ./
set val(cp) "cp-n100-c400-15-98.tcl"
set val(sc) "sc-x2000-y2000-n100-s30-t100-MRD"
set val(out) ""
set val(on_off) ""
set val(pingLog) ""
set val(lt) "" ;# MAC load trace file

set val(cc) "" ;# congestion control


set val(smooth_cc)""

set val(agttrc) ON ;# Trace Agent


set val(rtrtrc) ON ;# Trace Routing Agent
set val(mactrc) ON ;# Trace MAC Layer
set val(movtrc) ON ;# Trace Movement

set val(mac_trace) "" ;# dummy

set val(ed) ""


set val(ve) ""

#
=====================================================================
# User defined Procedures
#
=====================================================================
=
proc usage {} {
global argv0
puts "\nUsage: ns $argv0 -out tracefile\n"
puts " NS Options:"
puts " -nn \[number of nodes\]"
puts " -stop \[simulation duration in secs\]"
puts " -x / -y \[dimension in meters\]"
puts " -adhocRouting \[routing protocol to use\]"
puts " -use_gk \[radius for gridkeeper usage\]"
puts " -zip \[(0/1) should tracefiles be zipped on-the-fly\]"
puts " -cc \[alpha for congestion control ((MAC802_11 only)\]"
puts " -ifqlen \[max packets in interface queue\]"
puts ""
puts " File Options:"
puts " -cp \[traffic pattern\]"
puts " -sc \[scenario file\]"
puts " -on_off \[wake/sleep pattern\]"
puts " -lt \[load trace file (MAC802_11 only)\]"
puts " -pingLog \[log file for ping statistics (Ping Traffic only)\]"
puts ""
puts " MAC Options:"
puts " -rr \[radio range in meters\]"
puts " -bw \[link/dataRate bandwidth in bits/sec\]"
puts " -bs \[basicRate bandwidth in bits/sec\]"
puts ""
puts " VSFG Options:"
puts " -bint \[beacon interval (and beacon expiry)\]"
puts " -use_planar \[(0/1) planarize graph\]"
puts " -use_peri \[(0/1) use perimeter mode\]"
puts " -use_mac \[(0/1) use mac callback\]"
puts " -verbose \[(0/1) be verbose\]"
puts " -use_beacon \[(0/1) use beacons at all (disable beacons with 0)\]"
puts " -use_reactive \[(0/1) use reactive beaconing\]"
puts " -locs \[locservice to use (0-Omni/1-RLS/2-GLS/3-HLS)\]"
puts " -use_loop \[(0/1) use loop detection\]"
puts ""
puts " -ed \[topology file (edges)\]"
puts " -ve \[topology file (verteces)\]"
puts ""
}

proc getopt {argc argv} {


global val
lappend optlist cp sc on_off om out pingLog nn stop x y adhocRouting mac_emu rr bw lt
use_gk ifqlen ora
# HGPS
lappend optlist upd bint cval mgrid tper tqo
# VSFG
lappend optlist bint use_planar use_peri use_mac verbose use_beacon cc smooth_cc
use_reactive use_loop
# CBF & LOCS
lappend optlist locs supt use_rec pkt_ret rev_ord use_la use_lazy use_uctf
lappend use_randa use_sdd agg_mac agg_rtr agg_trc
# GSR
lappend optlist ed ve
lappend optlist seed mac_trace zip no_echo

for {set i 0} {$i < $argc} {incr i} {


set arg [lindex $argv $i]
if {[string range $arg 0 0] != "-"} continue
set name [string range $arg 1 end]
set val($name) [lindex $argv [expr $i+1]]
}
if { $val(out) == "" } {
usage
exit
}
}

proc printparams {} {
global val
puts "\nParameterset:"
puts "Tracefile: \"$val(out)\""
puts "Protocol: $val(adhocRouting) nn: $val(nn) stop: $val(stop) x: $val(x) y: $val(y)"
puts "Radio Range: $val(rr)"

if { ($val(adhocRouting) == "VSFG") } {
if { $val(locs) == "0" } {
puts "$val(adhocRouting)/OMNI: Omnipotent GeoCasting Service selected."
} elseif { $val(locs) == "1" } {
puts "$val(adhocRouting)/RLS: Reactive GeoCasting Service selected."
} elseif { $val(locs) == "2" } {
puts "$val(adhocRouting)/GLS: Grid GeoCasting Service selected."
} elseif { $val(locs) == "3" } {
puts "$val(adhocRouting)/HLS: Cell GeoCasting Service selected."
} else {
puts "$val(adhocRouting)/UKN: Unknown GeoCasting Service. Defaulting to
Omnipotent GeoCasting Service."
}
}
if { $val(cc) != "" } {
puts "Using congestion control with alpha = $val(cc) ..."
}
puts ""
}

proc changeActiveState {nId on} {


global node_ val
if {$on == 0} {
#puts "Turning off node $nId"
if { ($val(adhocRouting) == "DSR")||($val(adhocRouting) == "VSFG")||
($val(adhocRouting) == "AODV") } {
set r [$node_($nId) set ragent_]
$r sleep
}
} else {
#puts "Turning on node $nId"
if { ($val(adhocRouting) == "DSR")||($val(adhocRouting) == "VSFG")||
($val(adhocRouting) == "AODV") } {
set r [$node_($nId) set ragent_]
$r wake
}
}
}

proc estimEnd {startTime simTime simEndTime} {


set now [clock seconds]
set realGone [expr $now - $startTime]
set simToGo [expr $simEndTime - $simTime]
set percSimGone [expr ($simTime / $simEndTime) * 100]
set percSimToGo [expr 100 - $percSimGone]
if {$percSimGone == 0} {
set ete 0
set eteString "unknown"
} else {
set ete [expr $startTime + ($realGone / $percSimGone) * 100]
}
set eteString [clock format [expr round($ete)]]
set sTimeString [clock format $startTime]
if {$ete != 0} {
puts "$simTime\tRun: $realGone ETE:\t$eteString"
} else {
puts "$simTime\tBeginn: $sTimeString!"
}
}

proc instEstim {startTime simEndTime step} {


global ns_
for {set t 1} {$t < $simEndTime } { set t [expr $t + $step]} {
$ns_ at $t "estimEnd $startTime $t $simEndTime"
}
}

proc create_gridkeeper {} {
global gkeeper val node_

set gkeeper [new GridKeeper]

puts "Initializing GridKeeper with radius $val(use_gk) ..."


#initialize the gridkeeper

$gkeeper dimension $val(x) $val(y)


#
# add mobile node into the gridkeeper, must be added after
# scenario file
#

for {set i 0} {$i < $val(nn) } {incr i} {


$gkeeper addnode $node_($i)

$node_($i) radius $val(use_gk)


}

#
=====================================================================
# Main Program
#
=====================================================================
=
getopt $argc $argv

if { $val(adhocRouting) == "VSFG" } {
Agent/VSFG set locservice_type_ $val(locs)
}

# create trace object for ping


if { $val(pingLog) != "" } {
set pingLog [open $val(pingLog) w]
} else {
set pingLog $val(pingLog)
}
# create trace object for MAC load
if { $val(mac) == "Mac/802_11" } {
if { $val(lt) != "" } {
set loadTrace [open $val(lt) w]
puts $loadTrace "# x=$val(x), y=$val(y), n=$val(nn), stop=$val(stop)"
} else {
set loadTrace $val(lt)
}
}

# set up MAC load scanning


if { $val(cc) != "" || $val(lt) != "" } {
Mac/802_11 set scan_int_ 0.001 ;# scanning interval
Mac/802_11 set scan_len_ 200 ;# scan count for each probe
if { $val(smooth_cc) == "1" } {
Mac/802_11 set smooth_scan_ 1 ;# smooth the scanned values
}
}

# set up congestion control


if { $val(cc) != "" } {
Agent/VSFG set use_congestion_control_ 1
Agent/VSFG set cc_alpha_ $val(cc)
} else {
Agent/VSFG set cc_alpha_ 0
}

# set up headers as needed to save on memory


add-all-packet-headers
remove-all-packet-headers
add-packet-header Common Flags IP LL Mac Message VSFG LOCS SR RTP Ping HLS
# PKT Types of special Interest:
# ARP TCP VSFG LOCS HGPS SR DSDV AODV TORA IMEP Message Ping RTP
puts "\n !Warning! Don't forget to check header-inclusion "
puts " (Not needed for VSFG/DSR & CBR/Ping)\n"

# set dynamic options


if { $val(mac_emu) == "1" } {
set val(mac) Mac/Emu
set val(netif) Phy/EmuPhy
if { $val(rr) != "" } {
God set rrange_ $val(rr)
} else {
set val(rr) [God set rrange_]
}
if { $val(bw) != "" } {
God set bandwidth_ $val(bw)
} else {
set val(bw) [God set bandwidth_]
}
} else {
if { $val(bw) != "" } {
Phy/WirelessPhy set bandwidth_ $val(bw)
Mac/802_11 set dataRate_ $val(bw)
}
if { $val(bs) != "" } {
Mac/802_11 set basicRate_ $val(bs)
}
if { $val(rr) != "" } {
God set rrange_ $val(rr)
Mac/802_11 set rrange_ $val(rr)
if { $val(rr) >= [expr 9 * $PI * [Phy/WirelessPhy set freq_] / 3e8] } {
Phy/WirelessPhy set Pt_ [expr [Phy/WirelessPhy set RXThresh_] *
$val(rr)*$val(rr)*$val(rr)*$val(rr) / 5.0625]
} else {
Phy/WirelessPhy set Pt_ [expr [Phy/WirelessPhy set RXThresh_] * 16 * $PI*$PI *
$val(rr)*$val(rr) * [Phy/WirelessPhy set freq_]*[Phy/WirelessPhy set freq_] / 9e16]
}
} else {
set val(rr) 250 ;# (Pt/Pr)^0.25 * 1.5
}
}

Agent/VSFG set bint_ $val(bint)


# Recalculating bexp_ here
Agent/VSFG set bexp_ [expr 3*([Agent/VSFG set bint_]+[Agent/VSFG set
bdesync_]*[Agent/VSFG set bint_])] ;# beacon timeout interval
Agent/VSFG set use_peri_ $val(use_peri)
Agent/VSFG set use_planar_ $val(use_planar)
Agent/VSFG set use_mac_ $val(use_mac)
Agent/VSFG set use_beacon_ $val(use_beacon)
Agent/VSFG set verbose_ $val(verbose)
Agent/VSFG set use_reactive_beacon_ $val(use_reactive)
Agent/VSFG set use_loop_detect_ $val(use_loop)

CMUTrace set aggregate_mac_ $val(agg_mac)


CMUTrace set aggregate_rtr_ $val(agg_rtr)
God set shorten_trace_ $val(agg_trc)

if { $val(movtrc) == "OFF" || $val(agg_trc) == 1} {


Node/MobileNode set movtrace_ 0
}

# seeding RNG
ns-random $val(seed)

# set MACTRACE option


if { $val(mac_trace) != "" } {
set val(mactrc) $val(mac_trace)
puts "MAC trace is $val(mactrc)"
}

# create simulator instance


set ns_ [new Simulator]

# setup topography object


set topo [new Topography]
$topo load_flatgrid $val(x) $val(y)

# create trace object for ns and nam


if { $val(zip) == "1" } {
set tracefd [open "|gzip -9c > $val(out).gz" w]
} else {
set tracefd [open $val(out) w]
}
$ns_ trace-all $tracefd

set namtrace [open out.nam w]


$ns_ namtrace-all-wireless $namtrace $val(x) $val(y)

# create channel
set chanl [new $val(chan)]

# Create God
set god_ [create-god $val(nn)]

# Attach Trace to God


set T [new Trace/Generic]
$T attach $tracefd
$T set src_ -5
$god_ tracetarget $T
#
# Define Nodes
#
puts "Configuring Nodes ($val(nn))"
$ns_ node-config -adhocRouting $val(adhocRouting) \
-llType $val(ll) \
-macType $val(mac) \
-ifqType $val(ifq) \
-ifqLen $val(ifqlen) \
-antType $val(ant) \
-propType $val(prop) \
-phyType $val(netif) \
-channel $chanl \
-topoInstance $topo \
-wiredRouting OFF \
-mobileIP OFF \
-agentTrace $val(agttrc) \
-routerTrace $val(rtrtrc) \
-macTrace $val(mactrc) \
-movementTrace $val(movtrc)

#
# Create the specified number of nodes [$val(nn)] and "attach" them
# to the channel.
for {set i 0} {$i < $val(nn) } {incr i} {
set node_($i) [$ns_ node]
$node_($i) random-motion 0 ;# disable random motion

if { $val(adhocRouting) == "VSFG" || $val(adhocRouting) == "GSR" || $val(adhocRouting)


== "CBF" || $val(adhocRouting) == "AODV" } {
set ragent [$node_($i) set ragent_]
$ragent install-tap [$node_($i) set mac_(0)]
}

if { $val(mac) == "Mac/802_11" } {
# bind MAC load trace file
[$node_($i) set mac_(0)] load-trace $loadTrace
}

# Bring Nodes to God's Attention


$god_ new_node $node_($i)
$ns_ initial_node_pos $node_($i) 20
}

#
# Define node movement model
#
puts "Loading scenario file ($val(sc))..."
if {$val(sc) == ""} {
puts " no scenario file specified"
exit
} else {
source $val(sc)
}

#
# Define traffic model
#
puts "Loading connection pattern ($val(cp))..."
if {$val(cp) == ""} {
puts " no connection pattern specified"
} else {
source $val(cp)
}
#
# Define inactive pattern
#
puts "Loading inactive pattern ($val(on_off))..."
if { $val(on_off) == "" } {
puts " no inactive pattern specified"
} else {
source $val(on_off)
}

#
# Tell nodes when the simulation ends
#
for {set i 0} {$i < $val(nn) } {incr i} {
$ns_ at $val(stop).0 "$node_($i) reset";
}

$ns_ at $val(stop).0002 "puts \"NS EXITING... $val(out)\" ; $ns_ halt"

# Print Parameterset
printparams

# start GridKeeper
if { $val(use_gk) > 0 } {
create_gridkeeper
}

set startTime [clock seconds]


puts "Installing Time Estimator ($startTime)!"
instEstim $startTime $val(stop) 2.5

puts $tracefd "M 0.0 nn $val(nn) x $val(x) y $val(y) rp $val(adhocRouting)"


puts $tracefd "M 0.0 sc $val(sc) cp $val(cp) seed $val(seed)"
puts $tracefd "M 0.0 prop $val(prop) ant $val(ant) mac $val(mac)"
puts $tracefd "M 0.0 on_off $val(on_off)"

puts "Starting Simulation..."


$ns_ run

You might also like