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.
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.
Wired Backbone
Wireless Networks: CellularTarget Tracking
S
D
node
link
Wireless NetworksAd Hoc and Sensor Networks (2)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?”
…..
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
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:
S
D
node
link
Intermittent Connectivity:The Technical ArgumentWireless links are not like wires!
B
B
B
Intermittent Connectivity:The Technical ArgumentX
C
B
C
Intermittent Connectivity:The Technical Argument(2)B
C
B
Intermittent Connectivity:The Technical Argument(2)Save power (e.g. sensor)
Low probability of detection (LPD)
(e.g. army node)
X
S
D
X
X
path
disruption!
X
path
disruption!
node
link
Wireless Connectivity: A Different ViewZ
Z
Z
Z
Z
Z
Z
Z
Z
Applications: Sensor Networks for Habitat Monitoring (2)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
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
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
Example of Dijkstra’s AlgorithmStep 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
Proactive Routing
(DSDV, OLSR)
UPD
UPD
UPD
UPD
UPD
Legacy Routing for DTNUPD reaches only
same cluster as D!
Reactive Routing
(DSR, AODV)
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
Message Ferrying1. Enforce Ferry TrajectoryThe 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?
D
D
A
C
B
D
Tx Range
Tx Range
Routing with Scheduled Contacts(B,D) = {10,12},{19,21}
(B,D) = {10,12},{19,21}
(C,D) = {8,10},{15,17}
(C,D) = {8,10},{15,17}
WHERE IS D?
WHERE IS D?
WHERE IS D?
A
C
B
D
D
D
D
Tx Range
Routing with Unknown ContactsOpportunistic Routing(B,D) = ??
(C,D) = ??
D
D
D
D
A
C
B
D
E
F
Epidemic Routing(E,0),(F,1)
Epidemic Routing (2)Message VectorsMessage Vector of A
Message Vector of B
Encounter => MSG vector exchange (+other info)
1
2
Delay of Epidemic Routing(a coloring problem analog)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
E
Randomized Flooding (Gossiping)Outcome < p) Give a copy
Outcome > p) Don’t give copy
D
D
F
E
G
J
Kneighbor EpidemicAlready 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
S
C
B
D
E
F
Direct transmissionD
S
D
The Delay of Direct TransmissionD
D
D
A
C
B
D
E
F
Randomized routingD
D
D
A
C
B
D
F
RandomizedWhy Transmitting is Faster Than Not!D
Utilitybased RoutingUtility 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
Utilitybased
PBA = ½
PBA > ½
PAB = ½
PAB < ½
Utilitybased Routing (cont’d)ETD
EATD = ET(d)
d
B
A
B
Result 1: Utilitybased routing has a larger expected delay reduction than the simple randomized policy
D
tA(D) = 20
tA(D) = 20
A
tA(D) = 200
Transitivity
PDF of timer value of A for D, when A is far from D
Transitivity IdeaSeek and Focus
utility
randomized
randomized
optimal
seek&focus
seek&focus
Increasing connectivity
Increasing connectivity
Yaxis: Delivery delay
(LOG SCALE)
Yaxis:
Transmissions per msg
Effect of ConnectivityRandom Walk (“local” model)Xaxis: Tx Range (Connectivity)
randomized
utility
utility
Effect of Connectivity Random Waypoint (nonlocal)D
D
D
Src
C
B
Dst
E
F
2hop SchemeRelay C cannot FWD to B
Relay C can FWD to Dst
Prob{next node not DST)
2hop Scheme Performance(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
F
Dst
E
C
Src
B
Treebased SprayingL = 1
L = 1
L = 1
L = 1
L = 4
L = 2
L = 2
n1
j
jnj
nj
L
Treebased Spraying (2)(analysis)
100x100 network with 100 nodes
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
(500x500 square, 100 nodes)
Transmissions
Delivery Delay
slow!
epidemic
spray & wait
spray & wait
spray & focus
utilityflood
randomflood
spray & focus
utilityflood
randomflood
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
EXTA = EXTY  EATY
EXTY = cNLogN
A(K)
K = 3
L
S
Random Direction (Random Waypoint)Hitting TimeMethod:
D
epoch finish
epoch
start
EM: divide by (normalized) relative speed between S and D, vr
where HM1 is the harmonic sum
1
2
Modeling Epidemic SpreadingCase Study: Epidemic Routing/OptimalM nodes
Tx Range = K
D
S
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)
D
Average jump length:
D = 1 – q + q f(K)
Modeling Message ForwardingCase Study 2: Randomized algorithmq: 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
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}
Utilitybased algorithms (no transitivity)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 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
Source Spray and WaitIf destination, stop
Wait Phase
Spray Phase
Bound is tight for L<
Upper bound on EDsw
EDopt
Method:
Estimator:
Applies to any mobility model with exponential meeting times
Even after the message has been delivered!
D
D
D
D
D
A
C
B
dst
E
F
Full EraseX
Delete local copy
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:
x2
x3
x1
x2
x3
x1
x2
x3
Reducing the overhead of epidemic:Network CodingIncoming links
Outgoing links
Storeandforward
x1
x2
x3
Reducing the overhead of epidemic:Network CodingIncoming links
Outgoing links
Network Coding
0
1
1
0
1
1
1
0
1
1
0
Decoding Packets: A simple examplemsg x1:
f(x1,x2):
msg x2:
S1
x1
x2
x2
x2
x1
x1
x1
x2
x1
x2
R1
R2
Butterfly Network: StoreandForwardTime 1
Time 2
Time 3
Time 4
4 units: received x1,x2
3 units: received x1,x2
S1
x1
x2
x1
x2
x2
x1
R1
R2
Butterfly Network: Network CodingTime 1
Time 2
Time 3
3 units: received x1,x2
3 units: received x1,x2
B
B
A
B
A
x1
x2
x1
x2
x1
x2
Network Coding for WirelessC
A
B
No coding: delay = 4
A
B
A
x1
x2
x1
x2
Network Coding for WirelessC
A
B
Coding: delay = 3
b1 = a11x1+ a12x2+…+ a1mxm
b2 = a21x1+ a22x2+…+ a2mxm
……………………………….
bn = an1x1+ an2x2+…+ anmxm
=> decode (prob 1)
gi*Gi (Gi= ith symbols of all xi}
Network Coding for Challenged NetsThe modelrow i = (gi1,…,,gim  , ,…, )
Encoding vectors (2)
Encoding Matrix: ExampleEncoding 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)
x1
x2
x3
x1
x3
x1
x2
x3
x1
x2
Endtoend vs. hopbyhop decodingA3
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
Erasure CodingA
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
Congestion Control in DTNsConnected Network
Cut back send rate!
Message Drop!
S
D
Congestion Notification
Buffer Full
D
D
D
D
D
D
D
D
D
D
D
Cut back send rate!
Congestion Notification
Congestion Control in DTNsDisconnected Network
Message Drop!
S
Irrelevant Notification!
Unnecessarily reduce throughput!
May not see S
No Congestion!
Buffer Full
Uniform Stationary Distribution
Showed DSR was better overall
Winner depends on mobility model; AODV actually better in more cases
http://crawdad.org
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)
Communitybased MobilitypR(i)
pL(j)
pR(j)
1pL(i)
1pL(j)
local
roam
local
roam
1pR(i)
1pR(j)
Node i
Node j
Communitybased Mobility (2)C3
Office
C2
Communitybased Mobility (3)Rest of the network
p23(i)
p12(i)
p32(i)
p21(i)
p11(i)
House
(C1)
Community (e.g. house, campus)
p22(i)
p12(i)
C1
C2
C4
C3
p21(i)
p24(i)
p32(i)
p43(i)
Communitybased Mobility (4)C2
C4
C3
Communitybased Mobility (5)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)
Survival Curve
censored data
0.4
0.2
0.06
6x10^4
5x10^3
6.6x10^6
Inevitable Censorship in MeasurementsCommunity 2
Communities in Social NetworksCommunity 3
Community 2
B: connects 1,2
Communities in Social Networksp1(B)(t)
p2(B)(t)
p3(B)(t)