Вы находитесь на странице: 1из 280

Delay-Tolerant Networks

Acknowledgements: Most materials presented in the slides are based on the tutorial
slides made by Dr. Ling-Jyh Chen, Dr. Kevin Fall and Dr. Thrasyvoulos Spyropoulos.
Legacy Networks
Internet, Telephone network
Wired or fixed links







A SUCCESS STORY!

Wireless Networks: Cellular
Cellular Networks: Wired backbone + wireless last link









A SUCCESS STORY for voice/SMS!
Internet? (GPRS): not really (low bandwidth + high price)
Wired
Backbone
Wireless Last Hop
Wireless Networks: WiFi
802.11, wimax
Still: only wireless
local-loop
Higher bandwidth
than cellular:
54Mbps
Much cheaper/KB

Wireless Networks: WiFi (2)
Only Partial Coverage: HOTSPOTS
No real mobile computing!
Wireless Networks:
Ad-hoc and Sensor Networks
Self-organized: no wired infrastructure
Peer-to-peer: nodes are routers
Examples: sensor nets; disaster recovery, etc.

Disaster Recovery
Target Tracking
Wireless Networks
Ad Hoc and Sensor Networks (2)
The past approach: apply the successful and well
understood Internet paradigm to ad hoc networks also
Assume existence of explicit links (strong enough SINR)
Establish end-to-end paths








Mobility might change these paths: re-establish them
S
D
End-to-end path
node
link
Wireless Networks
Ad Hoc and Sensor Networks (3)
Ad-hoc Networks: A success story?

NOT REALLY!

No real ad hoc application (killer app) out there
except maybe some military networks

Why? Most wireless networks are NOT like the
Internet!
The Internet Assumptions
E2E path doesnt have really long delay
Reacting to flow control in -RTT effective
Reacting to congestion in 1-RTT effective
E2E path doesnt have really big, small, or
asymmetric bandwidth
Re-ordering might happen, but not much
End stations dont cheat
Links not very lossy (<1%)
Connectivity exists through some path
Even MANET routing usually assumes this
More Internet Assumptions
Nodes dont move around or change addresses
Easy to assign addresses in hierarchy
Thought to be important for scalability
In-network storage is limited
Not appropriate to store things long-term in network
End-to-end principle
Routers are flakier than end hosts
Non-Internet-Like Networks
Random and predictable node mobility
Military/tactical networks (clusters meet clusters)
Mobile routers w/ disconnections
Big delays, low bandwidth (high cost)
Satellites
Exotic links (deep space comms, underwater
acoustics)
Big delays, high bandwidth
Busses, mail trucks, delivery trucks, etc.
Challenged Networks
Intermittend/scheduled/opportunistic links
High error rates/low usable capacity
Very large delays
Different network architectures
Characteristics 1: Path and Link
characteristics
High latency, low data rate
e.g. 10 kbps, 1-2 second latencies
Asymmetric data rates
Disconnection
Non-faulty disconnections
Motion
Low-duty-cycle operation
Routing subsystem should not treat predictable disconnections as
faults and can use this information to pre-schedule messages
Long queueing times
Conventional networks rarely greater than a second
Challenged network could be hours or days due to disconnection
Characteristics 2: Network Architectures
Interoperability considerations
Networks may use application-specific framing
formats, data packet size restrictions, limited node
addressing and naming etc.
Security
End-to-end approach not attractive
Require end-to-end exchanges of keys
Undesirable to carry traffic to destination before
authentication/access control check
Characteristics 3: End System Characteristics
Limited longevity
Round-trip time may exceed nodes lifetime making
ACK-based policies useless
Low duty cycle operation
Disconnection affects routing protocols
Limited resources
Affects ability to store and retransmit data due to
limited memory
IP Routing May Not Work
E2E path may not exist
Lack of many redundant links
Path may not be discoverable (e.g., fast oscillations)
Traditional routing assumes at least one path exists,
fails otherwise
Routing algorithm solves wrong problem
Wireless broadcast media is not an edge in a graph
Objective function does not match requirements
Different traffic types wish to optimize different criteria
Physical properties may be relevant (e.g., power)
IP Routing May Not Work
E2E path may not exist
Lack of many redundant links
Path may not be discoverable (e.g., fast oscillations)
Traditional routing assumes at least one path exists,
fails otherwise
Routing algorithm solves wrong problem
Wireless broadcast media is not an edge in a graph
Objective function does not match requirements
Different traffic types wish to optimize different criteria
Physical properties may be relevant (e.g., power)
Inter-Planetary Internet (IPN)
Networking in Space
Existing satellite networks for deep space
missions:
Proprietary, not that efficient, one for each mission

NASA/JPL: Extend the idea of Internet in outer
space
One reusable network for all missions
Gain from experience already acquired


Extending the Internet in Space



Long Propagation Delays vs.
Chatty Internet Protocols
Propagation Delay is much larger than transmission time!
(minutes around our solar system)
Internet protocols are chatty
TCP:
S: Hi! You want to talk? (SYN) 20min
R: Sure! Lets establish a session (SYN+ACK) 20min
S: Ok, lets go for it! (ACK) 20 min
..
(slow start phase)
S: Can you send me the pic of Mars?
..

TCP chatiness

More than 3h for one 1MB pic!
transmission time (1MB/128Kbps) = 1min !!!
Idea: Bundles
Bundle: Application-meaningful message
Contains all necessary info packed inside one
bundle (atomic message)
Next hop has immediate knowledge of storage and
bandwidth requirements
Optional ACKs
Depending on class service
Goal: Avoid chattiness
Minimize number of propagation delays paid

Intermittent Connectivity
No more links! Now we have contacts





Contact 1:
Dish A sees earth Sat B from 12:30h to 12h:45h
Contact 2:
Sat B sees rover C on mars from 17:30h to 18:30h
Idea: Store-Carry-and-Forward
Store a bundle for a looong period of time.
Forward when the next contact is available
Hours or even days until appropriate contact.
Postal system: move packages from one storage place to
another (switch intersection), along a path that eventually
reaches the destination
How is this different from Internet routers store-and-
forward?
1) Persistent storage (hard disk, days) vs memory storage
(few ms)
2) Wait for next hop to appear vs. wait for table-lookup and
available outgoing routing port

Store-Carry-and-Forward (2)
3
S
D
1
2
4
5
7
8
10
11
12
13
14
16
15
Store-Carry-and-Forward (3)
Store-Carry-and-Forward (4)
DTN vs End-to-end Internet Operation
Networking in Space
Heterogeneity
Heterogeneous networks to interconnect
Link delay, asymmetry, error rate, reliability mechanism
Different protocol stack + Different node capabilities

Examples:
Earths Internet: short delays, low error rate, TCP reliability
Sensor network at Mars: short delays, high error rate, data
aggregation at sink(s)
Satellite backbone: long delays, high error rate, LTP
(lightweight transport protocol)
Boundles: A Store and Forward Overlay
What About Retransmission?
Custody Transfers
Error rates can be high in wireless links
What if a retransmission is needed?

Contact 1: Dish A sees earth Sat B from 12:30h to 12:45h
Contact 2: Sat B sees rover C on mars from 17:30h to
18:30h
Contact 3: Dish A sees Sat B again in one week

Its better that B takes custody of message and retries
sending it itself

Custody Transfer (2)

Custody Transfer (3)
Moving the Retransmission Point Closer
Benefits of hop-by-hop vs. end-to-end error
control
For paths with many lossy links re-Tx
requirements are much higher for end-to-end
(linear vs. exponential)
E.g. 3 links each with error 1-p:
(hop-by-hop) 3/p extra bandwidth
(end-to-end) 3/(p^3) extra bandwidth
Retransmission overhead is increased by long
propagation delays

Regions and DTN Gateways
DTN gateways are interconnection points between dissimilar
network protocol and addressing families called regions
e.g. Internet-like, Ad-hoc, Mobile etc.

DTN gateways
Perform reliable message routing & security checks
Store messages for reliable delivery
Resolve globally-significant name tuples to locally-resolvable names
for internal destined traffic

