
"Computer Networks: A Systems Approach is a carefully focused revision of the first edition, updated to incorporate user feedback and reflect the most recent changes in networking technology.". "A systems approach focused on the Internet promotes an enduring, practical understanding of networks and their building blocks. Each chapter begins with a problem statement that frames the discussion to follow. The authors then develop complete solutions, illustrate them with real-world examples - including specific protocol references and C code - and address topical issues debated throughout the networking community.". "The result? Readers learn the why of network design - not just the facts surrounding current systems but the principles at work in their application and evolution."--BOOK JACKET.
It focuses on the software aspect of things, but IMHO it is still a good read for introduction.
My favorite book on the topic (covers hardware and software) is:
"Computer Networks" by Larry L. Peterson & Bruce S. Davie.
A great book. Highly recommended.
http://www.amazon.com/Computer-Networks-Third-Approach-Netwo...
Of course, one of the classics is this one:
Internetworking with TCP/IP vol. 1.
http://www.amazon.com/Internetworking-TCP-Vol-1-Principles-A...
Edit: If you are considering Linux, then the implementation is discussed here. I would not suggest this, unless you are actually hacking. In that case, this is okay:
http://www.amazon.com/Understanding-Network-Internals-Christ...
I am curious, what is everyone's preferred book on CN? The only one I have read is Computer Networking: A Top-Down Approach by Kurose and Ross. When learning CN for the first time, I like their approach of beginning with the application layer and moving towards the physical layer. Their figures are also quite intuitive.