CMU Speaking Skills Talk Ditto: Eavesdropping for the Common Good in Multi-hop Wireless Networks Amar Phanishayee Fahad Dogar, Himabindu Pucha, Olatunji Ruwase, Dave Andersen Carnegie Mellon University Carnegie Mellon University Computer Science Department 1 Wireless Networks Cable Modem Wired Link Wireless Router Wireless Link Access-Point Based (Single Wireless Hop) Carnegie Mellon University Computer Science Department 2 Wireless Networks Gateway No Infrastructure Cost Effective, Greater Coverage Poor throughput Multi-hop Wireless (Mesh) Networks Carnegie Mellon University Computer Science Department 3 Hop Count Affects Throughput 0.2Mbps 0.5Mbps 3.2Mbps Median • Pairwise transfers in a 28 node campus testbed • More hops slower transfers (low throughput) Carnegie Mellon University Computer Science Department 4 Ditto: Key Contributions Ditto improves throughput by reducing hop count to acquire commonly requested data Caching of overheard data Also cache data on the path of a transfer Application independent caching Ditto improves throughput (on 2 testbeds) Up to 7x better than on-path caching Up to 10x better than no caching Carnegie Mellon University Computer Science Department 5 Caching In Ditto Helps Speed Transfers A2 A1 Gateway Request A3 Response Cached copy Path of the transfer: Alice--A1--A2--Gateway A1 and A2 -- on-path caching A3 -- opportunistic caching On-Path + Opportunistic Caching Ditto Carnegie Mellon University Computer Science Department 6 Outline Overview Why poor throughput in mesh networks? Ditto’s Design Evaluation Future Work Carnegie Mellon University Computer Science Department 7 Interference Transmit Range: Range in which router’s transmission can be fully decoded Interference Range: Range in which router’s transmission can interfere but may not be fully decoded Interference: Receivers in Interference Range cannot decode simultaneous transmissions Carnegie Mellon University Computer Science Department 8 Avoiding Interference: Don’t Transmit If You Know Others Are Transmitting one at a time avoids interference Carnegie Mellon University Computer Science Department 9 Subsequent Wireless Hops Interfere D1 D2 D1 A1 A2 A3 Gateway • Subsequent Hops Interfere D1’s transmission from A2 to A3 stalled • Cause for poor throughput in mesh networks Carnegie Mellon University Computer Science Department 10 Mesh Networks Have Poor Throughput • Some links have a high loss rate • Subsequent hops interfere with each other • More hops slower transfers (low throughput) • Gateway is a bottleneck Gateway A2 A3 A1 Carnegie Mellon University Computer Science Department 11 Outline Overview Why poor throughput in mesh networks? Ditto’s Design Opportunities to improve throughput How does Ditto utilize these opportunities? Evaluation Future Work Carnegie Mellon University Computer Science Department 12 Opportunities To Improve Throughput Locality in access patterns Many clients from different parts of the network request the same data over time e.g. Operating System Updates, Streaming video Wireless routers can overhear other transfers The positive aspect of broadcast Looks like a job for … Opportunistic Caching Carnegie Mellon University Computer Science Department 13 Challenge: Lossy Overhearing Wireless networks have high loss rates Loss recovery: link layer retransmissions Overhearing node also experiences losses Losses independent of that at Receiver Cannot ask for retransmissions Successfully overhearing a large file is unlikely A2 A1 1 22 A2 A1 1 2 1 2 A3 Carnegie Mellon University Computer Science Department 14 Chunk Based Transfers Lossy overhearing cannot overhear entire file Smaller caching granularity Divide file into smaller chunks (8 – 32 KB) Use chunk as a unit of transfer Ditto uses Data Oriented Transfer (DOT)1 for chunk based transfers 1 Tolia et al, An Architecture for Internet Data Transfer. NSDI 2006. Carnegie Mellon University Computer Science Department 15 A Ditto Transfer Cryptographic Hash Chunking foo.txt chunkID1 chunkID2 chunkID3 Receiver Sender Request – foo.txt App App Response: chunk ids{1,2,3} chunk ids chunk ids Chunk request request request DITTO DITTO Chunk response Carnegie Mellon University Computer Science Department Ditto Proxy response Ditto Proxy response 16 Proxy Serves Chunk Request Directly If Chunk In Local Cache Chunk Request Proxy Proxy Proxy Chunk Response Cache Carnegie Mellon University Computer Science Department 17 Proxy Routes Request Towards Gateway If Chunk Not In Cache Chunk Request Proxy Chunk Request Proxy Chunk Response Separate TCP connection on each hop Proxy Chunk Response Cache GW Next Hop Next-Hop based on routing table information On-Path Caching Carnegie Mellon University Computer Science Department 18 Sniffer Module Caches Overheard Chunks Sniffer Overhear and reassemble streams Identify chunks in streams Handoff entire chunk to proxy for caching Proxy Cache Opportunistic Caching Carnegie Mellon University Computer Science Department 19 Outline Overview Why poor throughput in mesh networks? Ditto’s Design Why caching, overhearing? Chunk based transfers and caching How does Ditto overhear and reconstruct chunks? Evaluation Future Work Carnegie Mellon University Computer Science Department 20 Sniffer Module Reassembles Overheard Streams Path of the transfer: Alice – A1 – A2 … A2 A1 A3 (Overhearing) • Stream identification & placement within the stream • Next Steps: identify chunk Carnegie Mellon University Computer Science Department 21 Chunk Identification Path of the transfer: Alice – A1 – A2 … Look for Ditto header A2 Chunk Boundaries A1 C1 A3 (Overhearing) • What if there were losses within the overheard chunk? Carnegie Mellon University Computer Science Department 22 Optimization: Inter-Stream Chunk Reassembly A2 A1 Look for Ditto header C1 Chunk Boundaries • Sniffer identifies the same chunk across streams • Correlates and fills in the blanks Carnegie Mellon University Computer Science Department 23 Outline Overview Why poor throughput in mesh networks? Ditto’s Design Evaluation Reconstruction Efficiency Transfer Throughput Future Work Carnegie Mellon University Computer Science Department 24 Emulab Indoor Wireless Testbed Carnegie Mellon University Computer Science Department 25 MAP Campus Testbed (Purdue Univ.) 28 node Indoor/Outdoor Campus-wide Mesh Network 11 Gateway Carnegie Mellon University Computer Science Department 26 Experiment Can we overhear complete chunks? Receiver • A receiver initiates transfer • 1MB file, 8KB chunks • Observers report % of chunks reconstructed • Receiver reports throughput • Caches are cleared & next node becomes a receiver • If n nodes in network, [n* (n - 1)] observers in all 0 Observer 10 0 30 100 90 80 100 100 100 50 20 0 0 0 0 Carnegie Mellon University Computer Science Department 0 27 Overhearing Complete Chunks Is Feasible Around 30% of the observers reconstruct at least 50% chunks Complete chunks overheard (%) For any transfer, ~30% of the nodes can overhear a large fraction of the chunks Carnegie Mellon University Computer Science Department 28 Complete chunks overheard (%) Nodes farthest from the gateway & transfer paths overhear nothing Carnegie Mellon University Computer Science Department 29 31 12 19 11 Gateway 25 18 Carnegie Mellon University Computer Science Department 30 Complete chunks overheard (%) Nodes closer to the gateway & transfer paths overhear effectively Carnegie Mellon University Computer Science Department 31 Shield the gateway from becoming a bottleneck 14 34 11 30 5 Gateway Carnegie Mellon University Computer Science Department 32 Factors Affecting Chunk Reconstruction Factor Insight Proximity Nodes closer to gateway overhear more chunks. Can shield the gateway from becoming a hotspot. Chunk Size Smaller Chunk Size Better Reconstruction 8 KB provides good reconstruction efficiency with low overhead. Carnegie Mellon University Computer Science Department 33 Experiment: Throughput Evaluation Receiver Observer • Leaf nodes are receivers • A receiver initiates transfer • reports throughput • Next receiver downloads the same file Carnegie Mellon University Computer Science Department 34 Opportunistic Caching >> On-path Caching Receiver On-path Caching Overhearing & Caching Carnegie Mellon University Computer Science Department 35 Throughput Improvement Using Ditto Median ~900 Kbps No Caching Log Scale! Carnegie Mellon University Computer Science Department 36 Throughput Improvement Using Ditto ~1200Kbps Median ~900 Kbps No Caching Log Scale! Carnegie Mellon University Computer Science Department 37 Throughput Improvement Using Ditto ~1200Kbps ~900 Kbps 9000 Kbps Median No Caching Log Scale! Opportunistic caching >> On-path caching > No caching Carnegie Mellon University Computer Science Department 38 Future Work Support for mobility Alternate proxy selection techniques Application specific Ditto gateways Carnegie Mellon University Computer Science Department 39 Conclusion Ditto improves throughput by reducing hop count to acquire commonly requested data Caching of overheard data Also cache data on the path of a transfer Chunk based transfer, inter-stream chunk reconstruction Ditto improves throughput (on 2 testbeds) Up to 7x better than on-path caching Up to 10x better than no caching Carnegie Mellon University Computer Science Department 40 Thank you! Carnegie Mellon University Computer Science Department 41