Name Tuples: two variable length portions
Region name
Globally-unique hierarchically structured region name
Used by DTN gateways for forwarding messages
Entity name
Resolvable within the specified region, need not be unique outside
it
E.g. { internet.icann.int, http://www.ietf.org/ }
Naming
Delay Tolerant Networks (DTN)
Kevin Fall (~2002): maybe these idea is not only
useful for deep space networks
DTN: Very Brief History
DTNRG chartered as IRTF research group (end of 2002)
Chair: Kevin Fall (Intel Research Berkeley)

Architecture evolved from deep-space-focused
Interplanetary Internet project
Funded by DARPA 1999-2002
IRTF Group IPNRG retired when DTNRG formed

DTN became a DARPA program in 2004

11+ Internet draft

Implementation: simulator (DTNSIM) and Linux codes
(DTN2)
Intermittent Connectivity:
The Technical Argument
Wireless links are not like wires!
S
D
End-to-end path
node
link
Intermittent Connectivity:
The Technical Argument
Intermittent Connectivity may appear because of: p
propagation effects: shadowing, deep fades
A
B
B
B
X
Intermittent Connectivity:
The Technical Argument(2)
Intermittent Connectivity may appear because of:
Propagation effects, shadowing, deep fades
Mobility: paths change too fast; huge overhead for maintenance
A
C
B
C
Intermittent Connectivity:
The Technical Argument(2)
Intermittent Connectivity may appear because of:
Propagation effects, shadowing, deep fades
Mobility: paths change too fast; huge overhead for maintenance
Power: nodes shut down to save power or hide
A
B
C
B
Save power
(e.g. sensor)
Low probability of detection (LPD)
(e.g. army node)
Intermittent Connectivity
The Economical Argument
Maybe its cheaper to not assume connectivity
rather than enforce it
Rural areas (countryside, freeways) :
overprovision of base stations?
OR just live with a sparse network and episodic
connectivity?
Sensor Networks (attached on animals):
Enough Tx power for connectivity? ($100/node)
Very low power nodes? (e.g. RFID, $1/node)
Wireless Connectivity: A Different View
S
D
X
X
path
disruption!
S
D
X
X
path
disruption!
S
D
End-to-end path
node
link
Applications: Sensor Networks for
Habitat Monitoring
ZebraNet (Princeton)
Biologists want to learn animal habits
Size of herds
Mobility patterns (running, sleeping, grazing)
Daily habits (watering)
Attach tracking collars on animals
Current technology surprisingly inefficient
Satellite trackers: high energy, low bit rate
GPS trackers: often have to retrieve collar for data
Sensor nodes with wireless radios?
Applications: Sensor Networks for
Habitat Monitoring (2)
Increase power for connectivity?
Considerably reduce lifetime of network! (power law)
What about obstacles?
Live with a sparse network (connected clusters)
Use DTN principles to carry traffic towards sink
Z
Z
Z
Z
Z
Z
Z
Z Z
Z
Herd of zebras
(range of few meters)
Herd of zebras
(range of few meters)
base station
Vehicular Networks
Drive-Thru Internet
Vehicle-to-roadside (base station, sensors)
Vehicular Networks
Drive-Thru Internet (2)
Asynchronous operation: OK for e-mail!
Web caching; Local information; download news
Enough bandwidth even at high speeds!
write email
Internet
send email
send email email reply
email reply
Vehicular Networks (VANETs)
Vehicle-to-Vehicle Networks
Accident Prevention
Traffic Reports
Can be combined with Vehicle-to-Roadside
Why Vehicular DTN Networks?
Gradual deployment => initially sparse network







Even dense deployments: Paths change too
fast! Before enough time to be discovered

An example
UCLAs Vehicular Sensor Network
Internet to Remote Communities
Internet to underdeveloped countries/remote
villages
Rural Kiosks (shared among villagers)
Sell/buy agricultural products
Banking/Transactions with government
Land Titles (Hernando Soto)
Satellite: low bandwidth, expensive
Microwave links: expensive, unreliable(?)
Dial-up: low bandwidth, unreliable (?)
Power network: UNRELIABLE!

Internet to Remote Communities (2)
Email, cached/asynchronous services
Use: Village bus, postmans vehicle, passing cars
Equip with radio, antenna, and storage
Use: dial-up, satellite, microwave links when available
Internet to Nomadic Communities
The SAAMI nomadic community of Lapland
Application: Underwater Networks
Acoustic signal: short range; longer prop delays
Environmental sensors: Information collected
by mobile base stations, or even animals
equipped with transceivers (e.g. whales)
Tactical (military) Networks
Communicating beyond enemy lines
Need to retain connectivity despite jamming,
losses
Powering down nodes (LPD/LPI)
Ad-Hoc Networks (revisited)
DTN is not only for extreme networks
Maybe it can be used to achieve real mobile
computing without the need for a connected
network

Why?
Hotspots
Now we have to look for the hotspot
Mobile computing = the user moves until he can
compute!!
Extend Access Point (WiFi) connectivity with ad-hoc
subnetworks
Data maybe available at local peers
Establish a peer-to-peer network between local
nodes
Local news/info may be available at a node nearby
Peer-to-peer wireless
Pocket Switched Networks
HAGGLE project (www.haggleproject.org)
Conference
Campus


Summarizing:
Delay Tolerant Architecture for Wireless
A necessity:
Deep space communications, underwater
networks
Remote, underdeveloped areas
A choice:
Sensor networks
Vehicular networks
Extension:
Peer-to-peer wireless
Protocol Design: A Paradigm Shift
Current protocols are problematic for
challenged environments
Too many assumptions do not hold
Need new protocols that take the realities of
these emerging wireless environments as
starting points; no ad-hoc fixes
Security and Application Issues
Security: avoid using infrastructure
Public Key: need a connected server which will
map name-to-public-key
Reputation Systems: revoking a certificate
might take a very long time

Application: must be delay tolerant
Network is delay tolerant; what about users??
Applications, interfaces with persistence
More about Security Issue
Problems:
Secure opportunistic channel establishment
Mutual opportunistic authentication
Protection from overrun entities
PKI works poorly if connectivity is poor
Approach using Hierarchical Identity Based
Crypto (HIBC)
IBC: generate public key based on a string (e.g.,
address) but private key must be generated by
private key generator
HIBC: cooperating hierarchy of PKGs
No lookup required to find disconnected nodes
public key
More about Security Issue (2)
Bootstrap
New user communicates w/PKG over secure
channel to get initial key pair
Can also used tamper-resistant device
Reversal of accumulated source route used for PKG
to reach new node
Use of Time
Add datastamp to public key IDs helps to minimize
compromise time if device is lost
Time-based keys instead of CRLs (Certificate
Revocation List)
Fail-safe vs fail-insecure (CRLs)
Routing
Legacy Routing
Graph: G = {V,E}
V: set of nodes
E: set of links
w(e): E9
cost function (capacity, energy, queue size)

Routing (S,D):
path P
SD
= {v
0
,,v
i
,,v
N
:

v
i
eV, v
0
= S, v
N
= D}
such that -e
ii+1
eE
and
+
i
1 ii
P
) w(e min
SD
Legacy Routing
Proactive Protocols (table-driven)
Link-state, distance vector
Obtain global topology information (Topology Updates)
Dijkstras, Bellman-Ford algorithm
Calculate minimum cost paths
Distributed algorithms
Dijkstras algorithm
Shortest paths from A to V-{A}

Initialization: cost C(A)=0, C(v) = ; set Q = {empty}
Loop: pick v e Q: C(v) is minimum; Q = Q + {v}
if C(v) + w
vj
< C(j) => C(j) = C(v) + w
vj

Terminate: when Q = V


Example of Dijkstras Algorithm
D
B
C
A
4 2
3
6
1
L(B)=4
L(C)=6
L(D)=
L(A)=0
Step 1
B
D
C
A
4 2
3
6
1
L(B)=4
L(C)=5
L(D)=6
L(A)=0
Step 2
B
D
C
A
4 2
3
6
1
L(B)=4
L(C)=5
L(D)=6
L(A)=0
Step 3
L(D)=6
B
D
C
A
4 2
3
6
1
L(B)=4
L(C)=5
L(A)=0
Step 4
Legacy Routing
Reactive Protocols
DSR, AODV
Step 1) Flood Route Request message (RREQ)
Step 2) Nodes that forward RREQ append their ID on header
Step 3) The path that reaches D first = shortest path
Step 4) Send back Route Reply (RREP) with reverse path
from that found in header
If path breaks
Repeat route discovery
Or fix locally if other subpaths available are known (route
maintenance)


Legacy Routing for DTN
S
D
Proactive Routing
(DSDV, OLSR)
Flood Periodic Topology
Updates (UPD)
S learns next hop to D

UPD reaches only
same cluster as D!
UPD
UPD
UPD
UPD
UPD
S
D
Reactive Routing
(DSR, AODV)
Flood Route Request (REQ)
S waits for reply from D
REQ reaches only
same cluster as S!
REQ
REQ
REQ
REQ
DTN Routing
Graph is disconnected and/or time-varying

G(t) = {V, E(t)}

G = {V,C}, C = set of contacts c
i


c
i
= {v
i
,v
j
,t
start
,t
finish,
bandwidth,prop. delay,}




Types of Contacts
Scheduled contacts
E.g. satellite links, message ferry
All info known
Probabilistic contacts
Statistics about contacts known
E.g. mobility model, or past observation+prediction
Bus relay, sensors with random wake-up schedule
Opportunistic contacts
Not known before it occurs
E.g. a tourist car that happens to drive by the village

Routing: Scheduled Networks
DTN Routing for Scheduled
Contacts
Problem Setting:
Set of contacts c
i

Set of storage capacities bc
i
:v
i
eV 9
Set of messages m
i
= {s,d,t,m}
Future traffic demand
Evaluation Metrics
Messages Delivered
Average Delay (why?)
Connected with message drops
Connected with throughput
Knowledge Oracles
Problem 1) Assume we know data about (oracle)
Contacts Summary (Oracle)
Statistics about all contacts (frequency, duration, capacity);
e.g. contact time c
ij
occurs every T minutes

Contacts (Oracle)
Specific info about all contacts;
e.g. contact c
ij
(t
1
), c
ij
(t
2
), c
ij
(t
n
)

Queuing (Oracle)
Info about all queue sizes Q(n
ij
,t) (all nodes and all times)
Traffic Demand Oracle
Info about all future traffic demand
m
1
= {s
1
,d
1
,t
1
,m
1
}, m
1
= {s
2
,d
2
,t
2
,m
2
},etc.
Problem 2) Implement each oracle (centralized/distributed)

