DelayTolerant Networks. Acknowledgements: Most materials presented in the slides are based on the tutorial slides made by Dr. LingJyh Chen, Dr. Kevin Fall and Dr. Thrasyvoulos Spyropoulos. “ Legacy” Networks. Internet, Telephone network Wired or fixed links A SUCCESS STORY!.
Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.
DelayTolerant Networks
Acknowledgements: Most materials presented in the slides are based on the tutorial slides made by Dr. LingJyh Chen, Dr. Kevin Fall and Dr. Thrasyvoulos Spyropoulos.
Wireless Last Hop
Wired Backbone
Disaster Recovery
Target Tracking
Endtoend path
S
D
node
link
TCP:
S: “Hi! You want to talk?” (SYN) 20min
R: “Sure! Let’s establish a session” (SYN+ACK) 20min
S: “Ok, let’s go for it!” (ACK) 20 min
…..
(slow start phase)
S: “Can you send me the pic of Mars?”
…..
More than 3h for one 1MB pic!
transmission time (1MB/128Kbps) = 1min !!!
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”
1) Persistent storage (hard disk, days) vs memory storage (few ms)
2) Wait for next hop to appear vs. wait for tablelookup and available outgoing routing port
1
12
D
13
S
14
2
16
11
15
3
7
4
5
8
10
Examples:
Earth’s 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)
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”
It’s better that B takes “custody” of message and retries sending it itself
E.g. 3 links each with error 1p:
Endtoend path
S
D
node
link
Wireless links are not like wires!
A
B
B
B
X
A
C
B
C
A
B
C
B
Save power (e.g. sensor)
Low probability of detection (LPD)
(e.g. army node)
Endtoend path
X
S
D
X
X
path
disruption!
X
path
disruption!
node
link
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
Vehicletoroadside (base station, sensors)
Internet
send email
email reply
send email
email reply
write email
A necessity:
A choice:
Extension:
Security: avoid using infrastructure
Application: must be delay tolerant
Routing
path PSD = {v0,…,vi,…,vN:vi V, v0 = S, vN = D}
such that eii+1E
and
Initialization: cost C(A)=0, C(v) = ; set Q = {empty}
Loop: pick v Q: C(v) is minimum; Q = Q + {v}
if C(v) + wvj < C(j) => C(j) = C(v) + wvj
Terminate: when Q = V
Step 2
L(B)=4
B
4
2
L(D)=6
L(A)=0
1
D
A
3
6
C
L(C)=5
Step 4
Step 3
L(B)=4
L(B)=4
B
B
4
2
4
2
L(D)=6
L(D)=6
L(A)=0
L(A)=0
1
1
D
D
A
A
3
3
6
6
C
C
L(C)=5
L(C)=5
Step 1
L(B)=4
B
4
2
L(D)=
L(A)=0
1
D
A
3
6
C
L(C)=6
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
REQ
REQ
REQ
REQ
Proactive Routing
(DSDV, OLSR)
UPD
UPD
UPD
UPD
UPD
UPD reaches only
same cluster as D!
Reactive Routing
(DSR, AODV)
Routing: Scheduled Networks
Problem Setting:
Evaluation Metrics
Problem 1) Assume we know data about (“oracle”)
Problem 2) Implement each oracle (centralized/distributed)
Pseudocode
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’)
Step 1
Time = 0
L(B)=5
B
cAB=(5,7),(13,16),(20,22)…
cBD=(3,4),(11,15),(26,28)…
wAB(0) = 5
L(D)=
L(A)=0
D
cBC=(7,10),(14,15),(26,30)…
A
wAC(0) = 9
cAC(9,10),(14,17),(25,26),…
cCD=(6,7),(13,15),(23,25)…
C
L(C)=9
Step 1
Time = 5
L(B)=5
B
cBD=(3,4),(11,15),(26,28)…
cAB=(5,7),(13,16),(20,22)…
wAC(5) = 6
wBC(5) = 2
L(D)=
L(D)=11
L(A)=0
D
cBC=(7,10),(14,15),(26,30)…
A
cAC=(9,10),(14,17),(25,26),…
cCD=(6,7),(13,15),(23,25)…
C
L(C)=9
L(C)=7
e = (s,*) Q(e,t,s) = data queued for e at time t
otherwise Q(e,t,s) = 0
Multicommodity flow problem: balance flows over links
Dynamic version: balance flows over contacts
DataMule
DataMule
DataMule
DataMule
The problem: design optimal trajectories
Predict ferry mobility
Optimal use of available ferry bandwidth
Production node trajectory
=> could apply principles from earlier presented algorithms (e.g. ED, MED, etc.)
=> use opportunistic routing, e.g. epidemic (later)
Problem: find trajectory L, such that:

 while satisfying traffic matrix B = {bij}
