外文科技图书简介
当前位置:首页 > 检索结果 >文献详细内容

书名:High-performance browser networking

责任者:Ilya Grigorik著.

ISBN\ISSN:9787564149611 

出版时间:2014

出版社:东南大学出版社,

分类号:自动化技术、计算机技术

版次:[Reprinted ed.].


前言

The web browser is the most widespread deployment platform available to developers today: it is installed on every smartphone, tablet, laptop, desktop, and every other form factor in between. In fact, current cumulative industry growth projections put us on track for 20 billion connected devices by 2020—each with a browser, and at the very least, WiFi or a cellular connection. The type of platform, manufacturer of the device, or the version of the operating system do not matter—each and every device will have a web browser, which by itself is getting more feature rich each day.
The browser of yesterday looks nothing like what we now have access to, thanks to all the recent innovations: HTML and CSS form the presentation layer, JavaScript is the new assembly language of the Web, and new HTML5 APIs are continuing to improve and expose new platfOrm capabilities for delivering engaging, high-performance ap-plications. There is simply no other technology, or platform, that has ever had the reach or the distribution that is made available to us today when we develop for the browser. And where there is big opportunity, innovation always follows.
In fact, there is no better example of the rapid progress and innovation than the net-working infrastructure within the browser. Historically, we have been restricted to sim-ple HTTP request-response interactions, and today we have mechanisms for efficient streaming, bidirectional and real-time communication, ability to deliver custom appli-cation protocols, and even peer-to-peer videoconferencing and data delivery directly between the peers—all with a few dozen lines of JavaScript.
The net result? Billions of connected devices, a swelling userbase for existing and new online services, and high demand for high-performance web applications. Speed is a feature, and in fact, for some applications it is the feature, and delivering a high-performance web application requires a solid foundation in how the browser and the network interact. That is the subject of this book.

查看更多

目录

Foreword xi

Preface xiii

Part I. Networking 101

1.Primer on Latency and Bandwidth 3

      Speed Is a Feature 3

      The Many Components of Latency 4

      Speed of Light and Propagation Latency 6

      Last-Mile Latency 8

      Bandwidth in Core Networks 9

      Bandwidth at the Network Edge 10

      Delivering Higher Bandwidth and Lower Latencies 11

2.Building Blocks of TCP 13

      Three-Way Handshake 14

      Congestion Avoidance and Control 16

      Flow Control 17

      Slow-Start 19

      Congestion Avoidance 26

      Bandwidth-Delay Product 28

      Head-of-Line Blocking 30

      Optimizing for TCP 32

      Tuning Server Configuration 32

      Tuning Application Behavior 34

      Performance Checklist 34

3.Building Blocks of UDP 35

      Null Protocol Services 36

      UDP and Network Address Translators 38

      Connection-State Timeouts 39

      NAT Traversal 40

      STUN, TURN, and ICE 41

      Optimizing for UDP 44

4. Transport Layer Security (TLS) 47

      Encryption, Authentication, and Integrity 48

      TLS Handshake 50

      Application Layer Protocol Negotiation (ALPN) 53

      Server Name Indication (SNI) 54

      TLS Session Resumption 55

      Session Identifiers 55

      Session Tickets 57

      Chain of Trust and Certificate Authorities 57

      Certificate Revocation 61

      Certificate Revocation List (CRL) 61

      Online Certificate Status Protocol (OCSP) 62

      TLS Record Protocol 62

      Optimizing for TLS 63

      Computational Costs 64

      Early Termination 65

      Session Caching and Stateless Resumption 67

      TLS Record Size 68

      TLS Compression 69

      Certificate-Chain Length 70

      OCSP Stapling 71

      HTTP Strict Transport Security (HSTS) 72

      Performance Checklist 73

      Testing and Verification 73

Part II. Performance of Wireless Networks

5. Introduction to Wireless Networks 79

      Ubiquitous Connectivity 79

      Types of Wireless Networks 80

      Performance Fundamentals of Wireless Networks 81

      Bandwidth 82

      Signal Power 85

      Modulation 86

      Measuring Real-World Wireless Performance 87

6.WiFi 89

      From Ethernet to a Wireless LAN 89

      WiFi Standards and Features 91

      Measuring and Optimizing WiFi Performance 92

      Packet Loss in WiFi Networks 94

      Optimizing for WiFi Networks 95

      Leverage Unmetered Bandwidth 95

      Adapt to Variable Bandwidth 96

      Adapt to Variable Latency 97

7.Mobile Networks 99

      Brief History of the G's 99

      First Data Services with 2G 100

      3GPP and 3GPP2 Partnerships 101

      Evolution of 3G Technologies 103

      IMT-Advanced 4G Requirements 105

      Long Term Evolution (LTE) 106

      HSPA+ is Leading Worldwide 4G Adoption 107

      Building for the Multigeneration Future 109

      Device Features and Capabilities 111

      User Equipment Category 111

      Radio Resource Controller (RRC) 113

      3G, 4G, and WiFi Power Requirements 115

      LTE RRC State Machine 116

      HSPA and HSPA+ (UMTS) RRC State Machine 119

      EV-DO (CDMA) RRC State Machine 120

      Inefficiency of Periodic Transfers 121

      End-to-End Carrier Architecture 123

      Radio Access Network (RAN) 123

      Core Network (CN) 125

      Backhaul Capacity and Latency 128

      Packet Flow in a Mobile Network 129

      Initiating a Request 129

      Inbound Data Flow 132

      Heterogeneous Networks (HetNets) 133

      Real-World 3G, 4G, and WiFi Performance 135

