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
Legacy Networks
A SUCCESS STORY!
Wireless Networks: Cellular
Wireless Networks: Cellular
802.11, wimax
Higher bandwidth
than cellular:
54Mbps
Much cheaper/KB
Wireless Networks: WiFi (2)
Wireless Networks: WiFi (2)
NOT REALLY!
End-to-end principle
Satellites
Intermittend/scheduled/opportunistic links
Disconnection
Non-faulty disconnections
Motion
Low-duty-cycle operation
Interoperability considerations
Security
Limited longevity
Limited resources
Optional ACKs
DTN gateways
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
ZebraNet (Princeton)
Size of herds
Accident Prevention
Traffic Reports
Hotspots
Peer-to-peer wireless
Pocket Switched Networks
Pocket Switched Networks
Conference
Campus
Summarizing:
Summarizing:
Delay Tolerant Architecture for Wireless
Delay Tolerant Architecture for Wireless
A necessity:
Sensor networks
Vehicular networks
Extension:
Peer-to-peer wireless
Protocol Design: A Paradigm Shift
Protocol Design: A Paradigm Shift
Problems:
Bootstrap
Use of Time
Graph: G = {V,E}
V: set of nodes
E: set of links
w(e): E
Routing (S,D):
path P
SD
= {v
0
,,v
i
,,v
N
:
v
i
V, v
0
= S, v
N
= D}
such that e
ii+1
E
and
+
i
1 ii
P
) w(e min
SD
Legacy Routing
Legacy Routing
Proactive Protocols (table-driven)
Proactive Protocols (table-driven)
Distributed algorithms
Dijkstras algorithm
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
c
i
= {v
i
,v
j
,t
start
,t
finish,
bandwidth,prop. delay,}
Types of Contacts
Types of Contacts
Scheduled contacts
E.g. satellite links, message ferry
All info known
Probabilistic contacts
Opportunistic contacts
Not known before it occurs
E.g. a tourist car that happens to drive by the village
Routing: Scheduled Networks
Routing: Scheduled Networks
DTN Routing for Scheduled
DTN Routing for Scheduled
Contacts
Contacts
Problem Setting:
Set of contacts c
i
Set of messages m
i
= {s,d,t,m}
Messages Delivered
Contacts (Oracle)
Queuing (Oracle)
Info about all queue sizes Q(n
ij
,t) (all nodes and all times)
Zero Knowledge
Complete Knowledge
Partial Knowledge
Delay:
Transmission
Propagation
Downsides:
No reaction to congestion
+
t"
t
s)} t, Q(e, (m x)dx c(e, | min{t" s) m, t, (e, t'
Dijkstra with time-varying costs (2)
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
Dijkstras with Time-varying Costs
Example
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)
Dijkstras with Time-varying Costs (2)
Example
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)
Earliest Delivery (ED)
Q(e,t,s) = 0
Source routing
ED is optimal if:
1. Low traffic rates (e.g. 1 msg)
2. Or infinite bandwidth and buffer
Problems
Problems:
Buffer overflow
Source routing
Still no bandwidth
Variations and Practical
Variations and Practical
Considerations
Considerations
Message/Path splitting
Message fragmentation
Buffer constraints
Sliding window
Message vector i
Table with topology updates from nodes NS
i
EDLQ
EDAQ
LP?
Message Ferrying
Message Ferrying
No energy considerations
Message Ferrying
Message Ferrying
1. Enforce Ferry Trajectory
1. Enforce Ferry Trajectory
Ferry mobility
1. Designed for non messaging reasons (buses)
2. Optimized for message transfer (robots)
Number of ferries
Ferry relaying:
Yes/No
Node Relaying
b
ij
= traffic (rate) requirement from node i to j
j i,
ij
j i,
L
ij ij
L
b
d b
d
Static Nodes + Single Ferry (2)
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
Delay Problem
If b
ij
= b
ji
=> d
L
= |L|/f
Delay Problem = Traveling Salesman Problem (NP-complete)
Traveling Salesman Problem
Traveling Salesman Problem
+
+
i
i
x
Optimal Trajectory Design:
Optimal Trajectory Design:
The online problem
The online problem
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
Shortcomings of NIMF
No interaction
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
Estimating ED (expected weighted
delay)
delay)
E* = excess capacity
'
< + +
'
<
+
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)assigning Nodes to Routes
Multi-hop routing:
node S ferry f
i
node r ferry f
j
node D
Assign ferries: 1 to each cell -> add extra ferry to highest EWD
Ferry Relaying Algorithm (FRA)
Ferry Relaying Algorithm (FRA)
Implications:
1. Some encounters might be missed
2. Encounter not immediately when in range
Encounter => MSG vector exchange (+other info)
Delay of Epidemic Routing
Delay of Epidemic Routing
(a coloring problem analog)
(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
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
p = 1) epidemic
p = 0) direct transmission
D
E
D
Outcome < p) Give a copy
D
Outcome > p) Dont give copy
K-neighbor Epidemic
K-neighbor Epidemic
Still flooding-based!
Randomized
P
AB
= P
BA
=
t
X
(Y): time since X last saw Y
Indirect location information
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
Problems with Utility Routing
Timer values are good indicators of proximity only if their value is small.
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
Transitivity Idea
(d
AB
) = (d
AB
)
2
(random walk)
(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
Seek and Focus
A hybrid routing strategy
A hybrid routing strategy
Delay?
T1 = time until source meets any node (M-1)
T2 = time until source meets any node (M-2)
+
+
Rem. Delay
after n copies
Prob{next node
not DST)
Controlled Replication
Controlled Replication
(Spraying)
(Spraying)
Transmissions = L!
Transmissions << M
Assuming no contention!
Tree-based Spraying
Tree-based Spraying
If T = ET
L
then the same as token-based (on
average
Remember: ET
L
= time until epidemic covers L
nodes
Replication Method Matters
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
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 = (Rand. Way. - 500x500 grid, 100 nodes, Tx Range =
10) 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
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
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 & Wait Performance
1
st
Phase: Binary Spraying
2
nd
Phase: Utility-based routing with transitivity
Advantages:
Smart Replication
Energy
Mobility
Trustworthiness
GPS location
Queue Size
Hybrid
An Analytical Framework
An Analytical Framework
Why do we need it?
Why do we need it?
Assumptions
Network area:
Random walk: grid (torus) discrete movement
Waypoint-based models: square (torus) continuous movement
Notation:
M: number of nodes
N: network area
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)
Random Direction (Random Waypoint)
Hitting Time
Hitting Time
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
i1
M1
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):
Modeling Epidemic Spreading (2):
Fluid Models (Deterministic)
Fluid Models (Deterministic)
Or systems of ODEs
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
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)
Message Forwarding (contd)
Case Study 2: Randomized algorithm
Case Study 2: Randomized algorithm
Utility-based algorithms
Utility-based algorithms
(no transitivity)
(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
Source Spray and Wait
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
ED
sw
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
Choosing L to achieve specified
delay
delay
1.5 2 3 4 6 8 10
L
min
21 13 8 6 4 3 2
,
_
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
I: infected nodes
R: recovered nodes
S: susceptible nodes (S = N I R)
Immune:
Immune-TX
I (t) R'
I - I R) - I - (N (t) I
'
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
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
Performance of Buffer
Management
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
Queuing Policies
Droptail
Drophead
Drophead-sp (source-prioritized)
1 1 0 1
f(x
1
,x
2
):
De-coding Packets: A simple
De-coding Packets: A simple
example
example
1 1 0 1
f(x
1
,x
2
):
Butterfly Network: Store-and-
Butterfly Network: Store-and-
Forward
Forward
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
Distributed) a
i
random and independent
=> decode (prob 1)
Network Coding for Challenged Nets
Network Coding for Challenged Nets
The model
The model
Set of nodes V
Messages: x
i
, i=1,,m
x
i
= [x
i1
, x
i2
,, x
iM
], M symbols F
2
k
=
(0,2
k
-1)
Encoding vectors: g
i
= [g
i1
, g
i2
,, g
im
],
m symbols 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
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)
m = 3 messages in total
Each message contains M = 4 symbols in F
8
Encoding Matrix: Example
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]
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
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]
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:
Network Coding for Challenged Nets:
Forwarding
Forwarding
Types of traffic
(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 Lossy Channel
Layered Multiple Description Coding (LMDC)
Layered Multiple Description Coding (LMDC)
Layered coding
Video
Web Document
LMDC Examples
LMDC Examples
Transport Layer Issues in DTNs
Transport Layer Issues in DTNs
TCP offers:
Ports
Sequencing
Connection
Reliability
Congestion Control
Passive Receipt:
- generated by destination when it receives the
message
- can only be passed to infected nodes (essentially
IMMUNE-TX)
Irrelevant Notification!
Unnecessarily reduce
throughput!
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
Other Models
Manhattan Model
Stop lights?
Freeway Model
Group Mobility
No location preference
Statistically equivalent
Real-life Mobility
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:
Common Mobility Models:
What is Wrong?
What is Wrong?
Location preference?
Noon: lunch
Weekend-vs-week
What else?
Social relationships
Traces From Real Wireless Networks
Traces From Real Wireless Networks
ZebraNet
Location/Node preference
Node Heterogeneity
Periodic behavior
Community-based Mobility
Community-based Mobility
Inter-Community Mobility?
Intra-Community Mobility?
Community-based Mobility (5)
Community-based Mobility (5)
Node i: {
(i)
(C
1
),
(i)
(C
2
),,
(i)
(C
n
)}
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
Multi-tiered Community
P[X > x] = x
-a
Infinite variance
Protocol Performance
UCSD trace
censored data censored data
Self-Similarity Test
Self-Similarity Test
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
p
3
(B)
(t)
Social Network-based Mobility Model
Social Network-based Mobility Model
Inter-contact times
Contact durations
Some issues
Routing
Buffer Management
Power Management
Auto-Configuration
Network Reliability
Free-riders
Black holes
Worm holes
Information Security
Data Encryption