440 likes | 569 Views
Decoding 802.11 Collisions. Shyamnath Gollakota Dina Katabi. The Hidden Terminals Problem. Collision!. Bob. Alice. The Hidden Terminals Problem. Retransmissions. More Collisions!. Bob. Alice. Can’t get any useful connections. Can we take two collisions and produce the two packets?.
E N D
Decoding 802.11 Collisions Shyamnath Gollakota Dina Katabi
The Hidden Terminals Problem Collision! Bob Alice
The Hidden Terminals Problem Retransmissions More Collisions! Bob Alice Can’t get any useful connections
Can we take two collisions and produce the two packets? Pa Pa Pb Pb Yes, we can!
∆2 ZigZag Exploits 802.11’s behavior • Retransmissions Same packets collide again • Senders use random jitters Collisions start with interference-free bits ∆1 Pa Pa Pb Pb Interference-free Bits
∆2 How Does ZigZag Work? 1 1 ∆1 • ∆1 ≠∆2 • Find a chunk that is interference-free in one collisions and has interference in the other • Decode and subtract from the other collision
∆2 How Does ZigZag Work? 1 1 ∆1 2 • ∆1 ≠∆2 • Find a chunk that is interference-free in one collisions and has interference in the other • Decode and subtract from the other collision
∆2 How Does ZigZag Work? 3 1 ∆1 2 2 • ∆1 ≠∆2 • Find a chunk that is interference-free in one collisions and has interference in the other • Decode and subtract from the other collision
∆2 How Does ZigZag Work? 3 3 1 ∆1 2 4 • ∆1 ≠∆2 • Find a chunk that is interference-free in one collisions and has interference in the other • Decode and subtract from the other collision
∆2 How Does ZigZag Work? 5 3 1 ∆1 4 2 4 • ∆1 ≠∆2 • Find a chunk that is interference-free in one collisions and has interference in the other • Decode and subtract from the other collision
∆2 How Does ZigZag Work? 5 3 5 1 ∆1 2 6 4 • ∆1 ≠∆2 • Find a chunk that is interference-free in one collisions and has interference in the other • Decode and subtract from the other collision
∆2 How Does ZigZag Work? 7 5 3 1 ∆1 6 2 6 4 • ∆1 ≠∆2 • Find a chunk that is interference-free in one collisions and has interference in the other • Decode and subtract from the other collision
∆2 How Does ZigZag Work? 7 5 7 3 1 ∆1 8 2 6 4 • Delivered 2 packets in 2 timeslots • As efficient as if the packets did not collide • ∆1 ≠∆2 • Find a chunk that is interference-free in one collisions and has interference in the other • Decode and subtract from the other collision
ZigZag • A receiver design that decodes collisions • As efficient as if the colliding packets were sent in separate time slots • Experimental results shows that it reduces hidden terminal losses from 72% to 0.7%
AP received a collision signal How does the AP know it is a collision and where the second packet starts? Time ∆
Detecting Collisions and the Value of∆ AP received signal Correlate Time Packets start with known preamble AP correlates known preamble with signal • Preamble Correlation • Detect collision and the value of ∆ • Works despite interference because correlation with an independent signal is zero ∆ Correlation Time
How Does the AP Subtract the Signal? • Channel’s attenuation or phase may change between collisions • Can’t simply subtract a chunk across collisions Alice’s signal in first collision Alice’s signal in second collision
Subtracting a Chunk • Decode chunk into bits • Removes effects of channel during first collision • Re-modulate bits to get channel-free signal • Apply effect of channel during second collision • Use correlation to estimate channel despite interference • Now, can subtract!
∆1 What if AP Makes a Mistake? Bad News: Errors can propagate 3 1 1 ∆2 2 2 Can we deal with these errors?
∆1 What if AP Makes a Mistake? Good News: Temporal Diversity A bit is unlikely to be affected by noise in both collisions ∆2 Get two independent decodings
∆2 ∆1 AP Decodes Backwards as well as Forwards 2 2 3 1 1 Errors propagate differently in the two decodings Which decoded value should the AP pick? For each bit, AP picks the decoding that has a higher PHY confidence [JB07, WKSK07]
ZigZag Generalizes • Flipped order ∆2 1 1 2 2 ∆1
∆1 ZigZag Generalizes • Flipped order • Different packet sizes 1 1 2 2 ∆2
ZigZag Generalizes 1 1 1 2 2 2 3 3 3 • Flipped order • Different packet sizes • Multiple colliding packets 1 1 1 2 2 2 3 3 3
∆2 ∆1 ZigZag Generalizes • Flipped order • Different packet sizes • Multiple colliding packets • Capture effect • Subtract Alice and combine Bob’s packet across collisions to correct errors Pa1 Pa2 Pb Pb 3 packets in 2 time slots better than no collisions
Implementation • USRP Hardware • GNURadio software • Carrier Freq: 2.4-2.48GHz • BPSK modulation
Testbed USRPs • 10% HT, 10% partial HT, 80% perfectly sense each other • Each run randomly picks an AP and two clients • Co-located 802.11a nodes to find out about HTs and created the same collision patterns by the USRPs 802.11a
Throughput Comparison CDF of concurrent flow pairs Throughput
Throughput Comparison Perfectly Sense Partial Hidden Terminals Hidden Terminals CDF of concurrent flow pairs 802.11 Throughput
Throughput Comparison Hidden Terminals get high throughput CDF of concurrent flow pairs ZigZag 802.11 Throughput
Throughput Comparison ZigZag Exploits Capture Effect CDF of concurrent flow pairs ZigZag 802.11 Throughput ZigZag improved average Throughput by 25%
Throughput Comparison Hidden Terminals CDF of concurrent flow pairs ZigZag 802.11 Throughput Improved hidden terminals loss rate from 72% to 0.7%
Is ZigZag as efficient as if the colliding packets were sent in separate slots? • For every SNR, Check that ZigZag can match the BER of collision-free receptions
Is ZigZag as efficient as if packets were collision-free Receptions? Bit Error Rate (BER) SNR in dB
Is ZigZag as efficient as if packets were collision-free Receptions? Collision-Free Receptions Bit Error Rate (BER) SNR in dB
Is ZigZag as efficient as if packets were collision-free Receptions? Collision-Free Receptions Bit Error Rate (BER) ZigZag-Decoded Collisions ZigZag is as efficient as if the colliding packets were sent separately SNR in dB
Three Colliding Senders Collision! Chris Bob Alice Nodes picked randomly from testbed
Three Colliding Senders Alice CDF of runs Bob Chris Per-Sender Throughput ZigZag extends beyond two colliding senders
Related Work • RTS-CTS • Excessive Overhead; Administrators turn it off • Interference Cancellation • Unsuitable for 802.11 because of bit rate adaptation Rmax Interference cancelation operates on one collision Undecodable Bob’s Info Rate Alice’s Info Rate Rmax
Related Work • RTS-CTS • Excessive Overhead; Administrators turn it off • Interference Cancellation • Unsuitable for 802.11 because of bit rate adaptation Rmax ZigZag operates on two collisions Can decode Bob’s Info Rate Alice’s Info Rate Rmax
Conclusion • ZigZag is a receiver design that resolves collisions • It is as efficient as if the colliding packets were sent in separate time slots • It reduces hidden terminal losses from 72% to 0.7% • It enables aggressive MAC More concurrency