120 likes | 233 Views
Client Side Mirror Selection. Will Lefevers CS 526 Advanced Internet and Web Systems. Client Side Mirror Selection. Defining Success Hurdles To Overcome Selecting a Mirror The Ideal Metric Implementation Alternatives. Defining Success. What Defines Good? Speed(?)
E N D
Client Side Mirror Selection Will Lefevers CS 526 Advanced Internet and Web Systems
Client Side Mirror Selection • Defining Success • Hurdles To Overcome • Selecting a Mirror • The Ideal Metric • Implementation • Alternatives
Defining Success • What Defines Good? • Speed(?) • Connection Stability • Burstability • Cost • Characteristics of Download Mirrors • Large Files / Heavy Loads • Longer-Term Connections
Hurdles To Overcome • Backbone Issues • Congestion • Routing Efficiency • Geographical Distance And The Speed of Light • Abilene Class (OC-48) Example • Local ISP Issues • Distance to Pipe/Backbone • BGP and IOS Efficiency • Multihoming /Peering Configurations • Poor Design and Congestion
More Hurdles To Overcome • MAN/LAN Issues • Poor Design (Least Standardization / Planning / Investment) • Congestion (Least Concern for Scalability) • Hubs Versus Switching(Topo-Specific) • Collision Domains • Tokens and Congestion (Long Delays) • The Weakest Link • MTR Example
Selecting a Mirror • Random (User Selection) • Geographic Proximity -- Normally Misleading • TLD/”Name Brand” -- Routes or Topography? • Latency / Ping Alone -- Fast Server, No Pipe • Throughput Alone -- Heavy Load, Unresponsive • Connection Stability -- RTT Variance • Backbone Packet Loss – User Will Feel It • Reachability – Sometimes Up, Sometimes Down
Selecting a Mirror • Infrastructure Methods • Router's Pick (Cisco IOS and certain BGPs only) • Helper Services and Servers (NLANR) • Edge Servers and Caching (Akamai) • Criteria for Mirrors • Ability to Fill the Pipe (Most Efficient Delivery) • Ability to Recover From Congestion (Lost Packets) • Because of the OSI Model's Encapsulation, All Problems Have The Same Symptom
The Ideal Metric • Bandwidth-Delay Product (BDP) • “Bottleneck” Link Bandwidth • Round Trip Time (RTT) • Ideal for Longer Distance Connections (Bing) • Overcomes TCP Issues: • Reliability and the TCP Window • Default TCP Buffers (OS) and Socket Buffers (App) • Window Scaling, TCP Autotuning, MTU Path Discovery Will All Help
Implementation • The Common Case: Javascript • Estimating BDP • BING-like w/ Different Size ICMP Echo Requests • Privileges and Abuse • Shortcuts (Ping + Download Test) • Small Files Aren’t Representative • Large Files Aren’t Fast • Is There An Ideal Size? • Which File Do We Test?
Implementation • Read In Mirrorlist and Strip • Check Which Servers Are Up • Record RTTs and Create Preferred List • Throughput-Test the Fastest Five Servers • Stack Results by BDP and Start D/L w/ Fastest • Fallback Capability? • Recheck Servers Periodically? • Network ‘Weather’ Awareness?
Alternatives to Mirrors • Swarming Technologies (Torrents) • Compression With Rsync, Sftp, Scp • Multi-Source/Partial Downloads (Getright, Gnutella) • Distributed Fileshares (Freenet) • Sneakernet…
Client Side Mirror Selection • Defining Success • Hurdles To Overcome • Selecting a Mirror • The Ideal Metric • Implementation • Alternatives Questions?