You are on page 1of 29

Routing Protocols

Lecture 15

Wireless Sensor Networks

EE 493/593

IP Based Routing ID Centric Routing
Goals and Tasks Unicast routing in MANETs Energy efficiency & unicast routing Multi-/broadcast routing Geographical routing

Delivery of an IP datagram
View at the data link layer layer:
Internetwork is a collection of LANs or point-to-point links or switched networks that are connected by routers R1 R2
Point-to-point link
Point-to-point link


Network of Ethernet switches


H1 R3
Token Ring LAN



Delivery of an IP datagram
View at the IP layer:
An IP network is a logical entity with a network number We represent an IP network as a cloud The IP delivery service takes the view of clouds, and ignores the data link layer view







Tenets of End-to-End Delivery of Datagrams

The following conditions must hold so that an IP datagram can be successfully delivered
1. 1.

2. 2.

3. 3.

The network prefix of an IP destination address must correspond to a The network prefix of an IP destination address must correspond to a unique data link layer network (=LAN or point-to-point link or unique data link layer network (=LAN or point-to-point link or switched network). switched network). (The reverse need not be true!) (The reverse need not be true!) Routers and hosts that have a common network prefix must be able Routers and hosts that have a common network prefix must be able to exchange IP dagrams using a data link protocol (e.g., Ethernet, to exchange IP dagrams using a data link protocol (e.g., Ethernet, PPP) PPP) Every data link layer network must be connected to at least one other Every data link layer network must be connected to at least one other data link layer network via a router. data link layer network via a router.

Routing tables
Each router and each host keeps a routing table which tells the router how to process an outgoing packet Main columns:
1. 2. 3.

Destination address: where is the IP datagram going to? Next hop: how to send the IP datagram? Interface: what is the output port?

Next hop and interface column can often be summarized as one column Routing tables are set so that datagrams gets closer to the its destination
Destination Next Hop direct direct R4 direct R4 R4 interface eth0 eth0 serial0 eth1 eth0 eth0

Routing table of a host or router

IP datagrams can be directly delivered (direct) or is sent to a router (R4)

Delivery with Routing Tables

Destination Next Hop R3 direct direct R3 R2 R2 Destination Next Hop R1 R1 direct R4 direct direct Destination Next Hop R2 R2 R2 R2 R2 direct




Destination Next Hop direct R3 R3 R3 R3 R3

Destination Next Hop direct direct R4 direct R4 R4

Destination Next Hop R3 R3 R2 direct direct R2

Delivery of IP datagrams
There are two distinct processes to delivering IP datagrams: 1. Forwarding: How to pass a packet from an input interface to the output interface? 2. Routing: How to find and setup the routing tables? Forwarding must be done as fast as possible:
on routers, is often done with support of hardware on PCs, is done in kernel of the operating system

Routing is less time-critical

On a PC, routing is done as a background process

Processing of an IP datagram in IP
Routing Protocol Static routing UDP TCP

Demultiplex Yes routing table Lookup next hop Yes IP forwarding enabled? No No Destination address local?

IP module

Send datagram


Input queue

Data Link Layer

IP router: IP forwarding enabled Host: IP forwarding disabled

Processing of an IP Datagram in IP
Processing of IP datagrams is very similar on an IP router and a host Main difference: IP forwarding is enabled on router and disabled on host IP forwarding enabled if a datagram is received, but it is not for the local system, the datagram will be sent to a different system IP forwarding disabled if a datagram is received, but it is not for the local system, the datagram will be dropped

Processing of an IP datagram at a router

Receive an IP datagram
1. 2. 3. 4. 5. 6. 7. 8. 9.

IP header validation Process options in IP header Parsing the destination IP address Routing table lookup Decrement TTL Perform fragmentation (if necessary) Calculate checksum Transmit to next hop Send ICMP packet (if necessary)

Routing Table Lookup

When a router or host need to transmit an IP datagram, it performs a routing table lookup Routing table lookup: Use the IP destination address as a key to search the routing table. Result of the lookup is the IP address of a next hop router, and/or the name of a network interface