Routing Algorithm Classes
Zero Knowledge
No oracles used; only current/local view available
Worst-case performance (baseline)
Complete Knowledge
All oracles used + buffer (resource) information
Optimal performance (for comparison only)
Partial Knowledge
Explore tradeoffs of using only some of the
available oracles
Routing with Zero Knowledge
Oracles used: None
Algorithm: First Contact
Look at currently available contacts
Choose one in random or first that comes up
Performance: Random Routing
Random walk on time-varying connectivity graph
Cycles, oscillate between nodes, dead-end
Routing with Partial Knowledge
Computing minimum cost (shortest) paths
Delay:
Transmission
Propagation
Queuing = Waiting for contact + waiting for queue
to drain
Link weight w(e,t) = message arriving at edge e at
time t, is predicted to arrive at end of e at time t +
w(e,t)
Modify Dijkstras algorithm
Minimum Expected Delay (MED)
Algorithm
Oracles used: Contact Summary
Edge cost = average waiting time
average contact wait + transmission + propagation
Regular routing => minimize average path
delay
Downsides:
No reaction to congestion
Ignores a good link even if it is available
Dijkstra with time-varying costs
Pseudo-code
}
+ > =
t"
t
s)} t, Q(e, (m x)dx c(e, | min{t" s) m, t, (e, t'
Dijkstra with time-varying costs (2)
Message size = m
Edge Capacity = c(e,t)
Edge Propagation Delay = d(e,t)
Queue backlog = Q(e,t,s)

w(e,t) = w(e,t,m,s) = t(e,t,m,s) t + d(e,t)


Dijkstras with Time-varying Costs
Example
D
B
C
A
c
AB
=(5,7),(13,16),(20,22)

L(B)=5
L(C)=9
L(D)=
L(A)=0
Step 1
Time = 0
c
AC
(9,10),(14,17),(25,26),

c
BD
=(3,4),(11,15),(26,28)

c
CD
=(6,7),(13,15),(23,25)

c
BC
=(7,10),(14,15),(26,30)

w
AB
(0) = 5
w
AC
(0) = 9
Dijkstras with Time-varying Costs (2)
Example
D
B
C
A
c
AB
=(5,7),(13,16),(20,22)

L(B)=5
L(C)=9
L(D)=
L(A)=0
Step 1
Time = 5
c
AC
=(9,10),(14,17),(25,26),

c
BD
=(3,4),(11,15),(26,28)

c
CD
=(6,7),(13,15),(23,25)

c
BC
=(7,10),(14,15),(26,30)

w
BC
(5) = 2
w
AC
(5) = 6
L(C)=7
L(D)=11
Earliest Delivery (ED)
Oracles used: Contacts
Q(e,t,s) = 0
Ignores queuing info
Ignores buffer occupancy
Source routing
ED is optimal if:
1. Low traffic rates (e.g. 1 msg)
2. Or infinite bandwidth and buffer
Problems
If an edge is missed due to lack of bandwidth => may
result in disastrous behavior

Earliest Delivery with Local
Queuing (EDLQ)
Oracles used: Contacts
PLUS: look at local queues for choosing paths:

e = (s,*) Q(e,t,s) = data queued for e at time t
otherwise Q(e,t,s) = 0

Problems:
Buffer overflow
Potential loops (not consistent topology view
between nodes when running Dijkstra)
Earliest Delivery with Global
Queuing (EDAQ)
Oracles used: Contacts, Queuing
Q(e,t,s) = data queued for e at time t at node s
Source routing
Requires bandwidth reservation (ensure that no
later arrivals change the experienced queue size)
How is this to be implemented?
Current queuing knowledge depends on reservations
up to now
Still no bandwidth
Variations and Practical
Considerations
Re-computing routes for ED (earliest delivery)
Message might miss contact due to queuing
If missed => re-compute remaining shortest path (at
intermediate node)
Implementing queuing oracle with local info
Local queuing keeps track of messages it forwards
and their path
Extrapolate (expected) queue sizes at other nodes
(based on capacity and traffic assumptions)
Message/Path splitting
Message fragmentation
Multi-path routing (e.g. for MED algorithm)
Routing with Complete Knowledge
What are we missing??
Buffer constraints
Future traffic demand
How do we solve this?
Multi-commodity flow problem: balance flows
over links
Dynamic version: balance flows over contacts

We can formulate a Linear Program for the
problem in hand
note: variable space might grow exponentially

Routing with Complete Knowledge (2)
Many ideas from graph theory and network
flow problems
Optimize some metric (e.g. average path cost)
While abiding to constraints (e.g. link/buffer
capacities)

Transport Networks with time-varying graphs
Quickest transshipment of cargo with time-varying
links (e.g. a periodic cargo flight)
Dynamic Network Flows
Rather difficult problems in general
Performance Comparison
A network of (20) city buses with radios
Varying traffic load









Conclusion 1: ED(-,LQ,AQ) algorithms better
Conclusion 2: ED algorithm optimal for small loads
Performance Comparison (2)
Large bandwidth => ED is optimal
Small bandwidth => ED closer to MED
Performance Comparison (3)
Higher transmission range => more contacts => easier
to route
Smaller buffer space => ED* schemes perform better

Performance Comparison (4)
Practical Routing for DTNs
How to implement Oracles
The contact oracle:
No need to assume full knowledge
MED: expected contact delay (average over all
future contacts)
MEED: estimate future contact delay, based
on past contacts (sliding window)
MEED Algorithm
(Minimum Estimated Expected Delay)
Keep history of past contacts
Maintain running average
Sliding window
Large window => slow reaction to changes
Small window => too many updates, oscillations
Link-state epidemic dissemination
Whenever a contact changes significantly (x% form
previous estimate) => flood topology update packet
Link-state Topology => Epidemic
Dissemination
Message vector i
Table with topology updates from nodes NS
i
Two nodes meet: exchange message vectors
NS
A
and NS
B

Exchange topology updates not in common
until NS
A
=NS
B

Flood new topology updates further
Calculating the Routing Path
Eventually topology updates from all nodes
(global topology) not all equally fresh
Source Routing? Intermediate hops might have
more recent info than source
Hop-by-Hop Routing? What if an infrequent
contact (large expected wait) arrives first?
Per-contact routing = assign current contact
cost 0
Example of MEED routing
Link AB (path ABD) are better on average
than link AC (path ACD)
But if at time t link AC is up, then ACD is
better! (per contact routing)
Link-state DTN Routing:
Conclusion
Link-state overhead: O(N
2
)
If node mobility not restricted everyone sees
everyone else, eventually
Can be an interesting approach IFF:
- Nodes are static: e.g. sensor with wake-up
schedule
- Topology changes infrequently/network is dense
BUT: If mobility pattern does not have enough
structure (e.g. IID) then it degenerates to
random forwarding

Extensions?
How to extend to keep track of

1) average queuing
2) average traffic requirements

Approximate other algorithms
EDLQ
EDAQ
LP?
Message Ferrying
A sparse network of production nodes
Nodes may be static (e.g. sensors) => how to
bridge partitions?
Nodes may be mobile, but slow => long delays
waiting for a contact to occur may take time

Solution: Use specialized nodes (DataMules or
Message Ferries) to carry traffic between
production nodes
Ferries are always mobile
No energy considerations

Message Ferrying
1. Enforce Ferry Trajectory
Robots, unmanned aerial vehicles (UAVs) Li al 03,
Zhao et al 04
S
D
DataMule
DataMule
DataMule
DataMule
The problem: design optimal trajectories
Message Ferrying
2. Use Existing Trajectories
Scheduled mobility: Uncontrolled but predictable
mobile nodes (e.g. city buses) Jain et al. 04

S
D
Predict ferry mobility
Optimal use of available ferry bandwidth
Production node trajectory
Message Ferrying: The Problem
Space
Ferry mobility
1. Designed for non messaging reasons (buses)
2. Optimized for message transfer (robots)
Production node mobility
Static vs. Mobile
Number of ferries
Single vs. Multiple ferries
Ferry relaying:
Yes/No
Node Relaying
Node-to-ferry vs. node clustering

Ferries for non-messaging
reasons
No explicit trajectory design + known schedules
=> could apply principles from earlier presented
algorithms (e.g. ED, MED, etc.)

No trajectory design + no/limited knowledge of
schedules
=> use opportunistic routing, e.g. epidemic (later)

Focus on trajectory design cases
Static Nodes + Single Ferry
b
ij
= traffic (rate) requirement from node i to j
Ferry route L of length |L|
Ferry speed f: ferry cycle T = |L|/f
= average delay for traffic from i to j
Wait for ferry: T/2f
Upload data (queuing at node): f(ferry in range, upload rate)
Wait for destination (on ferry): T/2f
Download data to recipient: f(ferry in range, download rate)

average delay for all traffic
L
ij
d

=
j i,
ij
j i,
L
ij ij
L
b
d b
d
Static Nodes + Single Ferry (2)
Problem: find trajectory L, such that:

-

- while satisfying traffic matrix B = {b
ij
}


L
ij
L
d min
(Delay Problem)
(Bandwidth Problem)
Delay Problem
Assume infinite/enough bandwidth for b
ij
All data uploaded when encountered

,such that L passes by all nodes






Step 1: TSP approximation algorithms
Step 2: Local optimization

L
ij
L
d min
If b
ij
= b
ji
=> d
L
= |L|/f

Delay Problem = Traveling Salesman Problem (NP-complete)
Traveling Salesman Problem
Given a (connected) weighted graph
Find a path that:
Visits all nodes exactly once
And has a minimum cost

Bandwidth Problem
Increase route (local detour) to satisfy bandwidth
requirement




Minimize amount of increase (Linear Program)

minimize

subject to

i
j
j
i
s
x | L |
2r)W (x
>
+
+

Path extension for i


Tx rate
Traffic demand
of i (per cycle)
0 > >
i i
j
j j i
x 2rW, | L | s x s Wx

i
i
x
Optimal Trajectory Design:
The online problem
Previous case: traffic requirements known in
advance => offline, optimal solution

What if traffic requests arrive on-demand

Problem: design trajectory to optimally serve
existing requests
Minimize message drop rate
Minimize expected delivery delay
Mobile Nodes + Single Ferry
Ferry has a predefined route, which is known
Nodes decide when to move close to the ferry
to upload data (Node-Initiated Message
Ferrying, NIMF)

Task (e.g. sensing)
Receiver
Mobile Nodes + Single Ferry (2)
Goal 1: minimize time not performing task
E.g. time moving = time not sensing

Goal 2: minimize message drop ratio
While working, outgoing messages accumulate in
buffer => buffer overflow
While not going to ferry, incoming messages
accumulate in ferry => buffer overflow
Messages have TTL => if not delivered in time they
are dropped

When to Move Towards Ferry?
Keep msg drop rate low:
D
i
(t) = msg drop rate at i (outgoing)
D
f->i
(t) = msg drop rate for i at ferry (incoming)
G
i
= msg arrival rate at i
G
f->i
= msg arrival rate at ferry for I
(D
i
(t) + D
f->i
(t))/(G
i
+

G
f->i
) > | (condition 1)

Keep fraction of time not performing task low:
(task time)/(total time) > w (condition 2)
Shortcomings of NIMF
What if node task is correlated with message
delivery?
e.g. task = sensing data that needs to be periodically
transmitted to a sink
Conditions 1 and 2 may not be able to be
satisfied at the same time! WHY?

How are the nodes mobile? Robots? A person
decides to move close to the bus?
Static Nodes + Multiple Ferries
Case 1: No ferry interaction

Case 2: Ferry relaying
Ferries can exchange data with each other
Synchronization between ferries

Case 3: Node relaying
Node overhead for storing inter-relay traffic
Ferry Trajectory Design
Phase 1: Assign nodes to ferries
Phase 2: Choose path for each ferry






Phase 3: Fine tune route to meet traffic demand
Single-Route Algorithm (SIRA)
All nodes follow the same route
Constant speed and distance
No interaction

Phase 1: all nodes to all ferries

Phase 2,3: similar to single ferry
step 1: Traveling Salesman approximation
step 2: Local delay optimizations (wait
m
= wait
1
/m)

step 3: minimum route extension to satisfy traffic
Ferries
Multi-Route Algorithm (MURA)
Different Routes + no Relaying

Algorithm:
Step 1: assume n ferries assign one to each
node
Step 2: estimate ED (expected delay) and
reassign until m ferries and ED minimum
Step 3: refine assignment for end-to-end
feasibility
Step 4: calculate optimal route for each ferry
independently
Estimating ED (expected weighted delay)
Calculate weighted delay per route
Say route with k relays
Route delay is a tuple (E*,E)
E* = excess capacity
E = expected delay if capacity is met
a = total data rate
= service rate of route = 0.5 k W

< + +
>
=

<
> +
=
a if ),
a -
a
)(1
k
1
L(1
a if 0,
E
a if 0,
a if ), a L(1
E
'
*
(Re)assigning Nodes to Routes
Re-assign based on 4 operations goal is to
get m ferries and minimum ED
Op.1) overlap (i,j): extend one route to include
node of other
Op.2) merge (i,j): combine routes i,j into one;
ferries = k
i
+k
j

