Title:
1Efficient Error Recovery Using Network Coding in
Underwater Sensor Networks
Zheng Guo, Bing Wang, and Jun-Hong Cui
Presented By Daniel Gyllstrom
2Goal
- Monitor Underwater Environments
3A Problem
- Communication error prone
- Characteristic of communication lines
- Node Mobility
- Long propagation delays
4Goal
- Reduce communication errors under energy
consumption constraints
5Problem Setting
6Existing Approaches
- Error Correction Techniques
- Autonomic Repeat reQuest (ARQ)
- Timeouts
- ACKs
- What TCP does
- --------------gt long delays
7Existing Approaches
- Error Correction Techniques
- Forward Error Correction (FEC)
- Proactively add bits to avoid retransmission
- End to End
- Hop by Hop
- --------------gt How much redundancy?
8Primer Multipath Routing
path 1
destination
source
path 2
9Primer Network Coding
A 1001 B 0110 , AB 1111
AB 1111 B 0110
, (AB) B A 1001
10Primer Network Coding
relay 1
Y1 a1X1 a2X2 Y2 ß1X1 ß2X2
X1, X2
Y1, Y2
sink
source
Y3 a3X1 a4X2 Y4 ß3X1 ß4X2
X1, X2
Y3, Y4
relay 2
11Why Network Coding?
- H2O sensor nodes have sufficient computational
power - Broadcast nature of communication gt multipath
makes sense - Paper shows good source of error recovery
12Network Coding (Source)
- Packets divided into groups
- K packets X1, X2 XK
- Linearly combine the K packets --gt K packets
(where K K) - Y1, Y2 XK where and
gij are coefficients - selected randomly from finite field
- (gi1, , giK) encoding vector carried w/
packet - notice K K --gt redundancy
13Network Coding (Relay)
- Buffer incoming packets for some period
- Linearly combine packets to form several groups
14Network Coding (Relay)
- Consider relay r
- Receive packets X1, X2 XM where (fi1, ,
fiK) is encoding vector for Xi - Outgoing Packets M total where M min(M,K)
- Y1, Y2 YM where and hij
picked randomly from field (gi1, , giK) - gij is linear combo of (incoming encoding vector
- f) (random finite field - h)
15Network Coding (Sink)
- Receive linearly independent encoding vectors
- Solve linear equations to recover original packets
16Adjustments
- Need certain of nodes in relay set. How to
ensure this? - Adjust transmission range to include correct of
downstream nodes -
17Adjustments
- How much redundancy?
- Less downstream neighbors ? more redundancy
- More downstream neighbors ? less redundancy
18Metrics of Interest
- R successful delivery ratio
- T normalized energy consumption
- T (Total transmissions)/R
19Analysis
- Purpose
- Compare algorithms - later
- how to set redundancy parameter adjust
transmission range - Assumptions
- Relay sets do not intersect
- Node receives packets from all nodes in prev.
relay set - Discard packets from same relay set
20Analysis
- Results
- K generation size 3
- K packets output 5
- N relay set size 3
21Simulation
1 km
1 km
sink
1 km
source
22Simulation
- Setup (contd)
- Vector Based Forwarding
- Routing pipe from source to sink
- Nodes inside pipe forward packets
- Packet 50 bytes
- K generation size 3
- K src output this many packets 5
23Simulation
- Node distribution
- Grid random deployment
- Uniform random deployment
24Simulation Grid Deployment
- 200m x 200m x 200m grids
- 2 nodes per grid
- Set transmission power to 300m pipe radius
(150m) to cover 3 to 4 nodes
25Simulation Grid Deployment
26Simulation Grid Deployment
27Simulation Grid Deployment
28Simulation Grid Deployment
29Simulation Uniform Rand
Vary transmission range (100m 400m) radius
150m
30Simulation Uniform Rand
Vary K transmission range 300m
31Discussion
- Is this easier to configure than FEC?
- FEC can use ACKS to determine loss rate
- Can redundancy and transmission range be adjusted
on the fly? - Algorithm highly dependent on topology, is this
ok? - How to deploy grid network?
- Why not include feedback to configure network
coding