Issues: Routing in Ad-hoc Issues: Multicas routing ... Networks

advertisement
Issues: Routing in Ad-hoc
Networks
Issues: Multicas routing ...
❒ Mobility
❒ Robustness
❒ Bandwidth constraint
❒ Efficiency
❒ Error-prone and shared channel
❒ Control overhead
❒ Location-dependent contention
❒ Quality of service
❒ Other resource constraints
❒ Efficient group management
❒ Scalability
❒ Security
TDDD36: Routing
TDDD36: Routing
Unicast Routing Protocols
The ideal protocol (p303)
❒ Many protocols have been proposed
❒ Distributed
❒ Some have been invented specifically for
❒ Localized (and scalable)
MANET
❒ Others are adapted from previously
proposed protocols for wired networks
❒ No single protocol works well in all
environments
❒ Adaptive
❍
some attempts to develop adaptive protocols
❒ Minimal maintenance and overhead
❒ Loop free (and free from stale routes)
❒ Balance scares resources usage against
performance (and/or QoS)
TDDD36: Routing
Routing protocol classification
TDDD36: Routing
Route update mechanism
❒ Proactive (or table-drive) protocols:
❍ Determine routes independent of traffic pattern
❍ Traditional link-state and distance-vector routing protocols
• Destination Sequenced Distance Vector (DSDV)
• Optimized Link State Routing (OLSR)
❒ Route information mechanism
Proactive (table-driven)
❍ Reactive (demand-driven)
❍ Hybrid
❒ Temporal information
❍ Past vs. Future information
❒ Routing toplogy
❍ Flat vs. hierarchical
❒ Specific reources
❍ Geography or Power
❍
❒ Reactive (or demand-drive) protocols
❍ Route is only determined when actually needed
❍ Protocol operates on demand
• Dynamic Source Routing (DSR)
• Ad hoc On-demand Distance Vector (AODV)
• Temporally Ordered Routing Algorithm (TORA)
❒ Hybrid Protocols:
❍ Combine these behaviors (e.g., table in limited zone, and demand
drive otherwise)
• Zone Routing Protocol (ZRP)
• Greedy Perimeter Stateless Routing (GPSR)
TDDD36: Routing
TDDD36: Routing
1
Routing protocols for wireless ad
hoc networks
Sensor networks
Mobile ad hoc networks
Response time,
bandwidth
Energy
Some general trade-offs
❒ Latency of route discovery
❍ Proactive protocols may have lower latency
• Routes are maintained at all times
❍
Reactive protocols may have higher latency
• Route from X to Y will be found only when X attempts to send to Y
Proactive
protocols
Optimized LinkDestination-Sequenced
State Routing
Distance-Vector (DSDV)
(OLSR)
❒ Overhead of route discovery/maintenance
❍ Proactive protocols can (but not necessarily) result in
higher overhead due to continuous route updating
❍ Reactive protocols may have lower overhead
Reactive
protocols
• Routes are determined only if needed
Dynamic
Ad Hoc On-Demand
Source
Distance-Vector
Routing
(AODV)
(DSR)
Geography- Cluster-based
based routing (or hierarchical)
routing
❒ Which approach achieves a better trade-off
depends on the traffic and mobility patterns
GPSR
TDDD36: Routing
Ad hoc networks: terminology
TDDD36: Routing
Dynamic Source Routing (DSR)
[Johnson96]
❒ Broadcast: message sent to all neighbors
within range
❒ Flooding: message sent to all nodes in the
network by neighbors forwarding message
to their neighbors etc.
❒ Different from wired network!
❒ When node S wants to send a packet to
node D, but does not know a route to D,
node S initiates a route discovery
❒ Source node S floods Route Request
(RREQ)
❒ Each node appends own identifier when
forwarding RREQ
TDDD36: Routing
TDDD36: Routing
Reactive protocols – DSR
Dynamic source routing (DSR)
❒ In a reactive protocol, how to forward a packet to
destination?
❍
❍
❍
Initially, no information about next hop is available at all
One (only?) possible recourse: Send packet to all
neighbors – flood the network
Hope: At some point, packet will reach destination and an
answer is sent pack – use this answer for backward
learning the route from destination to source
❒ Practically: Dynamic Source Routing (DSR)
❍ Use separate route request/route reply packets to
discover route
• Data packets only sent once route has been
established
• Discovery packets smaller than data packets
❍ Store routing information in the discovery packets
TDDD36: Routing
❒ Reactive routing protocol
❒ 2 phases, operating both on demand:
❍
Route discovery
• Used only when source S attempts to to send a packet
to destination D
• Based on flooding of Route Requests (RREQ)
❍
Route maintenance
• Makes S able to detect, while using a source route to
D, if it can no longer use its route (because a link
along that route no longer works)
TDDD36: Routing
2
DSR: Route discovery (1)
F
Q
E
S
K
H
A
D
J
R
F
Q
G
B
DSR: Route discovery (2)
P
S
L
C
E
G
B
M
I
(S)
K
H
A
D
J
R
M
I
L
C
N
N
TDDD36: Routing
DSR: Route discovery (3)
(S,A)
Q
F
E
S
(S,E)
B
DSR: Route discovery (4)
F
Q
G
D
J
R
TDDD36: Routing
K
H
A
P
E
S
L
C
G
B
K
H
A
M
I
(S,E,G)
D
J
R
L
(S,B,C)
N
TDDD36: Routing
TDDD36: Routing
DSR: Route discovery (5)
(S,A,F,H)
Q
H
A
E
S
B
R
DSR: Route discovery (6)
K
F
Q
G
J
(S,E,G,J)
D
P
L
C
E
S
(S,A,F,H,K)
G
R
D
J
P
M
I
L
C
N
K
H
A
B
M
I
P
M
I
C
N
F
P
N
TDDD36: Routing
TDDD36: Routing
3
DSR: Route discovery (7)
F
Q
E
S
K
H
A
F
Q
G
B
DSR: Route discovery (8)
D
J
R
P
(S,A,F,H,K,P)
L
C
G
B
M
I
E
S
K
H
A
P
D
RREP(S,E,G,J,D)
J
R
M
I
L
C
N
N
TDDD36: Routing
TDDD36: Routing
DSR: Route Discovery (9)
DSR: Data delivery
❒ Route reply by reversing the route (as
illustrated) works only if all the links along
the route are bidirectional
❒ If unidirectional links are allowed, then
RREP may need a reverse route discovery
from D to S
❒ Note: IEEE 802.11 assumes that links are
bidirectional
F
Q
K
H
A
DATA(S,E,G,J,D)
E
S
G
B
R
P
D
J
M
I
L
C
N
TDDD36: Routing
DSR: Route maintenance (1)
F
Q
DATA(S,E,G,J,D)
E
S
B
G
R
DSR: Route maintenance (2)
K
H
A
F
Q
X
D
J
P
E
S
L
RERR(G-J)
G
R
C
N
K
H
A
B
M
I
C
TDDD36: Routing
X
D
J
P
M
I
L
N When receiving the Route Error message (RERR),
TDDD36: Routing
S removes the broken link from its cache.
It then tries another route stored in its cache;
if none, it initializes a new
route discovery
TDDD36:
Routing
4
Route Discovery in DSR
Route Reply in DSR
Y
❒ Destination D on receiving the first RREQ,
Z
sends a Route Reply (RREP)
❒ RREP is sent on a route obtained by
reversing the route appended to received
RREQ
❒ RREP includes the route from S to D on
which RREQ was received by node D
S
E
RREP [S,E,F,J,D]
F
B
C
M
J
A
L
G
H
K
D
I
N
Represents RREP control message
TDDD36: Routing
Route Reply in DSR
TDDD36: Routing
Dynamic Source Routing (DSR)
❒ Route Reply can be sent by reversing the route in
Route Request (RREQ) only if links are guaranteed
to be bi-directional
❍
To ensure this, RREQ should be forwarded only if it
received on a link that is known to be bi-directional
❒ If unidirectional (asymmetric) links are allowed,
then RREP may need a route discovery for S from
node D
❍
❍
Unless node D already knows a route to node S
If a route discovery is initiated by D for a route to S,
then the Route Reply is piggybacked on the Route
Request from D.
❒ Node S on receiving RREP, caches the
route included in the RREP
❒ When node S sends a data packet to D, the
entire route is included in the packet
header
❍
hence the name source routing
❒ Intermediate nodes use the source route
included in a packet to determine to whom
a packet should be forwarded
❒ If IEEE 802.11 MAC is used to send data, then
links have to be bi-directional (since Ack is used)
TDDD36: Routing
When to Perform a Route
Discovery
Data Delivery in DSR
Y
DATA [S,E,F,J,D]
S
Z
❒ When node S wants to send data to node D,
E
but does not know a valid route node D
F
B
C
M
J
A
TDDD36: Routing
L
G
H
K
I
D
N
Packet header size grows with route length
TDDD36: Routing
TDDD36: Routing
5
DSR: Optimization of route
discovery: route caching
DSR modifications, extensions
❒ Intermediate nodes may send route replies in case
❒ Principle: each node caches a new route it learns
they already know a route
❍
by any means
Problem: stale route caches
❒ Promiscuous operation of radio devices – nodes can
❒ Examples
❒ Random delays for generating route replies
❍ Many nodes might know an answer – reply storms
❍ NOT necessary for medium access – MAC should take care
of it
❒ Salvaging/local repair
❍ When an error is detected, usually sender times out and
constructs entire route anew
❍ Instead: try to locally change the source-designated route
❒ Cache management mechanisms
❍ To remove stale cache entries quickly
❍ Fixed or adaptive lifetime, cache removal messages, …
When node S finds route (S, E, G, J, D) to D, it
also learns route (S, E, G) to node G
❍ In the same way, node E learns the route to D
❍ Same phenomenon when transmitting route
replies
❒ Moreover, routes can be overheard by nodes in the
neighbourhood
❒ However, route caching has its downside: stale
caches can severely hamper the performance of
the network
learn about topology by listening to control messages
❍
TDDD36: Routing
TDDD36: Routing
DSR Optimization:
Route Caching
Use of Route Caching
❒ Each node caches a new route it learns by
❒ When node S learns that a route to node D
any means
❒ When node S finds route [S,E,F,J,D] to node D, node S
also learns route [S,E,F] to node F
❒ When node K receives Route Request [S,C,G] destined
for node, node K learns route [K,G,C,S] to node S
❒ When node F forwards Route Reply RREP [S,E,F,J,D],
node F learns route [F,J,D] to node D
❒ When node E forwards Data [S,E,F,J,D] it learns route
[E,F,J,D] to node D
is broken, it uses another route from its
local cache, if such a route to D exists in
its cache. Otherwise, node S initiates
route discovery by sending a route request
❒ Node X on receiving a Route Request for
some node D can send a Route Reply if node
X knows a route to node D
❒ Use of route cache
❍
❒ A node may also learn a route when it overhears Data
❍
packets
can speed up route discovery
can reduce propagation of route requests
TDDD36: Routing
Use of Route Caching:
Can Speed up Route Discovery
Use of Route Caching
[S,E,F,J,D]
[S,E,F,J,D]
[E,F,J,D]
S
[J,F,E,S]
C
A
M
J
[C,S]
[G,C,S]
C
D
I
[G,C,S]
[C,S]
A
K
Z
[P,Q,R] Represents cached route at a node
(DSR maintains the cached routes in a tree format)
TDDD36: Routing
[J,F,E,S]
M
J
L
G
H
N
[F,J,D],[F,E,S]
E
F
B
L
G
H
[E,F,J,D]
S
[F,J,D],[F,E,S]
E
F
B
TDDD36: Routing
I
[K,G,C,S] K
When node Z sends a route request
for node C, node K sends back a route
reply [Z,K,G,C] to node Z using a locally
cached route
D
RREP
N
RREQ
Z
TDDD36: Routing
6
Use of Route Caching:
Can Reduce Propagation of Route Requests
Route Error (RERR)
Y
[S,E,F,J,D]
Y
[E,F,J,D]
S
F
B
C
[G,C,S]
[C,S]
A
RERR [J-D]
S
[F,J,D],[F,E,S]
E
[J,F,E,S]
M
J
G
H
I
F
B
L
C
D
RREP
N
Z
Assume that there is no link between D and Z.
Route Reply (RREP) from node K limits flooding of RREQ.
In general, the reduction may be less dramatic.
K
D
I
N
J sends a route error to S along route J-F-E-S when its attempt to
forward the data packet S (with route SEFJD) on J-D fails
Nodes hearing RERR update their route cache to remove link J-D
TDDD36: Routing
TDDD36: Routing
DSR: Strengths
DSR: Weaknesses
❒ Routes are set up and maintained only
❒ Route requests tend to flood the network and
between nodes who need to communicate
❒ Route caching can further reduce the
effort of route discovery
❒ A single route discovery may provide
several routes to the destination
L
G
H
RREQ
M
J
A
[K,G,C,S] K
Z
E
generally reach all the nodes of the network
❒ Because of source routing, the packet header size
grows with the route lengh
❒ Risk of many collisions between route requests by
neighboring nodes Ł need for random delays
before forwarding RREQ
❒ Similar problem for the RREP (Route Reply storm
problem), in case links are not bidirectional
Note: Location-aided routing may help reducing the
number of useless control messages
TDDD36: Routing
TDDD36: Routing
Ad Hoc On-Demand Distance
Vector Routing (AODV)
❒ As it is based on source routing, DSR includes
❒
❒
❒
❒
source routes in data packet headers
Large packet headers in DSR Ł risk of poor
performance if the number of hops is high
AODV uses a route discovery mechanism similar to
DSR, but it maintains routing tables at the nodes
AODV ages the routes and maintains a hop count
AODV assumes that all links are bi-directional
TDDD36: Routing
AODV
❒ Route Requests (RREQ) are forwarded in a manner
similar to DSR
❒ When a node re-broadcasts a Route Request, it
sets up a reverse path pointing towards the source
❍
AODV assumes symmetric (bi-directional) links
❒ When the intended destination receives a Route
Request, it replies by sending a Route Reply
❒ Route Reply travels along the reverse path set-up
when Route Request is forwarded
TDDD36: Routing
7
Reactive protocols – AODV
❒ Ad hoc On Demand Distance Vector routing
Ad Hoc On-Demand Distance
Vector Routing (AODV)
[Perkins99Wmcsa]
(AODV)
❍
❒ DSR includes source routes in packet headers
❍
❒ Resulting large headers can sometimes degrade
Very popular routing protocol
Essentially same basic idea as DSR for
discovery procedure
❍ Nodes maintain routing tables instead of source
routing
❍ Sequence numbers added to handle stale caches
❍ Nodes remember from where a packet came
and populate routing tables with that
information
performance
❍
particularly when data contents of a packet are small
❒ AODV attempts to improve on DSR by maintaining
routing tables at the nodes, so that data packets
do not have to contain routes
❒ AODV retains the desirable feature of DSR that
routes are maintained only between nodes which
need to communicate
TDDD36: Routing
TDDD36: Routing
AODV : Route discovery (1)
F
Q
E
S
K
H
A
P
D
J
R
F
Q
G
B
AODV : Route discovery (2)
L
C
G
B
M
I
E
S
L
C
N
Note: if one of the intermediate nodes (e.g., A)
TDDD36: Routing
knows a route to D, it responds
immediately to S
: Route Request (RREQ)
AODV : Route discovery (3)
F
B
F
Q
G
R
AODV : Route discovery (4)
K
H
E
S
M
I
TDDD36: Routing
A
P
D
J
R
N
Q
K
H
A
D
J
P
B
M
I
L
C
G
R
D
J
P
M
I
L
C
N
: represents a link on the reverse path
E
S
K
H
A
N
TDDD36: Routing
TDDD36: Routing
8
AODV : Route discovery (5)
F
Q
E
S
K
H
A
P
D
J
R
F
Q
G
B
AODV : Route discovery (6)
L
C
G
B
M
I
E
S
K
H
A
R
M
I
L
C
N
N
TDDD36: Routing
TDDD36: Routing
AODV : Route reply and setup
of the forward path
AODV : Route discovery (7)
F
Q
E
S
B
K
H
A
F
Q
G
R
P
D
J
P
D
J
L
C
G
B
M
I
E
S
K
H
A
D
J
R
P
M
I
L
C
N
N
: Link over which the RREP is transmitted
TDDD36: Routing
Route reply in AODV
TDDD36: Routing
: Forward path
AODV : Data delivery
❒ In case it knows a path more recent than
the one previously known to sender S, an
intermediate node may also send a route
reply (RREP)
❒ The freshness of a path is assessed by
means of destination sequence numbers
❒ Both reverse and forward paths are purged
at the expiration of appropriately chosen
timeout intervals
TDDD36: Routing
F
Q
S
Data
E
B
K
H
A
G
R
D
J
P
M
I
L
C
N
The route is not included in the packet
header
TDDD36: Routing
9
AODV packets
AODV : Route maintenance (1)
F
Q
❒ ROUTE REQUEST
S
Data
E
B
G
R
❒ ROUTE REPLY
K
H
A
X
P
D
J
M
I
L
C
N
TDDD36: Routing
TDDD36: Routing
AODV : Route maintenance (2)
F
Q
E
S
B
K
H
A
RERR(G-J)
G
R
AODV: Route maintenance
X
P
D
J
M
I
L
C
N
When receiving the Route Error message
(RERR),
S removes the broken link from
its cache.
TDDD36:
Routing
It then initializes a new route discovery.
AODV: Destination sequence
numbers
TDDD36: Routing
1.
AODV : Avoiding the usage of
… Dtables
stale
routing
…
S
A
S
A
2.
DSN(D) = 5
DSN(D) = 5
B
❒ If the destination responds to RREP, it places its
current sequence number in the packet
❒ If an intermediate node responds, it places its
record of the destination’s sequence number in the
packet
❒ Purpose of sequence numbers:
❍ Avoid using stale information about routes
❍ Avoid loops (no source routing!)
B
DSN(D) = 8
: Forward path
3.
S
A
RREQ
…
D
4.
S
DSN(D) = 5
RREP
B
D
…
DSN(D) = 5
B
DSN(D) = 8
TDDD36: Routing
A
DSN(D) = 8
D
TDDD36: Routing
10
AODV : Avoiding loops
A
B
AODV (unicast) : Conclusion
X
S
❒ Nodes maintain routing information only
D
for routes that are in active use
C
: Forward path
• Assume there is a route between A and D; link S-D breaks; assume A is not aware of this, e.g. because
RERR sent by S is lost
• Assume now S wants to send to D. It performs a RREQ, which can be received by A via path S
• Node A will reply since it knows a route to D via node B
• This would result in a loop (S-C-A-B-S)
• The presence of sequence numbers will let S discover that the routing information from A is outdated
• Principle: when S discovers that link S-D is broken, it increments its local value of DSN(D). In this way,
the new local value will be greater than the one stored by A.
❒ Unused routes expire even when the
topology does not change
❒ Each node maintains at most one next-hop
per destination
❒ Many comparisons with DSR (via simulation)
have been performed Ł no clear conclusion
so far
TDDD36: Routing
Flooding of Control Packets
TDDD36: Routing
Location Aided Routing (LAR)
❒ How to reduce the scope of the route
request flood ?
❒ Advantages
Location Aided Routing LAR [Ko98Mobicom]
❍ Query localization [Castaneda99Mobicom]
❍
❒ How to reduce redundant broadcasts ?
❍ The Broadcast Storm Problem [Ni99Mobicom]
❍
❍
reduces the scope of route request flood
reduces overhead of route discovery
❒ Disadvantages
❍ Nodes need to know their physical locations
❍ Does not take into account possible existence
of obstructions for radio transmissions
TDDD36: Routing
TDDD36: Routing
Geographic Distance Routing
(GEDIR) [Lin98]
❒ Location of the destination node is assumed known
❒ Each node knows location of its neighbors
Geographic Distance Routing
(GEDIR) [Stojmenovic99]
❒ The algorithm terminates when same edge traversed
twice consecutively
❒ Each node forwards a packet to its neighbor closest to
the destination
❒ Algorithm fails to route from S to E
❍
❒ Route taken from S to D shown below
H
A
Node G is the neighbor of C who is closest from
destination E, but C does not have a route to E
D
H
A
S
B
E
S
F
C
D
B
E
F
C
G
obstruction
G
TDDD36: Routing
obstruction
TDDD36: Routing
11
Routing with Guaranteed
Delivery [Bose99Dialm]
QoS: Network layer solutions
❒ Improves on GEDIR [Lin98]
❒ MAC protocols: bandwidth reservation,
real-time support only for link
❒ Guarantees delivery (using location
information) provided that a path exists
from source to destination
❒ Routes around obstacles if necessary
❒ GPSR: A similar idea also appears in
[Karp00Mobicom]
❒ Network layer is host-to-host specific
❍ resource negotiation
❍ reservation
❍ reconfiguration
❒ QoS routing protocols
❍ search for routes with resources that satisfy
QoS reqs
❍ find paths that consume minimum resources
TDDD36: Routing
QoS routing in ad-hoc networks
TDDD36: Routing
QoS-enabling routing protocols
h
Σi = 1 (Li(m)), Li ∈
❒ Additive metrics:
Am =
P
❒ Concave metrics:
Cm = min(Li(m)), Li ∈ P
h
❒ Multiplicative metrics: Mm =
Π i = 1(Li(m)), Li ∈ P
Two examples follow: ticket-based and QoSenabled AODV
TDDD36: Routing
TDDD36: Routing
A distributed ticket-based QoS
routing protocol for MANETs
QoS-enabled AODV
❒ Chen and Nahrstedt (1999)
❒ QoS extensions in routing table:
Maximum delay
Minimum available bandwidth
❍ List of sources requesting delay guarantees
❍ List of sources requesting bandwidth
guarantess
❒ Tolerates imprecise state information
❍
during QoS route computation
❒ Probes multiple paths in parallel, limited by
tickets
❒ Optimality is explored
❒ Uses primary-backup-based fault tolerance
to reduce service interruption
❍
TDDD36: Routing
TDDD36: Routing
12
QoS frameworks for MANETs
QoS framework: Flexible QoS Model
for Mobile ad-hoc networks (FQMM)
❒ Service model
❒ Routing protocol
❒ Resource reservation signaling
❒ Admission control
❒ Packet scheduling
TDDD36: Routing
TDDD36: Routing
13
Download