Op.3) merge
-
(i,j): combine routes i,j into one;
ferries = k
i
+k
j
-1
Op.4) reduce(i): k
i
= k
i
- 1
(Re)assigning Nodes to Routes
Problem 1: sender-destination not in same route
Problem 2: route traffic demand > route capacity
Continue overlap/merge until assignment is feasibleOR
The algorithm
Node Relaying Algorithm (NRA)
Multi-hop routing:
node S ferry f
i
node r ferry f
j
node D






Bound number of hops to maintain throughput
(Gupta et. al)
Overhead on relaying nodes
Node Relaying Algorithm (NRA) (2)
For each S-D pair n
ij
: geographic routing => path of cells (e.g.
C2,C3,C4)
Overlap operation between C
x
,C
y
=> shared node is relay
Assign ferries: 1 to each cell -> add extra ferry to highest EWD

Ferry Relaying Algorithm (FRA)
Data is relayed between ferries => no node
relaying
Similar to NRA algorithmuntil last step
After routes are calculated per cell, need to
synchronize between cells (not easy)
Performance Analysis
with Multiple Ferries
Some simulation results show that MURA (non-
relaying) has the best performance

Is it because of the extra resources required by
message relaying?
Is it because of the specific algorithms chosen
for relaying (i.e. could find better ones)
Does it depend on traffic pattern? if uniform
traffic, and no traffic weights, wouldnt MURA
routes need to cover ALL nodes??
Multiple Ferries with Independent
but Known Routes
Ferry mobility is not related to data delivery (e.g.
bus of networks)
Hence, it cannot be changed
Calculate inter-ferry contacts based on their
mobility schedules
Apply algorithms like MED, ED, etc.
Maybe even MEED, or some opportunistic
routing if schedules are not fully deterministic
(e.g. traffic jam, etc.)

Summarizing: DTN Routing
Scheduled/Known Contacts:
Modified Dijkstra Algorithm (time-dependent weights)
Dynamic Flow Problems

Enforced Contacts with Specialized Nodes (Ferries):
Design of Optimal Mobility Paths (TSP)
Optimal Assignment of Ferries

Opportunistic Contacts?
Contacts not known in advance
No extra nodes; only the mobility of the nodes themselves
is available
Routing: Opportunistic
Networks
Routing with Scheduled Contacts
Graph is disconnected and/or time-varying
Set of contacts C: known
Set of nodes V: known




A
C
B
D
D
Tx Range
(B,D) = {10,12},{19,21}
(C,D) = {8,10},{15,17}
D
(B,D) = {10,12},{19,21}
(C,D) = {8,10},{15,17}
Tx Range
D
Routing with Unknown Contacts
Opportunistic Routing
Graph is disconnected and/or time-varying
Set of contacts C: unknown!
Set of nodes V: often unknown too!




A
C
B
D
D
Tx Range
(B,D) = ??
(C,D) = ??
D
WHERE IS D?
D
WHERE IS D?
D
WHERE IS D?
Epidemic Routing
Give a message copy to every node encountered
essentially: flooding in a disconnected context
A
C
B
D
D
E
F
D
D
D
D
Epidemic Routing (2)
Message Vectors
Node A encounters node B
Dest ID Seq. Num.
D 0
G 1
F 0
Dest ID Seq. Num.
D 0
E 0
F 0
F 1
Message Vector of A Message Vector of B
(G,1)
(E,0),(F,1)
Epidemic Routing (2)
Message Vectors
After message exchange
Dest ID Seq. Num.
D 0
E 0
F 0
F 1
G 1
Dest ID Seq. Num.
D 0
E 0
F 0
F 1
G 1
Message Vector of A Message Vector of B
Encounters
Two nodes encounter each other when they are inside
Transmission Range
How do they know?
Beacons: periodically transmit a HELLO message to
discover neighbors
e.g. Bluetooth association
Implications:
1. Some encounters might be missed
2. Encounter not immediately when in range

Encounter => MSG vector exchange (+other info)
Delay of Epidemic Routing
(a coloring problem analog)
S
D
1
2
2
T1 = 1 red any blue
T2 = any of 2 red any blue

=
K
1 i
i
T

=
M
1 K
1 M
1
ED
M nodes
I.I.D. mobility
Epidemic Routing Performance
Delay for Epidemic Routing
0
1000
2000
3000
4000
5000
6000
7000
d
e
l
i
v
e
r
y

d
e
l
a
y

(
t
i
m
e

u
n
i
t
s
)
epidemic
optimal
Transmissions for Epidemic Routing
0
20000
40000
60000
80000
100000
120000
140000
160000
t
o
t
a
l

t
r
a
n
s
m
i
s
s
i
o
n
s
epidemic
optimal
Redundant copies reduce delay
But: too much redundancy is wasteful and often
disastrous (due to contention)
increasing traffic
increasing traffic
Too many transmissions
Plagued by contention
Randomized Flooding (Gossiping)
Spread the message with a probability p 1
p = 1) epidemic
p = 0) direct transmission
D
E
D
Outcome < p) Give a copy
D
Outcome > p) Dont give copy
K-neighbor Epidemic
Each node receiving a copy, can copy it again
up to K times
F
E
D
D
G
J
K = 2
D
Already given 2 copies!
Node E cannot fwd more
Flooding-based Schemes
Can reduce the transmissions of epidemic
With some penalty on delay!
Given long enough time, all nodes receive a
copy
Still flooding-based!
Lets re-think the problem. Must we flood
everyone (or almost everyone)?
Single-copy vs. Multi-copy
routing strategies
Single-copy: only a single copy of each message exists in the
network at any time
Multi-copy: multiple copies of a message may exist concurrently
in the network
Single-copy Multi-copy
+ lower number of transmission
+ lower contention for shared resources
+ lower delivery delay
+ higher robustness
Choosing A Next Hop
A local and intuitive criterion: A forwarding step is efficient
if it reduces the expected distance from destination
usually: reduction of expected distance => reduction of
expected hitting time
Efficient Routing : Ensure that each forwarding step on the
average reduces distance or hitting time with destination
A
Destination
B
C
Direct transmission
Forward message only to its destination
simplest strategy
minimizes transmissions

