Joined: 04 Mar 2003
|Posted: Sat Feb 07, 2004 5:27 pm Post subject: Book Review - UNIX Network Programming
UNIX Network Programming
Author: W. Richard Stevens, Bill Fenner, Andrew M. Rudoff
Publisher: Addison Wesley
Book Specifications: Hard-Cover, 647 Pages
Category: Network Programming
User Level: Intermediate/Advanced
Suggested Publisher Price: $69.99 USA/ $105.99 CAN/ £44.90 Net UK (inc of VAT)
Amazon.co.uk: UNIX Network Programming UK
Amazon.com: UNIX Network Programming US
Info from Back: "To build today’s highly distributed, networked applications and services, you need deep mastery of sockets and other key networking APIs. One book delivers comprehensive, start-to-finish guidance for building robust, high-performance networked systems in any environment: UNIX Network Programming, Volume 1, Third Edition. Building on the legendary work of W. Richard Stevens, this edition has been fully updated by two leading network programming experts to address today’s most crucial standards, implementations, and techniques.”
I have been looking for a book that is the equivalent of Richard Stevens legendary work on TCP/IP. Though one that would help me as a novice C programmer. I have specific areas of C that I wish to use such as raw socket programming that would be helpful to me professionally. As many readers here are familiar with it is often hard to find quality information on such esoteric matters. Especially when you want to make sure that the information is technically accurate, and does not mislead you in your attempts to learn.
What is most helpful about this book is its level of granularity on some very complex topics. Instead of trying to google endlessly only to read some tutorial, which may or may not be correct it is best to get a definitive guide. The authors of the book are very much leaders in their field. Is this book the one for you? Well that depends really. If you want to learn more about how to do network programming, and already have a tenuous grasp of C then it is indeed. It is also supplies some excellent material on other matters related to network programming such TCP and UDP which one must know in order to program raw sockets.
Starting the book off is some technical information about TCP/IP itself and some of its protocols ie: UDP/SCTP. Shown are not only the protocols themselves, but exactly how they connect, and teardown a connection. This is a bit of a refresher for those who are not overly familiar with the inner workings of these protocols. Following this information is more IP specific minutiae. All of this information is critical to the task of network programming. It would be rather difficult to program a raw socket if you knew nothing of the protocol you were working with. As mentioned this is where a book like this really shines and earns it weight in gold.
Several chapters then follow which actually deal with socket programming itself. Shown are socket options, which are then followed by elementary UDP and SCTP sockets. This is followed by the “home and address conversions” chapter which is a topic to understand clearly. They all need to be understood clearly of course, but for me this is an important one. After having read these chapters most of those C code programs dealing with raw sockets should now be starting make a lot more sense to you. At this point the authors start to show you advanced socket programming information. IPv4 and IPv6 interoperability is covered followed by daemon processes, and the inetd superserver.
At this point the parts I really was looking forward to are laid out in clear, and concise detail. The topic being advanced I/O functions ie: recv, send, readv, and writev among others are gone over. Further to this broadcasting, multicasting, advanced UDP and SCTP sockets are also covered. Every part of the protocols which are used for network programming are detailed, as well as the various subtopics relating to it. For a full chapter listing of this book click here.
Style and Detail
There is not really a whole lot to say about the style and detail of the book itself. There are no screenshots in here. What you will see a lot of though are code examples, and a fair amount of simple diagrams, which convey the authors point. This book after all is about network programming, and does not require much beyond what is already shown through code snippets, and diagrams. The most important part about this book is its detailed information. This book is hardcover, which is nice, as it will probably be opened and closed many, many times to come
It is very difficult to find a book these days that has all the information you require on a certain topic. This books strongest suit is that it is all encompassing in it’s coverage of network programming. Absolutely everything that is required to know on this advanced topic is located here, and then some. For such a dense topic it is conveyed in a surprisingly straightforward manner. Comparing this book to the aforementioned book by Stevens on TCP/IP is almost unfair, however this book matches up to it in every way. Much as the work by Stevens that I own this will book will be read many, and referenced for a long time to come. This is due to the fact that this book is a veritable treasure trove of hard to find information all contained in one place. I highly recommend this book to all budding programmers who are seeking the definitive guide on network programming.
This book gets an SFDC 10/10 from me
Keywords for this post: UNIX Network Programming
This review is copyright 2004 by the author and Security-Forums Dot Com, and may not be reproduced in any form in any media without the express permission of the author, or Security-Forums Dot Com.