Book Reviews: TCP/IP Networking
The TCP/IP Guide
The TCP/IP Guide (No Starch Press) is a complete and comprehensive guide to TCP/IP networking and protocols. The book is well-organized, well-illustrated, and has a conversational tone that makes it easy to read and learn even for networking novices. I delved into one chapter in particular, on ARP (address resolution protocol) and I found the explanations clear and accurate though a bit wordy at times for my taste, but then I tend to learn things pretty quick. Note however that the explanations in this book are vendor-neutral, for example, in the section describing ARP caching there are no details of how these caches are actually implemented on Windows or UNIX machines and no discussion of whether real-world implementations of ARP fully adhere to RFC standards for this protocol. If you just want to learn the basics however of how ARP or any other TCP/IP protocol works, then this book is a good place to start. There is also a fair bit of information about IPv6 both in separate chapters and interspersed throughout the text.
TCP/IP Protocol Suite
TCP/IP Protocol Suite (McGraw-Hill) covers pretty much the same ground as the TCP/IP Guide described above, but there are some differences. The overall tone and writing is much more concise than the previous book, and the book has the look and feel of a textbook targeted toward an academic audience of senior or graduate-level computer science or engineering programmers. For comparison purposes I read through the ARP chapter in this book as well, and what I found was more focus on packet structure, more examples (though treated much more concisely), and a detailed description and schematic of how a theoretical ARP software component might work. This last item occupies several pages of the text and is the sort of thing a computer science student might want (or not want) to learn, and which may have little similarity to implementations of ARP in real-world (i.e. commercial) software. Still, in most cases you can just bleep over the academic parts of this book and read the rest if you want a good, concise summary of how ARP (or any other TCP/IP protocol) works. And like any good textbook, at the end of each chapter there's a summary of concepts, a multiple choice practice test, some exercises to test your brain against, and for the truly dedicated, some programming exercises using C language.
Routing TCP/IP: Volume 1
Routing TCP/IP: Volume 1, 2nd edition (Cisco Press) is an in-depth examination of interior routing protocols from the perspective of users of Cisco networking hardware. The coverage is just what you would expect from Cisco—highly detailed with numerous practical examples of how to design and configure IP routing using IOS on Cisco routers. What I particularly like about this book are the numerous case studies at the end of each chapter, for by walking through these examples (particularly if you have a few routers lying around) you can learn hands-on how IP routing works and how to implement different routing scenarios. Even if you're weak on the IOS side like I am, you can still learn a lot from the numerous illustrations and accompanying text, and who knows, you might even get motivated to learn some IOS and expand your career vistas a bit.
Understanding IPv6 (Microsoft Press) by Joseph Davies is a great book to have if you want (or need) to start learning how IPv6 works, particularly on Microsoft Windows platforms. Of all the networking books I've looked at recently, this is the only one I couldn't put down—not because the plot is exciting or the characters interesting, but simply because Davies has a way of explaining things in crystal-clear lucidity, and that's certainly needed since it takes effort to get your head around some IPv6 concepts. But tying these concepts to real-world Windows platforms helps reinforce understanding and maintain interest in learning a complex subject, and that's probably what I like most about this book. And if you're a Network Monitor fan like I am, the included CD has lots of Network Monitor captures you can examine different types of IPv6 communication scenarios. Finally, most people don't bother reading appendices but this book has a good one: Appendix E has detailed instructions for setting up your own IPv6 test lab using one Windows Server 2003 box, four Windows XP machines, and a couple of network hubs. My only criticism of this book (and it's minor) is that it was published when Windows Server 2003 was still going to be named Windows .NET Server, so this makes it a bit dated but still quite accurate as far as current Windows platforms are concerned. I'm keeping my fingers crossed that Davies is going to update this title for the Longhorn Server release, but don't wait till then if you need to start learning IPv6—buy it now.
Deploying IPv6 Networks
Finally, while we're on the topic of IPv6 let's look at one more book: Deploying IPv6 Networks (Cisco Press). While Davies' book is good for learning about IPv6, this title goes through the basic concepts a little faster and is therefore probably not as good for beginners who are new to the subject. Plus it lacks the case studies that make the other Cisco book I reviewed above so useful as far as hands-on learning is concerned. Still, if you already have some grounding in IPv6, use Cisco routers, and need to learn how to configure routing protocols like EIGRP or OSPFv3 for an IPv6 network, or how to implement QoS on an IPv6 over MPLS network, this is probably the best there is on the subject. There's also a good chapter on IPv6 Mobility, a discussion of tools and procedures for securing IPv6 traffic, and some useful guidance on planning an IPv6 deployment in both enterprise and service provider environments.