High Performance Switching and Routing Telecom Center Workshop: Sept 4, 1997. The Importance of Being Opportunistic Sachin Katti Dina Katabi, Wenjun Hu, Hariharan Rahul, and Muriel Medard
Bandwidth is scarce in wireless Can we send more while consuming less bandwidth?
Current Approach Relay Alice A lice s p acket B o b s p acket Requires 4 transmissions Can we do it in 3 transmissions? Bob B o b s p acket A lice s p acket
A Network Coding Approach Relay Alice A lice s p acket B o b s p acket Bob B o b s p acket A lice s p acket 3 transmissions instead of 4 Save bandwidth
Network Coding Routers mix bits in packets, potentially from different flows Theoretically shown to achieve capacity for multicast No concrete results for unicast case
How to apply network coding? State-of-the Art Multicast Given Sender & Receivers R S R Given Flow Rate & Capacities R Min-Cost Flow Optimization Find the routing, which dictates the encoding
How to apply network coding? State-of-the Art Multicast Given Sender & Receivers Given flow rate & capacities In Practice Unicast Many Unknown Changing Sender & Receivers Unknown and bursty flow rate Min-Cost Flow Optimization Find the routing, which dictates the encoding?
How to apply network coding? State-of-the Art Multicast Given Sender & Receivers Given flow rate & capacities In Practice Unicast Many Unknown Changing Sender & Receivers Unknown and bursty flow rate Min-Cost Flow Optimization Find the routing, which dictates the encoding Opportunism
Opportunism (1) Opportunistic Listening: o Every node listens to all packets o It stores all heard packets for a limited time
Opportunism (1) Opportunistic Listening: o Every node listens to all packets o It stores all heard packets for a limited time A D B
Opportunism (1) Opportunistic Listening: o Every node listens to all packets o It stores all heard packets for a limited time o Node sends Reception Reports to tell its neighbors what packets it heard Reports are annotations to packets If no packets to send, periodically send reports
Opportunism (2) Opportunistic Coding: o Each node uses only local information o Use your favorite routing protocol o To send packet p to neighbor A, XOR p with packets already known to A Thus, A can decode o But how to benefit multiple neighbors from a single transmission?
Efficient Coding A C D B Arrows show next-hop
Efficient Coding Bad Coding C will get RED pkt but A can t get B LU E pkt A C D B Arrows show next-hop
Efficient Coding Better Coding Both A & C get a packet A C D B Arrows show next-hop
Efficient Coding Best Coding A, B, and C, each gets a packet A C D B To Arrows XOR n packets, show next-hop each next-hop should have the n-1 packets encoded with the packet it wants
But how does a node know what packets a neighbor has? Reception Reports But reception reports may get lost or arrive too late Use Guessing o If I receive a packet I assume all nodes closer to sender have received it
Putting It Together A C D B
Putting It Together A C D B
Putting It Together A C D B D on t reorder packets in a flow Keeps TCP happy No scheduling No packet is delayed
Beyond Fixed Routes B heard S s transm ission S S transmits A B No need for A transmission Route Chosen by Routing Protocol D Opportunistic Routing [BM05] Piggyback on reception report to learn whether next-hop has the packet cancel unnecessary transmissions
Opportunism Unicast Flows arrive and leave at any time No knowledge of rate No assumption of smooth traffic O A B N C F K M D G E
Performance
Emulation Environment We use Emstar o R eal code sim ulator o 802.11 radios o Power Level: 200mW o 11Mbps bit rate o Simulated radio channel
Recall Our Simple Experiment XOR Relay Alice A lice s p acket B o b s p acket Bob B o b s p acket A lice s p acket 3 transmissions instead of 4 25% throughput increase
1 Throughput (KB/s) 500 400 300 200 100 No Coding 330 KB/s XOR 270 KB/s 0 Practical artifacts make network coding perform poorly Network coding requires broadcast But 802.11 broadcast has no backoff more collisions
Ideally, design a back-off scheme for broadcast channels In practice, we want a solution that works with off-the-shelf 802.11 drivers/cards Our Solution: Pseudo Broadcast Piggyback on 802.11 unicast which has synchronous Acks and backoff o Each XOR-ed packet is sent to the MAC address of one of the intended receivers
1 XOR with Pseudo-Broadcast Improves Throughput Throughput (KB/s) 500 400 300 200 No Coding 330 KB/s XOR with Pseudo-Broadcast 495 KB/s XOR 270 KB/s 100 0 Improvement is more than 25% because 802.11 MAC gives nodes equal bandwidth shares Without coding, relay needs twice as much bandwidth With coding, all nodes need equal bandwidth
Larger experiment 100 nodes 800mx800m Senders and receivers are chosen randomly Metric: Total Throughput of the Network
Opportunistic Coding vs. Current Network Throughput (KB/s) 1200 1000 800 600 400 200 0 Opp. Coding Our Scheme Opp. Coding (no guessing) No Coding No Coding A Unicast Network Coding scheme that works 1 4 7 10 13 16 19 22 25 28 31 34 37 40 43 46 49 52 55 58 well in No. realistic of flows situations
Preliminary Implementation Results Linux Kernel 802.11 MAC Click Elements (part of Roofnet) Only Opportunistic Coding & Pseudo Broadcast (No opportunistic Listening) Relay Alice Bob
Ratio of throughput with coding to without coding 2 1.8 1.6 1.4 1.2 Implementation Results 1 1 2 5.5 11 Network Coding Doubles the Throughput 802.11 Bit Rates (Mb/s)
Conclusion First implementation of network coding in a wireless network Learned Lessons o Be opportunistic (greed is good!) o Can do a good job with multiple unicast o 5x higher throughput in congested networks o Preliminary implementation results show throughput doubles
The Wireless Environment Multi-hop wireless networks (e.g., Roofnet)
Opportunistic Coding vs. Current Network Throughput (KB/s) 1200 1000 800 600 Our Scheme 400 200 No Coding 0 A Unicast Network Coding scheme that works 1 4 7 10 13 16 19 22 25 28 31 34 37 40 43 46 49 52 55 58 well in No. realistic of flows situations