originally posted elsewhere: November 21, 2003
tl;dr: Professor Comer demystifies NPs, for the technical masses...
Prof. Douglas Comer of Purdue is one of the best textbook authors in the field of Internet technology (and those who have heard him speak, as I have, know that he is even better in person). His TCP/IP volumes are classics that almost every engineer in the industry has read. The fact that he chose to write a textbook on network processors is actually a strong validation of the importance of this technology, and will no doubt help popularize NPs.
The content of this book can be roughly divided into two halves: an overview of NP technology, and then a case study of the Intel IXP1200, to put the theory into practice. In the NP overview section, Comer does a great job of explaining how network systems have evolved over time, and why and where NPs are being used today. He covers all the main technical issues involved in NP designs, such as memory hierarchies and software structure, and provides a survey of different NPs (which will become dated over time). Comer wisely chose the Intel IXP 1200 as his case study, much to the chagrin of other vendors, I'm sure. This was the best choice, since Intel is having more and more success with the IXP over time, especially as other NP vendors fall by the wayside (even Cisco, which built their own NP, is using the IXP family).
Prof. Comer's writing style is very straightforward and practical. NPs are very complex devices, and Comer does a great job of leading the reader through the complexity, by starting at the highest level and working down into more detail, and by explaining the details in clear language that any reasonably skilled engineer (even at the undergraduate level) should be able to understand. Comer views the world through the eyes of a software engineer, and while hardware purists might complain about the relative lack of hardware details, for a book on NPs this is absolutely the best approach, since the purpose of NPs is to make it possible to implement more functionality in software, thereby improving the flexibility and power of network systems. My only negatives on the book are that I wish some more code examples had been included in earlier chapters, and the fact that Comer will need to produce a 2nd edition at some point soon, as the later generation IXPs become more widely used than the 1200.
I highly recommend this book to anyone, both students and professional engineers, who is looking for a solid introduction to NP technology, especially if they will be using the Intel IXP family. At my current company, even our skilled NP engineers found value in this book, and we will be handing a copy to every new engineer who joins one of our NP project teams.