Table of Contents
- Foreword
- Preface
- About this book
- Conventions used in the book
- Safari? Books Online
- How to contact Us
- Content Updates
- I. Networking 101
- 1. Primer on Latency and Bandwidth
- speed is a feature
- the many components of Latency
- speed of Light and Propagation Latency
- last-mile Latency
- Bandwidth in Core Networks
- bandwidth at the Network Edge
- delivering higher Bandwidth and Lower latencies
- 2. Building Blocks of TCP
- three-way handshake li>
- congestion avoidance and Control
- flow control
- slow-start
- congestion avoidance
- bandwidth-delay Product
- head-of-line Blocking
- optimizing for TCP
- tuning Server Configuration
- tuning application Behavior
- performance checklist
- 3. Building Blocks of UDP
- Null Protocol Services
- UDP and Network Address translators
- Connection-state Timeouts
- NAT traversal
- STUN, TURN, and ICE
- Optimizing for UDP
- 4. Transport Layer Security (TLS)
- Encryption, authentication, and Integrity
- TLS handshake
- RSA, Diffie-hellman and Forward secrecy
- Application Layer Protocol Negotiation (ALPN)
- Server Name Indication (SNI)
- TLS Session Resumption
- Session Identifiers
- Session Tickets
- Chain of Trust and Certificate authorities
- Certificate Revocation
- Certificate Revocation List (CRL)
- Online Certificate Status Protocol (OCSP)
- TLS Record Protocol
- Optimizing for TLS
- Computational Costs
- Early termination
- Session Caching and stateless resumption
- TLS False Start
- TLS Record Size
- TLS Compression
- Certificate-chain Length
- OCSP stapling
- HTTP Strict Transport Security (HSTS)
- Performance checklist
- Testing and verification
- ii. performance of Wireless Networks
- 5. Introduction to Wireless Networks
- ubiquitous Connectivity
- types of Wireless Networks
- Performance Fundamentals of Wireless Networks
- bandwidth
- signal Power
- modulation
- measuring real-world Wireless performance
- 6. WiFi
- From Ethernet to a Wireless LAN
- WiFi Standards and Features
- Measuring and optimizing WiFi performance
- Packet Loss in WiFi Networks
- Optimizing for WiFi Networks
- Leverage Unmetered Bandwidth
- Adapt to Variable Bandwidth
- Adapt to Variable Latency
- 7. Mobile Networks
- Brief History of the G ' s
- First Data Services with 2G
- 3GPP and 3GPP2 Partnerships
- Evolution of 3G Technologies
- imt-advanced 4G Requirements
- Long term Evolution (LTE)
- Hspa+ is leading worldwide 4G adoption
- Building for the multigeneration future
- Device Features and capabilities
- Radio Resource Controller (RRC)
- 3G, 4G, and WiFi Power Requirements
- LTE RRC State Machine
- HSPA and hspa+ (UMTS) RRC state machine
- Ev-do (CDMA) RRC state machine
- Inefficiency of periodic transfers
- End-to-end Carrier Architecture
- Radio Access Network (RAN)
- Core Network (CN)
- Backhaul capacity and Latency
- Packet Flow in a Mobile Network
- Initiating a Request
- Inbound Data Flow
- Heterogeneous Networks (hetnets)
- Real-world 3G, 4G, and WiFi performance
- 8. Optimizing for Mobile Networks
- Preserve Battery Power
- Eliminate periodic and inefficient Data transfers
- Eliminate unnecessary application keepalives
- Anticipate Network Latency Overhead
- Account for RRC state transitions
- Decouple User Interactions from Network communication
- Design for Variable Network Interface availability
- Burst Your Data and Return to Idle
- Offload to WiFi Networks
- Apply Protocol and application best practices
- III. HTTP
- 9. Brief History of HTTP
- http 0.9:the one-line protocol< /span>
- http 1.0:rapid growth and informational RFC
- h TTP 1.1:internet standard
- http 2.0:improving Transport performance
- 10. Primer on Web performance
- hypertext, Web Pages, and W EB applications
- anatomy of a modern Web application
- speed, performance, and Human Perception
- analyzing the Resource Waterfa ll
- performance pillars:computing, Rendering, Networking
- more Bandwidth doesn ' t Matter (Much)
- latency as a Pe Rformance bottleneck
- synthetic and Real-user performance measurement
- browser optimization
- One. HTTP 1.X
- Benefits of Keepalive Connections
- HTTP pipelining
- Using multiple TCP Connections
- Domain sharding
- Measuring and controlling Protocol Overhead
- Concatenation and Spriting
- Resource inlining
- HTTP 2.0
- History and relationship to SPDY
- The Road to HTTP 2.0
- Design and Technical goals
- Binary Framing Layer
- Streams, Messages, and Frames
- Request and Response multiplexing
- Request Prioritization
- One Connection Per Origin
- Flow Control
- Server Push
- Header Compression
- Efficient HTTP 2.0 Upgrade and Discovery
- Brief Introduction to Binary Framing
- Initiating a New Stream
- Sending Application Data
- Analyzing HTTP 2.0 Frame Data Flow
- 13. Optimizing Application Delivery
- evergreen Performance Best Practices
- cache Resource s on the Client
- compress transferred Data
- el Iminate unnecessary request Bytes
- parallelize Request and Response Processing
- optimizing for HTTP 1.x
- optimizing for HTTP 2.0
- removing 1.x optimizations
- dual- Protocol Application Strategies
- translating 1.x to 2.0 and back
- evaluating Server quality and performance
- speaking 2.0 with and without TLS
- load balancers, Proxies, and application Servers
- Iv. Browser APIs and Protocols
- Primer on Browser Networking
- Connection Management and optimization
- Network Security and sandboxing
- Resource and Client State Caching
- Application APIs and protocols
- 15. XMLHttpRequest
- brief History of XHR
- cross-origin Resource sharing (CORS)
- downloading Data with XHR
- uploading Data with XHR
- monitoring Download and Upload Progress
- streaming Data with XHR
- real-time notifications and Delivery
- polling with XHR
long-polling with XHR
- xhr use Cases and Performa nce
- Server-sent Events (SSE)
- EventSource API
- Event Stream Protocol
- SSE Use Cases and performance
- WebSocket.
- WebSocket API
- WS and WSS URL schemes
- Receiving Text and Binary Data
- Sending Text and Binary Data
- Subprotocol negotiation
- WebSocket Protocol
- Binary Framing Layer
- Protocol Extensions
- HTTP Upgrade Negotiation
- WebSocket Use Cases and performance
- Request and Response streaming
- Message Overhead
- Data Efficiency and Compression
- Custom application Protocols
- Deploying WebSocket Infrastructure
- Performance checklist
- WebRTC.
- Standards and development of WebRTC
- Audio and Video Engines
- Acquiring Audio and Video with Getusermedia
- Real-time Network Transports
- Brief Introduction to Rtcpeerconnection API
- Establishing a Peer-to-peer Connection
- Signaling and Session negotiation
- Session Description Protocol (SDP)
- Interactive Connectivity Establishment (ICE)
- Incremental Provisioning (Trickle ICE)
- Tracking ICE Gathering and Connectivity Status
- Putting It all Together
- Delivering Media and application Data
- Secure Communication with DTLS
- Delivering Media with SRTP and srtcp
- Delivering Application Data with SCTP
- Datachannel
- Setup and Negotiation
- Configuring Message Order and Reliability
- Partially Reliable Delivery and Message Size
- WebRTC Use Cases and performance
- Audio, Video, and Data streaming
- Multiparty architectures
- Infrastructure and Capacity Planning
- Data Efficiency and Compression
- Performance checklist
- Index
High Performance Browser Networking