(Delay Problem)
(Bandwidth Problem)
Step 1: TSP approximation algorithms
Step 2: Local optimization
Delay Problem = Traveling Salesman Problem (NPcomplete)
minimize
subject to
Tx rate
Path extension for i
Traffic demand of i (per cycle)
Receiver
Task (e.g. sensing)
Keep msg drop rate low:
(Di(t) + Df>i(t))/(Gi+Gf>i) > (condition 1)
Keep fraction of time not performing task low:
(task time)/(total time) > w (condition 2)
Case 1: No ferry interaction
Case 2: Ferry relaying
Case 3: Node relaying
Ferries
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 endtoend feasibility
Step 4: calculate optimal route for each ferry independently
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 = ki+kj
Op.3) merge(i,j): combine routes i,j into one; ferries = ki+kj1
Op.4) reduce(i): ki = ki  1
The algorithm
Continue overlap/merge until assignment is feasible…OR
node S ferry fi node r ferry fj node D
Scheduled/Known Contacts:
Modified Dijkstra Algorithm (timedependent weights)
Dynamic Flow Problems
Enforced Contacts with Specialized Nodes (Ferries):
Design of Optimal Mobility Paths (TSP)
Optimal Assignment of Ferries
Opportunistic Contacts?
Routing: Opportunistic Networks
D
D
D
A
C
B
D
Tx Range
Tx Range
(B,D) = {10,12},{19,21}
(B,D) = {10,12},{19,21}
(C,D) = {8,10},{15,17}
(C,D) = {8,10},{15,17}
D
WHERE IS D?
WHERE IS D?
WHERE IS D?
A
C
B
D
D
D
D
Tx Range
(B,D) = ??
(C,D) = ??
D
D
D
D
D
A
C
B
D
E
F
(G,1)
(E,0),(F,1)
Message Vector of A
Message Vector of B
Message Vector of A
Message Vector of B
Encounter => MSG vector exchange (+other info)
2
1
2
D
T1 = 1 red → any blue
T2 = any of 2 red → any blue
S
M nodes
I.I.D. mobility
increasing traffic
increasing traffic
Too many transmissions
Plagued by contention
D
D
D
E
Outcome < p) Give a copy
Outcome > p) Don’t give copy
D
D
D
F
E
G
J
Already given 2 copies!
Node E cannot fwd more
K = 2
Singlecopy
Multicopy
+ lower number of transmission
+ lower contention for shared resources
+ lower delivery delay
+ higher robustness
Destination
B
A
C
Efficient Routing : Ensure that each forwarding step on the average reduces distance or hitting time with destination
D
D
S
C
B
D
E
F
D
D
S
D
D
D
D
D
A
C
B
D
E
F
D
D
D
D
A
C
B
D
F
Randomized
PBA = ½
PAB = ½
ETD
EATD = ET(d)
d
B
A
B
D
D
Utility UX(Y) = f(tX(Y))
Policy: forward to B iff UB(D) > UA(D) + Uth
D
Last encounter timers
t(D) = 26
tX(Y): time since X last saw Y
Indirect location information
smaller timer closer distance
t(D) = 0
tB(D) = 100
A
B
tA(D) = 138
t(D) = 68
t(D) = 218
Randomized
Utilitybased
PBA = ½
PBA > ½
PAB = ½
PAB < ½
ETD
EATD = ET(d)
d
B
A
B
Result 1: Utilitybased routing has a larger expected delay reduction than the simple randomized policy
tA(D) = 20
D
tA(D) = 20
tA(D) = 20
A
tA(D) = 200
No transitivity
Transitivity
PDF of timer value of A for D, when A is far from D
Seek and Focus
utility
utility
randomized
randomized
optimal
seek&focus
seek&focus
Increasing connectivity
Increasing connectivity
Yaxis: Delivery delay
(LOG SCALE)
Yaxis:
Transmissions per msg
Xaxis: Tx Range (Connectivity)
randomized
randomized
utility
utility
D
D
D
D
Src
C
B
Dst
E
F
Relay C cannot FWD to B
Relay C can FWD to Dst
Rem. Delay after n copies
Prob{next node not DST)
(M1)/2
T1 = time until source meets any node (M1)
T2 = time until source meets any node (M2)
BUT: a relay node may meet destination in the meantime!
D
D
D
D
D
F
Dst
E
C
Src
B
L = 1
L = 1
L = 1
L = 1
L = 4
L = 2
L = 2
Ln1
n1
j
jnj
nj
L
(analysis)
100x100 network with 100 nodes
(Rand. Way.  500x500 grid, 100 nodes, Tx Range = 10)
increasing traffic
Covered by Relay 1
Covered by Relay 2
1
12
D
13
S
14
2
16
11
15
3
7
8
5
10
4
9
6
Relays are highly mobile
Relays routes are uncorrelated
1
12
D
13
S
14
2
16
11
15
3
7
Node D’s community
Node S’ community
8
5
10
4
9
6
Relays move slowly
Relays move locally and are correlated
fastest
(500x500 square, 100 nodes)
Transmissions
Delivery Delay
slow!
epidemic
spray & wait
spray & wait
spray & focus
utilityflood
randomflood
spray & focus
utilityflood
randomflood
Effect of Connectivity: Communitybased Mobility (cont’d)
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%)
“Plug n’ calculate”: calculate the delay of any scheme by combining the right components
p = 0.25
EXTA = EXTY  EATY
EXTY = cNLogN
A(K)
K = 3
K
L
S
Method:
D
epoch finish
epoch
start
EM: divide by (normalized) relative speed between S and D, vr
2
where HM1 is the harmonic sum
1
2
M nodes
Tx Range = K
D
S
2hop Routing
Prob(ii+1,t) = (Ni)*i*t
N+1: nodes
1/: meeting time
state i: i copies
state A: DST found
Epidemic Routing
(1)
P(t+dt)P(t) = Prob{t ≤ Td ≤ t + dt}
= Prob{DST meets one of nI(t) infected nodes in [t,t+dt]} * Prob(Td>t)
= E[Prob(DST meets nI(t)  nI(t)] * (1P(t))
= E[nI(t)dt]*(1P(t))
= I(t) * (1P(t)) dt
=>(2)
f(K)
D
Average jump length:
D = 1 – q + q f(K)
q: probability of Tx jump
q =
p •
P(at least one node within range)
f(K): average transmission distance
1q: probability of random walk jump
Destination movement
Message movement
Note: D + 1 ≥ 2 randomized is faster than direct transmission
Random Direction/Waypoint: Similar procedure gives exact result
Prob{node with higher utility within range AND node is closer to D}
p
p
p
p
p
p
p
p
p
p
p
p
p: probability of no forwarding => random walk step
Prob{node with higher utility within range AND node is farther than D}
D
r
N
0
2
rK
r2
r1
r+1
r+2
r+K
1
EDutil is simply the expected hitting time from stationarity to a state ≤ K
*Similar procedure for seek and focus without transitivity
If new node found by source, forward another copy
If not destination, add extra term
Expected remaining delay after i copies are spread
Time until a new node is found
P(not destination)
If found by relay, do nothing
If destination, stop
Probability a wait phase is needed
Wait Phase
Spray Phase
Bound is tight for L<<M
Upper bound on EDsw
EDopt
Method:
Estimator:
Applies to any mobility model with exponential meeting times
Routing: Other Issues
Even after the message has been delivered!
D
D
D
D
D
D
A
C
B
dst
E
F
X
Delete local copy
D
D
D
D
D
D
D
B
A
C
F
E
B
X
Delete local copy
Recovered Node
msg: (S,D,0)
No new copy to recovered nodes
D
D
D
D
D
D
B
F
E
dst
C
A
C
B
Avoided this Tx
X
Delete local copy
Recovered Node
msg: (S,D,0)
No new copy to recovered nodes
C recovered!
msg: (S,D,0)
D
D
D
D
C
B
E
F
dst
C
A
E
Avoid this Tx, too
Vaccinate E
No new copy to recovered nodes
C recovered!
msg: (S,D,0)
E[Tx] = limt{I(t) + R(t)} – I(0)
The more aggressive the recovery scheme
1) the less the total transmissions (ignoring overhead of antipackets)
2) the smaller the buffer occupancy
When new packet arrives on buffer and buffer is full:
x1
x2
x3
x1
x2
x3
x1
x2
x3
Incoming links
Outgoing links
Storeandforward
f(x1,x2,x3)
x1
x2
x3
Incoming links
Outgoing links
Network Coding
1
0
1
1
0
1
1
1
0
1
1
0
msg x1:
msg x2:
f(x1,x2):
1
0
1
1
0
1
1
1
0
1
1
0
msg x1:
f(x1,x2):
msg x2:
S2
S1
x1
x2
x2
x2
x1
x1
x1
x2
x1
x2
R1
R2
Time 1
Time 2
Time 3
Time 4
4 units: received x1,x2
3 units: received x1,x2
S2
S1
x1
x2
x1
x2
x2
x1
R1
R2
Time 1
Time 2
Time 3
3 units: received x1,x2
3 units: received x1,x2
A
B
B
A
B
A
x1
x2
x1
x2
x1
x2
C
A
B
No coding: delay = 4
B
A
B
A
x1
x2
x1
x2
C
A
B
Coding: delay = 3
b1 = a11x1+ a12x2+…+ a1mxm
b2 = a21x1+ a22x2+…+ a2mxm
……………………………….
bn = an1x1+ an2x2+…+ anmxm
=> decode (prob 1)
Encoding vector
gi*Gi (Gi= ith symbols of all xi}
row i = (gi1,…,,gim , ,…,)
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 F8
g1=[1,0,0]
g2=[1,1,0]
Encoding matrix G at node 1
m = 3 messages in total
Each message contains M = 4 symbols in F8
g1=[1,0,0]
g2=[1,1,0]
g2=[0,1,1]
New encoded message arrived: increase rank of matrix G?
No! Linearly dependent with 1,2 (x3 = x1 XOR x2 (mod 8))
Encoding matrix G at node 1
m = 3 messages in total
Each message contains M = 4 symbols in F8
g1=[1,0,0]
g2=[1,1,0]
g2=[1,0,1]
New encoded message arrived: increase rank of matrix G?
Yes! 3 linearly dependent vectors (Gaussian elimination)
Do we code messages from all sources??
Coding matrix G will be huge!
Delay until all messages decoded
f(x1,x2,x3)
f(x1,x2,x3)
x1
x2
x3
x1
x3
x1
x2
x3
x1
x2
A1
A3
B1
B3
C1
C3
D1
D3
A2
A4
B2
B4
C2
C4
D4
D2
Lossy Channel
A1
A3
B1
B3
C1
D1
A2
A4
B2
C4
D
A
B
C
A
B
C
D
TCP offers:
 generated by destination when it receives the message
 can only be passed to infected nodes (essentially IMMUNETX)
