Maranello: Practical Partial
Packet Recovery for 802.11
Bo Han Aaron Schulman Neil Spring Bobby Bhattacharjee
University of Maryland
Francesco Gringoli Lorenzo Nava
University of Brescia
Lusheng Ji Seungjoon Lee Robert Miller
AT&T Research
Block-based partial packet recovery corrupt packet Maranello - - PowerPoint PPT Presentation
Maranello : Practical Partial Packet Recovery for 802.11 Bo Han Aaron Schulman Lusheng Ji Neil Spring Francesco Gringoli Seungjoon Lee Bobby Bhattacharjee Lorenzo Nava Robert Miller University of Maryland University of Brescia AT&T
Bo Han Aaron Schulman Neil Spring Bobby Bhattacharjee
University of Maryland
Francesco Gringoli Lorenzo Nava
University of Brescia
Lusheng Ji Seungjoon Lee Robert Miller
AT&T Research
Maranello Practical Partial Packet Recovery for 802.11
2
corrupt packet
Maranello Practical Partial Packet Recovery for 802.11
2
corrupt packet
Maranello Practical Partial Packet Recovery for 802.11
2
corrupt packet
Maranello Practical Partial Packet Recovery for 802.11
2
corrupt packet repair blocks
Maranello Practical Partial Packet Recovery for 802.11
2
repaired packet
Maranello Practical Partial Packet Recovery for 802.11
retransmission
2
repaired packet
Maranello Practical Partial Packet Recovery for 802.11
1 5 9 13 17 21 25 29 .003 .007 .015 .102 .106 repair bits per incorrect bit error traces by average bit error rate Symbols (PPR) Ideal Reed Solomon (ZipTx) Blocks (Maranello)
3
Symbols (PPR) 64 byte blocks (Maranello) Ideal Reed Solomon (ZipTx)
333
142
Full retransmission
67
Maranello Practical Partial Packet Recovery for 802.11
100 corrupted packets bits
4
Maranello Practical Partial Packet Recovery for 802.11
100 corrupted packets bits
4
Maranello Practical Partial Packet Recovery for 802.11
100 corrupted packets bits
4
Maranello Practical Partial Packet Recovery for 802.11
1 2 3-7 8-14 15-32 33-368 369-3475 3476-5847 fraction corrupt packets, labeled by bit errors 0.5 1 fraction repaired by blocks 1 2 3 4 5 ... 19 20 21 22 23
5
1 2 3-7 8-14 15-32 33-368 369-3475 3476-5847 fraction corrupt packets, labeled by bit errors 0.5 1 fraction repaired by blocks 1 2 3 4 5 ... 19 20 21 22 23 1 2 3-7 8-14 15-32 33-368 369-3475 3476-5847 fraction corrupt packets, labeled by bit errors 0.5 1 fraction repaired by blocks 1 2 3 4 5 ... 19 20 21 22 23
Maranello Practical Partial Packet Recovery for 802.11
1 2 3-7 8-14 15-32 33-368 369-3475 3476-5847 fraction corrupt packets, labeled by bit errors 0.5 1 fraction repaired by blocks 1 2 3 4 5 ... 19 20 21 22 23
5
1 2 3-7 8-14 15-32 33-368 369-3475 3476-5847 fraction corrupt packets, labeled by bit errors 0.5 1 fraction repaired by blocks 1 2 3 4 5 ... 19 20 21 22 23 1 2 3-7 8-14 15-32 33-368 369-3475 3476-5847 fraction corrupt packets, labeled by bit errors 0.5 1 fraction repaired by blocks 1 2 3 4 5 ... 19 20 21 22 23
Maranello Practical Partial Packet Recovery for 802.11
1 2 3-7 8-14 15-32 33-368 369-3475 3476-5847 fraction corrupt packets, labeled by bit errors 0.5 1 fraction repaired by blocks 1 2 3 4 5 ... 19 20 21 22 23
5
1 2 3-7 8-14 15-32 33-368 369-3475 3476-5847 fraction corrupt packets, labeled by bit errors 0.5 1 fraction repaired by blocks 1 2 3 4 5 ... 19 20 21 22 23 1 2 3-7 8-14 15-32 33-368 369-3475 3476-5847 fraction corrupt packets, labeled by bit errors 0.5 1 fraction repaired by blocks 1 2 3 4 5 ... 19 20 21 22 23
Maranello Practical Partial Packet Recovery for 802.11
1 2 3-7 8-14 15-32 33-368 369-3475 3476-5847 fraction corrupt packets, labeled by bit errors 0.5 1 fraction repaired by blocks 1 2 3 4 5 ... 19 20 21 22 23
5
≤32 bit errors, repaired by one block
1 2 3-7 8-14 15-32 33-368 369-3475 3476-5847 fraction corrupt packets, labeled by bit errors 0.5 1 fraction repaired by blocks 1 2 3 4 5 ... 19 20 21 22 23
Maranello Practical Partial Packet Recovery for 802.11
1 2 3-7 8-14 15-32 33-368 369-3475 3476-5847 fraction corrupt packets, labeled by bit errors 0.5 1 fraction repaired by blocks 1 2 3 4 5 ... 19 20 21 22 23
5
≤32 bit errors, repaired by one block many bit errors, still correct blocks
Maranello Practical Partial Packet Recovery for 802.11
6
Maranello Practical Partial Packet Recovery for 802.11
7
long delay expensive low rate deploy completely not compatible short delay cheap high rate deploy incrementally 802.11 compatible long delay cheap high rate deploy incrementally not compatible
e.g. PPR Maranello e.g. ZipTx
+ + + + + +
Maranello Practical Partial Packet Recovery for 802.11
8
enqueue carrier sense transmit wait for ack backoff to retransmit
validate build and send repair build and send nack ack ✓ ✖ nack packet deliver packet send ack repair patch deliver send ack
Maranello Practical Partial Packet Recovery for 802.11
8
enqueue carrier sense transmit wait for ack backoff to retransmit
validate build and send repair build and send nack ack ✓ ✖ nack packet deliver packet send ack repair patch deliver send ack
Maranello Practical Partial Packet Recovery for 802.11
8
enqueue carrier sense transmit wait for ack backoff to retransmit
validate build and send repair build and send nack ack ✓ ✖ nack packet deliver packet send ack repair patch deliver send ack
Maranello Practical Partial Packet Recovery for 802.11
validate build and send repair build and send nack ack ✓ ✖ nack packet deliver packet send ack repair patch deliver send ack
9
3 5 1 2 4 3 5
C1 C2 C3 C4 C5 C1 C2 C3 C4 C5
build repair compute checksums build and send repair build and send nack
Maranello Practical Partial Packet Recovery for 802.11
validate build and send repair build and send nack ack ✓ ✖ nack packet deliver packet send ack repair patch deliver send ack
9
3 5 1 2 4 3 5
C1 C2 C3 C4 C5 C1 C2 C3 C4 C5
build repair compute checksums build and send repair build and send nack
Maranello Practical Partial Packet Recovery for 802.11
validate build and send repair build and send nack ack ✓ ✖ nack packet deliver packet send ack repair patch deliver send ack
9
3 5 1 2 4 3 5
C1 C2 C3 C4 C5 C1 C2 C3 C4 C5
build repair compute checksums build and send repair build and send nack
Maranello Practical Partial Packet Recovery for 802.11
validate build and send repair build and send nack ack ✓ ✖ nack packet deliver packet send ack repair patch deliver send ack
9
3 5 1 2 4 3 5
C1 C2 C3 C4 C5 C1 C2 C3 C4 C5
build repair compute checksums build and send repair build and send nack
Maranello Practical Partial Packet Recovery for 802.11
ack SIFS packet ack timeout DIFS & backoff corrupt packet retransmission
10
Maranello Practical Partial Packet Recovery for 802.11
ack SIFS packet ack timeout DIFS & backoff corrupt packet retransmission
10
Maranello Practical Partial Packet Recovery for 802.11
checksums
ack timeout DIFS & backoff corrupt packet retransmission SIFS
reserved time for expected ack
11
checksums
build nack build repair
Maranello Practical Partial Packet Recovery for 802.11
block, and two-bit errors separated by at most 16 bits
9,911,800 802.11 error packets
12
Maranello Practical Partial Packet Recovery for 802.11
13
are received
Maranello Practical Partial Packet Recovery for 802.11
14
Goal Solution
Compatible with 802.11 (Maintain link layer latency)
(Fletcher-32 while blocks are received) Incremental deployment Legacy 802.11 ignores nacks No extra bits for correct packets Receiver sends checksums, sender finds the errors
Maranello Practical Partial Packet Recovery for 802.11
15
5 10 15 20 25 30 5 10 15 20 25 30 Maranello throughput (Mbit/s) 802.11 throughput (Mbit/s) 1X 1.3X 1.6X 2X 4% 36% 35% 18% 7%
Maranello Practical Partial Packet Recovery for 802.11
16
Windows Broadcom Windows Intel Windows Atheros Linux ‘minstrel’ Broadcom
2 4 6 8 10 12 tx time (ms) retransmission rate (Mbit/s) 2 4 6 8 10 12 backoff (ms)
54 1
2 4 6 8 10 12 tx time (ms) retransmission rate (Mbit/s) 2 4 6 8 10 12 backoff (ms)
54 48 36 24
2 4 6 8 10 12 tx time (ms) retransmission rate (Mbit/s) 2 4 6 8 10 12 backoff (ms)
54 36
2 4 6 8 10 12 tx time (ms) retransmission rate (Mbit/s) 2 4 6 8 10 12 backoff (ms)
54 48 36 1
Maranello Practical Partial Packet Recovery for 802.11
17
Insight: Maranello packets are subset of 802.11
Assuming Maranello delivers all nacks successfully
Intel
E R E E R E R E R R E E R R E R
Maranello Intel
M R E M R M R E E M R E M R M R
time
Maranello Practical Partial Packet Recovery for 802.11
17
Maranello Practical Partial Packet Recovery for 802.11
M R E M R M R E E M R E M R M R
Intel
E R E E R E R E R R E E R R E R
18
Insight: Maranello packets are subset of 802.11
Assuming Maranello delivers all nacks successfully
Maranello
Maranello Practical Partial Packet Recovery for 802.11
M R E M R M R E E M R E M R M R
Intel
E R E E R E R E R R E E R R E R
E R M R E
18
Insight: Maranello packets are subset of 802.11
Assuming Maranello delivers all nacks successfully
Maranello
Maranello Practical Partial Packet Recovery for 802.11
M R E M R M R E E M R E M R M R
Intel
E R E E R E R E R R E E R R E R
18
Insight: Maranello packets are subset of 802.11
Assuming Maranello delivers all nacks successfully
Maranello E E M R E R E R E R R
Maranello Practical Partial Packet Recovery for 802.11
M R E M R M R E E M R E M R M R
Intel
E R E E R E R E R R E E R R E R
18
Insight: Maranello packets are subset of 802.11
Assuming Maranello delivers all nacks successfully
Maranello E E E R R M R M R
Maranello Practical Partial Packet Recovery for 802.11
19
48
E E R E R R
1
Linux ‘minstrel’ Maranello EM
R M R
Maranello Practical Partial Packet Recovery for 802.11
20
Windows Broadcom Windows Intel Windows Atheros Linux ‘minstrel’ Broadcom
2 4 6 8 10 12 tx time (ms) retransmission rate (Mbit/s) 2 4 6 8 10 12 backoff (ms)
54 1
2 4 6 8 10 12 tx time (ms) retransmission rate (Mbit/s) 2 4 6 8 10 12 backoff (ms)
54 48 36 24
2 4 6 8 10 12 tx time (ms) retransmission rate (Mbit/s) 2 4 6 8 10 12 backoff (ms)
54 36
2 4 6 8 10 12 tx time (ms) retransmission rate (Mbit/s) 2 4 6 8 10 12 backoff (ms)
54 48 36 1
6.88 11.56 8.64 9.07 11.92 12.52 8.14 9.52
Maranello Practical Partial Packet Recovery for 802.11
21
2 4 6 8 both 802.11 both Mar. A Mar. B Mar. A Mbit/s 2 4 6 8 B Mbit/s
8 8 M M M 8 M 8
Maranello Maranello Maranello
Maranello Practical Partial Packet Recovery for 802.11
incrementally deployable on existing APs and cards.
22
www.cs.umd.edu/projects/maranello