Chrome Network Architecture in a Nutshell

I'm reading the third volume of the Architecture of Open Source Application series, The Performance of Open Source Applications

I'm a fan of these books as they contain a whole lot relevant information. They mostly explain the stuff you would find if you read the source codes of these applications.

The first chapter especially caught my fancy because it is about the Networking stack of Chrome. I'm deeply enthusiastic about anything Chrome. Here is the summary of sorts:

  1. Chrome uses a multi-process architecture, which isolates render processes from the browser process.

  2. Chrome maintains a single instance of the resource dispatcher, which is shared across all render processes, and runs withing the browser kernel process.

  3. The network stack is a cross platform, mostly single threaded library.

  4. The network stack uses non-blocking operations to manage all network operations.

  5. Shared network stack allows efficient resource prioritization, resuse, and provides the browser ability to perform global optimization across all running processes.

  6. Each render proces communicates with the resource dispatcher via IPC

  7. Resource dispatcher intercepts resource requests via a custom IPC filter.

  8. Predictor intercepts resource request and response traffic to learn and optimize future network requests.

  9. Preditor may speculatively schedule DNS, TCP, and even resource requests based on learned traffic patterns, saving hundreds of milliseconds when the navigation is triggered by the user.

The above piece has been directly taken from the book.