Preface Introduction I: BACKGROUND 1: Network Layers and Protocols The ISO/OSI Reference Model Network Components at Different Layers Overview of Internet Protocols 2: The Internet Protocol and Routing Addressing IP Datagram Header Routing Routing within ASs Routing between ASs Multicast 3: Layer 4: Transmission Control Protocol Segment Header Opening a Connection Closing a Connection Flow Control Congestion Control Retransmission 4: Application Protocols for the Web Uniform Resource Locators The Domain Name System Name Hierarchy The DNS Protocol The HyperText Transfer Protocol The HTTP Request The HTTP Response The HTTP Message Exchange Hyperlinks and Embedded Objects 5: HTTP Support for Caching and Replication Conditional Requests Conditional Headers Used for Caching Conditional Headers Used for Replication Age and Expiration of Cached Objects Request Redirection Range Requests The Cache-Control Header Cache-Control Header Directives in Requests Cache-Control Header Directives in Responses Example of Using the Cache-Control Header Storing State for a Stateless Server: Cookies Support for Server Sharing Expanded Object Identifiers Learning the Proxy Chain Cacheability of Web Content 6: Rules of Thumb of Web Behavior Evaluation Methods Live Measurements Trace-Based Methods Benchmarking Object Size Object Types and Cacheability Object Popularity Locality of Reference Temporal Locality Spatial Locality Rate of Object Modifications Other Observations II: WEB CACHING 7: Proxy Caching: Realistic Expectations Do Proxy Caches Deserve a Hearing? Latency Reduction An Optimistic Bound on Latency Reduction A Pessimistic View of Latency Reduction TCP Connection Caching Connection Caching versus Data Caching TCP Connection Splitting Environment-Specific TCP Optimizations Bandwidth Savings Proxies and Streaming Media 8: Proxy Deployment Overview of Internet Connectivity Architectures Nontransparent Proxy Deployment Explicit Client Configuration Browser Autoconfiguration Proxy Auto-Discovery Transparent Proxy Deployment Multipath Problem Interception Mechanisms Layer-4 Switch as an Intercepter Router as an Intercepter Layer-7 Switch as an Intercepter Intercepting Link Performance Pitfalls Security and Access Control Issues Proxies and Web Server Access Control Proxies and Security 9: Cooperative Proxy Caching Shared Cache: How Big Is Big Enough? Issues in Cooperative Proxy Caching Location Management Broadcast Queries Hierarchical Caching URL Hashing Directory-Based Cooperation Directory Structures Caching on a Global Scale: Proxy Pruning System Model Cache Routing Vicinity Caching An Overview of Existing Platforms (Squid) Cache Hierarchies Caching as a Service of a Network Exchange Point Satellite Broadcast Networks 10: Cache Consistency Cache Validation The Basic Validation Scenario Implicit Time-to-Live Fine-Tuning Validation Asynchronous and Piggybacked Cache Validation Cache Invalidation Leases Subscriptions Delayed vs Immediate Updates Volumes Volume Lease Protocols Piggybacked and Delayed Invalidation Invalidation in Cache Routing Issues in Cooperative Cache Consistency Validation with Cooperative Proxies Nonmonotonic Delivery Problem 11: Replacement Policy Replacement Policy Metrics Replacement Policy Algorithms The Value of Replacement Policy 12: Prefetching Performance Metrics Performance Bounds of Prefetching Taxonomy Non-Data Prefetching Nontransparent Prefetching User Nontransparency Server Nontransparency Server Push versis Client Pull Information Used in Prefetching Algorithms User-Specific Information Group Information Multi-User Information Prediction Algorithms Popularity-Based Predictions Markov Modeling Examples of Algorithms using First-order Markov Modeling Exploiting Longer Request Sequences Structure Algorithms 13: Caching the "Uncacheable" A Note on Implementation Modified Content and Stale Delivery Avoidance Cache-Friendly Approaches to Stale Delivery Avoidance Utilizing Cached Stale Content Cookied Content Cache-Friendly Usage of Cookies Caching Cookied Content The Semantic Transparency Issue Expressly Uncacheable Content and Hit Metering Cache-Friendly Approaches to Hit Metering Caching Expressly Uncacheable Content Dynamic Content Cache-Friendly Design of Dynamic Content Base Instance Caching Template Caching Base Instance Caching vs Template Caching Active Proxies III: WEB REPLICATION 14: Basic Mechanisms for Request Distribution Content-Blind Request Distribution with Full Replication Client Redirection Redirection by a Balancing Switch Redirection by a Web Site's DNS System Anycast Content-Blind Request Distribution with Partial Replication Using Surrogates as Server Replicas Back-End Distributed File Systems Content-Aware Request Distribution Client Redirection by a Java Applet HTTP Redirection Redirection by an L7 Switch Fine-Granularity Domain Names 15: Content Delivery Networks Types of CDNs Delivering Requests to a CDN Finding Origin Servers Request Distribution in CDNs DNS/Balancing Switch Redirection Two-Level DNS Redirection Anycast/DNS Redirection Pitfalls of DNS-Based Request Distribution Fine-Tuning DNS Request Distribution Post-DSN Request Distribution by Triangular Communication Post-DNS Request Distribution with HTTP Redirect and HTML Rewrite Data Consistency in CDNs Streaming Content Delivery Using Multicast for Streaming Content Delivery Using Application-Level Multicast for Streaming Content Delivery Constructing a Distribution Tree Supporting Secure Content Access SSL Overview Performance Impact of Supporting SSL in a CDN Key Management Content Retrieval from the Origin Server 16: Server Selection Metrics Proximity Metrics Server Load Metrics Aggregate Metrics Internet Mapping Services Aging of Metrics Algorithms Obtaining Passive Measurements Avoiding Oscillations Supporting Client Stickiness Respecting the Affinity of Server Caches Server Selection with Multiple Metrics DNS-Based Server Selection A Typical DNS Server Selection Scheme Estimating Hidden Load Factors Why Choose a Server When You Can Have Them All? IV: FURTHER DIRECTIONS 17: Adding Value at the Edge Content Filtering Content Transcoding Watermarking Custom Usage Reporting Implementing New Services with a Proxy API The ICAP Protocol Distributing Web Applications How to Replicate Applications Where to Replicate Applications 18: Content Distribution Internetworking Pros and Cons of CDIs Request Distribution Content Distribution Accounting