Anda di halaman 1dari 280

Delay-Tolerant Networks

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

Internet, Telephone network

Wired or fixed links

A SUCCESS STORY!
Wireless Networks: Cellular
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
Wireless Networks: WiFi

802.11, wimax

Still: only wireless


local-loop

Higher bandwidth
than cellular:
54Mbps

Much cheaper/KB
Wireless Networks: WiFi (2)
Wireless Networks: WiFi (2)

Only Partial Coverage: HOTSPOTS

No real mobile computing!


Wireless Networks:
Wireless Networks:
Ad-hoc and Sensor 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
Wireless Networks
Ad Hoc and Sensor Networks (2)
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
Wireless Networks
Ad Hoc and Sensor Networks (3)
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
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
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
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
Challenged Networks

Intermittend/scheduled/opportunistic links

High error rates/low usable capacity

Very large delays

Different network architectures


Characteristics 1: Path and Link
Characteristics 1: Path and Link
characteristics
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
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
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
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
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)
Inter-Planetary Internet (IPN)
Networking in Space
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
Extending the Internet in Space
Long Propagation Delays vs.
Long Propagation Delays vs.
Chatty Internet Protocols
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
TCP chatiness
More than 3h for one 1MB pic!
transmission time (1MB/128Kbps) = 1min !!!
Idea: Bundles
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
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-
Idea: Store-
Carry
Carry
-and-Forward
-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)
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 (3)
Store-Carry-and-Forward (4)
Store-Carry-and-Forward (4)
DTN vs End-to-end Internet Operation
DTN vs End-to-end Internet Operation
Networking in Space
Networking in Space
Heterogeneity
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
Boundles: A Store and Forward Overlay
What About Retransmission?
What About Retransmission?
Custody Transfers
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 (2)
Custody Transfer (3)
Custody Transfer (3)
Moving the Retransmission Point Closer
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
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
Naming
Delay Tolerant Networks (DTN)
Delay Tolerant Networks (DTN)

Kevin Fall (~2002): maybe these idea is not only


useful for deep space networks
DTN: Very Brief History
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:
Intermittent Connectivity:
The Technical Argument
The Technical Argument

Wireless links are not like wires!


S
D
End-to-end path
node
link
Intermittent Connectivity:
Intermittent Connectivity:
The Technical Argument
The Technical Argument

Intermittent Connectivity may appear because of: p

propagation effects: shadowing, deep fades


A
B
B
B
X
Intermittent Connectivity:
Intermittent Connectivity:
The Technical Argument(2)
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:
Intermittent Connectivity:
The Technical Argument(2)
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
Intermittent Connectivity
The Economical Argument
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
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
Applications: Sensor Networks for
Habitat Monitoring
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
Applications: Sensor Networks for
Habitat Monitoring (2)
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
Vehicular Networks
Drive-Thru Internet
Drive-Thru Internet

Vehicle-to-roadside (base station, sensors)


Vehicular Networks
Vehicular Networks
Drive-Thru Internet (2)
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)
Vehicular Networks (VANETs)
Vehicle-to-Vehicle Networks
Vehicle-to-Vehicle Networks

Accident Prevention

Traffic Reports

Can be combined with Vehicle-to-Roadside


Why Vehicular DTN Networks?
Why Vehicular DTN Networks?

Gradual deployment => initially sparse network

Even dense deployments: Paths change too fast!


Before enough time to be discovered
An example
An example

UCLAs Vehicular Sensor Network


Internet to Remote Communities
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
Internet to Remote Communities
(2)
(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
Internet to Nomadic Communities

The SAAMI nomadic community of Lapland


Application: Underwater Networks
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
Tactical (military) Networks

Communicating beyond enemy lines

Need to retain connectivity despite jamming,


losses

Powering down nodes (LPD/LPI)


Ad-Hoc Networks (revisited)
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?
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
Pocket Switched Networks

HAGGLE project (www.haggleproject.org)

Conference

Campus
Summarizing:
Summarizing:
Delay Tolerant Architecture for Wireless
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
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 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
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)
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
Routing
Legacy Routing
Legacy Routing

Graph: G = {V,E}

V: set of nodes

E: set of links

w(e): E

cost function (capacity, energy, queue size)

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)

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 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
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
Legacy Routing
Reactive Protocols
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
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
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
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
Routing: Scheduled Networks
DTN Routing for Scheduled
DTN Routing for Scheduled
Contacts
Contacts
Problem Setting:

Set of contacts c
i

Set of storage capacities bc


i
:v
i
V

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
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
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
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
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)
Minimum Expected Delay (MED)
Algorithm
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
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)
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)

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
Earliest Delivery with Local
Queuing (EDLQ)
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
Earliest Delivery with Global
Queuing (EDAQ)
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
Variations and Practical
Considerations
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
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)
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
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)
Performance Comparison (2)

Large bandwidth => ED is optimal

Small bandwidth => ED closer to MED


Performance Comparison (3)
Performance Comparison (3)

Higher transmission range => more contacts => easier to route

Smaller buffer space => ED* schemes perform better


Performance Comparison (4)
Performance Comparison (4)
Practical Routing for DTNs
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
MEED Algorithm
(Minimum Estimated Expected Delay)
(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
Link-state Topology => Epidemic
Dissemination
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
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
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:
Link-state DTN Routing:
Conclusion
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?
Extensions?

How to extend to keep track of


1) average queuing
2) average traffic requirements

Approximate other algorithms

EDLQ

EDAQ

LP?
Message Ferrying
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
Message Ferrying
1. Enforce Ferry Trajectory
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
Message Ferrying
2. Use Existing Trajectories
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
Message Ferrying: The Problem
Space
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
Ferries for non-messaging
reasons
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
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)
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

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
Traveling Salesman Problem

