Академический Документы
Профессиональный Документы
Культура Документы
*
Xia Deng
1,2
, Jianxin Wang
1
, Yao Liu
1
1. School of Information Science and Engineering
Central South University, Changsha China
2. School of Computer Science and Educational Software
Guangzhou University, Guangzhou China
gzhu_dx@gzhu.edu.cn, jxwang@mail.csu.edu.cn, yliu.cs@163.com
*
This work is supported by the National Natural Science Foundation of China under Grant No. 60903222 and No. 60873265
Abstract
Mobile ad hoc networks (MANET) are composed of
nodes with high mobility, limited bandwidth and low
energy. To save energy and bandwidth, multicast in
mobile ad hoc networks is used in group
communication such as disaster rescues and military
command systems. This paper aims at designing a
multicast routing protocol which is tolerant to high
mobility and limited energy of nodes, while having
certain scalability at the same time. A multicast
routing protocol called CMRP (A Combined Multicast
Routing Protocol) is proposed, which takes into
consideration three factors when selecting the routing
path, i.e., the paths expiration time, the number of
non-forwarding nodes, and the paths Hops. The
weight of each component is adjustable in order to
meet users different requirement. Simulation results
show that a combination of these three factors is
desired to achieve good performance in terms of data
delivery ratio and energy consumption efficiency.
1. Introduction
Mobile Ad hoc network (MANET) is a multi-hop
network composed of a set of mobile nodes with no
controlling center and infrastructure
[1, 2]
. The dynamic
topology change and the shortage of the bandwidth and
energy make it challenging to design mobile ad hoc
multicast routing protocols. A variety of multicast
protocols for ad hoc networks have been proposed,
which can be generally classified into four
categories
[3,4, 16,20]
, i.e., tree-based (MAODV
[5]
), mesh-
based (ODMRP
[6]
, CAMP
[7]
CQMP
[8]
, NC-
ODMRP
[13]
, HF-ODMRP
[14]
), hybrid approaches
(AMRoute
[9]
) and stateless multicast (DDM
[10]
).
Because the mesh-based routing protocols can provide
more routes than tree-based ones, they are more
suitable for ad hoc networks as the network topology
changes frequently and rapidly. Among these mesh-
based routing protocols, the classic ODMRP selects the
shortest path to construct the forwarding group, which
demonstrates high throughput and data delivery ratio.
In order to improve the performance of multicast
routing protocols under high dynamic scenarios, some
works focus on the stability of paths through the
prediction of node location and link expiration time
[12,
15, 17, 18, 19]
. In our previous work, LETFG-ODMRP
[15]
is proposed which combines the prediction of link
expiration time (LET) and number of forwarding nodes
(FG) in the path. However, the LET-only routing
sometimes results in bad performance because the
prediction of the link expiration time cannot avoid
deviations especially when the nodes move slowly. If
only the number of forwarding nodes is considered, the
protocol may result in too few forwarding nodes.
Without considering the paths Hops, LETFG-ODMRP
also generates long paths to the destinations and thus is
not suitable for mobile ad hoc networks under certain
scenarios. To summarize, a good routing protocol must
consider all of factors aforementioned.
In this paper we propose a combined strategy in
selecting routing paths, i.e., a multicast routing
protocol called CMRP (A Combined Multicast Routing
Protocol). CMRP considers three factors when
selecting routing paths: 1) the prediction of the link
expiration time; 2) the number of non-forwarding
nodes; and 3) the paths Hops. We can adjust the
weights of these factors to adapt to different networks
and scenarios. We choose a particular setting of these
weights to consider all of the three factors and compare
the performance with those only considering one single
factor. We conduct extensive simulations to verify the
superiority of our protocol.
The rest of this paper is organized as follows. In
Section 2 we describe the general process of
establishing forwarding groups. Section 3 presents the
routing design of our protocol CMRP. In section 4, the
performance of CMRP is evaluated through
642 978-1-4577-0253-2/11/$26.00 2011 IEEE
2 2
2 2 2 2
c a
bc) (ad )r c (a cd) (ab
LET
+
+ + +
=
simulations. Section 5 concludes the paper and
discusses the future work.
2. The establishment of forwarding groups
The Mesh-based multicast such as ODMRP sets up
routing when the source nodes have data to send. Each
multicast group selects a mesh-based forwarding group
(FG) responsible for forwarding the data.
The source sends JoinQuery packets periodically to
maintain the multicast group and the routing
information. The process of setting up a forwarding
group is shown in Fig. 1. The source broadcasts a
JoinQuery packet to its neighbors when sending data.
The nodes receiving a non-duplicate packet will save
the address of the upstream node into its RoutingTable
and then broadcast the packet. When the JoinQuery
reaches a multicast member, the node will create a
JoinReply packet and broadcast it to its neighbors.
When a node receives the JoinReply, it will compare
the address of the next hop in the packet with its own
address. If the two addresses match each other, which
indicates that the node is in the routing path to the
source and thus belongs to the forwarding group, the
node is set to be a forwarding node and it will
broadcast the JoinReply according to its RoutingTable.
Following the same process, all the nodes in the path
of the Join Reply packet reply to the source and form
the forwarding group.
Fig. 1. The process of setting up a forwarding
group
[6]
The mesh-based forwarding group is able to offer
more paths comparing with tree-based approach.
Therefore, it is more suitable for mobile ad hoc
networks when node moves frequently. Among these
mesh-based forwarding protocols, ODMRP tries to
find the shortest path to construct the forwarding
group. But when the number of sources increases, the
number of forwarding nodes becomes larger. Such a
big number of forwarding nodes may result in low data
transmission efficiency. Therefore, in order to build
optimal forwarding groups, we may also consider the
other features of paths, such as the route expiration
time, the number of non-forwarding node, etc.
3. Routing design
3.1 LET prediction model
To quantify how stable the link is in a highly mobile
ad hoc network, the link expiration time has to be
calculated mathematically. The Link Expiration Time
(LET) prediction is suitable for all kinds of node and
mobile models, and is widely adopted at present, which
is described as follows.
Assume the transmission range of a node is r and all
the nodes have the same transmission range. The signal
strength is only depending on the transmission
distance. If node i and j can communicate with each
other, it means they are within the transmission range
of each other. The information of the link between
node i and j will include the position (x
i
,y
i
) of node i,
its speed v
i
and direction
i
, the positon (x
j
,y
j
) of node
j, the speed v
j
, and the direction
j
. The prediction of
the link duration time between node i and j can be
calculated as
[12]
:
1
where
j i
j j i i
j i
j j i i
y y d
sin v sin v c
x x b
cos v cos v a
=
=
=
=
=
(2)
PathRet means the path duration time, which is set
to the minimum link expiration time of the path.
PathRet
old
is the original paths PathRet. PathRet is
the difference between the new path and the original
path. PathNofg is the number of non-forwarding nodes
in the path. PathNofg
old
is the number of the non-
forwarding nodes of the original path and PathNofg
643
Node i receives a JoinQuery packet k
If k is new for the non-member node , then
Calculate the link, let k.PathRet=min(k.PathRet, let);
Create a new record r in the RoutingTable of node i:
r.SrcAddr=k.SrcAddr; r.UpstrAddr=k.UpstrAddr;
If node i is not a FG node then
k.PathNofg = k.PathNofg+1;
End if
k.Hops = k.Hops+1; k.UpstrAddr=i.Addr;
k.(x,y,v,)=i.(x,y,v,)k.TTL = k.TLL-1;
If k.TTL >0 then
Broadcast packet k;
End if
Else if k is new for the member node i
Calculate the link, let k.PathRet=min(k.PathRet, let);
If k is a unduplicated one, then
Create a new record r in routetable:
r.SrcAddr=k.SrcAddr; r.UpstrAddr=k.UpstrAddr;
r.PathRet= k.PathRet; r.PathNofg= k.PathNofg;
r.Hops= k.Hops;
Else if k is duplicated one, then
Finding record r in RoutingTable where
r.SrcAddr=k.SrcAddr;
Calculate PathMetric;
If PathMetric>0, then
r.UpstrAddr=k.UpstrAddr; r.PathRet=k.PathRet;
r. PathNofg =k.PathNofg;
r.Hops= k.Hops;
End if
End if
If node i is not a FG node, then
k.PathNofg = k.PathNofg+1;
k.Hops = k.Hops+1; k.UpstrAddr=i.Addr;
k.(x,y,v,)=i.(x,y,v,); k.TTL = k.TLL-1;
End if
If k.TTL >0 then
broadcast packet k
End if
End if
is the incremental of the number of such nodes of the
new path. A larger ( pathNofg) means the
incremental of the forwarding nodes along the path is
smaller and thus the efficiency is higher. Hops is the
paths Hops. Hops
old
is the Hops of the original path.
Hops is the hop increment of the new path. A larger
(-Hops) means the path with fewer hops is desired
which can avoid long paths. We can use these
parameters together to help find a better path.
We use W
1
W
2
W
3
to represent the weights and
set W
i
>1/3 to place certain emphasis on the
corresponding factor. PathMetric means the overall
difference between the new path and the origin path. If
PathMetric>0, it means a better route is found. During
the setup of a forwarding group, multicast members
will wait a short time when selecting a path with
PathMetric>0, which helps find better routing paths.
Then the node in the path become a forwarding node.
3.3 The packet format
Fig. 2. The format of a multicast route Join
Query packet
The JoinQuery packet format is shown in Fig. 2.
McastAddr is the multicast address; Seq is the packet
unique identification number; SrcAddr is the packet
sender address; UpstrAddr is the address of the
upstream node; PathRet is the paths Ret; PathNoFg is
the number of non-forwarding nodes in the path; Hops
is the paths hop; TTL is the Time to Live value. X, Y,
V, represent the node position and the mobility
information. X is the nodes X-coordinate; Y is the Y-
coordinate; V is the velocity, and is the moving
direction.
McastAddr Seq SrcAddr UpstrAddr
Fig. 3. The format of multicast route Join
Reply packet
The format of a JoinReply packet is shown in Fig.3.
McastAddr is the multicast address; Seq is the packet
unique identification; SrcAddr is the sender address;
and UpstrAddr is the downstream node address
3.4 The setup of multicast route and
forwarding group
The process of setting up the forwarding group can
be described as follows.
(1) Source sends out the Join Query packet.
Source broadcasts the JoinQuery packets
periodically when it has data to send. It sets the
JoinQuery.SrcAddr to its own address, and
JoinQuery.UpstrAddr to the latest node that processed
the JoinQuery packet (initialized to source address).
Fig. 4. The algorithm of processing a
JoinQuery packet
McastAddr Seq SrcAddr UpstrAddr PathRet
PathNofg Hops TTL X Y V
644
JoinQuery.PathRet is set to 500. When the node is a
forwarding node in the group, the JoinQuery.PathNofg
is set to 0; otherwise it is set to 1. JoinQurey.Hops is
initialized to 1. The position and movement
information of the JoinQurey packet is set to the
nodes corresponding information.
(2) Intermediate nodes process the JoinQuery
packet.
a) When a non-member node receives the
JoinQuery packets, it will only process non-duplicate
packets and discard duplicate ones. Moreover, it will
modify the JoinQuery packet and its RoutingTable
accordingly.
b) When a member node receives the JoinQuery
packets, it will check whether there is a better path in
terms of the path evaluation metric proposed in Section
3.2. If the PathMetric>0, it means that a better path is
found compared with the orginal path in RoutingTable.
The RoutingTable will be updated even if it is a
duplicate JoinQuery.
The algorithm of a node processing the JoinQuery
packets is shown in Fig. 4. The definition of
PathRet, Pathnofg and Hops are calculated as
follows respectively.
le.Hops RoutingTab - Hops JoinQuery. Hops
(3) g le.PathNof RoutingTab - PathNofg JoinQuery. PathNofg
le.PathRet RoutingTab - PathRet JoinQuery. PathRet
=
=
=
(3) Member nodes create the JoinReply packet.
Multicast members will wait for a short time to
reply to the source in order to facilitate finding better
routes. When the network overhead is low, the delay is
very short. As a result, the SrcAddr, UpstrAddr in the
JoinReply packet is equal to the SrcAddr and the
corresponding UpstrAddr (the better path) in the
RoutingTable (the better path).
(4)Intermediate nodes process the JoinReply packet.
When an intermediate node receives the JoinReply
packet, it will check whether its address is the same to
the UpstrAddr in the JoinReply packet. If they are the
same, it means the node is on the path from the
members to the source. The node is then enrolled as a
forwarding node and will set the UpstrAddr in the
JoinReply packet to the UpstrAddr in the
RoutingTable.
The RoutingTable, MemberTable and FG are
refreshed periodically and the protocol needs no extra
overhead for the maintain information.
4. Simulation results
4.1 Simulation scenarios
We use Glomosim 2.03
[11]
to simulate our
protocols. Glomosim is an open source simulation
platform which is especially designed for mobile ad
hoc networks. The simulation scenario is set up as
follows. 100 nodes move within a 2000*2000 square
area; the node transmission range is 15dbm (376m);
the simulation time is 600 second. Each experiment
runs 100 times to allow us to calculate the average
value of measuring metrics. The mobile model is the
random-way model and we set the pause time to 0.
The speed of the node is unchanged during the
simulation. The multicast data delivery ratio is set to
5 packets per second; the length of each packet is
512 bytes; multicast senders and receivers are
randomly selected from the 100 nodes. There is one
multicast group in the network. We let two
parameters change to generate different scenarios: (1)
the number of multicast sender; and (2) the nodes
moving speed. When the number of multicast
senders varies, we fix the number of multicast
members to 10 and the speed to 20m/s, which means
nodes move frequently at a certain speed. When the
speed is varied, the number of multicast members is
fixed to 10 and the number of multicast sources is
set to 1. We use W
1
W
2
W
3
to reflect the
preference of the protocol. abc means
W
1
=a, W
2
=b, W
3
=c. We use1/31/31/3to
treat them equally and choose (0,0,1), (0,1,0), (1,0,0)
to refer to those only considering one factor. We
focus on following evaluating metrics.
(1) Data delivery ratio: the number of the actually
received packets over that of the packets which are
supposed to arrive at members.
(2) Energy consumption per data packet received:
the amount of energy consumption of a successfully
received unduplicated data packet. It is inversely
proportional to the networks energy consumption
efficiency. The larger the value is, the more energy a
successfully delivered packet consumes. We also adopt
E(P)=i*u*tp, and tpPhPd/2Mbps, where i is
the value of the electric current, u is the voltage value,
tp is the delivery time, and Ph and Pd are the packet
head and payload size, respectively.
(3) Average number of forwarding nodes: the
average number of forwarding nodes of every 100
seconds in the network. The larger the number of
forwarding nodes is, the more the energy that the
data transmission costs.
4.2 Performance evaluation
The impact of mobility speed on the performance of
the protocol is shown in Fig. 5. When the speed is
645
smaller than 5m/s, as there exists deviations in the
prediction of the link expiration time when the speed is
not very fast, both (1,0,0) and (1/3,1/3,1/3)
demonstrate low data delivery ratio. The data delivery
ratio of (0,1,0) is also low because it selects too few
forwarding nodes. (0,0,1) owns the best data delivery
ratio because it tends to select the shortest path to set
up the forwarding nodes.
0 10 20 30 40
0.62
0.64
0.66
0.68
0.70
0.72
0.74
(1/3,1/3,1/3)
(0,0,1)
(0,1,0)
(1,0,0)
D
a
t
a
d
e
l
i
v
e
r
y
r
a
t
i
o
Speed(m/s)
(a)
0 10 20 30 40
0.0120
0.0122
0.0124
0.0126
0.0128
0.0130
0.0132
0.0134
0.0136
0.0138
0.0140
0.0142
0.0144
0.0146
0.0148
Speed(m/s)
(1/3,1/3,1/3)
(0,0,1)
(0,1,0)
(1,0,0)
E
n
e
r
g
y
c
o
n
s
u
m
p
t
i
o
n
p
e
r
d
a
t
a
p
a
c
k
e
t
r
e
c
e
i
v
e
d
(
E
(
P
)
/
p
a
c
k
e
t
)
(b)
0 10 20 30 40
13.5
14.0
14.5
15.0
15.5
16.0
16.5
17.0
17.5
18.0
18.5
19.0
19.5
(1/3,1/3,1/3)
(0,0,1)
(0,1,0)
(1,0,0) A
v
e
r
a
g
e
n
u
m
b
e
r
o
f
f
o
r
w
a
r
d
i
n
g
n
o
d
e
s
Speed(m/s)
(c)
Fig. 5. The impact of the speed on the routing
protocol: (a) Data delivery ratio; (b) Energy
consumption per data packet received; (c)
Average number of forwarding nodes.
When the speed increases, the data delivery ratio of
(0, 0, 1) and (0, 1, 0) decrease dramatically as the route
expiration time is not considered. (1,0,0) shows the
highest data delivery ratio but demonstrates the worst
energy consumption efficiency as it owns the largest
average number of forwarding nodes, which also send
out data and consume energy. (0,1,0) owns the smallest
energy consumption and the smallest average number
of forwarding nodes because it aims at minimizing the
number of forwarding nodes along a path, but the data
delivery ratio decreases dramatically when the speed is
large. In contrast, (1/3,1/3,1/3) has a high data delivery
ratio and energy consumption efficiency even when the
speed is large, for it considers both the link expiration
time, the number of forwarding nodes and the paths
Hops. To summarize, (1/3,1/3,1/3) achieves a
reasonably balance and thus performs better than those
only considering a single factor in most cases of these
scenarios.
0 2 4 6 8 10
0.70
0.75
0.80
0.85
0.90
0.95
1.00
(1/3,1/3,1/3)
(0,0,1)
(0,1,0)
(1,0,0)
D
a
t
a
d
e
l
i
v
e
r
y
r
a
t
i
o
The number of senders
(a)
0 2 4 6 8 10
0.010
0.015
0.020
0.025
0.030
0.035
0.040
0.045
(1/3,1/3,1/3)
(0,0,1)
(0,1,0)
(1,0,0)
E
n
e
r
g
y
c
o
n
s
u
m
p
t
io
n
p
e
r
d
a
t
a
p
a
c
k
e
t
r
e
c
e
i
v
e
d
(
E
(
P
)
/
p
a
c
k
e
t
)
The number of senders
(b)
0 2 4 6 8 10
10
20
30
40
50
60
70
(1/3,1/3,1/3)
(0,0,1)
(0,1,0)
(1,0,0)
A
v
e
r
a
g
e
n
u
m
b
e
r
o
f
f
o
r
w
a
r
d
i
n
g
n
o
d
e
s
The number of senders
(c)