25 comments

[ 2.6 ms ] story [ 73.6 ms ] thread
I read this book during my systems and advanced networking courses at ETH Zurich years ago. As a hard copy, it is an impressively heavy compendium of knowledge but very relevant to everyone that even remotely touches networking on a daily basis. I remember it to be quite a pleasant read, despite being very technical and crazy long (could also be that I just like the topic).
I had never heard of this book. It’s really incredible. I’m curious as to how people think about the “systems” approach to networking vs the traditional.
What is the traditional approach, overly focusing on layers?
I have also read Kurose and Ross (and other books) but this is another classic of the field and definitely recommended.

Besides it being open source, it's kind of exciting that it has some coverage of topics like virtual networks, SDN, advanced congestion control, etc..

Amazing books, but I'm not sure it is a good idea with such huge pictures (3462 × 2176px thumbnails), even though it of course is simpler than adding multiple sizes etc. RIP mobile users.

https://sdn.systemsapproach.org/_images/Slide20.png

Seems an ideal use case for SVG.
Looks like it might be a direct PowerPoint export. They might be open to suggestions from someone who has to manage large numbers of slides/images in the context of a teaching environment.
Thanks for pointing this out, it is an issue we need to fix. It's because we produce so many formats (including print) that it's hard to get this exactly right, but I believe we can find a better compromise.
Wow, this is a new one for me. Definitely on my reading list. Thanks for sharing this!
This is a great book and one I constantly reference. The newest editions drop clock-based framing like ATM, but whenever I need to go back to looking at what's on the wire or considering what considerations were made in design or convention, I reach for this one!
I'm confused. What makes this a "systems approach"? I've scanned through the index and a few chapters but it doesn't appear to be applying a systems/cybernetic approach to network engineering, unless I've missed something. Is it because it covers the whole stack in a systematic way?

Not bagging on the book, by the way - just trying to establish whether it's worth reading through, as I'm already somewhat familiar with network protocols but would be interested in systems/cybernetics insights into networking.

I agree with this comment. I don't understand what specifically makes this a "system approach".
Maybe as opposed to a theoretical treatment? In academia, there is a dichotomy in CS research between systems and theory, which may have been what they were getting at.
It takes a bottom up approach rather than top-down, and gives you all the gory details as opposed to bird's eye view of things. I would take it as that. System is an almost useless word other than implying a "lower level" view.
"system" actually has a ton of meaning, it's just been co-opted to mean "hardware" in software circles. It means a collective object that is greater than the sum of its parts.
We used the book in my undergrad networking course, and I liked it quite a bit. It's "systems" in the catchall "lower-ish-level computing" sense of "systems-level programming," rather than the "systems theory" sense.

The pedagogical structure of the book makes it a solid follow-up to a standard undergrad OS class, IIRC. It's been ten years since I've read it, though, so YMMV.

I love this book! It's a great read for anyone who wants to build networked computer systems. I like how it focuses on network design and implementation in terms of the practical problems it solves, which helped me understand why the world's networking protocols were built the way they were.
Could use a pdf release next to the web version
I wanted to thank the folks here for pointing out a few issues that we (the authors of the books) hadn't noticed, particular around the meaning of "A Systems Approach". Our definition of the Systems Approach is now on https://www.systemsapproach.org/ -

The "Systems Approach" refers to the field of design and implementation of computer systems. The term is used commonly by computer science researchers and practitioners who study the issues that arise when building complex computing systems such as operating systems, networks, distributed applications, etc. The key to the systems approach is a "big picture" view – you need to look at how the components of a system interact with each other to achieve an overall result, rather than simply optimizing each component. In the networking context, that often means going beyond the traditional layered view to see how an issue is best tackled in a way that might touch several layers. The Systems Approach has a strong focus on real-world implementation, with the Internet being the obvious example of a widely-deployed, complex networking system.