Block-based partial packet recovery corrupt packet Maranello - - PowerPoint PPT Presentation

block based partial packet recovery
SMART_READER_LITE
LIVE PREVIEW

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


slide-1
SLIDE 1

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

slide-2
SLIDE 2

Maranello Practical Partial Packet Recovery for 802.11

Block-based partial packet recovery

2

corrupt packet

slide-3
SLIDE 3

Maranello Practical Partial Packet Recovery for 802.11

Block-based partial packet recovery

2

corrupt packet

slide-4
SLIDE 4

Maranello Practical Partial Packet Recovery for 802.11

Block-based partial packet recovery

2

corrupt packet

✓ ✖ ✓ ✖ ✓

slide-5
SLIDE 5

Maranello Practical Partial Packet Recovery for 802.11

Block-based partial packet recovery

2

corrupt packet repair blocks

✓ ✖ ✓ ✖ ✓

slide-6
SLIDE 6

Maranello Practical Partial Packet Recovery for 802.11

Block-based partial packet recovery

2

repaired packet

slide-7
SLIDE 7

Maranello Practical Partial Packet Recovery for 802.11

Block-based partial packet recovery

  • Increases throughput because:
  • Repairs are shorter than retransmissions
  • Short transmissions have higher delivery probability
  • Early delivery avoids backoff and low rate

retransmission

2

repaired packet

slide-8
SLIDE 8

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)

Deployable partial packet recovery

3

Symbols (PPR) 64 byte blocks (Maranello) Ideal Reed Solomon (ZipTx)

333

~ ~

142

~ ~

Full retransmission

67

~ ~

slide-9
SLIDE 9

Maranello Practical Partial Packet Recovery for 802.11

100 corrupted packets bits

802.11 errors are clustered

4

slide-10
SLIDE 10

Maranello Practical Partial Packet Recovery for 802.11

100 corrupted packets bits

802.11 errors are clustered

4

slide-11
SLIDE 11

Maranello Practical Partial Packet Recovery for 802.11

100 corrupted packets bits

802.11 errors are clustered

4

slide-12
SLIDE 12

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

Need few blocks for repairs

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

slide-13
SLIDE 13

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

Need few blocks for repairs

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

slide-14
SLIDE 14

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

Need few blocks for repairs

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

slide-15
SLIDE 15

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

Need few blocks for repairs

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

slide-16
SLIDE 16

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

Need few blocks for repairs

5

≤32 bit errors, repaired by one block many bit errors, still correct blocks

slide-17
SLIDE 17

Maranello Practical Partial Packet Recovery for 802.11

Maranello design goals

  • Compatible with 802.11 (Maintain link latency)
  • Incremental deployment
  • Runs on existing hardware
  • No extra bits for correct packets

6

slide-18
SLIDE 18

Maranello Practical Partial Packet Recovery for 802.11

Firmware suits block repair

7

Driver Firmware GnuRadio

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

+ + + + + +

slide-19
SLIDE 19

Maranello Practical Partial Packet Recovery for 802.11

Broadcom (OpenFWWF) firmware

8

enqueue carrier sense transmit wait for ack backoff to retransmit

Receive: Transmit:

validate build and send repair build and send nack ack ✓ ✖ nack packet deliver packet send ack repair patch deliver send ack

slide-20
SLIDE 20

Maranello Practical Partial Packet Recovery for 802.11

Broadcom (OpenFWWF) firmware

8

enqueue carrier sense transmit wait for ack backoff to retransmit

Receive: Transmit:

validate build and send repair build and send nack ack ✓ ✖ nack packet deliver packet send ack repair patch deliver send ack

slide-21
SLIDE 21

Maranello Practical Partial Packet Recovery for 802.11

Broadcom (OpenFWWF) firmware

8

enqueue carrier sense transmit wait for ack backoff to retransmit

Receive: Transmit:

validate build and send repair build and send nack ack ✓ ✖ nack packet deliver packet send ack repair patch deliver send ack

