[comp.protocols.tcp-ip] TCP/IP references

tep@helix.UUCP (Tom Perrine x404) (10/06/88)

   Date: 2 Oct 88 15:17:08 GMT
   From: hamachi!eneevax.umd.edu!vidya  (Vidya Rajagopalan)
   Organization: Elec. Eng. Dept., U of Maryland, College Park, MD 20742
   Sender: hamachi!sri-nic.arpa!tcp-ip-request


   Can anybody on this net suggest some references to TCP/IP ?
   I am looking for some reading material regarding the protocols
   and standards as well as implementational details. I am particularly
   interested in a good introductory reference.

   I am planning to write a term paper on the subject and would appreciate
   any suggestions.


I cannot say enough good things about "Internetworking with TCP/IP" by
Douglas Comer. Everything I had to pick up by 4 years of reading RFCs
and source code is clearly spelled out in this wonderful book. It is
published by Prentice Hall. If you can't find it locally, try San
Diego Technical Books (1-800-346-0071) which does *lots* of mail
order.

Tom Perrine
Logicon(Tactical and Training Systems Division)	San Diego CA (619) 455-1330
UUland:		uunet!nosc!hamachi!tots!tep
Internet:	hamachi!tots!tep@NOSC.MIL

rich@RICE.EDU (Richard Murphey) (10/06/88)

take it from another novice, the book you want is:

"Internetworking with TCP/IP: principles, protocols, and
architecture," by Douglas Comer, published by Prentice Hall in 1988.

The reasons I liked the book can be stated plainly:
1) It builds on concepts with a gentle approach, starting with
the lowest layers (ARP and IP) and builds through TCP
to the higher layers (Telnet and FTP).

2) The appendix is great! It is almost 100 pages and covers
most of what you need to start using sockets in your own programs.
See appendix 1, 4.3 BSD UNIX interface to the internet protocols,
which includes an example `whois' client you can write.

3) It also has a good index and bibliography. Overall the organization
of the book is what makes it so useful. Let's put it this way: Kernihan
and Richie is a great C language book, but not much of a reference.
This book is both an introduction and a reference.


The book is $36. list and well worth it.

Enjoy!
richard

Richard Murphey, Electrical & Computer Engineering Department
Rice University P.O.Box1892 Houston,TX 77251 713-527-8101 X3649
Internet:crm@rice.edu Bitnet:crm%rice Uunet:uunet!rice.edu!crm

henry@utzoo.uucp (Henry Spencer) (10/12/88)

Sorry to everyone who's seeing this for the second time, but with the
fall influx of new people, and some of the recent uncritical gushing
over the Comer book [which is good and useful, but far from perfect],
I thought it worth reposting this:

----------
Subject: review of Comer TCP/IP book
Message-ID: <1988Jul8.012631.15892@utzoo.uucp>
Date: Fri, 8-Jul-88 21:26:31 EDT

I acquired a copy of "Internetworking with TCP/IP" at Usenix and finished
reading it on assorted airplanes.  I have sufficiently mixed feelings
about it that I think it worthwhile to review it in detail.

Background:  I'm not a real TCP/IP guru, but might qualify as an apprentice
guru.  I learned about it originally by reading the RFCs (gak) and I work
on and maintain our local version, a variant of the KA9Q implementation.
I can't claim to be intimately familiar with all the details or to have
read the whole Protocol Handbook, but I know the outlines of most of it
and have combat experience with some of it.

The book emphasizes overall understanding of the protocols, although it
does cover a fair amount of detail.  The really fine points are punted to
the RFCs, for the most part.  It is meant to be useful as both a textbook
and a reference book, and generally strikes a happy medium.  It contains
coherent discussions of a number of issues that are hard to find in one
place otherwise.  Its appendix of implementation hints is worth the price
of the book all by itself, if you're going to be implementing TCP/IP.  It
is competently produced, with few botches (although some that remain are
serious, e.g. errors in RFC numbers in some of the Further-Reading sections
and a disastrous typo in Figure 4.1, the ONLY place where the decoding of
Internet addresses is explained precisely).

I wish I could recommend this book unreservedly.  Alas, I can't.

The fact is, this book has serious flaws.  First, most serious, and quite
possibly the cause of the others, is that it appears to have been put
together hastily as an expansion of a knowledgeable professor's skeletal
lecture notes.  The result is that while individual sections are okay,
they are not tied together well.  In particular, there are many cases
where something is referred to as if it had already been explained, when
in fact the explanation comes later or is entirely missing.  The appendix
on the Berkeley interface refers offhandedly to the fact that a connection
is characterized by both its endpoints, and hence more than one connection
can be active on the same port -- but this important and subtle concept is
NEVER discussed in the text proper!  The discussion of the name server
protocol suddenly starts using variable-length strings without explaining
how they are encoded... that comes later, in the section on the compressed
name format!  The chapter on ARP never does explain the PROTOCOL field.
These are not isolated examples; this sort of thing happens continually,
and makes the book very frustrating to read sequentially.  I already knew
enough to make this only an aggravating nuisance; a real novice would, I
think, find it very troublesome without external help.

Okay, so this hurts it as a textbook.  Is it useful as a reference book?
Same answer:  yes and no.  The trouble with it as a reference book is that
too many details are left out.  There are several references to the Karn
algorithm for RTT estimation, but it is never discussed; describing it
precisely and giving an outline of why it's good would take only a page
or two.  The three-way handshake for TCP connection establishment is
explained, but the handshaking for closing a connection is never really
explained; the state diagram from RFC 793 would take only a couple of
pages to show and tersely explain, but this is never done.  The urgent
pointer is brushed off in one sentence that does not really explain how
it works.  While it isn't really realistic to expect a book of this size
to replace the Protocol Handbook, this book would be an order of magnitude
more useful as a reference if it included 10% more detail.

A lesser, related problem is inconsistent level of detail.  The lower-
level protocols are explained in considerable detail, while the high-level
ones are crowded into a chapter or two that permits only a hint at the
overall flavor of a few of them.  The level of detail is inconsistent
even within discussions, with detailed message formats sometimes given
and then accorded only a quick hand-waving explanation.

One last annoyance in using the book as a reference is that the textbook-
oriented exercises at the end of each chapter sometimes raise important
points that one would hope a reference book would discuss more explicitly.
The implementation-hints appendix resolves some, but not all, of these
loose ends.

Overall, this book would be acceptable as a textbook for a course taught
by a knowledgeable professor who can fill in the gaps and smooth down the
rough edges, or as a self-study text for a bright student who knows
something about the topic already and has access to a copy of the Protocol
Handbook.  I cannot recommend it for self-study in general, and as a
reference its usefulness is limited.  It seems to me that many of the
problems arise from it being prepared in haste.  I would look forward
eagerly to a second edition, slightly expanded, thoroughly revised for
completeness, coherence, and consistency, and preferably tested on an
unassisted novice before publication.  That second edition could be a
truly superb first book on TCP/IP; the first edition is rather mediocre,
and is the clear choice only because there is no other.  It's really
unfortunate that the publishers are succumbing to the computer builders'
bad habit of letting their customers debug their products.

All that being said, this book *is* a lot better than nothing.  I learned
quite a bit from it, despite the problems.  If you are considering buying
it, either for yourself or a course, I would say "go ahead... cautiously".
----------
-- 
The meek can have the Earth;    |    Henry Spencer at U of Toronto Zoology
the rest of us have other plans.|uunet!attcan!utzoo!henry henry@zoo.toronto.edu