330 likes | 460 Views
Strider : Automatic Rate Adaptation & Collision Handling. Aditya Gudipati & Sachin Katti Stanford University. Motivation : Rate Adaptation. Wireless channel strength varies rapidly To maximize throughput, we have to estimate channel and adjust bit rate. Passive schemes:
E N D
Strider : Automatic Rate Adaptation& Collision Handling AdityaGudipati & SachinKatti Stanford University
Motivation : Rate Adaptation • Wireless channel strength varies rapidly • To maximize throughput, we have to estimate channel and adjust bit rate. • Passive schemes: • infer from packet loss rates • Inaccurate estimates • Active schemes: • Feedback packets at the rate the channel is changing • Incur overheads Source: VJB’09 10 s Due to overhead both approaches reduce throughput in rapidly varying channels
Motivation : Collision Handling • Collisions lead to wasted transmissions • To maximize throughput, we need to avoid collisions entirely. • Passive schemes: • Exponential backoff • Inaccurate estimates • Active schemes: • RTS - CTS • Incur overheads Due to overhead both approaches reduce throughput in high contention scenarios
Motivation Conventional wisdom says that this overhead and the consequent reduction in throughput is unavoidable
Strider • Optimal throughput in both scenarios (no overhead) • Rateless – handles varying channels • Senders do not estimate channel strength • Single encoding algo generates stream of coded packets • Continuous transmissions till receiver decodes • Collision Resilient – handles collisions • Decodes all component packets in a collision • Achieves same throughput as omniscient collision-free scheduler
Background : Channel Coding • Redundancy added to correct bit errors • ‘b’ data bits mapped to ‘c’ coded bits (c>b) • code rate = (b/c) • Ideally this code can correct (c-b)/2 bit errors • Typical convolutional code rates : 1/2, 2/3, 3/4 • Lower code rate • Higher resilience to errors • Lower throughput
Background : Modulation • Map channel coded bits to constellation points -a (0,1) a (1,1) b (1,0) -b (0,0)
Background : Demodulation • Attenuation and additive noise from channel • To demodulate, map to closest constellation point Wireless Channel -a (0,1) a (1,1) b (1,0) a b -b -a -b (0,0) N N
Background : Demodulation • 4-PAM to BPSK reduces errors for the same noise • Sparser Constellation => Lesser Bit Errors Wireless Channel a (1) a -a (0) -a N Minimum Distance between constellation points determines error rate
Intuition • Assuming fixed channel code • Low SNR, increase minimum distance • High SNR, decrease minimum distance • Current schemes change the constellation explicitly based on channel strength estimate • Causes tradeoff between accuracy and overhead Can we adjust minimum distance without explicitly estimating channel strength?
Minimum Distance Transformer (MDT) Coded Symbols Coded bits Minimum Distance Transformer (MDT) Fixed Channel Code Data Modulator Channel MDT Demodulator Decoder for fixed Channel Code Decoded bits Demodulated bits Received Symbols
Minimum Distance Transformer (MDT) • Send M linear combinations of K BPSK symbols • Mapping from K dimensional space to M dimensional space • Min. Dist. can be controlled by controlling K, M
Minimum Distance Transformer (MDT) • Send M linear combinations of K BPSK symbols • Min. Dist. can be controlled by controlling M K = 2, M = 1 Tx1 : cB1 + dB2 Tx1 2d 2(c-d) 2d B1 -1 1 c+d (B1 = 1 B2 = 1) c-d (B1 = 1 B2 = -1) -c-d (B1 = -1 B2 = -1) -c+d (B1 = -1 B2 = 1) B2 1 -1 c = 0.89 ; d = 0.45 c2 + d2=1
Minimum Distance Transformer (MDT) • Send M linear combinations of K BPSK symbols • Min. Dist. can be controlled by controlling M K = 2, M = 2 Tx1 : cB1 + dB2 Tx1 2d 2(c-d) 2d B1 -1 1 c+d (B1 = 1 B2 = 1) -c+d (B1 = -1 B2 = 1) c-d (B1 = 1 B2 = -1) -c-d (B1 = -1 B2 = -1) B2 1 -1 Tx2 : dB1 + cB2 c = 0.89 ; d = 0.45 c2 + d2=1 Tx2 -c-d (B1 = -1 B2 = -1) -c+d (B1 = 1 B2 = -1) c-d (B1 = -1 B2 = 1) c+d (B1 = 1 B2 = 1)
Minimum Distance Transformer (MDT) • Send M linear combinations of K BPSK symbols • Min. Dist. can be controlled by controlling M Tx1 : cB1 + dB2 Tx2 : dB1 + cB2 K = 2, M = 2 Tx1 : cB1 + dB2 Tx2 Tx1 B1 -1 1 B2 1 -1 Tx2 : dB1 + cB2 Tx1 c = 0.89 ; d = 0.45 c2 + d2=1 Tx2
Minimum Distance Transformer (MDT) • Send M linear combinations of K BPSK symbols • Min. Dist. can be controlled by controlling M Tx1 : cB1 + dB2 Tx2 : dB1 + cB2 K = 2, M = 2 Tx2 B1 (c+d, c+d) (B1 = 1 , B2 = 1) -1 1 (-c+d, c-d) (B1 = -1 , B2 = 1) B2 1 -1 √2(2 (c-d)) Tx1 c = 0.89 ; d = 0.45 c2 + d2=1 (c-d, -c+d) (B1 = 1 , B2 = -1) Minimum Distance increases with increasing transmissions (-c-d, -c-d) (B1 = -1 , B2 = -1)
Naïve Decoder • Compare against all possible outputs (2K – for K BPSK symbols) Rx1 : cB1 + dB2 + n1 Rx2 : dB1 + cB2 + n2 Rx2 (c+d, c+d) (B1 = 1 , B2 = 1) (-c+d, c-d) (B1 = -1 , B2 = 1) Reception Rx1 (c-d, -c+d) (B1 = 1 , B2 = -1) (-c-d, -c-d) (B1 = -1 , B2 = -1)
Practical Challenges • MDT automatically adjusts the minimum distance of the constellation • Decoding complexity is exponential How to design a technique which has LINEAR time complexity?
Key Insight • Decode one BPSK symbol at a time • Takes linear complexity • However, all other symbols act as interference Rx1 : cB1 + dB2 + n1 Rx2 : dB1 + cB2 + n2 Receiver pretends B2 was never sent Rx2 (c+d, c+d) (B1 = 1 , B2 = 1) (-c+d, c-d) (B1 = -1 , B2 = 1) (c, d) (B1 = 1) Reception (-c, -d) (B1 = -1) Rx1 (c-d, -c+d) (B1 = 1 , B2 = -1) (-c-d, -c-d) (B1 = -1 , B2 = -1)
Consequences of Ignoring!! • While decoding B1, B2 is ignored • B2 acts as interference, makes B1’s decoding harder Rx1 : cB1 + dB2 + n1 Rx2 : dB1 + cB2 + n2 Rx2 (c+d, c+d) (B1 = 1 , B2 = 1) (-c+d, c-d) (B1 = -1 , B2 = 1) (c, d) (B1 = 1) Reception (-c, -d) (B1 = -1) Rx1 (c-d, -c+d) (B1 = 1 , B2 = -1) (-c-d, -c-d) (B1 = -1 , B2 = -1)
Accounting for interference • B2 acts as interference : Allocate more power to B1 Rx1 : cB1 + dB2 + n1 Rx2 : dB1 + cB2 + n2 Rx1 : cB1 + dB2 + n1 Rx2 : cB1 + dB2 + n2 Rx2 (c+d, c+d) (B1 = 1 , B2 = 1) (-c+d, c-d) (B1 = -1 , B2 = 1) (c-d, c-d) (B1 = 1 , B2 = -1) Reception (-c+d, -c+d) (B1 = -1 , B2 = 1) Rx1 (c-d, -c+d) (B1 = 1 , B2 = -1) Reception (-c-d, -c-d) (B1 = -1 , B2 = -1)
Accounting for interference • B2 acts as interference : Allocate more power to B1 Rx1 : cB1 + dB2 + n1 Rx2 : cB1 + dB2 + n2 Receiver pretends B2 was never sent Rx2 (c, c) (B1 = 1) Rx1 (-c, -c) (B1 = -1) How to decode B2? Reception
Stripping Decoder • Once B1 is decoded, we can subtract it • Decode B2 • No interference !!! Rx1 : cB1 + dB2 + n1 Rx2 : cB1 + dB2 + n2 (c, c) (B1 = 1) Rx2 (d, d) (B2 = 1) (Reception – contribution of B1) (-d, -d) (B2 = -1) Rx1 (-c, -c) (B1 = -1) Unequal Power Allocation is necessary for Strider to work optimally. Reception
Systematic Power Allocation • First transmission = R1*B1 + R2*B2 • Received Symbol = R1*B1 + R2*B2 + n • Estimate of B1 = (Received Symbol)/ R1 • SINR seen by B1 = R12 / (R22 + σ2) • Successful Decoding of B1 : SINR (B1)> Threshold • Estimate of B2 = (Received Symbol – R1B1)/ R2 • SINR seen by B2 = R22 / ( σ2)
Characteristics • 3 inequalities, 3 unknowns (R1,R2, σ) • SINR seen by B1 = R12 / (R22 + σ2) > Threshold • SINR seen by B2 = R22 / ( σ2) > Threshold • Power constraint : R12 + R22 <= 1 • Strider’s characteristics • Calculation of the power allocation is offline • Power allocation parameters are static and fixed • Decoding complexity is constant multiple of current decoding complexity • Asymptotically approaches capacity
Architecture Coded Symbols Coded bits Minimum Distance Transformer (MDT) Fixed Channel Code Data Modulator Channel + Received Symbols Decoder for Fixed Channel Code Decoded bits Demodulator (Highest energy) ∑ Demodulated bits -
Implementation • K =33 blocks , length of block = 1500 bits • Base static code : 1/5 rate code & QPSK • OFDM Phy implementation in GNURadio (MIT) • USRP2/RFX2400 platform • 6.25 MHz channel
Other Approaches Compared • Omniscient Scheme • Perfect advance channel knowledge • Picks best Wifibitrate that maximizes throughput • Soft-Rate (Sigcomm’09) • State of the art rate adaptation protocol • Estimates BER of packet at receiver and feeds it back • Pick bitrate based on BER
Testbed : Unknown SNR vs Throughput Throughput Comparison : Unknown SNR Throughput (bits/s/Hz) Strider achieves nearly same throughput as the omniscient scheme over the entire SNR range. SNR (in dB)
Trace driven Emulation • Stanford RUSK channel sounder • High precision channel measurement • Continuous channel state information • 2.426 GHz to 2.448 GHz • Each trace: 100000 measurements over 100 sec • 10 mobility traces at walking speed ~ 3 mph
Mobility Performance Comparison : Varying Mobility Normalized Avg. Throughput Strider performs well even in very fast fading scenarios Human Speeds Vehicular Speeds Very Fast Fading Simulated Speed (in mph)
Collision Resilient • Collision Resilient • Decode component packets from a collision • Implemented on USRP2/RFX2400 nodes • Compared to omniscient collision-free scheduler • Avoids collisions : Senders take turns to transmit • Perfect advance channel knowledge Strider achieves same throughput as omniscient collision-free scheduler without any knowledge of possible collisions
Conclusion • Optimal throughput without overhead in • rapidly varying channels • high contention scenarios • Rateless – handles varying channels • Single encoding algorithm generates coded packets • Continuous stream of packets till receiver decodes • Collision Resilient – handles collisions • Decodes all component packets in a collision