S
C
B
D
D
E
F
D
The Delay of Direct Transmission
EM: expected meeting time
2 nodes starting from stationary distribution
EM > ED: EM is a lower bound on delay!
ET: expected hitting
1 node is static (with position from uniform distribution

S
D
D
D
Randomized routing
A node forwards message to a new node with
probability p; NO Duplication! Its Hand-over!

A
C
B
D
D
E
F
D
D
D
Randomized
Why Transmitting is Faster Than Not!
Transmission Speed is Faster than Nodes Speed!
A
C
B
D
D
F
D
D
D
Why Transmitting is Faster Than Not!
ET
D
A B
d
B
E
A
T
D
= ET(d)
2
1) ET(d 1) ET(d
T E
D B
+ +
=
Randomized
P
AB
= P
BA
=
t
X
(Y): time since X last saw Y
Indirect location information
diffused with node mobility
smaller timer closer distance
For most mobility models
Utility-based Routing
A
D
B
t
B
(D) = 100
t(D) = 0
t(D) = 26
t(D) = 68
t
A
(D) = 138
t(D) = 218
Last encounter timers
D
D
Utility U
X
(Y) = f(t
X
(Y))
Policy: forward to B iff
U
B
(D) > U
A
(D) + U
th
Utility-based Routing (contd)
Result 1: Utility-based routing has a larger expected delay
reduction than the simple randomized policy
ET
D
A B
d
B
E
A
T
D
= ET(d)
2
1) ET(d 1) ET(d
T E
D B
+ +
=
Randomized
1) ET(d ) P (1 1) ET(d P T E
BA BA D B
+ + =
Utility-based
P
AB
= P
BA
= P
AB
< P
BA
>
t
A
(D) = 20
Problems with Utility Routing
Timer values are good indicators of proximity only if their value is
small.
Timers/utility updated only when destination is found
If sources (relays) neighbors happen to have larger timers, message gets
stuck for a long time

A
D
t
A
(D) = 20
t
A
(D) = 200
t
A
(D) = 20
Transitivity Idea
If A sees B, and B has recently seen D, then A is
probably close to D too.
update t
A
(D) when A encounters B
cache of most fresh entries for scalability
t(d
AB
): expected time to cover distance d
AB
t
A
(D) = t
B
(D) + t(d
AB
)
t(d
AB
) = (d
AB
)
2
(random walk)
t(d
AB
) = d
AB
(random waypoint)
No transitivity Transitivity
PDF of timer value of A for D, when A is far from D
Seek and Focus
A hybrid routing strategy
Set of node utility values: A time-varying, probabilistic
utility-field with the global maximum at destination
Utility-based routing is a greedy search of the field
Issue: message often gets stuck at local maxima

Seek and Focus
Seek phase: If current utility is below U
f
perform randomized
forwarding (quickly look for a good lead)
Focus phase: If current utility is above U
f
perform utility-based
routing for at most T
f
time units (follow the lead)
Re-seek phase: If no better relay is found for T
f
, perform
randomized routing for at most T
seek
or until a better relay is found
(if stuck at local maximum, do perimeter search)
Oracle-based optimal
algorithm
Assume all future movements are known
Then, the algorithm picks the sequence of
forwarding decisions that minimizes delay

Note that flooding (multi-copy strategy) has the
same delay as this algorithm when there is no
contention

Effect of Connectivity
Random Walk (local model)
Delivery Delay (Random Walk)
10
100
1000
10000
100000
40 (8.6%) 50 (14.8%) 60 (27.7%) 70 (52.9%) 80 (79.2%)
Tx Range (connectivity %)
t
i
m
e

u
n
i
t
s

(
L
O
G

S
C
A
L
E
)
Transmissions (Random Walk)
0
100
200
300
400
500
600
700
800
40 (8.6%) 50 (14.8%) 60 (27.7%) 70 (52.9%) 80 (79.2%)
Tx Range (connectivity %)
t
r
a
n
s
m
i
s
s
i
o
n
s

(
p
e
r

m
s
g
)
randomized
utility (no trans)
utility (trans)
seek&focus (trans)
optimal
Randomized has smallest delay
But, with order(s) of magnitude more transmissions
Utility-based with transitivity performs very few transmissions
But, with up to 10x worse delay than randomized
Without transitivity things are even worse
Seek & Focus achieves both low delays (close to randomized)
and low transmissions (slightly higher than utility-based)
randomized
randomized
Y-axis:
Transmissions per msg
X-axis: Tx Range
(Connectivity)
Increasing connectivity Increasing connectivity
Y-axis: Delivery delay
(LOG SCALE)
utility
utility
seek&focus
seek&focus
optimal
Effect of Connectivity
Random Waypoint (non-local)
Delivery Delay (Random Waypoint)
10
100
1000
10000
30 (5.7%) 40 (8.6%) 50 (14.8%) 60 (27.7%) 70 (52.9%)
Tx Range (connectivity %)
t
i
m
e

u
n
i
t
s

(
L
O
G

S
C
A
L
E
)
Transmissions (Random Waypoint)
0
20
40
60
80
100
120
140
30 (5.7%) 40 (8.6%) 50 (14.8%) 60 (27.7%) 70 (52.9%)
Tx Range (connectivity %)
t
r
a
n
s
m
i
s
s
i
o
n
s

(
p
e
r

m
s
g
)
random
utility (no trans)
utility (trans)
seek&focus
optimal
Randomized not fast for non-local mobility models
A bad forwarding decision is costly
Still high transmissions
Utility-based has good delays and low transmissions
Choice of the right transitivity function is important!
No transitivity, or wrong transitivity (e.g. random walk) is really bad.
Seek & Focus achieves even better delays
Yet, with slightly more transmissions
randomized
randomized
utility
utility
Single-copy Strategies:
Lessons Learned
Utility-based forwarding can be a good routing
primitive
ONLY IF utility function is correctly designed!
(transitivity + mobility model stats)
Seek and Focus (hybrid) is the best candidate if
a single-copy routing scheme has to be used
can fix some of the utility-based routing shortcomings

BUT, best single-copy strategy still an order of
magnitude slower than optimal!
2-hop Scheme
Source gives a copy to any relay encountered
Relays can only give copy to destination
Src
C
B
Dst
D
E
F
D
D
D
Relay C cannot FWD to B
Relay C can FWD to Dst
2-hop Scheme Performance
How many transmissions?
(M-1)/2
Delay?
T1 = time until source meets any node (M-1)
T2 = time until source meets any node (M-2)
epidemic: time until 2 red meet any of M-2 (smaller)




BUT: a relay node may meet destination in the
meantime!
1) ED(n
n M
1 n M
ET ED(n)
1 n
+


+ =
+
Rem. Delay
after n copies
Prob{next node
not DST)
Controlled Replication (Spraying)
2-hop scheme uses (M-1)/2 copies
Still a lot! Only half of epidemic
Limit number of copies to L (small, fixed)
Transmissions = L!
L = 2) Achieves O(1) per node capacity and
deals with Kumars and Guptas conjecture
(capacity 0) (Grossglauser et al. 01)
L > 2 and L = O(1): (constant L)
Still capacity gain
Transmissions << M
Multi-path diversity to reduce delay (Spray & Wait)
Source Spraying
Only source can give a copy (like 2-hop)
Start with L copies; give one to L-1 first relays
met
Delay (Src Spray) > Delay (2-hop)
Assuming no contention!
Tree-based Spraying
Use forwarding tokens; SRC starts with L tokens
When L = 1, can only forward to DST
Src
C
B
Dst
D
E
F
D
D
D
D
L = 4
L = 2
L = 2
L = 1
L = 1
L = 1
L = 1
Tree-based Spraying (2)
I.I.D. movement => Binary is optimal (n
j
= j/2)
Heterogenous => high complexity
L
L-n
1
n
1
j

j-n
j
n
j
Binary Spraying = Time-limited
Epidemic
Do epidemic spreading until time T
After T, switch to direct transmission
If T = ET
L
then the same as token-based (on
average
Remember: ET
L
= time until epidemic covers L
nodes

Replication Method Matters
1. Efficient spraying becomes more important for large L
2. Few copies suffice to achieve a delay only 2x the optimal!
(analysis)
Delay of Spray and Wait
0
500
1000
1500
2000
2500
3000
3500
4000
5 10 15 20
L (# of copies)
t
i
m
e

u
n
i
t
s
source spray and wait
binary spray and wait
optimal
100x100 network with 100 nodes
Effect of Traffic Load
0
5000
10000
15000
20000
25000
30000
35000
40000
45000
50000
T
o
t
a
l

T
r
a
n
s
m
i
s
s
i
o
n
s
random-flood
utility-flood
seek&focus
spray&wait(L=16)
spray&wait(L=10)
(Rand. Way. - 500x500 grid, 100 nodes, Tx Range = 10)
Transmissions Delay
Low traffic >10x epidemic
3-4x other multi-copy
same as epidemic
1.4-2.2x other schemes
High traffic 1.8-3.3x same as above
increasing traffic
0
500
1000
1500
2000
2500
3000
3500
4000
4500
e
p
i
d
e
m
i
c
r
a
n
d
o
m

f
l
o
o
d
u
t
i
l
i
t
y

f
l
o
o
d
s
p
r
a
y
&
w
a
i
t
(
L
=
1
0
)
s
p
r
a
y
&
w
a
i
t
(
L
=
1
6
)
s
e
e
k
&
f
o
c
u
s
D
e
l
i
v
e
r
y

D
e
l
a
y

(
t
i
m
e

u
n
i
t
s
)
increasing traffic
0
500
1000
1500
2000
2500
3000
3500
4000
4500
e
p
i
d
e
m
i
c
r
a
n
d
o
m

f
l
o
o
d
u
t
i
l
i
t
y

f
l
o
o
d
s
p
r
a
y
&
w
a
i
t
(
L
=
1
0
)
s
p
r
a
y
&
w
a
i
t
(
L
=
1
6
)
s
e
e
k
&
f
o
c
u
s
D
e
l
i
v
e
r
y

D
e
l
a
y

(
t
i
m
e

u
n
i
t
s
)
increasing traffic increasing traffic
Covered by Relay 1
3
Spray and Wait: A good scenario
S
D
1
2
4
5
6
7
8
9
10
11
12
13
14
16
15
Relays are highly mobile
Relays routes are uncorrelated
Covered
by Relay 2
3
Spray and Wait: A bad scenario
S
D
1
2
4
5
6
7
8
9
10
11
12
13
14
16
15
Relays move slowly
Relays move locally and are correlated
Node S community
Node Ds community
Spray & Wait Performance
Spray and Wait has desirable performance
IF nodes move frequently around the network
(e.g. VANETs, a mesh network over city buses,
etc.)
But, Spray and Wait may get in trouble if
nodes mobility is restricted inside a local area
nodes mobility is extremely slow (e.g. human
mobility)
Spray & Focus
1
st
Phase: Binary Spraying
like Spray & Wait
2
nd
Phase: Utility-based routing with transitivity
for each copy

Advantages:
still: few transmission + redundant copies
plus: take advantage of good transmission
opportunities
copies dont get stuck in local neighborhood
Effect of Connectivity: Random Walk
0
10
20
30
40
50
60
70
u
t
i
l
i
t
y
-
f
l
o
o
d
r
a
n
d
o
m
-
f
l
o
o
d
s
p
r
a
y
&
w
a
i
t
s
p
r
a
y
&
f
o
c
u
s T
r
a
n
s
m
i
s
s
i
o
n
s

(
t
h
o
u
s
a
n
d
s
)
K = 15 (7.8%)
K = 20 (14.9%)
K = 25 (35.9%)
K = 30 (68%)
K = 35 (92.5%)
0
500
1000
1500
2000
2500
3000
e
p
i
d
e
m
i
c
u
t
i
l
i
t
y
-
f
l
o
o
d
r
a
n
d
o
m
-
f
l
o
o
d
s
p
r
a
y
&
w
a
i
t
s
p
r
a
y
&
f
o
c
u
s
D
e
l
i
v
e
r
y

D
e
l
a
y

(
t
i
m
e

u
n
i
t
s
)
Transmissions Delivery Delay
Transmissions: still ~10x improvement for both protocols
Spray & Wait is slow: suffers from locality of movement
Spray & Focus is the fastest:
Takes advantage of locality
Close-to-optimal (unless very low transmission range)
fastest
slow!
(500x500 square, 100 nodes)
Heterogeneous Scenarios
Community (local) Nodes
Base Stations (p
static
)
Fast/Mobile Nodes (p
fast
)
p
L
(i)
1-p
L
(i)
stay inside
community
1-p
R
(i)
Roam around network
(infrequent)
Community (local) Nodes
Base Stations (p
static
)
Fast/Mobile Nodes (p
fast
)
p
L
(i)
1-p
L
(i)
stay inside
community
1-p
R
(i)
Roam around network
(infrequent)
Effect of Connectivity:
Community-based Mobility (contd)
Delay Improvement by Spray and Focus
0
5
10
15
20
25
40 (8.6%) 50 (14.8%) 60 ( 27.7%) 70 (79.2%)
Transmission Range (Connectivity %)
D
e
l
a
y
(
S
W
)

/

D
e
l
a
y

(
S
F
)
Scenario 1
Scenario 2
Scenario 3
Scenario 1: Homogenous
Community nodes (100%)
Scenario 2: Two types of nodes
Community nodes (90%)
Roaming nodes (10%)
Scenario 3: Four types of nodes
Community nodes (40%)
Local nodes (40%)
Roaming nodes (10%)
Static nodes (10%)

Spray Routing: Summarizing
Non-local mobility models: Spray and Wait
10x fewer transmissions AND smaller delay!
Spray and Focus has similar performance; but we
dont really need it

Local mobility models: Spray and Focus
Spray and Wait is slow
Spray and focus has close-to-optimal performance

Why does spraying work?
Law of diminishing returns for number of copies used


Improvements
Smart Replication
Who should get the copies?

Other Utility Functions
Energy
Mobility
Trustworthiness
GPS location
Queue Size
Hybrid
An Analytical Framework
Why do we need it?
Confirm our previous observations
Predict performance under a larger range of
settings

Use this theory for system-design
e.g. choose the right number of copies for Spraying
approaches
An analytical framework for
mobility-assisted routing
Component 1) Hitting and Meeting Times:
the basic building block;
depends on mobility model;
calculated for: random walk, random direction, random
waypoint, and a new model
Component 2) Multiple copies

