Notes
Outline
Course Overview
Introduction and History
Data in Wireless Cellular Systems
Data in Wireless Local Area Networks
Internet Protocols
Routing and Ad-Hoc Networks
TCP over Wireless Link
Services and Service Discovery
System Support for Mobile Applications
Routing
Routing
Problem:  Find the lowest cost path between any two nodes
Factors:
Static: topology
Dynamic: load
Distance Vector
Each node maintains a set of triples:
(Destination, Cost, NextHop)
Each node sends updates to (and receives updates from) its directly connected neightbors
periodically (on the order of several seconds)
whenever its table changes (called triggered update)
Each update is a list of pairs:
(Destination, Cost)
Update local table if receive a “better” route
smaller cost
came from next-hop
Refresh existing routes; delete if they time out
Example
Routing table at node B
Routing Example
Example 1
F detects that link to G has failed
F sets distance to G to infinity and sends update to A
A sets distance to G to infinity since it uses F to reach G
A receives periodic update from C with 2-hop path to G
A sets distance to G to 3 and sends update to F
F decides it can reach G in 4 hops via A
Routing Loops
Example 2
Link from A to E fails
A advertises distance of infinity to E
B and C advertise a distance of 2 to E
B decides it can reach E in 3 hops; advertises this to A
A decides it can reach E in 4 hops; advertises this to C
C decides that it can reach E in 5 hops......
Heuristics to break routing loops
set infinity to 16
split horizon
split horizon with poison reverse
Link State
Strategy: Send to all nodes (not just neighbors) information about directly connected links (not entire routing table).
Link State Packet (LSP)
id of the node that created the LSP
cost of link to each directly connected neighbor
sequence number (SEQNO)
time-to-live (TTL) for this packet
Reliable Flooding
store most recent LSP from each node
forward LSP to all nodes but one that sent it
generate new LSP periodically; increment SEQNO
start SEQNO at 0 when reboot
decrement TTL of each stored LSP; discard when TTL=0
Route Calculation
Dijkstra's shortest path algorithm
N denotes set of nodes in the graph
l(i,j) denotes non-negative cost (weight) for edge (i,j)
s /in N denotes this node
M denotes the set of nodes incorporated so far
C(n) denotes cost of the path from s to node n
M = {s}
for each n  in N - {s}
C(n) = l(s,n)
while (N ° M)
M = M union {w} such that C(w)
is the minimum for all w in (N-M)
for each n in (N-M)
C(n) = MIN (C(n), C(w)+l(w,n))
Routing Example
Metrics
Original ARPANET metric
measured number of packets enqueued on each link
took neither latency or bandwidth into consideration
New ARPANET metric
stamp each incoming packet with its arrival time (AT)
record departure time (DT)
when link-level ACK arrives, compute
Delay = (DT - AT) + Transmit + Latency
if timeout, reset DT to departure time for retransmission
link cost = average delay over some time period
Metrics
Problems with “New” metric
under low load, static factors dominated cost; worked OK
under high load, congested links had very high costs; packets oscillated between congested and idle links
range of costs too large; preferred path of 126 lightly loaded 56Kbps links to a 1-hop 9.6Kbps path
Revised ARPANET metric
replaced delay measurement with link utilization
compressed dynamic range
highly loaded link never has a cost more than 3 times its idle cost
most expensive link only 7 times the cost of the least expensive
high-speed satellite link more attractive than low-speed terrestrial link
cost is a function of link utilization only at moderate to high loads.
Metrics
Route Propagation
Idea: Impose a second hierarchy on the network that
limits what routers talk to each other. (The first
hierarchy is the address hierarchy that governs how
packets are forwarded.)
Autonomous System (AS)
corresponds to an administrative domain
examples: University, company, backbone network
assign each AS a 16-bit number
Two-level route propagation hierarchy
interior gateway protocol (each AS selects its own)
exterior gateway protocol (Internet-wide standard)
Popular Interior Gateway Protocols
RIP: Route Information Protocol
developed for XNS
distributed with Unix
distance-vector algorithm
based on hop-count
OSPF: Open Shortest Path First
recent Internet standard
uses link-state algorithm
supports load balancing
supports authentication
EGP: Exterior Gateway Protocol
Overview
designed for tree-structured Internet
concerned with reachability, not optimal routes
Protocol messages
neighbor acquisition: one router requests that another be its peer; peers exchange reachability information
neighbor reachability: one router periodically tests to see if the other router is still reachable; exchange HELLO/ACK messages; uses a k-out-of-n rule
routing updates: peers periodically exchange their routing tables (distance-vector)
EGP Example
BGP-4: Border Gateway Protocol
Assumes the Internet is an arbitrarily interconnected
set of AS's. Define local traffic as traffic that
originates at or terminates on nodes within an AS,
and transit traffic as traffic that passes through
an AS, we can classify AS's into three types:
Stub AS: an AS that has only a single connection to one other AS; such an AS will only carry local traffic.
Multihomed AS: an AS that has connections to more than one other AS, but refuses to carry transit traffic.
Transit AS: an AS that has connections to more than one other AS, and is designed to carry both transit and local traffic.
BGP-4: Border Gateway Protocol
Each AS has:
One or more border routers
One BGP speaker that advertises:
local networks
other reachable networks (transit AS only)
gives path information
BGP Example
Speaker for AS 2 advertises reachability to P and Q
Network 128.96, 192.4.153, 192.4.32, and 192.4.3, can be
reached directly from AS 2.
Speaker for backbone network then advertises
Networks 128.96, 192.4.153, 192.4.32, and 192.4.3 can be
reached along the path <AS 1, AS 2>.
Speaker can also cancel previously advertised paths
Ad-Hoc Networking
idea: allow an arbitrary collection of mobiles to create a network on demand, without support from any “base” station or user administration:
create a network of all people attending a working group meeting to exchange e-mail or to run groupware applications
digital battlefield communications
disaster relief efforts
one host might have special capabilities (such as an Internet connection) and all other machines might want to route through it
solution should coexist with existing protocols, such as mobile IP
Ad-Hoc Networking: MANET
Mobile Ad-hoc Networks (manet) at IETF: http://www.ietf.org/html.charters/manet-charter.html
A "mobile ad hoc network" (MANET) is an autonomous system of mobile routers (and associated hosts) connected by wireless links
routers are free to move randomly and organize themselves arbitrarily; thus, the network's wireless topology may change rapidly and unpredictably
The primary focus of the working group is to develop and evolve MANET routing specification(s) and introduce them to the Internet Standards track. The goal is to support networks scaling up to hundreds of routers.
Ad-Hoc Networking
Ad-Hoc Networking: DSDV
DSDV: Destination-Sequenced Distance Vector protocol
basic idea: destination provides freshness indication, not intermediate nodes
each mobile host is a router
periodic broadcasts with sequence numbers
significant new information triggers broadcast updates
link breakages (metric ¥) are significant
two criteria for route selection:
sequence number guarantee maximal freshness (top priority)
metric comparison for lowest cost
protocol supports incremental and full updates
some routes in forwarding table might not be advertised
Ad-hoc Networking: DSDV
claimed properties of the DSDV protocol:
loop-free at all instants
dynamic, multi-hop, self-starting
low memory requirements
quick convergence via triggered updates
routes available for all destinations
fast processing time
reasonable network load
minimal route trashing
intended for operation with 100 mobile nodes, depending on “mobility factor”
Ad-Hoc Networking: DSDV Example
Ad-Hoc Networking: DSDV Example
Ad-Hoc Networking: DSDV Example
DSDV Evaluation
DSDV good for small ad-hoc networks
Brute-force approach to larger networks
requires periodic advertisements and global dissemination of connectivity information
each node has to keep complete list of routes
AODV: Improvement on DSDV
AODV intends to improve on DSDV shortcomings
basic idea: create routes only “on demand” to eliminate overhead of periodic broadcasts
problem: if purely “on demand”, could lead to long latencies before first packet gets transmitted
AODV assumes symmetric links between two nodes
discover new nodes in neighborhood using local hello messages
primary objectives of AODV:
broadcast discovery packets only when necessary
distinguish between local connectivity changes and general topological maintenance
disseminate information about local changes only to those neighboring mobiles that are likely to need information
AODV: Path Discovery
Initiated whenever a source needs to talk to another node and does not have routing information for that node
every node maintains two separate counters: node sequence number and broadcast id (incremented for each RREQ)
broadcast RREQ to neighbors, containing these fields
neighbors either reply with RREP (if they have route to destination) or pass RREQ on to their neighbors
drop RREQ if received more than once
if RREQ is passed on, keep some information to temporarily establish a reverse path for RREP and potential establishment of path
AODV: Path Discovery and Setup
AODV: Path Setup
eventually, RREQ will reach a node with route to destination
problem: what if route is old?
solution: source includes destination sequence number in RREQ to indicate desired “freshness”
if node’s destination sequence number is less than the one in RREQ, keep forwarding RREQ to neighbors
if acceptable route information, unicast RREP back to neighbor who sent out RREQ, which follows reverse path back to source, setting up route along the path
nodes that are not on reverse path will timeout and delete temporary information (timeout interval chosen appropriately, make sure that there is enough time for route to be discovered….)
if node receives multiple RREP, propagate first, and additional ones only if they indicate better path (using DSDV criteria):
greater destination sequence number (“fresher” route)
same destination sequence number with smaller hopcount
AODV: Route Table
each entry has source and destination sequence numbers, plus soft-state information:
route request expiration timer: when to delete reverse path entries
route caching timeout: when the expire an established route (assuming that is has not been active)
active indicator: routes are considered active if node originates and/or relays packet to destination within most recent active_timeout interval
update routing table if “fresher” or better routes become available
AODV: Route Maintenance
if path breaks (hello messages, link-layer acknowledgements), upstream nodes propagate unsolicited RREP with higher sequence number and hop count of ¥ to all active upstream nodes
according to protocol, these RREPs get forwarded to other active nodes, eventually all active correspondents will be informed of link failure
if needed, correspondents can start establishment of new route by issuing RREQ with destination sequence number one higher than last known sequence number
problem: how to make “smart” decision as to whether route is still needed?
Ad-Hoc Networking: Example
Ad-Hoc Networking: AODV Example
Suppose MH1 moves away from MH2 towards MH7 and has active sessions with MH3 and MH6:
MH2 notices that its link to MH1 is broken
MH2 checks its routing table and finds that its link to MH1 was actively in use by MH3 and MH4
MH2 unicasts an ¥-metric route update, with an incremented destination sequence number, to MH3 and MH4. MH3 may subsequently issue a new route request for MH4
MH4 also notes that its route to MH1 was actively in use and forwards a ¥ -metric route update to MH6
the ¥-metric route update for MH1 may also be included in the next periodic limited broadcast issued by MH2
MH6 may subsequently issue a new route request for MH1
any subsequent route request for MH1 which is satisfied by a route reply through MH2 may cause MH2 to update its route table
AODV Performance Evaluation
Nodes move randomly with geographic region
speed chosen from uniform distribution between 0.4 and 0.8 meters/second
once they arrive at random location, rest for period chosen from uniform distribution between 60 and 300 seconds
2 nodes can communicate directly (are neighbors) if they are less than 10 meters apart
AODV Performance Evaluation
AODV Performance Evaluation
Voice: longer packets, resulting in more collisions and longer queue lengths at intermediate nodes, which in turn delays RREQ and RREP messages and increases route acquisition latency
Bandwidth efficiency slightly higher, since number of “control” messages the same, but more data being send
DSR: Dynamic Source Routing
Source Routing: sender of packet determines complete sequence of nodes along path and lists them in packet header
use dynamic route discovery to determine path
advantages:
no periodic routing advertisement messages
saves bandwidth when there is little change in network
saves battery power (no need to send/receive messages)
ad-hoc networks have many redundant links, which cause flooding of routing messages
no assumption of link symmetry
possible to react to changes faster than state-based or distance-vector based protocols
DSR Basic Operations
each node in network has route cache
if route to intended destination not in cache, initiate route discovery
while using a route, monitor correct operation of this route (i.e., make sure it does not brake)
various optimizations to improve performance
DSR Route Discovery
Node broadcasts route request message to all hosts within transmission range
route requests carry route record (sequence of hosts visited so far) and unique request id
each node maintains list of “recently seen” route request messages
upon reception of route request by a node:
check whether request is a duplicate and discard
check whether node is in route record and discard
if node is intended target, route record is complete, reply with route reply
otherwise, append node to route record and re-broadcast
DSR Route Maintenance
traditionally, route maintenance implied in periodic broadcasts of state/distance vector
as configuration changes, info will eventually spread through network
route maintenance: send route error packet to sender
easy if data link layer provides hop-by-hop acknowledgement (notification of route breaking)
passive acknowledgement: if node sends packet to neighbor, it should hear neighbor transmitting packet (symmetric links!)
active acknowledgement: force neighbor to ack, use if link has been idle for a while (no data came from next-hope node)
asymmetric links: last resort would be end-to-end acks
to send route error packet: node needs route to sender, maybe be reversing route in packet header, maybe by explicit route discovery
DSR Optimizations
Route cache
organized as tree
route discovery also learns about routes to intermediate nodes
intermediate nodes learn about routes by “snooping” on route request/reply messages and/or routing data
intermediate nodes may learn routes by listening to route discovery through neighboring nodes
use route cache to reply to route requests, even if not target node
multiple hosts can answer with different routes: how to pick best route/suppress transmission of additional replies?
possibility for routing loops: node that replies with route from cache has to check for loops before replying
limit hop count for route requests
DSR Optimizations
piggy-backing data onto route discovery to reduce latency
if node that is not target replies to route request, special attention is needed to make sure that the data is forwarded to final destination
reflecting shorter routes
usually, as nodes move closer, they will also move out of range in existing route, so route maintenance will take care of this
alternatively, run network interfaces in promiscuous mode, listen to who is in your neighborhood and see whether routes in cache can be shortened
DSR Optimizations
handling network partitions
if nodes cannot communicate, lots of failed route request messages, with corresponding overhead
limit route requests using exponential backoff algorithm
eavesdrop on route error packets (promiscuous mode)
error packets detail hop that is down
other nodes can update/invalidate routes that use this hop in their cache
keep negative information (hops that are down) in cache for a brief period to make sure new routes do not use outdated hop
DSR Performance
DSR Performance
Ad-Hoc Routing Schemes
Comparison On-Demand vs. Table-Driven
Comparison of Source-Initiated Protocols
Ad-Hoc Routing Algorithm Performance
each paper/proposal tends to come with its own set of performance evaluations, based on some simulated environment
similar to location management proposals, no common performance evaluation framework exists
one study (November 1998): implement a number of proposals in NS and evaluate them, compare relative advantages and disadvantages
catch: study done by authors of DSR, which ends up being found superior
Ad-Hoc Routing: Performance Comparison
Movement Model:
1500m x 300m space
user picks random location, moves there at a speed randomly distributed between 0 and 20 meters/sec
stay at new location for pause time second, repeat
Communication Model:
10, 20, or 30 CBR sources, sending 4 packets/sec
packet size is fixed at 64 bytes
all communication peer-to-peer, starts at times uniformly distributed between 0 and 180 seconds
transmission range of 250 meters for each radio
Ad-Hoc Routing: Performance Comparison
Ad-Hoc Routing: Performance Comparison
Performance Metrics:
packet delivery ratio
routing overhead
path optimality
Not considered:
latency to establish route
goodput
route failures (i.e., routes break and connection times out before new route can be established)
Ad-Hoc Routing: Performance Comparison
Ad-Hoc Routing: Performance Comparison
Ad-Hoc Routing: Performance Comparison
Ad-Hoc Routing: Performance Comparison
Conclusions of study:
each protocol performs well in come cases and has drawbacks in others
DSR performs predictably
delivers virtually all data packets at low mobility rate and speed
fails to converge as node mobility increases
AODV performs nearly as well as DSR at all mobility rates and speeds
accomplishes its goal of eliminating source routing overhead
requires transmission of many routing overhead packets
is more expensive than DSR of high rates of node mobility
Future Issues: Heterogeneous Interfaces
Future Issues: Hierarchical Networks
Future Issues: Integration with Internet
Future Issues: Integration with Mobile IP