410 likes | 421 Views
This research paper explores Ditto, a system that improves throughput in multi-hop wireless networks by reducing hop count and implementing caching of overheard data. It also discusses the challenges of poor throughput in mesh networks and the opportunities for improvement.
E N D
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
Wireless Networks Cable Modem Wired Link Wireless Router Wireless Link • Access-Point Based • (Single Wireless Hop)
Wireless Networks Gateway • No Infrastructure • Cost Effective, Greater Coverage • Poor throughput • Multi-hop Wireless (Mesh) Networks
Hop Count Affects Throughput • 0.2Mbps • Median • 0.5Mbps • 3.2Mbps • Pairwise transfers in a 28 node campus testbed • More hops slower transfers (low throughput)
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
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-pathcaching A3 -- opportunisticcaching On-Path + Opportunistic Caching Ditto
Outline • Overview • Why poor throughput in mesh networks? • Ditto’s Design • Evaluation • Future Work
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
Avoiding Interference: Don’t Transmit If You Know Others Are • Transmitting one at a time avoids interference
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
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 A3 A2 A1
Outline • Overview • Why poor throughput in mesh networks? • Ditto’s Design • Opportunities to improve throughput • How does Ditto utilize these opportunities? • Evaluation • Future Work
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
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 A2 A1 A1 2 1 2 1 2 2 1 A3
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.
A Ditto Transfer chunkID3 Cryptographic Hash Chunking chunkID1 foo.txt chunkID2 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 response response Ditto Proxy Ditto Proxy
Proxy Serves Chunk Request Directly If Chunk In Local Cache Chunk Request Proxy Proxy Proxy Chunk Response Cache
Proxy Routes Request Towards Gateway If Chunk Not In Cache Chunk Request Chunk Request Proxy Proxy Proxy Chunk Response Chunk Response Separate TCP connection on each hop Cache GW Next Hop Next-Hop based on routing table information On-Path Caching
Sniffer Module Caches Overheard Chunks • Overhear and reassemble streams • Identify chunks in streams • Handoff entire chunk to proxy for caching Sniffer Proxy Cache Opportunistic Caching
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
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
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?
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
Outline • Overview • Why poor throughput in mesh networks? • Ditto’s Design • Evaluation • Reconstruction Efficiency • Transfer Throughput • Future Work
MAP Campus Testbed (Purdue Univ.) 28 node Indoor/Outdoor Campus-wide Mesh Network 11 Gateway
ExperimentCan 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 0
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
Nodes farthest from the gateway & transfer paths overhear nothing Complete chunks overheard (%)
31 12 19 11 Gateway 25 18
Nodes closer to the gateway & transfer paths overhear effectively Complete chunks overheard (%)
Shield the gateway from becoming a bottleneck 14 34 11 30 5 Gateway
Experiment: Throughput Evaluation Receiver • Leaf nodes are receivers • A receiver initiates transfer • reports throughput • Next receiver downloads the same file Observer
Opportunistic Caching >> On-path Caching Receiver On-path Caching Overhearing & Caching
Throughput Improvement Using Ditto • Median • ~900 Kbps • No Caching • Log Scale!
Throughput Improvement Using Ditto • ~1200Kbps • Median • ~900 Kbps • No Caching • Log Scale!
Throughput Improvement Using Ditto • ~1200Kbps • Median • 9000 Kbps • ~900 Kbps • No Caching • Log Scale! Opportunistic caching >> On-path caching > No caching
Future Work • Support for mobility • Alternate proxy selection techniques • Application specific Ditto gateways
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