Books: A User's Report
Elizabeth Zinkann
In this issue, I review three new books -- Volume III
of Comer
and Stevens' internetworking guide, Albitz and Liu's
new work on DNS
and BIND, and Janice Winsor's guide to Solaris 2.x system
administration.
I also discuss John Davidson's Introduction to TCP/IP,
which,
though not new, is worth bringing to the attention of
system administrators
in need of resources on TCP/IP.
Internetworking with TCP/IP: Volume III
Client-Server Programming and Applications
by Douglas E. Comer and David L. Stevens
Prentice-Hall
This third volume in Comer's TCP/IP series demonstrates
the how and
why of client-server applications. It is suitable both
for the individual
reader and for use as a textbook.
The authors begin with a look at TCP/IP protocols and,
specifically,
telnet examples, what the client-server model entails,
and the place
of concurrency in communications. Since volume 3 is
also the BSD Socket
Version, the next chapter describes the Berkeley Socket
Interface.
This interface provides functions capable of accessing
many protocols
instead of using one function for each protocol. This
capability allows
the programmer to concentrate on the type of service
needed rather
than the protocol. After explaining the socket interface,
the authors
devote the remainder of the chapter to showing how it
works. This
approach not only further clarifies the concept of the
socket, but
also lays the groundwork for future chapters.
Two particularly informative chapters deal with client-server
algorithms,
providing some simple examples. The first chapter presents
the algorithms
for both TCP and UDP in a straightforward, step-by-step
manner. Each
is shown in a numbered table, followed by explanations
of each step.
The second chapter implements the algorithms through
examples such
as daytime and echo.
The next section of the book discusses the different
types of servers
available. The discussion includes excellent diagrams
of the process
structures for each type of server, along with sample
code. Descriptions
beneath the diagrams explain how communication is achieved.
Other topics include tunneling, the application gateway
technique,
and the remote procedure call (RPC) concept. In introducing
the RPC
concept, Comer and Stevens also stress the importance
of developing
a client-server application interactively. To this point,
they've
treated client and server applications as separate entities;
now,
they explain how the two components interface with one
another and
also provide a working example of remote procedure calls.
The book concludes with a demonstration of a complex
client-server
application that uses a telnet protocol as the client
and a UNIX terminal
as the server. The authors describe both the program
structure and
its implementation.
Comer and Stevens have produced a readable and useful
book. When they
want to stress a point, they explain the concepts, give
an example,
and reiterate the data by putting it in italics. Each
chapter includes
an introduction and a summary, and every discussion
of design issues
cover both the advantages and the disadvantages of specific
design
implementations.
The book is a viable choice for the classroom. The authors
recount
history where applicable, customize the chapter with
examples, provide
exercises at the end of each chapter, and as the text
proceeds, re-emphasize
the most important points that they have made.
Two final points: diagrams and tables are particularly
well displayed
within the text, and the authors perform a real service
by describing
the most efficient way that client-server internetworking
can be achieved.
DNS and BIND
by Paul Albitz and Cricket Liu
O'Reilly & Associates, Inc.
Until now, little has been published on the Internet's
Domain Name
System (DNS) and the Berkeley Internet Name Domain (BIND)
software.
With this book, Albitz and Liu present both a theoretical
and a practical
view for the reader. And although the primary audience
will probably
be system and network administrators, the work includes
sections particularly
addressed to the general user or the programmer.
The authors begin with background material for both
DNS and BIND.
The first chapter explains the DNS database structure
and presents
an extremely clear definition of DNS. The second chapter
defines the
terms that will be employed throughout the rest of the
book. These
definitions introduce the reader to the new vocabulary
and also help
clarify the subtle differences among terms.
Albitz and Liu essentially have produced an answer to
the question
"What do I want from DNS and how do I get it?"
They explain
what you need and where you can get it for different
cases. The authors
also focus on DNS and electronic mail. In addition to
telling how
to begin a system, they explore maintaining BIND, expanding
a system,
and parenting. Many of the programs the authors use
in administering
DNS and BIND have been reprinted in perl.
Since the user of BIND is working with software, the
book includes
a chapter on debugging and how to read debugging output.
A section
entitled "Troubleshooting DNS and BIND" identifies
some potential
problems.
In one of the concluding chapters, Albitz and Liu address
the differences
between shell and C programming and discuss when one
might be more
effective than the other.
This book is clearly and precisely written. By using
the guidelines
presented in the preface, readers can easily find the
information
they want. In organization, the book proceeds from the
basics to the
theoretical to practical examples. Graphs and diagrams
display both
conceptual theory and what the output of a command will
look like
on your screen. The authors identify disadvantages in
the software
and include examples for points that may be difficult
to understand.
The footnotes provide leavening humor along with useful
information.
DNS and BIND complements the Comer and Stevens TCP/IP
book reviewed
above perfectly, since DNS basically uses a client-server
application,
with name servers as the server and resolvers as the
client. The book
should be read not only by system and network administrators,
but also by programmers who use DNS and BIND and by
anyone who wants
to know how DNS really works.
The Solaris System Administrator's Guide
by Janice Winsor
Ziff-Davis Press
Janice Winsor directs her book to the novice system
administrator
and to the experienced administrator who is new to Solaris
2.x. Topics
range from the introductory -- "Introducing Solaris
System
Administration" and "Using Basic OS Commands"
-- to
the more complex -- "Administrating File Systems"
and "Administrating
Network Services." The author compares the book
to a map of the
more familiar features of the UNIX operating system.
She describes
what a system administrator does, and how administrative
responsibilites
may vary from one position to another.
The Solaris System Administrator's Guide is particularly
well
organized. In discussing commands, Winsor first displays
the syntax
of the command, then describes what the command does,
how to use it,
when to use it, optimal ways to execute it, and a step-by-step
example
demonstrating its application. When appropriate, Winsor
includes a
section on how to detect potential problems. In her
discussion of
Init states, for example, she not only clearly defines
each state
but also explains when to shut down a system. In many
cases, she examines
shortcuts that may be employed.
The book's intended audience includes both system administrators
and
interested users. To satisfy the latter, Winsor often
displays the
options of a command and its current settings in one
table, then
follows up with a second table detailing those same
options, their
respective defaults, and a brief description of each.
Particularly useful are two sets of cues that appear
in the margins.
One indicates "NEW" for UNIX System V Release
4, and the other
signals a "NOTE" that reiterates information
already presented.
Another type of "NOTE" is displayed in the
text and usually
contains a shortcut or a warning. Occasionally, a "CAUTION"
is included in the text. The author presents a procedural
means by
which system administrators may proceed from the SunOS4.x
to the SunOS5.x
operating system. A quick reference card summarizing
the command changes
is included, as well as an appendix detailing the modifications.
Although some knowledge of system administration is
helpful, you don't
have to be an accomplished system administrator to understand
and
use The Solaris System Administrator's Guide. The format
of
the graphs and tables helps to simplify the concepts,
and Winsor eliminates
a problem that some authors have with semantics by explaining
when
one word or command could be a synonym for another.
In sum, Winsor
has produced a usable and useful guide that should serve
a wide range
of readers well.
An Introduction to TCP/IP
by John Davidson
Springer-Verlag
Although this is not a new book, it is very worthwhile
and a good
complement to the other titles reviewed this month.
The title describes
it as an introduction, but it provides more information
than that
label implies.
As his preface, Davidson explicitly identifies his target
audience:
readers familiar with computers, LANs, protocols, and
networking,
but with no prior knowledge of the TCP/IP Protocol Suite.
The author
begins by briefly recounting the history of TCP/IP.
He uses two diagrams
to explain TCP/IP. One refers to the seven-level Open
Systems Interconnection
(OSI) Reference Model; the other, to TCP/IP Protocols
and Services.
The second diagram also refers to similar levels in
the OSI hierarchy.
Davidson closes the first chapter by describing a sample
internetwork,
defining internetworking in the process. The rest of
the book explains
the four levels presented in the TCP/IP Protocols and
Services diagram.
This concise introduction to TCP/IP provides a glossary
and several
appendices, including assigned numbers and references.
Davidson has
written a concise book on TCP/IP. The diagrams that
accompany the
text and well designed and informative. This book would
make a very
useful text for anyone interested in TCP/IP, whether
a beginner or
an experienced user.
About the Author
Elizabeth Zinkann has been involved in the UNIX and
C environments for the past
10 years. She is currently a UNIX and C consultant,
and one of her specialities
is UNIX education. In addition to her computer science
background, she also has a
degree in English.
|