cover image

TCP/IP Illustrated

by W. Richard Stevens
Addison-Wesley Longman, January 1994
576 pp.
ISBN 0-201-63346-9
$69.99 list, $60.19 at (click to purchase)

Book reviewed 9/7/1998

Do you understand TCP/IP? I mean really understand it? Most Winsockers can get by with a basic understanding of stream protocols, but at least one person in your organization should have a deep knowledge of TCP/IP. Why not you?

TCP/IP, though elegant, has some interesting complexities, mainly due to the various optimizations and reliability enhancements in the protocol. Did you know that the connection sequence consists of three precisely-specified packets? Do you know what happens if one of those packets is lost, corrupted, duplicated or received out of order? Do you understand what it means when the "netstat -a" command reports that your server program is in the FIN_WAIT_2 state? Someone on your team needs to, or else you’ll just stumble around in the darkness, never really grasping TCP/IP — worse, your programs will show this, by being poorly-behaved.

Stevens writes wonderful books, and this one is no exception. It is clear that he both understands his subject intimately, and takes the time to write and rewrite his prose until his points are clear and cogent. This book may not be the easiest read you’ll tackle this year, but it may be one of the most worthwhile. More importantly, the book’s 600-page bulk is not fluffed-up. It really does have to be that big, so while it may take you awhile to get through this book, you won’t regret the fairly steep price tag — it’s worth it, because the book is dense with information.

The Bottom Line

Stevens spends a lot of time tinkering with Unix kernels, particularly the network stacks, and it shows — the man knows what he’s talking about, and not from a purely theoretical standpoint. He’s made the mistakes, and he’s fought the same battles you’re fighting now; moreover, he knows how to get across to you what you need to know. If you want to learn the deep secrets of TCP/IP, this is the way to do it.

Companion Books

There are two other related books by Stevens you need to consider. First is Unix Network Programming 2/e. This is more code, and less theory. If you prefer to learn by tweaking code, this is the way to go. Or, if you’ve decided to go the theoretical way, you may want to make TCP/IP Illustrated, volume 2 your next purchase. This next volume in the series lists and explains all 15,000 lines of C code in the 4.3BSD TCP/IP stack.

Related Resources

W. Richard Stevens has a web site dedicated to his book. Among other things, you can download the book’s source code, and check out the errata.

There are several reviews of this book at

Addison-Wesley also has a page dedicated to this book. Among other things, this site includes the table of contents for the book.

<< Win32 Network Programming
Unix Network Programming 2/e >>
Updated Sun Oct 25 2009 01:54 MDT   Go to my home page