Title: XORs in The Air: Practical Wireless Network Coding
1XORs in The Air Practical Wireless Network Coding
Sachin Katti, Hariharan Rahul, Wenjun Hu, Dina
Katabi, Muriel Medard, Jon CrowcroftMIT CSAIL
University of Cambridge
2Introduction - COPE
- New Architecture For Wireless Mesh Networks
- Routers Forward Code (Mix) Packets
- Intelligent Mixing Improves Throughput
- Prior Work Theoretical Multicast
- This Study Practical Unicast
3COPE
- Coding Shim Between IP and MAC Layers
- Finds Coding Opportunities
- IDEA Benefits by Sending Multiple Packets in
Single Transmission
4COPE Simple Example
- Bob Alice
- Current Approach 4 Transmissions
- COPE 3 Transmissions
- Thus Allowing For Increased Throughput
- CodingMAC
5COPE Even Bigger Savings
- Previous Example Obvious Throughput Gains
- COPE Exploits Shared Nature of Wireless Medium
- Some Nodes Overhear Transmission
- Store These Packets for Short Time
- Sends Data Out Telling What It Has Heard
- This Data is Used For Opportunistic Coding
6Opportunistic Coding
- Each Node Uses Knowledge of What Its Neighbors
Have (Which Packets) - This Data Allows For Source to Send XORed
Packets Intelligently - In Other Words It Knows who Will Be Able to
Decode The Encoded Packet - Allows For More Than Two Flows
- Allows For Multiple Packets to be Coded
7COPE 2 Key Principles (1)
- COPE Embraces Broadcast Nature of Wireless
Channel - Typically Network Designers Use Point-to-Point
- Adaptations are Made To Use Forwarding and
Routing Techniques Native to Wired Networking - COPE Exploits Radio Broadcast (Does Not Attempt
to Hide It)
8Why is COPE Different?
- 1st System Architecture For Wireless Network
Coding - Implementation 1st Deployment of Wireless
Network Coding - Performance Study with Results of Wireless
Network Coding
9Summarized Findings
- Network Coding Can Improve Wireless Throughput
- When Congested with Mainly UDP Flows Throughput
Gains 3 - 4x - For Mesh Networks Connected to Internet via AP
Gains Depend on Total Download / Upload Traffic _at_
AP - w/o Hidden Terminals TCP Throughput Increases
about 38
10Background
- All Links Can Send One Message Per Unit of Time
- Sources Want to Hit Both Receivers
- Coding (Again) Increases Overall Throughput
11Background (cont.)
- Ahlswede et al. Pioneered Network Coding
- Routers That Mix Information Allow Communication
to Achieve Multicast Capacity - Li et al. Found For Multicast Linear Codes
Sufficient to Achieve Max Capacity Bounds
12Background (cont.)
- All Previous Work Theoretical Multicast
- Some Unicast Scenarios Show Better Throughput for
Those Scenarios - This Paper Seeks to Bridge the Gap Between
Network Coding, Practical Design - Seeks to Provide Operational Protocol
13COPE Overview
- Before Getting Into The Details Know These Terms
14COPE Overview
- 3 Main Techniques
- Opportunistic Listening
- Opportunistic Coding
- Learning Neighbor State
15COPE OverviewOpportunistic Listening
- Wireless is a Broadcast Medium
- Many Chances for Nodes to Overhear
- COPE Sets All Nodes as Promiscuous
- They Store Overheard Packets for Time (T)
- Default T .5 Seconds
- Also Reception Reports Are Sent Out
- These Are Tacked Onto Normal Output
- Includes Seq. Number of Stored Packets
16COPE OverviewOpportunistic Coding
- Which Packets do we Combine to Achieve Maximum
Throughput? - Simple Answer Send as Many (Native Packets) as
Possible While Ensuring Nexthop Has Enough Info
to Decode
17COPE OverviewOpportunistic Coding
- Always Seeking Largest N That Satisfies Above Rule
18COPE OverviewLearning Neighbor State
- Each Node Announces Its Stored Packets In
Reception Reports - Sometimes Reports Dont Get Through
- Congestion or In Times of Light Traffic
- To Solve This Problem Intelligent Guess
- Estimation of Probability That Neighbor Has
Packet Based On Delivery Probability
19COPEs Gains
- How Beneficial is COPE?
- Throughput Improvement Depends On
- Coding Opportunities
- Traffic Patterns
20COPEs GainsCoding Gain
- Coding Gain
- Transmissions w/o Coding to the Minimum
Transmissions w/ Coding - Remember Alice Bob?
- Coding Gain 4/3 1.33
21COPEs GainsCoding Gain
- Maximum Achievable Coding Gain?
- For Arbitrary Topologies - Open Question
- Authors Prove
-
- With Listening Certain Topologies Benefit
-
22COPEs GainCoding Gain
- Interesting to Note
- Previous Slide Talks About Theoretical Gain
- In Practice Gains Are Lower Due To
- Coding Opportunities
- Packet Header Overhead
- Medium Losses
- COPE Coding Gains Are Not Lost When Medium Is
Fully Utilized (as Opposed to Opportunistic
Routing)
23COPEs GainCodingMAC Gain
- Interaction Between Coding MAC
- Beneficial Results
- Example Bob Alice
- MAC Divides Bandwidth Between 3
- w/o Coding Router Sends 2 x More
- Makes Router a Bottleneck
- COPE Allows Routers Queue to Drain Fast
- Coding MAC Gain of Alice Bob 2
24COPEs GainCodingMAC Gain
25Making It Work - Packet Coding Algorithm
- Packets Are Never Delayed
- If There Is Nothing To Code With, Send Anyway
- Preference to XOR with Similar Lengths
- Small Packet XOR with Large Less Bandwidth
- If One Must XOR Different Lengths - Pad
- Never Code Packets to Same Nexthop
26Making It Work - Packet Coding Algorithm
- Searching For Appropriate Packets to Code is
Efficient - FIFO Output Queue
- De-queue, Small or Large?, Look at Appropriate
Queues (Only Heads to Avoid Reordering) - Worst Case - Looks _at_ 2M Packets (M Neighbors)
- Packet Reordeing Bad (TCP Thinks Congestion)
- Doesnt Happen Much But If so They Are Put in
Order Before Transport Layer
27Making It Work - Packet Coding Algorithm
- Finally Relay Nodes All Estimate Probability That
Neighbor Has Packet Prior to Sending
- PD Must Stay Higher Than Threshold G (G 0.8
Default) - If Equation Is Above G Each Nexthop Has
Probability G of Being Able to Decode Next Packet
28Making It Work - Packet Decoding
- Fairly Simple
- Each Node Maintains a Packet Pool
- Searches Hash Table Keyed on Packet ID
- XORs Native Packets with Coded Packets
- Gets Packet Meant For It (Node)
29Making It Work -Pseudo-Broadcast
- 802.11 Has Two MAC Modes
- Unicast
- Broadcast
- Unicast
- Packets Are Ack-ed
- Exponential Backoff
- Multicast
- Un-Reliable
- No Backoff
30Making It Work -Pseudo-Broadcast
- Pseudo-Broadcast
- Piggy Backs Unicast
- Link-Layer Destination Set to One Intended Node
- XOR Header Added
- Other Nodes Can Overhear Transmission
- If Receiving Node is Nexthop - Continue
- Else Store Packet in Buffer
- More Reliable Than Pure Broadcast
- Packets Have Several Tries To Get To Destination
- Snooping Nodes Get More Chances to Update Their
Buffers
31Making It Work - Hop-by-Hop ACKs and
Retransmissions
- (Again) Encoded Packets Require All Nexthops to
Acknowledge Receipt of Native Packet - Packets Headed Many Places Only Link Layer
Designated Hop Returns Synchronous ACK - COPE May Guess Node Has Enough Info to Decode
When it Really Does Not
32Making It Work - Hop-by-Hop ACKs and
Retransmissions
- When a Node Sends an Encoded Packet It Schedules
a Retransmission Event For Each Encoded Native
Packet - If Any Packet is Not Ack-ed within Some Threshold
(Time) That Native Packet is Encoded and Re-Sent
Later - Nexthops Receive Packets and schedule an ACK Upon
Decoding via Header (or Control Packets which are
also Used for Reception Reports) cumulative ACKs
33Making It Work - TCP Packet Reordering
- Asynchronous ACKs Can Cause Packet Reordering
- TCP May See This As Congestion
- COPE Has Ordering Agent
- For Each TCP Flow Ending _at_ Host
- Maintains Packet Buffer
- Records Last TCP Sequence Number
- Will Not Pass On Packets to Transport Layer Until
No Hole Exists or Timer Times Out
34Implementation Details Packet Format
- Variable Length Coding Header
- Only Shaded Fields Below Required
35Implementation Details Packet Format
- First Block Metadata For Decoding
- ENCODED_NUM Encoded
- For Each Packet PKT_ID (Dest. IP Seq. )
- MAC of Nexthop (For Each Native Packet)
- Reception Reports
- REPORT_NUM of Reports
- SRC_IP Source of Reported Packets
- Last_PKT Last Packet Heard From Source
- Bit Map of Recently Heard Packets
36Implementation Details Packet Format
- Asynchronous ACKs
- Cumulative ACKs on Per Neighbor Basis
- Local Sequence Numbers Established
- ACK Headers Start With of ACKs
- Each ACK Starts with MAC of Neighbor
- Next Each ACK Has Pointer to End of Cumulative
ACKs - Finally, Bit Map Shows Missing Packets
37Implementation Details Control Flow
38Experimental Results
- 20 Node Wireless Testbed
- Following Slides Will Show
- When Many Random UDP Flows
- Throughput 3 - 4x Increase
- Traffic Does Not Use Congestion Control
- Throughput Improves - Exceeding Coding Gain
- Mesh Network -gt Internet via Gateway
- Throughput Improvement Between 5 - 70
- w/o Hidden Terminals TCPs Gain Agrees With
Expected Coding Gain
39Experimental Results Testbed
- 20 Node Wireless Network
- Two Floors Connected by Open Lounge
- Offices, Passages, Etc.
- Paths Btw 1 6 Hops
- Loss Rate Btw 0 - 30
- 802.11a _at_ 6 Mb/s
40Experimental Results Testbed
- Nodes Ran Linux / Used Click Toolkit
- Runs as User Space Daemon
- Applications Interact With Daemon as Normally
Would With Any Network Device - Testbed Used Srcr Routing Protocol
- Djikstras Shortest Path Algorithm
- Each Node Had 802.11 Card w/ Omni-Directional
Antenna - 802.11 Ad Hoc Mode w/ RTS / CTS Disabled
- udpgen ttcp Used to Generate Traffic
- Long-live Flows Attempt to Match Internet
Traffic
41Metrics
- Network Throughput
- End-to-End Throughput
- Throughput Gain
- Ratio of Measured Network Throughputs With and
Without COPE - What Else Might Have Been Interesting?
42COPE in Gadget Topologies
- Toy Topologies
- Very Small Loss Rate No Hidden Terminals (40
Different Runs) - Long-Lived TCP Flows
- Close To Expected (Minus Overhead)
43COPE in Gadget Topologies
- Above Results Show That w/ Congestion Control
Results Lean Towards Coding Gain Rather than
CodingMAC - When Many Long-Lived Flows (TCP) Bottleneck
Senders Backoff (to Avoid Drop) - This Leaves only Coding Gains
44COPE in Gadget Topologies
- Repeat of Above w/ UDP
- CodingMAC Gains (Better Than TCP)
- Coding Allows Downstream Routers to Avoid
Dropping Packets Already Having Consumed
Bandwidth
45COPE in an Ad Hoc Network
- Here it is 20 Node Wireless Testbed
- TCP
- TCP Flows Arrive w/ Poisson Process
- Pick Sender Receiver Randomly
- Traffic Models Internet
- No Significant Improvement (2-3)
- Hidden Terminals are Culprit
- Many Retransmissions
- Queues _at_ Bottlenecks Never Build Up
- Therefore No Coding Gains (or Opportunities)
- Would TCP Do Better w/o Collisions?
46COPE in an Ad Hoc Network
- Compressed Topology
- Within Carrier Sense Range
- Artificially Impose Original Loss Rates
- Hidden Terminals No More
- At Peak 38 Gain Over No Coding
47COPE in an Ad Hoc Network
- UDP (Back to Large Scale Testbed)
- (Again) Random Sender / Receiver
- File Size Follows Internet Studies
- 500 Experiments
48COPE in an Ad Hoc Network
- Scare Coding Opp. At Low Demands
- Demand Up / Congestion Up / Gain Up
49COPE in a Mesh Access Network
- Growing Interest In Accessing Internet Via
Multi-hop Network With One (or More) Gateways - Nodes Divided Into 4 Sets (1 is Gateway)
- UDP Flows (Of Course)
- Fluctuate Upload / Download Traffic
- Gain Goes Up as Upload Traffic Up
50COPE in Mesh Access Network
51Fairness
- Channel From Source to Bottleneck Matters
- Capture Effect (If Alices Channel is Bad Then
Bob Might Push More Traffic) - If Alice Moves Slowly Away?
- Coding Opp. Down, Throughput Down, Fairness Down
- w/o Coding Throughput Goes Up
- Coding Aligns Fairness Efficiency
52Fairness
53Conclusions
- Coding is an Old Theme
- COPE Has Potential to Largely Increase Network
Throughput - COPE Assists Many Random UDP Flows Best
- No Congestion Control Is a Good Thing
- No Hidden Terminals Is Good As Well (Even for
TCP) - Mesh Networks Connected to Internet via AP - COPE
Shows Gains From 5 - 70 - Many Extensions - Sensor Networks? Cellular?