Destination address network prefix or host IP address or loopback address or default route

Next hop/ interface IP address of next hop router or Name of a network interface

Type of routing table entries

Network route Host route
Destination addresses is a network address (e.g., Most entries are network routes Destination address is an interface address (e.g., Used to specify a separate route for certain hosts Used when no network or host route matches The router that is listed as the next hop of the default route is the default gateway (for Cisco: gateway of last resort) Routing table for the loopback address ( The next hop lists the loopback (lo0) interface as outgoing interface

Default route

Loopback address

Routing table lookup: Longest Prefix Match

Longest Prefix Match: Search for the routing table entry that has the longest match with the prefix of the destination IP address Search for a match on all 32 bits Search for a match for 31 bits .. 32. Search for a mach on 0 bits
1. 2.

Destination address default

Next hop R1 R2 R3 R3 R4 R3 R5

Host route, loopback entry 32-bit prefix match Default route is represented as 0-bit prefix match

The longest prefix match for is for 24 bits with entry Datagram will be sent to R4

Route Aggregation
Longest prefix match algorithm permits to aggregate prefixes with identical next hop address to a single entry This contributes significantly to reducing the size of routing tables of Internet routers


Next Hop
R3 direct direct R3 R2 R2


Next Hop
R3 direct direct R3 R2

How Do Routing Tables Get Updated?

Adding an interface:
Configuring an interface eth2 with adds a routing table entry:

Next Hop/ interface


Adding a default gateway:

Configuring as the default gateway adds the entry:


Next Hop/interface

Static configuration of network routes or host routes Update of routing tables through routing protocols ICMP messages
Internet Control Message Protocol

IP H eader
20 b ytes

IC M P m essage
8-bit code 16-bit checksum

8-bit type

(contents d epends on typ e and code)

Routing table manipulations with ICMP

When a router detects that an IP datagram should have gone to a different router, the router (here R2)
forwards the IP datagram to the correct router sends an ICMP redirect message to the host

Host uses ICMP message to update its routing table

(2) IP datagram
(1) IP datagram


Destination Next Hop R1

(3) ICMP redirect



Destination Next Hop R2 R1

ICMP Router Solicitation ICMP Router Advertisement

R1 After bootstrapping a host broadcasts an ICMP router solicitation. In response, routers send an ICMP router advertisement message Also, routers periodically broadcast ICMP router advertisement R2
ICMP router advertisement ICMP router solicitation ICMP router advertisemen


This is sometimes called the Router Discovery Protocol


Goals and Tasks

In any network of diameter > 1, the routing & forwarding problem appears Constructing routing tables in ad hoc/sensor networks
Specifically, Specifically, Specifically, Specifically, when nodes are mobile for broadcast/multicast requirements with energy efficiency as an optimization metric when node position is available

Unicast, ID-centric Routing

Given: a network/a graph
Each node has a unique identifier (ID)

Goal: Derive a mechanism that allows a packet sent from an arbitrary node to arrive at some arbitrary destination node
The routing & forwarding problem Routing: Construct data structures (e.g., tables) that contain information how a given destination can be reached Forwarding: Consult these data structures to forward a given packet to its next hop

Nodes may move around, neighborhood relations change Optimization metrics may be more complicated than smallest hop count e.g., energy efficiency


Ad-hoc Routing Protocols

Because of challenges, standard routing approaches not really applicable
Too big an overhead, too slow in reacting to changes Examples: Dijkstras link state algorithm; Bellman-Ford distance vector algorithm

Simple solution: Flooding

Does not need any information (routing tables) simple Packets are usually delivered to destination But: overhead is prohibitive, usually not acceptable, either

Need specific, ad hoc routing protocols

Ad Hoc Routing Protocols Classification

Main question to ask: When does the routing protocol operate? Option 1: Routing protocol always tries to keep its routing data up-to-date
Protocol is proactive (active before tables are actually needed) or


Option 2: Route is only determined when actually needed

Protocol operates on demand

Option 3: Combine these behaviors

Hybrid protocols


Ad Hoc Routing Protocols Classification

Is the network regarded as flat or hierarchical?
Compare topology control, traditional routing

Which data is used to identify nodes?

An arbitrary identifier? The position of a node?
Can be used to assist in geographic routing protocols because choice of next hop neighbor can be computed based on destination address

Identifiers that are not arbitrary, but carry some structure?

As in traditional routing Structure akin to position, on a logical level?

Proactive Protocols
Idea: Start from a +/- standard routing protocol, adapt it Adapted distance vector: Destination Sequence

Distance Vector (DSDV)

Based on distributed Bellman Ford procedure Add aging information to route information propagated by distance vector exchanges; helps to avoid routing loops Periodically send full route updates On topology change, send incremental route updates Unstable route updates are delayed + some smaller changes


Proactive Protocols OLSR

Combine link-state protocol & topology control Optimized Link State Routing (OLSR) Topology control component: Each node selects a minimal dominating set for its two-hop neighborhood
Called the multipoint relays Only these nodes are used for packet forwarding Allows for efficient flooding

Link-state component: Essentially a standard link-state algorithms on this reduced topology

Observation: Key idea is to reduce flooding overhead (here by modifying topology)

Proactive Protocols Combine LS & DS: Fish Eye

Fisheye State Routing (FSR) makes basic observation: When destination is far away, details about path are not relevant only in vicinity are details required
Look at the graph as if through a fisheye lens Regions of different accuracy of routing information

Each node maintains topology table of network (as in LS) Unlike LS: only distribute link state updates locally More frequent routing updates for nodes with smaller scope


Reactive Protocols 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

DSR Route Discovery Procedure


Search for route from 1 to 5

[1] [1]
4 6 1 7 5 3 2 4

2 7 5


7] [1,

1 2


, [1 2] 7,


4 6

4 6 3


Node 5 uses route information recorded in RREQ to send back, via source routing, a route reply


DSR Modifications, Extensions

Intermediate nodes may send route replies in case they already know a route
Problem: stale route caches

Promiscuous operation of radio devices nodes can learn about topology by listening to control messages 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,

Reactive Protocols AODV

Ad hoc On Demand Distance Vector
routing (AODV)
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


Reactive Protocols TORA

Observation: In hilly terrain, routing to a rivers mouth is easy just go downhill Idea: Turn network into hilly terrain
Different landscape for each destination Assign heights to nodes such that when going downhill, destination is reached in effect: orient edges between neighbors Necessary: resulting directed graph has to be cycle free

Reaction to topology changes

When link is removed that was the last outlet of a node, reverse direction of all its other links (increase height!) Reapply continuously, until each node except destination has at least a single outlet will succeed in a connected graph!

Alternative Approach: Gossiping/Rumor Routing

Turn routing problem around: Think of an agent wandering through the network, looking for data (events, ) Agent initially perform random walk Leave traces in the network Later agents can use these traces to find data Essentially: works due to high probability of line intersections


Energy-efficient unicast: Goals

Particularly interesting performance metric: Energy efficiency Goals
Minimize energy/bit
Example: A-B-E-H

4 3 A 1 2 3 D B 1 2 3 E 1 4 H
Example: Send data from node A to node H

2 1 C 2 4 2 F G 2

Maximize network lifetime

Time until first node failure, loss of coverage, partitioning

Seems trivial use proper link/path metrics (not hop count) and standard routing

2 2

Basic Options for Path Metrics

Maximum total available battery capacity
Path metric: Sum of battery levels Example: A-C-F-H

4 3 A 1 2 3 D B 1 2 3 E 1 4 H 2 2 G 2 4 2 F 1 C 2 2

Minimum battery cost routing

Path metric: Sum of reciprocal battery levels Example: A-D-H Only take battery level into account when below a given level

Conditional max-min battery capacity routing

Minimize variance in power levels Minimum total transmission power


A Non-Trivial Path Metric

Previous path metrics do not perform particularly well One non-trivial link weight:
wij weight for link node i to node j eij required energy, some constant, i fraction of battery of node i already used up

Path metric: Sum of link weights

Use path with smallest metric

Properties: Many messages can be send, high network lifetime

With admission control, even a competitive ratio logarithmic in network size can be shown

Multipath Unicast Routing

Instead of only a single path, it can be useful to compute multiple paths between a given source/destination pair
Disjoint paths Secondary path

Multiple paths can be disjoint or


Used simultaneousl y, alternatively, randomly,

Source Braided paths

Sink Primary path


Sink Primary path


Broadcast & Multicast (energyefficient)

Distribute a packet to all reachable nodes (broadcast) or to a somehow (explicitly) denoted subgroup (multicast) Basic options
Source-based tree: Construct a tree (one for each source) to reach all addressees
Minimize total cost (= sum of link weights) of the tree Minimize maximum cost to each destination

Shared, core-based trees

Use only a single tree for all sources Every source sends packets to the tree where they are distributed

Trees are only 1-connected ! use meshes to provide higher redundancy and thus robustness in mobile environments

Optimization Goals for SourceBased Trees

For each source, minimize
Steiner tree Source 2 2 1 Destination 2

total cost

This is the Steiner tree problem again

For each source, minimize maximum cost to each destination

This is obtained by overlapping the individual shortest paths as computed by a normal routing protocol

Destination 1 Shortest path tree Source 2 2 1 Destination 2

Destination 1


Summary of Options (broadcast/multicast)

Broadcast Multicast

One tree per source

Shared tree (core-based tree)


Minimize total cost (Steiner tree)

Minimize cost to each node (e.g., Dijkstra)

Single core

Multiple core

Wireless Multicast Advantage

Broad-/Multicasting in wireless is unlike broad/multicasting in a wired medium
Wires: locally distributing a packet to n neighbors: n times the cost of a unicast packet Wireless: sending to n neighbors can incur costs
As high as sending to a single neighbor if receive costs are neglected completely As high as sending once, receiving n times if receives are tuned to the right moment As high as sending n unicast packets if the MAC protocol does not support local multicast

If local multicast is cheaper than repeated unicasts, then wireless multicast advantage is present
Can be assumed realistically


Steiner Tree Approximations

Computing Steiner tree is NP complete A simple approximation
Pick some arbitrary order of all destination nodes + source node Successively add these nodes to the tree: For every next node, construct a shortest path to some other node already on the tree Performs reasonably well in practice

Takahashi Matsuyama heuristic

Similar, but let algorithm decide which is the next node to be added Start with source node, add that destination node to the tree which has shortest path Iterate, picking that destination node which has the shortest path to some node already on the tree

Problem: Wireless multicast advantage not exploited!

And does not really fit to the Steiner tree formulation

Broadcast Incremental Power (BIP)

How to broadcast, using the wireless multicast advantage?
Goal: use as little transmission power as possible

Idea: Use a minimum-spanning-tree-type construction (Prims algorithm) But: Once a node transmits at a given power level & reaches some neighbors, it becomes cheaper to reach additional neighbors From BIP to multicast incremental power (MIP):
Start with broadcast tree construction, then prune unnecessary edges out of the tree


BIP Algorithm

BIP Example
Round 1:A 5 S 10 D 1 C 3 1 7 Round 4:A 2 S (3) 7 D C (1) 6 D C (1) 3 B S (5) 10 7 D 1 C 3 B Round 2:A 4 S (1) 9 2 7 D Round 5: A 3 B 1 C 3 B S (3) 7 7 Round 3: A 2 3 B


Example for Mesh-based Multicast

Two-tier data dissemination
Overlay a mesh, route along mesh intersections Broadcast within the quadrant where the destination is (assumed to be) located



Geographic Routing
Routing tables contain information to which next hop a packet should be forwarded
Explicitly constructed

Alternative: Implicitly infer this information from physical placement of nodes

Position of current node, current neighbors, destination known send to a neighbor in the right direction as next hop

Geographic routing

Send to any node in a given area geocasting Use position information to aid in routing position-based


Might need a location service to map node ID to node position


Basics of Position-based Routing

Most forward within range r strategy
Send to that neighbor that realizes the most forward progress towards destination NOT: farthest away from sender!

Nearest node with (any) forward progress

Idea: Minimize transmission power

Directional routing
Choose next hop that is angularly closest to destination Choose next hop that is closest to the connecting line to destination Problem: Might result in loops!

Problem: Dead ends

Simple strategies might send a packet into a dead end


Right Hand Rule to Leave Dead Ends GPSR

Basic idea to get out of a dead end: Put right hand to the wall, follow the wall
Does not work if on some inner wall will walk in circles Need some additional rules to detect such circles

Geometric Perimeter State Routing (GPSR)

Earlier versions: Compass Routing II, face-2 routing Use greedy, most forward routing as long as possible If no progress possible: Switch to face routing
Face: largest possible region of the plane that is not cut by any edge of the graph; can be exterior or interior Send packet around the face using right-hand rule Use position where face was entered and destination position to determine when face can be left again, switch back to greedy routing

Requires: planar graph! (topology control can ensure that)

GPSR Example
Route packet from node A to node Z
Leave face routing E I


A Enter face routing C



Geographic Routing Without Positions GEM

Apparent contradiction: geographic, but no position? Construct virtual coordinates that preserve enough neighborhood information to be useful in geographic routing but do not require actual position determination Use polar coordinates from a center point Assign virtual angle range to neighbors of a node, bigger radius Angles are recursively redistributed to children nodes

How to combine position knowledge with nodes turning on/off?
Goal: Transmit message over multiple hops to destination node; deal with topology constantly changing because of on/off node

Idea: Receiver-initiated forwarding

Forwarding node S simply broadcasts a packet, without specifying next hop node Some node T will pick it up (ideally, closest to the source) and forward it

Problem: How to deal with multiple forwarders?

Position-informed randomization: The closer to the destination a forwarding node is, the shorter does it hesitate to forward packet Use several annuli to make problem easier, group nodes according to distance (collisions can still occur)


GeRaF Example
A4 A3 A2 A1

1 D


Location-based Multicast (LBM)

Geocasting by geographically restricted flooding Define a forwarding zone nodes in this zone will forward the packet to make it reach the destination zone
Forwarding zone specified in packet or recomputed along the way Static zone smallest rectangle containing original source and destination zone Adaptive zone smallest rectangle containing forwarding node and destination zone
Possible dead ends again

Adaptive distances packet is forwarded by node u if node u is closer to destination zones center than predecessor node v (packet has made progress)

Packet is always forwarded by nodes within the destination zone itself


Determining Next Hops Based on Voronoi Diagrams

Goal: Use that neighbor to forward packet that is closest to destination among all the neighbors Use Voronoi diagram computed for the set of neighbors of the node currently holding the packet


Geocasting Using Ad hoc Routing GeoTORA

Recall TORA protocol: Nodes compute a DAG with destination as the only sink Observation: Forwarding along the DAG still works if multiple nodes are destination (graph has multiple sinks) GeoTORA: All nodes in the destination region act as sinks
Forwarding along DAG; all sinks also locally broadcast the packet in the destination region

Remark: This also works for anycasting where destination nodes need not necessarily be neighbors
Packet is then delivered to some (not even necessarily closest) member of the group


Mobile Nodes, Mobile Sinks

Mobile nodes cause some additional problems
E.g., multicast tree to distribute readings has to be adapted
Source Source Sink moves downward

Source Sink moves upward

Routing exploit various sources of information to find destination of a packet
Explicitly constructed routing tables Implicit topology/neighborhood information via positions

Routing can make some difference for network lifetime

However, in some scenarios (streaming data to a single sink), there is only so much that can be done Energy efficiency does not equal lifetime, holds for routing as well

Non-standard routing tasks (multicasting, geocasting) require adapted protocols