Given a (connected) weighted graph

Find a path that:

Visits all nodes exactly once

And has a minimum cost


Bandwidth Problem
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:
Optimal Trajectory Design:
The online problem
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
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)
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?
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
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
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
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)
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)
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
Estimating ED (expected weighted
delay)
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)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
(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)
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)
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)
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
Performance Analysis
with Multiple Ferries
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
Multiple Ferries with Independent
but Known Routes
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
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
Routing: Opportunistic
Networks
Networks
Routing with Scheduled Contacts
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
Routing with Unknown Contacts
Opportunistic Routing
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
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)
Epidemic Routing (2)
Message Vectors
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)
Epidemic Routing (2)
Message Vectors
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
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
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

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)
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
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
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
Single-copy vs. Multi-copy
routing strategies
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
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
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
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
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
Randomized
Why Transmitting is Faster Than Not!
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!
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
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)
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
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
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
(d
AB
): expected time to cover distance d
AB
t
A
(D) = t
B
(D) + (d
AB
)

(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

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
Oracle-based optimal
algorithm
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
Effect of Connectivity
Random Walk (local model)
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
Effect of Connectivity
Random Waypoint (non-local)
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:
Single-copy Strategies:
Lessons Learned
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
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
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
Controlled Replication
(Spraying)
(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
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
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)
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
Binary Spraying = Time-limited
Epidemic
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
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

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
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
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 Transmissions Delivery Delay Delivery Delay
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
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

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) (500x500 square, 100 nodes)
Heterogeneous Scenarios
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:
Effect of Connectivity:
Community-based Mobility
Community-based Mobility
(contd)
(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
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
Improvements

Smart Replication

Who should get the copies?

Other Utility Functions

Energy

Mobility

Trustworthiness

GPS location

Queue Size

Hybrid
An Analytical Framework
An Analytical Framework
Why do we need it?
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
An analytical framework for
mobility-assisted routing
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
Performance Analysis
An Analytical Framework
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
Random Walk
Hitting Time (Tx Range K 0)
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)
Random Direction (Random Waypoint)
Hitting Time
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


Modeling Epidemic Spreading
Case Study: Epidemic Routing/Optimal
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
i1
M1

Modeling Epidemic Spreading


Modeling Epidemic Spreading
Markov Chains (Probabilistic Model)
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,t) = (N-
i)*i*t
Modeling Epidemic Spreading:
Modeling Epidemic Spreading:
Fluid Models (Deterministic)
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):
Modeling Epidemic Spreading (2):
Fluid Models (Deterministic)
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


Modeling Message Forwarding
Case Study 2: Randomized algorithm
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
+

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

A similar recursion procedure gives the delay of Optimal Spray


and Wait
Case Study: Choose the Number of
Case Study: Choose the Number of
Copies for Spray and Wait
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
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

Suppose we want to achieve ED


sw
= ED
opt
for
some >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

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
What If Network Parameters Are
Unknown?
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
Routing: Other Issues
Epidemic Routing: Wasted Resources
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
Reducing Resource Waste
Dis-infection Schemes
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
1. Remove copy from buffers

Clear up buffer space of infected nodes


Full Erase
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
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
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
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
SIR Model
Epidemiology
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
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
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
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

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)
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
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
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:
Reducing the overhead of epidemic:
Network Coding
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:
Reducing the overhead of epidemic:
Network Coding
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
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
De-coding Packets: A simple
example
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-
Butterfly Network: Store-and-
Forward
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
Butterfly Network: Network
Coding
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
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
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
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
Network Coding for Challenged Nets
The model
The model

Set of nodes V

N(u): {iV: 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 symbols 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 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)

Encoding matrix G at node 1

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]

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
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:
Network Coding for Challenged Nets:
Forwarding
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
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:
Generation Management:
Which messages to code
Which messages to code
together?
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
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
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


1) 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
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
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 Lossy Channel
Layered Multiple Description Coding (LMDC)
Layered Multiple Description Coding (LMDC)

Layered coding

Unequal erasure coding

Video

Web Document
LMDC Examples
LMDC Examples
Transport Layer Issues in DTNs
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:
Reliability in DTNs:
Hop-by-Hop
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:
Reliability in DTNs:
Active Receipt
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:
Reliability in DTNs:
Passive Receipt
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:
Reliability in DTNs:
Network-Bridged Receipt
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
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
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
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
DDDD
No Congestion!

Irrelevant Notification!

Unnecessarily reduce
throughput!

May not see S


Mobility Models
Mobility Models
Random Walk
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
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 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
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
Impact of Mobility Model on
Performance
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
Some Common Assumption of
Synthetic Mobility Models
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
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?

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
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
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
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?
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
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)
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)
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)
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)
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
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
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
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
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)
CCDF for Inter-contact Times (2)

WLAN traces: similar behavior


Power Law Distributions
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:
Power Law Distributions:
Complications
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?
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
Lognormal Seems Fit Better
Inevitable Censorship in Measurements
Inevitable Censorship in Measurements
5x10^3
0.4
6.6x10^6
0.06
Survival Curve Survival Curve
P(T>t)
6x10^4
0.2

UCSD trace
censored data censored data
Self-Similarity Test
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 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
Social Network-based Mobility
Model
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
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
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
Mapping Communities to
Locations
Locations

Assume a grid with different locations of interest

Geographic consideration might gives us the candidate locations


Mobility Between Communities
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

p
3
(B)
(t)
Social Network-based Mobility Model
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
Social Networks for Information
Dissemination
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
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)
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
Further Issues
Research 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.

Anda mungkin juga menyukai