First of all, the fourth edition was published in 2002, so all reviews prior to that date are about a previous edition of this book. This is a classic textbook on computer networking from an academic viewpoint. Do not expect to ever be able to fix a specific network problem or become a CCNE by reading this book. However, doing either of those tasks rests on a firm foundation of the theory found in this book. From the beginning, the author points out that there is some confusion about what a computer network is - a collection of autonomous computers connected by a single technology. He then points out that actually neither the world wide web nor the internet are computer networks. The book goes on to explain networks in terms of a 5 layer system rather than the classic 7 layer OSI model, which is the same as in the previous edition. However, much has been added and much deleted based on the rapidly changing technology involved. For example, the chapter on the physical layer has been completely rewritten. The previous edition focused that chapter on ISDN, ATM and cellular radio. The current edition omits references to that technology and discusses the mobile telephone system and cable television instead. As would be expected, the other section of the book that had the biggest revision was the chapter on the application layer. Gone is the obsolete subject of USENET news, multimedia has changed completely, and the network security section now has its own chapter due to the importance that field has taken on. Finally, the chapter on further reading, which had good comments to go with the suggested reading, was always one of my favorites because it told you why you should read something in addition to showing you what to read, plus the bibliography is divided by network layer. Now, of course, the 3rd edition bibliography section reads like the roll call for a computer book museum. Thus, the new 4th edition chapter on suggested reading is a welcome update. Remember that this book is ultimately about good network design decisions as well as a tutorial on architectures, thus math is inevitable. In fact, most of the chapter-end problems involve mathematics. The math required is not complex, but it will require careful reasoning on your part, much like the numerical problems in Hennessy's "Computer Architecture: A Quantitative Approach". A good companion to this book is "Computer Networking : A Top-Down Approach Featuring the Internet (3rd Edition)" by Kurose. That book also uses a 5 layer model, but starts from the application layer and works its way down. Also, Kurose's book is more applied, with Java examples and programming labs and projects included.
I highly recommend this book to anyone who wants a firm foundation in the theory of computer networking, as well as a survey of the current networking technologies and how they work.