Component 3) Forwarding a message
Plug n calculate: calculate the delay of any
scheme by combining the right components
Performance Analysis
An Analytical Framework
Assumptions
Network area:
Random walk: grid (torus) discrete movement
Waypoint-based models: square (torus) continuous movement
Infinite bandwidth, infinite buffers
calculate delivery delay

Notation:
M: number of nodes
N: network area
K: transmission range (small enough to have partial
connectivity )
E
A
T
B
: expected hitting time from A to B
ET: expected hitting time starting from stationary distribution
EM: expected meeting time between two nodes starting from
stationary distribution
Random Walk
Hitting Time (Tx Range K 0)
Hitting time ET = E
X
T
A
(EM still equal to ET/2)
X
Y
A(K)
K = 3

1) E
X
T
A
= E
X
T
Y
- E
A
T
Y

2) E
X
T
Y
= cNLogN

3) N
1 2
2 K 2
T E
K
1 K
Y A

|
|
.
|

\
|


=
+
|
|
.
|

\
|


=
+
1 2
2 K 2
cLogN N ET
K
1 K
p = 0.25
Random Direction (Random Waypoint)
Hitting Time
Movement is a set of epochs
Method:
1. Probability that any given epoch
hits the destination


2. Expected number of such
epochs (geometric)


3. Multiply by the expected
duration of each epoch T
e
epoch
start
epoch
finish
D
N
N
K
L
S
N
2KL
P
hit
=
2KL
N
P
1
N
hit
e
= =
e
T
2KL
N
ET =
4. EM: divide by (normalized) relative
speed between S and D, v
r


r
v
ET
EM=
]
|] v E[|
|] v v E[|
S
D S

=
Modeling Epidemic Spreading
Case Study: Epidemic Routing/Optimal
S
D
M nodes
Tx Range = K
1 - M
EM
2) - 2(M
EM
1
2
2
1) - (M
H
EM ED
1 M-
opt
=
where H
M-1
is the
harmonic sum



H
M1
=
1
i
i=1
M1

Modeling Epidemic Spreading


Markov Chains (Probabilistic Model)

Epidemic Routing
2-hop Routing
N+1: nodes
1/: meeting time
state i: i copies
state A: DST found
Prob(ii+1,At) = (N-i)*i*At
Modeling Epidemic Spreading:
Fluid Models (Deterministic)
Assume N (num. of nodes)
I(t) = average number of infected nodes at time t
(1)
P(t) = P(T
d
<t) CDF of delivery delay
P(t+dt)-P(t) = Prob{t T
d
t + dt}
= Prob{DST meets one of n
I
(t) infected nodes in [t,t+dt]} * Prob(T
d
>t)

= E[Prob(DST meets n
I
(t) | n
I
(t)] * (1-P(t))
= E[n
I
(t)dt]*(1-P(t))
= I(t) * (1-P(t)) dt
=> (2)

I I) (N (t) I
'
=
P) (1 I (t) P
'
=
Modeling Epidemic Spreading (2):
Fluid Models (Deterministic)
Ordinary Differential Equations (ODEs)
Or systems of ODEs
Sometimes PDEs, too.
Solve (1) for I(t) its a separable ODE



Replace I(t) in (2) and solve for P(t)




Expected Delay

Nt
1)e (N 1
N
I(t)

+
=
Nt
e 1) (N
N
P(t)

+
=
1) (N
lnN
P(t))dt (1 ET
0
d

= =
}

Modeling Message Forwarding


Case Study 2: Randomized algorithm
D

q: probability of Tx jump
q =
1-q: probability of random walk jump
f(K)
f(K): average transmission distance
Average jump length:
D = 1 q + q f(K)
p P(at least one node within range)
Approximate actual message movement with a random
walk performing D independent 1-step jumps at each
time slot
Note: This walk is slower than the actual walk
would reach destination later, on the average
Define an appropriate martingale to show that:



1 D
ED 2
ED
dt
rnd
+
s
Destination
movement
Message
movement
Note: D + 1 2 randomized is faster than direct transmission
Random Direction/Waypoint: Similar procedure gives
exact result
Message Forwarding (contd)
Case Study 2: Randomized algorithm
Utility-based algorithms
(no transitivity)
0 1 2 r-1 r r+1 r-2 r+2 r-K r+K N
Prob{node with higher utility within range AND node is closer to D}
+tx p

tx
p
Prob{node with higher utility within range AND node is farther than D}
p: probability of no forwarding =>
random walk step
p
p p
p
p p p p p
p p p
D
ED
util
is simply the expected hitting time from stationarity
to a state K

*Similar procedure for seek and focus without transitivity

Source Spray and Wait
Let ED(i) denote the expected remaining delay after i copies are
spread
Clearly ED
sw(src)
= ED(1)
ED(1) can be calculated through a system of recursive equations











=
ED
dt
i(M- i)
Time until a new
node is found
If not destination,
add extra term
+
|
|
.
|

\
|




i M
1 i M
P(not destination)
If new node found by
source, forward another
copy
1) ED(i
i
1
+
ED(i)
i
1 i
+
If found by relay,
do nothing
Expected remaining
delay after i copies
are spread
ED(i)
If destination, stop
A similar recursion procedure gives the delay of Optimal Spray
and Wait
Case Study: Choose the Number of
Copies for Spray and Wait
Exact delay not in closed form
Derive a bound in closed form
This is an upper bound for any Spray and Wait algorithm



ED
sw
s ES +
ML1
M1
EW
Spray Phase
Wait Phase
Probability a wait
phase is needed

=

=
1 L
1 i
i M
EM
ES

L
EM
EW =
Bound is tight for L<<M
Choosing L to achieve specified
delay
Suppose we want to achieve ED
sw
= o ED
opt
for
some o>1
We choose the minimum L that satisfies






1) - (M
H
EM =
L
EM

1 M
1 L M

i M
EM
1 M-
1 L
1 i

=
o
o 1.5 2 3 4 6 8 10
L
min
21 13 8 6 4 3 2
Some values (for M=100):
Upper bound on ED
sw
ED
opt
What If Network Parameters Are Unknown?
Estimation of M (200x200 grid)
0
50
100
150
200
250
300
350
400
0 1000 2000 3000 4000
number of samples
M

v
a
l
u
e
Actual M = 200
Estimated M
1 M
EM
T
1

=
Applies to any mobility model with exponential meeting times
Method:
|
.
|

\
|

=
2 M
1
1 M
1
EM T
2
1 2
1 2
2T T
3T 2T
M

Estimator:
To compute L
min
we need to know M
Use meeting times statistics and do online estimation
Routing: Other Issues
Epidemic Routing: Wasted Resources
Epidemic routing hands over a copy to every
node encountered
Even after the message has been delivered!
After the destination is encountered by at least
one relay, no need to keep other copies around
anymore
Unnecessary transmissions (energy, throughput)
Valuable buffer space

Reducing Resource Waste
Dis-infection Schemes
After one copy has been delivered:

1. Inform other nodes to stop spreading more
copies
No need to give extra copies to non-infected
nodes
2. Remove copy from buffers
Clear up buffer space of infected nodes

Full Erase
When encountering the destination => delete message
from buffer









Node may get a copy again!
A
C
B
dst
D
E
F
D
D
D
D
Delete local copy
X
D
IMMUNE
Delete packet AND maintain an antipacket
msg id: e.g. (src,dst,seq)
Implies that node is recovered
A
C
B
D
D
E
F
D
D
D
D
Delete local copy
X
B
Recovered Node
msg: (S,D,0)
No new copy to
recovered nodes
D
IMMUNE-TX
Propagate anti-packet to already infected nodes
A
C
B
dst
D
E
F
D
D
D
D
Delete local copy
X
B
Recovered Node
msg: (S,D,0)
No new copy to
recovered nodes
C
C recovered!
msg: (S,D,0)
D
Avoided this Tx
VACCINE
Propagate anti-packet to ANY node encounter
Vaccinate susceptible nodes
A
C
dst
D
E
F
D
D
B
No new copy to
recovered nodes
C
C recovered!
msg: (S,D,0)
Vaccinate E
D
E
Avoid this Tx, too
SIR Model
Epidemiology
I: infected nodes
Nodes with a copy, and no anti-packet
R: recovered nodes
Nodes with an anti-packet
S: susceptible nodes (S = N I R)
Havent ever received a copy or anti-packet
SIR Model: ODEs
Immune:



Immune-TX
I (t) R'
I - I R) - I - (N (t) I
'
=
=
1) I(R (t) R'
1) I(R - I R) - I - (N (t) I
'
+ =
+ =
Total number of transmissions
E[Tx] = lim
t
{I(t) + R(t)} I(0)

Immune








I (t) R'
I - I R) - I - (N (t) I
'
=
=
1 I(0) 1, - R - I - N
dR
dI
= =
N R 1)e N ( I(R)
R
+ + =

N] 1)e N [( lim R(t) lim 0 I(t) lim
R
t t t
+ + = =


N R(t) lim
t 10 N
~
>
1 - N E[Tx] ~
Total Number of Transmissions
IMMUNE-TX
1) I(R (t) R'
1) I(R - I R) - I - (N (t) I
'
+ =
+ =
1 R
1 1)R - (N R
I(R)
2
+
+ +
=
2
5 2N N 3 - N
E[Tx]
2
+ +
=
Performance of Buffer
Management
The more aggressive the recovery scheme
1) the less the total transmissions (ignoring overhead of
antipackets)
2) the smaller the buffer occupancy
Queuing Policies
Limited buffer space
Nodes with little memory (e.g. sensors)
Nodes might offer only a small chunk of memory for
3
rd
party traffic