DTN + (low bandwidth, connected network)
Cellular network
DTN network: send bulky data (with delay tolerance; e.g. ftp)
Cellular network: send immediate small ACK
D
D
D
D
D
D
Connected Network
Cut back send rate!
Message Drop!
S
D
Congestion Notification
Buffer Full
D
D
D
D
D
D
D
D
D
D
D
D
Cut back send rate!
Congestion Notification
Disconnected Network
Message Drop!
S
Irrelevant Notification!
Unnecessarily reduce throughput!
May not see S
No Congestion!
Buffer Full
Mobility Models
p = 0.25
Pause
Uniform Stationary Distribution
Showed DSR was better overall
Winner depends on mobility model; AODV actually better in more cases
http://crawdad.org
Rest of the network
Roam outside community
(Rand. Direction or Waypoint)
1pL(i)
stay inside community
pR(i)
1pR(i)
Continue roaming
pL(i)
local
Ci
Community (e.g. house, campus)
pL(i)
pR(i)
pL(j)
pR(j)
1pL(i)
1pL(j)
local
roam
local
roam
1pR(i)
1pR(j)
Node i
Node j
Library
C3
Office
C2
Rest of the network
p23(i)
p12(i)
p32(i)
p21(i)
p11(i)
House
(C1)
Community (e.g. house, campus)
p11(i)
p22(i)
p12(i)
C1
C2
C4
C3
p21(i)
p24(i)
p32(i)
p43(i)
C1
C2
C4
C3
p11(i)(t)
p22(i)(t)
p12(i)(t)
p21(i)(t)
p24(i)(t)
p32(i)(t)
p43(i)(t)
Route to nodes whose distance is small in this ndimensional space
Tier 4
Tier 3
Tier 2
p12(i)(t)
p13(i)(t)
Tier 1
p14(i)(t)
P(T>t)
Survival Curve
censored data
0.4
0.2
0.06
6x10^4
5x10^3
6.6x10^6
Social Networks
Community 1
Community 2
Community 3
Community 1
Community 2
B: connects 1,2
p1(B)(t)
p2(B)(t)
p3(B)(t)
Further Issues