slide-22
SLIDE 22

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

Nacking with checksums

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

slide-23
SLIDE 23

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

Nacking with checksums

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

slide-24
SLIDE 24

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

Nacking with checksums

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

slide-25
SLIDE 25

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

Nacking with checksums

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

slide-26
SLIDE 26

Maranello Practical Partial Packet Recovery for 802.11

802.11’s timing

ack SIFS packet ack timeout DIFS & backoff corrupt packet retransmission

Correct: Retransmission:

10

slide-27
SLIDE 27

Maranello Practical Partial Packet Recovery for 802.11

802.11’s timing

ack SIFS packet ack timeout DIFS & backoff corrupt packet retransmission

Correct: Retransmission:

10

slide-28
SLIDE 28

Maranello Practical Partial Packet Recovery for 802.11

  • Compute block

checksums

  • 10μs

Exploiting 802.11’s timing

ack timeout DIFS & backoff corrupt packet retransmission SIFS

reserved time for expected ack

11

  • Identify mismatched

checksums

  • 100μs

build nack build repair

slide-29
SLIDE 29

Maranello Practical Partial Packet Recovery for 802.11

Fletcher-32

  • Operations per 16 bits: two adds, two decrements
  • All single bit errors, burst errors in a single 16-bit

block, and two-bit errors separated by at most 16 bits

  • CRC-32 & Fletcher-32 find all block errors in

9,911,800 802.11 error packets

  • Maranello relies on whole packet CRC-32

12

slide-30
SLIDE 30

Maranello Practical Partial Packet Recovery for 802.11

Card’s CPU is not fast enough

13

  • Problem: 4μs per 64 byte block (SIFS = 10μs)
  • Insight: Compute block checksums while blocks

are received

slide-31
SLIDE 31

Maranello Practical Partial Packet Recovery for 802.11

Maranello design review

14

Goal Solution

Compatible with 802.11 (Maintain link layer latency)

  • Broadcom firmware
  • Replace ack with nack

(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

slide-32
SLIDE 32

Maranello Practical Partial Packet Recovery for 802.11

Maranello is faster than 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%

slide-33
SLIDE 33

Maranello Practical Partial Packet Recovery for 802.11

Retransmission behavior varies

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

slide-34
SLIDE 34

Maranello Practical Partial Packet Recovery for 802.11

Trace-driven Maranello simulator

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

slide-35
SLIDE 35

Maranello Practical Partial Packet Recovery for 802.11

Trace-driven Maranello simulator

17

slide-36
SLIDE 36

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

Trace-driven Maranello simulator

18

Insight: Maranello packets are subset of 802.11

Assuming Maranello delivers all nacks successfully

Maranello

slide-37
SLIDE 37

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

Trace-driven Maranello simulator

18

Insight: Maranello packets are subset of 802.11

Assuming Maranello delivers all nacks successfully

Maranello

slide-38
SLIDE 38

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

Trace-driven Maranello simulator

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

slide-39
SLIDE 39

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

Trace-driven Maranello simulator

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

slide-40
SLIDE 40

Maranello Practical Partial Packet Recovery for 802.11

Avoiding low rate retransmissions

19

48

E E R E R R

1

Linux ‘minstrel’ Maranello EM

R M R

slide-41
SLIDE 41

Maranello Practical Partial Packet Recovery for 802.11

Maranello increases throughput

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

slide-42
SLIDE 42

Maranello Practical Partial Packet Recovery for 802.11

Compatibility with unmodified 802.11

  • Maranello is faster than 802.11
  • Maranello is friendly to 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

slide-43
SLIDE 43

Maranello Practical Partial Packet Recovery for 802.11

Conclusions

  • Block-based recovery is simple and powerful.
  • Maranello in firmware is compatible with 802.11 and

incrementally deployable on existing APs and cards.

  • Maranello increases throughput:
  • In various wireless environments
  • For popular retransmission behaviors
  • Maranello is fair to unmodified 802.11.

22

www.cs.umd.edu/projects/maranello