What if a message has to be dropped?
Queuing Policies (2)
When new packet arrives on buffer and buffer
is full:
Droptail
drop it if buffer is full
Drophead
drop the oldest packet in buffer (most hops or least
time to TTL expiration)
rational(?): large time in the network => little chance
to be delivered before TTL expires
Drophead-sp (source-prioritized)
Dont drop a source packet for an arriving relay
packet
Queuing Policies: Performance
Drophead: fast infenction, high packet loss for small
buffers
Drophead-sp: slower infenction, higher delivery ratio

buffer droptail drophead
drophead
(sp)
5 0.97 0.22 0.05
10 0.95 0.03 0.0
20 0.90 0.002 0.0
QoS Provision
Multi-type traffic: what about traffic of different
priorities (e.g. emergency messages vs.
advertisements)
Multiple queues? Different forwarding policies
E.g. never drop type A for type B
Different routing policies?
Reducing the overhead of epidemic:
Network Coding
So far we were not changing packets content
Replication
Forwarding
Drops
Coding may combine one or more packets

x
1
x
2
x
3
Outgoing links
Incoming links
x
1
x
2
x
3
Store-and-forward
x
1
x
2
x
3
Reducing the overhead of epidemic:
Network Coding
So far we were not changing packets content
Replication
Forwarding
Drops
Coding may combine one or more packets

Outgoing links
Incoming links
x
1
x
2
x
3
Network Coding
f(x
1
,x
2
,x
3
)
Coding Packets: A simple example
XOR: The simplest combination:
2 1 2 1
x x ) x , f(x =
1 0 1 1
msg x
1
:
0 1 1 0
msg x
2
:

=
1 1 0 1
f(x
1
,x
2
):
De-coding Packets: A simple
example
Assume node that send x
1
receives the coded packet
f(x
1
,x
2
)

1 0 1 1
msg x
1
:
0 1 1 0
msg x
2
:

=
1 1 0 1
f(x
1
,x
2
):
Butterfly Network: Store-and-
Forward
Two sources: S1, S2
R1,R2: receive traffic from both S1 and S2
S1
S2
R2 R1
x
1
x
2
x
1
x
1
Time 1
x
2
x
2
Time 2
x
1
Time 3
x
1
x
2
3 units:
received x
1
,x
2
x
2
Time 4
4 units:
received x
1
,x
2
Butterfly Network: Network Coding
Two sources: S1, S2
R1,R2: receive traffic from both S1 and S2
S1
S2
R2 R1
x
1
x
2
x
1
x
1
Time 1
x
2
x
2
Time 2
Time 3
3 units:
received x
1
,x
2
3 units:
received x
1
,x
2
2 1
x x
2 1
x x
2 1
x x
Network Coding for Wireless
Broadcast nature of medium: natural ground for
network coding
A B C
B
x
1
A
x
2
B
x
1
A
x
2
B
x
1
A
x
2
No coding: delay = 4

Network Coding for Wireless
Broadcast nature of medium: natural ground for
network coding
A B C
B
x
1
A
x
2
B
x
1
A
x
2
Coding: delay = 3

2 1
x x
2 1
x x
2 1
x x
Linear Network Coding
m packets
n linear combinations
b
1
= a
11
x
1
+ a
12
x
2
++ a
1m
x
m
b
2
= a
21
x
1
+ a
22
x
2
++ a
2m
x
m
.
b
n
= a
n1
x
1
+ a
n2
x
2
++ a
nm
x
m

independent linear combinations m
Centralized choice of coefficients => Decode!
Distributed) a
i
random and independent
=> decode (prob 1)
Network Coding for Challenged Nets
The model
Set of nodes V
N(u): {ieV: i neighbor of u}
Set of sources S _ V (m = |S|)
Messages: x
i
, i=1,,m
x
i
= [x
i1
, x
i2
,, x
iM
], M symbolse F
2
k
=

(0,2
k
-1)
K > 8 to ensure independence for random coding
Encoding vectors: g
i
= [g
i1
, g
i2
,, g
im
],
m symbolse F
2
k
Encoding matrix G:
row i = (g
i1
,,
,
g
im
| , ,, )

=
m
1 j
j1 ij
x g

=
m
1 j
j2 ij
x g

=
m
1 j
jM ij
x g
Encoding
vector
g
i
*G
i
(G
i
= i
th
symbols of all x
i
}

Encoding Matrix: Example
1 0 0 5 4 1 2
1 1 1 6 3 2 2
- - - - - - -
g
1
=[1,0,0]
g
2
=[1,1,0]
M = 4 (symbols per message)

Encoding vectors (2)

Encoding matrix G at node 1
m = 3 messages in total
Each message contains M = 4 symbols in F
8
Encoding Matrix: Example
1 0 0 5 4 1 2
1 1 1 6 3 2 2
0 1 1 3 7 3 4
g
1
=[1,0,0]
g
2
=[1,1,0]
Encoding matrix G at node 1
m = 3 messages in total
Each message contains M = 4 symbols in F
8
g
2
=[0,1,1]
New encoded message arrived: increase
rank of matrix G?
No! Linearly dependent with 1,2 (x
3
= x
1
XOR x
2
(mod 8))
Encoding Matrix: Example
1 0 0 5 4 1 2
1 1 1 6 3 2 2
1 0 1 2 4 1 0
g
1
=[1,0,0]
g
2
=[1,1,0]
Encoding matrix G at node 1
m = 3 messages in total
Each message contains M = 4 symbols in F
8
g
2
=[1,0,1]
New encoded message arrived: increase
rank of matrix G?
Yes! 3 linearly dependent vectors (Gaussian elimination)
Network Coding for Challenged Nets:
Forwarding
At time t-dt node i receives an innovative
message/vector
With probability d: send (g
i
(t),y
i
(t)) = r
i
(t)*G
i
(t)
r
i
(t) = random vector (in F
2
k
)
Like gossiping: instead of forwarding new message,
forward a linear combination of all messages
currently in buffer!
All nodes in N(i) receive (g
i
(t),y
i
(t))
If not innovative discard
If innovative, add to matrix G and do same process
Need at most m innovative messages to decode
Can probably decode some elements before that!
Performance of Network Coding
Increase Delivery Ratio: better utilize forwarding
opportunities
Increase average delay (have to wait for multiple
messages to be received
Generation Management:
Which messages to code together?
Assume infinitely large network with a
percentage of nodes being sources

Do we code messages from all sources??
Coding matrix G will be huge!
Delay until all messages decoded

Code messages of subsets of sources together
How do we choose subsets??
Code multiple messages of same source
How many generations??

Network Coding Gains
Generation management: Larger generations
Better coding gains (throughput, energy, delivery)
Larger potential end-to-end delay, complexity
Related nodes in same generation?

Types of traffic
Multiple single-source single-destination messages
One source-one destination, multiple messages
Many sources-one destination
Multiple one source-many destinations messages
(multicast, broadcast)

End-to-end vs. hop-by-hop decoding
1) Decoding of messages at end nodes
This is what we were looking at so far
Issues with generation management
Potentially long/unbounded delays
2) Opportunistic Network (De-)Coding
Keep track of neighbors messages
Code only if next hop can decode
x
1
x
2
x
3
f(x
1
,x
2
,x
3
)
x
1
x
3
x
1
x
2
x
3
f(x
1
,x
2
,x
3
)
x
1
x
2
Erasure Coding
Provide better fault-tolerance by adding
redundancy without the overhead of strict
replication (e.g., Reed-Solomon, Gallager,
Tornado, and IRA codes)

Applications: P2P, overlay routing, WSN, data
storage, etc.

Erasure Coding
(r=2, n=4)
A B C D
A-1
A-2
A-3
A-4
B-1
B-2
B-3 C-1
C-4
D-1
A B C D
A-1
A-2
A-3
A-4
B-1
B-2
B-3
B-4
C-1
C-2
C-3
C-4
D-1
D-2
D-3
D-4
Lossy Channel
Layered Multiple Description Coding (LMDC)
Layered coding

Unequal erasure coding
Video
Web Document
LMDC Examples
Transport Layer Issues in DTNs
TCP offers:
Ports
Still used by the overlay bundle layer
Sequencing
Still there, but for bundles
Connection
Impossible in most DTN cases
Reliability
Late ACKs. Large RTT.
Congestion Control
Very difficult to get up-to-date congestion info in partitioned
environments;

Reliability in DTNs:
Hop-by-Hop
Each message copy forwarded is
acknowledged by the next hop
This holds also if multiple message copies are
propagated (e.g. epidemic)

Hop-by-hop reliability has minimum delay
No need to wait for end-to-end ack
BUT: Hop-by-hop reliability does not
guarantee end-to-end reliability
Reliability in DTNs:
Active Receipt
Intermediate node may: lie, shut down, break
down.
Active receipt: generated by destination when it
receives the message
Active receipt = new message
Other nodes route it as a normal message
Epidemic spreading of receipt to guarantee
acknowledgement
ACK size < MSG size => less overhead
Vaccinates/Cures other nodes encountered in the
meantime (essentially VACCINE)

Reliability in DTNs:
Passive Receipt
Active receipt: floods two messages
Often, most overhead is MAC access
Passive Receipt:
- generated by destination when it receives the
message
- can only be passed to infected nodes (essentially
IMMUNE-TX)

Plus: less overhead than active receipts
Minus: larger delay than active receipts
Reliability in DTNs:
Network-Bridged Receipt
Assume complementary network:
DTN + (low bandwidth, connected network)
Cellular network

DTN network: send bulky data (with delay tolerance;
e.g. ftp)
Cellular network: send immediate small ACK
Could even be used for disinfection(?)

Reliability in DTNs
What else could we try?

Where is each approach applicable?

What is the penalty of late ACKs?
What about ACKing multiple messages

Can we take advantage of mobility/social
structure to improve?
Congestion Control in DTNs
Connected Network
D
Buffer Full
D
D
D
D
D
Message Drop!
Congestion
Notification
Cut back send rate!
S D
Congestion Control in DTNs
Disconnected Network
D
Buffer Full
D
D
D
D
Message Drop!
Congestion
Notification
Cut back send rate!
D
D
D
S
D D D D
No Congestion!
Irrelevant Notification!
Unnecessarily reduce
throughput!
May not see S
Mobility Models
Random Walk
All nodes perform independent random walks
Move to any neighboring location with probability
p = 0.25
Uniform stationary distribution
torus: on boundary reflect on other side
Brownian Motion as an extension
Normal distribution increments
Random Waypoint
Choose a point in the network uniformly
Choose speed randomly
Pause for a random amount of time
Choose another point uniformly and repeat
Pause
Random Direction
Random Waypoint has some problems
Non uniform stationary distribution: concentration in
center
If not started from stationary distribution =>
convergence issues: slowly drifting from uniform to
center