8.Optimizing for Mobile Networks 139

      Preserve Battery Power 140

      Eliminate Periodic and Inefficient Data Transfers 142

      Eliminate Unnecessary Application Keepalives 144

      Anticipate Network Latency Overhead 145

      Account for RRC State Transitions 146

      Decouple User Interactions from Network Communication 146

      Design for Variable Network Interface Availability 147

      Burst Your Data and Return to Idle 149

      Offload to WiFi Networks 150

      Apply Protocol and Application Best Practices 150

Part III. HTTP

9. Brief History of HTTP 155

      HTTP 0.9: The One-Line Protocol 155

      HTTP 1.0: Rapid Growth and Informational RFC 157

      HTTP 1.1: Internet Standard 159

      HTTP 2.0: Improving Transport Performance 161

10. Primer on Web Performance 165

      Hypertext, Web Pages, and Web Applications 166

      Anatomy of a Modern Web Application 168

      Speed, Performance, and Human Perception 170

      Analyzing the Resource Waterfall 171

      Performance Pillars: Computing, Rendering, Networking 176

      More Bandwidth Doesn't Matter (Much) 176

      Latency as a Performance Bottleneck 177

      Synthetic and Real-User Performance Measurement 179

      Browser Optimization 183

11. HTTP 1.X 187

      Benefits of Keepalive Connections 189

      HTTP Pipelining 192

      Using Multiple TCP Connections 196

      Domain Sharding 198

      Measuring and Controlling Protocol Overhead 200

      Concatenation and Spriting 201

      Resource Inlining 204

12. HTTP 2.0 207

      History and Relationship to SPDY 208

      The Road to HTTP 2.0 209

      Design and Technical Goals 211

      Binary Framing Layer 211

      Streams, Messages, and Frames 212

      Request and Response Multiplexing 214

      Request Prioritization 215

      One Connection Per Origin 217

      Flow Control 218

      Server Push 219

      Header Compression 222

      Efficient HTTP 2.0 Upgrade and Discovery 224

      Brief Introduction to Binary Framing 226

      Initiating a New Stream 229

      Sending Application Data 230

      Analyzing HTTP 2.0 Frame Data Flow 230

13. Optimizing Application Delivery 233

      Evergreen Performance Best Practices 235

      Cache Resources on the Client 236

      Compress Transferred Data 237

      Eliminate Unnecessary Request Bytes 238

      Parallelize Request and Response Processing 239

      Optimizing for HTTP 1.x 241

      Optimizing for HTTP 2.0 241

      Removing 1.x Optimizations 242

      Dual-Protocol Application Strategies 244

      Translating 1.x to 2.0 and Back 245

      Evaluating Server Quality and Performance 247

      Speaking 2.0 with and without TLS 247

      Load Balancers, Proxies, and Application Servers 248

Part IV. Browser APIs and Protocols

14. Primer on Browser Networking 253

      Connection Management and Optimization 254

      Network Security and Sandboxing 256

      Resource and Client State Caching 257

      Application APIs and Protocols 258

15. XMLHttpRequest 261

      Brief History of XHR 262

      Cross-Origin Resource Sharing (CORS) 263

      Downloading Data with XHR 266

      Uploading Data with XHR 268

      Monitoring Download and Upload Progress 269

      Streaming Data with XHR271

      Real-Time Notifications and Delivery 273

      Polling with XHR 274

      Long-Polling with XHR

      276

      XHR Use Cases and Performance 278

16.Server-Sent Events (SSE) 279

      EventSource API 279

      Event Stream Protocol 282

      SSE Use Cases and Performance 285

17.WebSocket 287

      WebSocket API 288

      WS and WSS URL Schemes 289

      Receiving Text and Binary Data 290

      Sending Text and Binary Data 291

      Subprotocol Negotiation 293

      WebSocket Protocol 294

      Binary Framing Layer 295

      Protocol Extensions 297

      HTTP Upgrade Negotiation 298

      WebSocket Use Cases and Performance 301

      Request and Response Streaming 302

      Message Overhead 303

      Data Efficiency and Compression 304

      Custom Application Protocols 304

      Deploying WebSocket Infrastructure 305

      Performance Checklist 307

18.WebRTC 309

      Standards and Development of WebRTC 310

      Audio and Video Engines 311

      Acquiring Audio and Video with getUserMedia 312

      Real-Time Network Transports 315

      Brief Introduction to RTCPeerConnection API 317

      Establishing a Peer-to-Peer Connection 319

      Signaling and Session Negotiation 320

      Session Description Protocol (SDP) 322

      Interactive Connectivity Establishment (ICE) 325

      Incremental Provisioning (Trickle ICE) 328

      Tracking ICE Gathering and Connectivity Status 329

      Putting It All Together 332

      Delivering Media and Application Data 337

      Secure Communication with DTLS 337

      Delivering Media with SRTP and SRTCP 340

      Delivering application data with SCTP 344

      DataChannel 348

      Setup and Negotiation 350

      Configuring Message Order and Reliability 353

      Partially Reliable Delivery and Message Size 355

      WebRTC Use Cases and Performance 356

      Audio, Video, and Data Streaming 356

      Multiparty Architectures 358

      Infrastructure and Capacity Planning 359

      Data Efficiency and Compression 361

      Performance Checklist 361

Index 363

查看PDF
查看更多

馆藏单位

中科院文献情报中心