Reliable Communication

Download Report

Transcript Reliable Communication

Reliable Multihop Transfer
on Wireless Sensor Networks
Sukun Kim, Rodrigo Fonseca,
David Culler, Ion Stoica
UC Berkeley
NEST Retreat – Jun 4, 2004 in Santa Cruz
Problem Statement
• Goal
– Reliable communication in multihop Wireless
Sensor Networks
• Assumption
– Wireless communication
– Resource-constrained mote
Constraints and Options
(# of pkts received) = Psuccess × (# of pkts sent)
Sources of Failure
• Link Failure
• Mote Failure
•…
How to obtain reliability? (possible options)
1. Add redundancy of information
1. Retransmission – link-level, end-to-end
2. Data redundancy – duplication, erasure code
3. Path redundancy – Use thick path
2. Increase success rate
1. Alternative Route
2. Congestion Control
Internet
Design Space 2 – Unit of Transfer
N1
N2
Fragment
Bundle
Using fragmentation
+ Less buffer space
+ Multiplexing (point-to-point)
- Reordering, Reassembly
- More control traffic overhead
N3
Design Space 3 – Routing Layer
Point-to-point
Convergence
Implementation on Beacon Vector Routing
Divergence
Erasure Code
Encoding
M
8 msgs
Channel
Decoding
N’
M
≥8 code words
8 original msgs
21 code words
N
Systematic Code
Benefit: if receiver has codes containing original messages
• Encoding, Decoding are faster
• Even if receiver get less than 8 packets, we don’t lose
every message
Systematic Code
Encoding one code word takes 1.7ms
Decoding time varies from 0 to 27ms
Real time processing is possible
In MICA2
Alternative Route Discovery
Find Alternative Route
What if
Get 6 best candidates for the next hop from
routing table. And try from the best
Systematic Code without Route Fix
1.2
Success Rate
1
0
1
2
3
4
5
6
7
8
0.8
0.6
0.4
0.2
0
0
1
2
3
4
Max Number of Retransmission
10.37 hops, 17.25% loss rate, 8 original messages
5
6
Number of Packets Injected per Data
Overhead (10.37 hops, 17.25% loss rate)
50
45
0
1
2
3
4
5
6
7
8
40
35
30
25
20
15
10
5
0
0
1
2
3
4
Max Number of Retransmission
10.37 hops, 17.25% loss rate, 8 original messages
5
6
Effect of Route Fix
1.2
Success Rate
1
0.8
0.6
0.4
0.2
w/o Route Fix
w/ Route Fix
0
0
1
2
3
4
Max Number of Retransmission
5
6
Systematic Code with Route Fix
1.2
Success Rate
1
0
1
2
3
4
5
6
7
8
0.8
0.6
0.4
0.2
0
0
1
2
3
4
Number of Redundant Packets
8 original messages
5
6
Conclusion
• Moderate redundancy (2~3) in erasure code
and Large maximum number of
retransmission is good combination with
route fix is good combination
• For ultimate reliability, alternative route
approach is very appealing
(# of pkts received) = Psuccess × (# of pkts sent)
• Separate layer like TCP may not work
efficiently
Design Spaces and Options
Delay
Success rate
Can depend on loss rate, path length
Overhead
End to end
Fragment custody
Bundle custody
Routing layer 2
Link-level retransmission
Routing layer 3
End-to-end retransmission
Thick path
Erasure code
Questions
Encoding Unit
Design Space 1
• How to obtain reliability? (possible options)
– Add redundancy of information
• Retransmission – link level, end-to-end
• Data redundancy – duplication, erasure code
• Path redundancy – Use thick path
– Increase success rate
• Alternative Route
• Congestion Control
Fragment compared to Bundle
+ Less buffer space
+ Multiplexing (point-to-point)
+ Decouple bundle size from transport
- Reordering, Reassembly
- Different fates to different pages
- More control traffic overhead
- End points must hold buffer longer
Point-to-point
Admission Control
• Node may also refuse to accept custody for
a message, in case its local storage, for
example, is full
• This mechanism can create a back-pressure
signal that may eventually limit the rate at
the source
– Congestion control
• On-demand vs Credit-based flow control
Effect of Erasure Code
1.2
Final Loss Rate
1
1
2
4
8
16
64
247
0.8
0.6
0.4
0.2
0
0
0.2
0.4
0.6
Raw Loss Rate
0.8
1
1.2
Effect of Systematic Code
1.2
Final Loss Rate
1
1
2
4
8
16
64
247
0.8
0.6
0.4
0.2
0
0
0.2
0.4
0.6
Raw Loss Rate
0.8
1
1.2
Encoding Speed
16
14
Time (ms)
12
10
8
6
4
2
0
0
2
4
6
Number of Redundant Codes
8
10
Decoding Speed
30
Time (ms)
25
20
15
10
5
0
0
2
4
6
Number of Non-Original Message Code
8
10
Decoding Time versus Loss Rate
30
Time (ms)
25
20
15
10
5
0
0
0.2
0.4
0.6
Loss Rate
0.8
1
Variation in Decoding Time (R = 4)
16
14
Time (ms)
12
10
8
6
4
2
0
1
3
5
7
9
11
13
15
17
19
21
23
25
27
29
What if
Encoding
M
8 msgs
Channel
Decoding
N’
M
≥8 code words
8 original msgs
21 code words
N
Problem Statement
Interface to
arbitrary Routing Layer
Reliable
Application
Transport
Network (Routing)
Point-to-point, Convergence, Divergence
+ Version Upgrade
Terms
Application
Bundle
Reliable Transport
Bundle Fragmentation
Network
Packet
Challenges in Reliable Multihop
Transport
• Energy, computational power, and memory
space are limited, and call for algorithms
that are parsimonious in their use
• Wireless communication - Asymmetry of
link, correlated loss (obstacles,
interference), weak correlation to distance,
hidden terminal problems, shared broadcast
medium
Options
1.
2.
3.
4.
End-to-end Retransmission (inefficient)
Custody Transfer
Erasure Code
Hybrid of 2 and 3
Options
1.
2.
3.
4.
End-to-end Retransmission (inefficient)
Custody Transfer
Erasure Code
Hybrid of 2 and 3
Alternative Route Discovery
• Upon a link failure, the node has to try
another neighbor (next hop), wait for some
time, or return a failure notification
– Guarantee that if the message will arrive at the
destination if there is a route
End-to-end argument
• 100%  Requires end-to-end feedback
– Routing layer has to provide a way for the
routing of ack packets back to the source
– Backward Routing
• With Link-level retransmission RTT can
vary significantly
– Use upper bound for timeout
Options
1.
2.
3.
4.
End-to-end Retransmission (inefficient)
Custody Transfer
Erasure Code
Hybrid of 2 and 3
Erasure Code
• Only if M out of N packets arrive, we can
construct original M message
• 9X.X% would be enough?
– Link failure: correlated consecutive packet loss
until route recovery
– Erasure code alone may not be able to
guarantee reliability
• Need separate congestion control
• Implementation finished
Options
1.
2.
3.
4.
End-to-end Retransmission (inefficient)
Custody Transfer
Erasure Code
Hybrid of 2 and 3
Hybrid
• Erasure coding can afford missed packets
– Even if packet gets stuck due to link failure, we
can forget about it
• Explicit failure notification
– Find alternative route when link fails voiding
correlated drops
• “Lemmings” Protocol
Another Option
• Thick path
– Traffic multiplied by the width of path
– Can be too much overhead
Discussion
• Useful features from routing layer (API)
– Find alternative route
– Disable link
• For duration of transfer (due to link failure)
• Temporarily (due to contention)
– Or get a list of next hop candidates
• From the application:
– No silent drops
Conclusion
• Custody transfer and erasure code have
potential of providing high reliability
combined with alternative route finding
• End-to-end argument
– For eventual reliability, it would be needed
– Introduces much overhead
• Preliminary performance evaluation will be
available at the end of May
Problem Statement (revisited)
• What mechanisms do we need to achieve reliable
multihop transport in sensor networks?
• Is it possible to reason about routing from
reliability separately, and provide a proper
interface for reliable transport?
• Can we devise a reliable transport layer that can be
plugged on top of different kinds of routing layers,
such as convergence, divergence, and in-network
point-to-point routing?
Questions
Coding
• For encoding process, we would have
encoding function C(X) where X is a vector
of M message
• Then C(X) is a vector of N code words (N >
N)
Linear Code
• If code has a property that C(X) + C(Y) =
C(X+Y), then it is called a “linear code”
• Linear can be represented with a matrix A. Code
word vector for message vector X is simply AX
• Encoding is matrix-vector multiplication
• Decoding is finding X such that AX=W for a
received code word vector W
• A should have M linearly independent rows so that
linear equation has unique solution, and in turn
unique message vector
Vandermonde Matrices
• Vandermonde is a matrix with element A(i, j) = xij
where each xi is nonzero and different from all
others
• For N by M Vandermonde matrix (N > M), any M
rows are linearly independent forming nonsingular
matrix
• In linear equation AX=W where A is
Vandermonde matrix, any M rows and
corresponding M elements of W forms M by M
square matrix and vector of size M, where matrix
is nonsingular
– Can uniquely determine X
Reed-Solomon Code
Reed-Solomon Code
• Produce N equations with M unknown variables.
Then with any M out of N equations, we can find
those M unknowns
– For a given data, let us break down the data into M
messages w(1), w(2), …, w(n)
– Construct P(X) using these messages as coefficients
– Evaluate this polynomial P(X) at N different points x1,
x2, …, xn
– P(x1), P(x2), …, P(xn) can be represented as
multiplication of matrix and vector
• A is Vandermonde matrix!!!
Field
• For efficient use of bits in packet, we use
extension filed with base 2. First of all we
need to look at field, and prime filed
• A field is any set of elements which satisfies
the field axioms for both addition and
multiplication and is commutative division
algebra
– Field axioms include commutativity,
associativity, ditributivity, identity, and inverse
Prime Field
• A field with a finite number of members is
known as a finite field or Galois field
• Prime field is a Galois field, whose
elements are integer in [0, p – 1], where p is
prime
• Addition and multiplication are normal
integer addition and multiplication with
modulo operation at the end
Extension Field
• Extension field is a Galois filed whose
elements are integer in [0, pr – 1]
• This set still satisfies properties of field.
Moreover, by setting p = 2, we can fully
utilize bits in message
• Non-singularity of Vandermonde matrix still
holds for prime field, and even extension
field
Systematic Code
• If some part of erasure code is original message
itself so that we can get message without decode
when every packets arrive, that code is called
systematic code
• For Vandermonde matrix, substitution any part of
matrix with identity matrix still keep non-singular,
even for prime field and extension field
• When we have all packets encoded identity
matrix, decoding is free
Other optimization for erasure code
• Division of message
• Operation table
• Common requirement regardless of solution
• Different requirements specific for solution
• Erasure code  needs separate congestion
control
• Is control packet good?