Random Direction
1. Choose direction uniformly in 360
o
2. Move for exponential amount of time
3. Reflect or turn-around on boundary
Uniform Stationary Distribution
Other Models
Manhattan Model
All nodes move within restricted street
borders
Grid structure (vertical and horizontal
streets, like Manhattan)
Stop lights?
Freeway Model
Nodes move on lanes of one line; lanes
in both directions
Potentially other crossing freeways
Speed considerations between nodes in
same lane
Group Mobility
Subset of nodes associated with a leader
Followers make move based on leaders
move

Impact of Mobility Model on
Performance
A study comparison between DSR, AODV,
TORA, and DSDV under Random Waypoint
All routing protocols (proactive and reactive)
Showed DSR was better overall

Comparison for different mobility models (Rand.
Waypoint, Freeway, Manhattan, etc.)
Winner depends on mobility model; AODV
actually better in more cases
Some Common Assumption of
Synthetic Mobility Models
No location preference
Uniform choice of destination
Uniform stationary distribution

IID node mobility
Every node is doing the same
Statistically equivalent
Real-life Mobility
Community (local) Nodes
Base Stations (p
static
)
Fast/Mobile Nodes (p
fast
)
p
L
(i)
1-p
L
(i)
stay inside
community
1-p
R
(i)
Roam around network
(infrequent)
Community (local) Nodes
Base Stations (p
static
)
Fast/Mobile Nodes (p
fast
)
p
L
(i)
1-p
L
(i)
stay inside
community
1-p
R
(i)
Roam around network
(infrequent)
Common Mobility Models:
What is Wrong?
Location preference?
Nodes dont visit all locations equally frequently
Usually: spent most of the time in a small subset of locations (e.g.
office, house, library, etc.)
Identical node behavior?
Different nodes; some more mobile than others
Vehicles vs. pedestrians; first-year student vs. graduate student
Does time play any role?
Morning: commute to work
Noon: lunch
Weekend-vs-week
What else?
Social relationships
Traces From Real Wireless Networks
WLAN (WiFi) traces
Collect logs from deployed WLANs in campuses
Association(s) between user node and Access
Point(s) (AP)

Traces of contacts between different wireless
nodes (ad hoc mode)
PDAs carried around by users
Logs of different encounters (e.g. PDA associations)
DTN: We Care About Contacts
Contact traces => we get this directly

WLAN traces: translate Node-AP associations
into Node-Node associations
Same AP at the same time => contact
Not always true
What happens between APs?
Public DTN Traces
ZebraNet
Bus trace (SF, Toronto, DieselNet)
Campus trace (UCSD, Dartmouth, MIT)
Conference trace (Infocom, SIGCOMM)
Enterprise trace (Intel, IBM)

http://crawdad.org
Traces: What Have We Learned?
Location/Node preference
Tend to see specific locations/nodes, more often
than other
Node Heterogeneity
Some nodes see all locations/nodes; others a small
subset
Behavior over time
Different for different time of day, day of week, etc.
Periodic behavior
Community-based Mobility
Capture Location Preference
local
C
i
Community (e.g. house, campus)
p
L
(i)
1-p
L
(i)
Rest of the network
Roam outside community
(Rand. Direction or Waypoint)
p
R
(i)
stay inside
community
Continue roaming
1-p
R
(i)
Community-based Mobility (2)
Capture Node Heterogeneity
Each node may have a different community
local roam
p
L
(i)

1-p
L
(i)

1-p
R
(i)

p
R
(i)

Node i
local roam
p
L
(j)

1-p
L
(j)

1-p
R
(j)

p
R
(j)

Node j
Community-based Mobility (3)
Multiple Communities (house, office, library, cafeteria)
House
(C
1
)

Community (e.g. house, campus)
p
11
(i)
p
12
(i)
Rest of the network
p
21
(i)
Office
C
2
Library
C
3
p
23
(i)
p
32
(i)
Community-based Mobility (4)
Multiple Communities (house, office, library, cafeteria)
C
1
C
2
p
11
(i)

p
12
(i)

p
21
(i)

p
22
(i)

C
4
C
3
p
32
(i)

p
43
(i)

p
24
(i)

Inter-Community Mobility?
Intra-Community Mobility?
Community-based Mobility (5)
Capture time-dependent behavior
t = {morning, noon, weekend,}
C
1
C
2
p
11
(i)
(t)
p
12
(i)
(t)
p
21
(i)
(t)

p
22
(i)
(t)

C
4
C
3
p
32
(i)
(t)

p
43
(i)
(t)

p
24
(i)
(t)

Mobility Profile
Macroscopic View of Mobility
Node i: {
(i)
(C
1
),
(i)
(C
2
),,
(i)
(C
n
)}
Approach 1: Route towards most popular
communities (e.g. geographic routing)
Approach 2: {
(i)
(C
1
),
(i)
(C
2
),,
(i)
(C
n
)} =
coordinates in an n-dimensional space
Route to nodes whose distance is small in
this n-dimensional space

Multi-tiered Community
Roaming outside local community is not uniform either!
Move further away from local community with
decreasing probability
Tier 1
Tier 2
Tier 3
Tier 4
p
12
(i)
(t)
p
13
(i)
(t)
p
14
(i)
(t)
Inter-contact Times
Time between subsequent encounters with the
same node
Consecutive transmission opportunities to a
given node
Contact-based trace measurements: what is
the distribution of inter-contact times?
WLAN traces (Dartmouth, UCSD)
Inter-node (ad hoc mode) traces (Cambridge,
Toronto)
CCDF for Inter-contact Times
LOG-LOG plots
Straight line in log-log plot => power law/heavy-tailed
(slope = exponent)
CCDF for Inter-contact Times (2)
WLAN traces: similar behavior
Power Law Distributions
P[X > x] = x
-a

Infinite variance
a < 2: infinite mean
There is a high probability that some very large
values will be drawn if X is sampled sequentially
Contrast: exponential decay variables
Very large values: almost improbable

Most of the mobility models (synthetic)
presented so far had exponential tails
Power Law Distributions:
Complications
Theory: most analysis (Markov, ODEs,
combinatorics) assumes exponential tail
Essentially for X
1
,X
2
,,X
n
IID and exponential
E[min{X
1
,X
2
,,X
n
}] = EX / n

Protocol Performance
Opportunistic routing: give a copy randomly
Depending on the exponent (a) any opportunistic
protocol (e.g. direct transmission, 2-hop,
spray&wait) may have infinite delay!
But is it REALLY Heavy-tailed?
Power-law only within a range of CCDF
What about the rest of the tail (artifact of experiments, or not
power-law really)?
Lognormal Seems Fit Better
Inevitable Censorship in Measurements
5x10^3
0.4
6.6x10^6
0.06
Survival Curve
P(T>t)
6x10^4
0.2
UCSD trace
censored data
Self-Similarity Test
Hurst values are located between [0.5,1]
Time-Variance Plot, R/S Plot, Periodogram Plot, Whittle
Estimator

Social Networks
Social Networks
Social Network: who interacts with whom? Who
is a friend of whom?
Graph model: Vertices = humans, Weighted
Edges = strength of interaction
Social Network-based Mobility
Model
1. Create (simulation) or Derive (from existing
info e.g. department affiliation) a social
network among all nodes
2. Assign nodes to communities according to
social network
3. Assign communities to locations
4. Induce mobility based on social network
Communities in Social Networks
Social networks have high clustering co-efficient
Interaction Matrix = Connectivity Matrix
For all weights > threshold => assume a connected link








Identify Communities: Find nodes that connect
communities (intuition: shortest paths go through these)
Community 1 Community 2 Community 3
Communities in Social Networks
Social networks have high clustering co-efficient
Interaction Matrix = Connectivity Matrix
For all weights > threshold => assume a connected link








Identify Communities: Find nodes that connect
communities (intuition: shortest paths go through these)
Community 1 Community 2
B: connects 1,2
Mapping Communities to
Locations
Assume a grid with different locations of interest
Geographic consideration might gives us the candidate locations
Mobility Between Communities
p
c
(i)
= attraction of node i to community/location c

p
2
(B)
(t)
p
1
(B)
(t)
C} {j
w
p
C j
ij
(i)
C
e
=

e
p
3
(B)
(t)
Social Network-based Mobility Model
Can reproduce similar behavior to (heavy-tailed)
traces
Inter-contact times
Contact durations
Some issues
Nodes move only between specific (community)
locations
Different social graph weights depending on time of
day
Evolve social graph weights

Social Networks for Information
Dissemination
Social networks are often better to find information that is
location, community, or time-specific!
Small World and Scale-Free properties
Separation/diameter is smaller than random networks
Query can often be answered quicker through peers
Example: where is a good Thai restaurant in Nice?
Approach 1: Find PC => Google => look websites that
rate restaurant => hope the one suggested IS actually
good
Approach 2: Ask friend who lives in Nice (he might now,
or have heard, or ask another friend)
What if we could do this wirelessly also?
PeopleNet Architecture
Cellular Networks (WiMaX) as main
infrastructure
Bluetooth peer-to-peer networks (WiFi ad hoc)
Users transmit querys
Request query: who knows/has X? (ticket to
Monaco rally)
Offer query: I have/know Y
Queries are tagged according to some subject
(e.g. sports, finance, news, etc.)
PeopleNet Architecture (2)
A query is sent to a subset of locations/base
stations that have been assigned to the given
query type
Geography might play a role: e.g. where is the
closest local bookstore?
A few users receive the query through
infrastructure, and propagate further using
peer-to-peer messages
If a match is found, requesting user is notified
(SMS, email)

Further Issues
Research Issues
Routing
Buffer Management
Power Management
Auto-Configuration
Network Reliability
Free-riders
Black holes
Worm holes
Information Security
Data Encryption
Real-world applications (and killer applications)
Underwater Networks, Vehicular Networks, People Networks,
Scientific Monitoring Networks, etc.

Вам также может понравиться