450 likes | 637 Views
Efficient Error Estimating Coding: Feasibility and Applications. Binbin Chen Ziling Zhou Yuda Zhao Haifeng Yu School of Computing National University of Singapore 2010 SIGCOMM [Best Paper] Session: wireless and measurement Presenter : Louwang.
E N D
Efficient Error Estimating Coding:Feasibility and Applications Binbin Chen Ziling Zhou Yuda Zhao Haifeng Yu School of Computing National University of Singapore 2010 SIGCOMM [Best Paper] Session: wireless and measurement Presenter: Louwang
One of Typical Problem in Packet-Switch network Packet Loss
Background: Error Correcting Codes 1 0 • Error correcting codes play fundamental roles in communication systems: decode encode 1 1 1 0 1 1 0 0 0 0 0 0 1 0 sender receiver network Philosophy behind over 50 years of research on error correcting codes: Only want to deal with entirely correct data
Key Contribution • Many state-of-art designs in wireless networking leverage partially correct packets • More on these designs later… • Look beyond error correcting codes? • Our main contribution: Novel concept of Error Estimating Coding (EEC) • Enable the receiver to estimate the number of errors (i.e., flipped bits) in a partially correct packet • But cannot tell the positions of the errors
EEC: New Tradeoffs Weaker functionality Smaller overhead Stronger functionality Larger overhead error estimating codes error correcting codes
EEC – Why is it interesting? large redundancy overhead small redundancy overhead error estimating codes error correcting codes • O(log n) • E.g., 2% overhead on 1500-byte packet • If only want to know whether # errors exceeds some threshold -- just 4 bytes • Can be viewed as generalized CRC • (n) • 2% can only correct rather small # errors (e.g., 24 errors out of 12000 bits)
EEC – Why is it interesting? small computational overhead large computational overhead error estimating codes error correcting codes • Pure software implementation can support all 802.11a/g data rates on typical hardware platform today • Often need hardware support to be fast enough • Some codes (e.g., Reed-Solomon codes) have highly optimized software implementation • 10 to 100 times slower than EEC • Hard to support 802.11a/g data rates
EEC – Why is it interesting? stronger functionality weaker functionality error estimating codes error correcting codes • Estimate the number of errors • Provable estimation quality • No assumption needed on error correlation or independence
Roadmap • Applications of EEC • What designs deal with partial packets? • How can EEC help them? • Feasibility of Efficient EEC
Example Scenario: Streaming Video destination router • Source adds forward error correction • Can recover a packet if BER below some threshold • Router forwards all packets (even if partially correct) source 1 1 0 0 1 1 0 0 0 0 1 1 decode 1 1 0 0 1 1 1 1 0 0 1 1 1 0 1 1
Streaming Video: How can EEC help? destination router • Packets with many errors cannot be recovered – router should have asked for retransmission • BER-aware retransmission: Routers use EEC to determine whether to request retransmission • Bit Error Rate: Fraction of corrupted bits source 1 1 0 0 0 0 0 0 0 0 1 1 decode 1 1 0 0 1 1 1 1 0 0 1 1 decoding failure
Summary of Experimental Results • Implementation on Soekris Net5501-70 routers • BER-aware retransmission consistently outperforms other schemes that do not have access to BER info • In all experimental settings (e.g., with/without interference, different link quality) • Up to 5dB gain on PSNR of the streamed video • 0.5dB gain is usually considered visually noticeable
Generalization: Treat different partial packets differently • BER-aware packet forwarding • Context: Cooperative relay • Use analog-amplify for packets with large BER • Use digital-amplify for packets with small BER • BER-aware packet scheduling • Context: Image sensor network for emergency response (e.g., [Kamra et al., SIGCOMM’06]) • Let packets with small BER (and thus more valuable) go through first
Example Scenario: Bulk data transfer • Leverage partial packets and correct errors end-to-end • Combining multiple partial packets[Dubois-Ferriere et al., Sensys’05] • Use network coding as in MIXIT[Katti et al., SIGCOMM’08] • Destination requests extra error correcting redundancy if needed (i.e., similar to ZipTX [Lin et al., MobiCom’08])
Bulk data transfer: How can EEC help? • In these systems, EEC can help to do better WiFi rate adaptation • Select the data rate with the best goodput • Based on current tradeoff between data rates and packet BER • The mapping between data rates and BER is the key info needed by rate adaptation • EEC exactly provides the BER info at current rate 16
Comparison: Previous Rate Adaptation Schemes • Based on packet loss ratio • Coarse grained info • Need multiple packets to observe properly • Based on signal-to-noise ratio • Indirect measure and needs training • SoftRate [Vutukuru et al., SIGCOMM’09]: Modify physical layer to obtain BER info • Not supported by today’s commercial hardware
Summary of Experimental Results • EEC-Rate implemented in MadWifi 0.9.4. • Use per-packet BER to guide rate adaptation • EEC-Rate consistently outperforms state-of-art schemes based on packet loss ratio or SNR • In all experimental settings (e.g., indoor/walking/ outdoor, with/without interference) • Up to 50% higher goodput in walking scenario • Up to 130% higher goodput in outdoor scenario
Generalization: Wireless carrier selection • General problem of wireless carrier selection • Multiple wireless carriers (e.g., sending rates) • Dynamically select the carrier with the best goodput • More examples: • Wireless channel selection • Transmission power selection • Directional antenna orientation selection • Routing in multi-hop wireless networks …
Roadmap • Applications of EEC • What designs deal with partial packets? • How can EEC help them? • Feasibility of Efficient EEC
Model • A packet holds n data bits and k EEC bits, in n+k slots • p fraction of the slots are erroneous • p is not a probability • Positions of erroneous slots can be arbitrary (e.g., fully clustered or fully spread) • Goal: Generate an estimation for p (with certain target estimation quality)
Naïve Sampling Using Pilot Bits data bit 4 slots erroneous out of 12 slots Xerroneous slot X X X X • Problem: Ineffective for small p • p = 0.01: needs roughly 100 pilot bits to see one error • BER is usually a small value… pilot bit p estimated to be 1/3 X X X X need enough errors on the pilot bits to estimate properly
Use a Parity Bit to Sample a Group of Bits data bit Hope to sample a group of 100 slots together Use a parity bit to sample a group of data bits Larger group size More likely to see errors Helps to deal with small p – Just use larger groups parity bit (EEC bit) Parity bit for a group of 4 data bits
Challenges • Parity information is limited -- Cannot even distinguish 1 error from 3 errors in the group • Parity bits themselves may be erroneous • Error prob of an parity bit and error prob of data bits in the group are correlated Data bits error prob higher X X X X Data bits error prob lower X X X X
Choose each of bits independently and uniformly randomly • If total number of bits is 12 and we choose 4 for a parity bit. (g = 4)
Key step1: parity information is sufficient when p is small enough • The probability of having more than 1 error is always below 0.09. • If the # of errors is even, it’s very likely # of errors is 0. • If the # of errors is odd, it’s very likely # of errors is 1.
The Question is … • How do we know whether P0 is small enough?
Fall when P0 is too large • Define the probability of having odd number of errors in a group with g data bits. • It’s exceed 0.32 when P0 = 1/g • Now the P of odd and even # of error are comparable.
Solution • Use multiple (independent) groups of same size (Each with a parity bit) • Be able to estimate whether the # of odd number of errors is too large.
Single-level EEC Each EEC bit is the parity bit of a group of randomly selected data bits (all groups have the same size). data bits EEC bits EEC Encoding on Sender packet permute • On receiver, let q be the fraction of parity check failures: • If q [0.25, 0.4], BER can be estimated as f(q) • Here we choose s independent group. (g data bit + 1EEC bit) • ( f(q) = s*q / s (g+1) = q/(g+1))
Multi-level EEC • Single-level EEC succeeds only for q[0.25, 0.4] • Multi-level EEC: log(n) levels with geometrically distributed group sizes 2, 4, 8, 16, …, n • Claim: There almost always exists some level such that q[0.25, 0.4] on that level • Complication: With multiple levels, undesirable rare events will be more common
Comparison • WIFI rate adaptation using EEC. • Robust Rate Adaptation Algorithm (RRAA) • Receiver-Based AutoRate (RBAR) • SampleRate and RRAA both adjust rates based on packet loss statistics. • In RBAR, the receiver measures the SNR of the RTS packet received.
Interference Scenario 6 link under three different transmission power levels (5dBm, 10dBm, and 15dBm) Sending rate: 1500bytes / 30s
Walking scenario • Distance: 90 meters • Duration: 90 s • 5 times for each setting • Sender walking around the receiver
Outdoor scenario The sender and receiver placed on the opposite sides of a busy road and are 30 meters apart.
Related Work: EEC and SoftPHY • SoftPHY[Jamieson et al., SIGCOMM’07] • Physical layer exposing confidence level for each bit received • Can estimate BER – in fact, offer additional info beyond BER • Today’s commercial WiFi hardware does not provide such functionality • EEC is a pure software solution • Flexibility, easier to adopt or upgrade • Will be attractive for lower-end wireless devices even if SoftPHY becomes available on future WiFi devices • But if need per-bit confidence info, EEC cannot substitute SoftPHY
Conclusions • Key contribution: Error estimating coding • Estimate the # of errors (with provable estimation quality), without correcting them • New tradeoff between functionality and overhead • Why is EEC interesting? • EEC functionality significantly benefits modern designs in wireless networks • EEC overhead orders of magnitude smaller than error correcting codes (e.g., allows highly efficient software implementation)
Formal Guarantees • (Rough) Theorem: For any given 0<<1 and 0<<1, using log(n) levels with O(1) EEC bits per level will ensure: