Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
KERMIT: a file transfer protocol
da Cruz F., Digital Press, Newton, MA, 1987. Type: Book (9780932376886)
Date Reviewed: Mar 1 1988

This is an unprecedented, self-contained book about a media-independent point-to-point “filegram” protocol that is robust and adaptable to a wide variety of systems. This protocol, KERMIT, does not challenge any network protocol, but complements it in one major respect--transferring single files with an alien computer. A would-be user of the RS-232C link will therefore regard this book as an ideal starting point; it is also an excellent reference source. Both undergraduates and advanced programmers will benefit from it.

The author has divided his book into four parts. The first part gives the history and an overview of KERMIT, with typical sample runs. It is an introductory user guide. The second part consists of two well-organized tutorials: one on computers and filing systems and another on hardware details of data communication. Appendices introduce base-2 and other number notations and provide an annotated list of the ASCII alphabet. The two introductory parts make up about 30 percent of the book, whereas the remaining two parts account for around 50 percent.

Part 3, User Manual, describes commands grouped according to their function. An appendix summarizes them alphabetically. The final part is a Programmer Guide, which documents the protocol by constructing a sample KERMIT program (written in C). The machine-dependent and user interface parts are given in an appendix. Another appendix describes all packet types and their formats.

Besides the satisfactory index, there is also a glossary. However, only those subroutines whose definitions are divided into more than one section are listed. The reference list includes all of the fundamental standards in the data communication field.

All four parts have the essential “How to Use” and “What If” chapters. Even a “baby KERMIT,” written in MS-BASIC, for downloading a regular one over a network, is included. The terrific IBM mainframes are given separate attention. The text is enhanced by many reference tables and diagrams, some of them containing details about particular computers, operating systems, and modems. There is a long list of acknowledgements and trademarks of the (effectively) collective work of many people.

The style is precise but by no means dry, with anecdotes, hand-sketched figures, and digressions (the index includes “Handicapped,” “Fakeout,” “Tasmania,” and “Toilet”). Over one-third of the 34 bibliographic entries refer to incidental citations, and another one-third are called more than once. The relatively small number of typos, the proper page make-up, and the use of different fonts and colors increase readability. Nevertheless, two things are confusing: the letter “l” in the program listings is the same as the digit “1”; page numbers are absent on pages that face the start of a new chapter.

Is this book for those who use KERMIT, who support its use, or who create KERMIT programs? There is no accompanying diskette as a KERMIT program is free and available for all major mainframes, minis, and micros. Transferring a file requires the use of a local and remote KERMIT (the first three parts of the book function as a self-contained, unified user guide). There is an inevitable gap between the first three parts and the last part (which requires a background in C). Even the author notes that there are really three separate books in one.

Can this book be used in courses on computer networking? Although it lacks exercises, filling in the sketchy parts or reprogramming the whole KERMIT for another environment could be appropriate lab assignments. The author also provides quantitative performance considerations for various solutions.

As for using the book as a teaching supplement, some introductory material and repetitions could be safely removed from the text. Besides, the top-down approach postpones the start of actual programming until the end of Chapter 9. This results in numerous irritating forward references. Also, several new appendices should be added:

  • A cross-reference listing graph of the subroutine call hierarchy and global data dependence.

  • A complete diagram of KERMIT protocol states, including all options.

  • A table relating REMOTE commands to packet types.

  • An extension of the command summary, including the allowed KERMIT state and the impact on global variables.

  • An extension of the packet summary, with information on how each special parameter is negotiated and where it comes from.

  • A complete description of K-packets, commands for using some packet types (GI, GM, GO, GJ-, and GJS), and the Y-packet single response to the R command.

In the process of preparing the subroutines for publication, a score of inconsistencies and errors were introduced. All violations of layering hierarchy and the unrestricted use of global data should have been removed from the published code. The errors here are infrequent but indicate the lack of careful editing. They also occur in tables and figures: there is a missing entry in the table of contents and the whole field in the table defining packet format layout is omitted. Instead of “universal asynchronous receiver transmitter parameter table,” a pin numbering for a particular integrated circuit is given; and the proposed Macintosh to IBM cable is not tested. There are even erroneous values in the table of powers of 8] Moreover, there is no errata slip]

In spite of these criticisms, this is by no means a bad book. It resembles the beautiful do-it-yourself books from my youth. Just as in those books, this book provides the opportunity to build a “model train”; that this is never accomplished, due to the lack of free time, means nothing to most of us--as we really want to learn how such a program is actually written. Is this book too long? No, and for its size it is relatively cheap (compared to other Digital Press books published at the same time). So this book, based on several years of the author’s experience (as co-creator and implementer) answering questions about KERMIT, may indeed be the book for everyone. It is too early to judge its impact on the standardization of telecommunications software, but it is at least a major and successful step toward it and may be comparable to CP/M or TEX in other domains. A second edition will indeed be welcome.

Reviewer:  J. Klaczak Review #: CR111838
Bookmark and Share
 
Kermit (C.2.2 ... )
 
 
Data Communications (C.2.0 ... )
 
 
Communications Management (D.4.4 )
 
Would you recommend this review?
yes
no
Other reviews under "Kermit": Date
Using MS-DOS Kermit: connecting your PC to the electronic world
Gianone C., Digital Press, Newton, MA, 1990. Type: Book (9789781555580483)
Jun 1 1991
Using C-Kermit
da Cruz F., Gianone C., Digital Press, Newton, MA, 1993. Type: Book (9780130374905)
Feb 1 1994
Using C-Kermit (2nd ed.)
da Cruz F., Gianone C., Digital Press, Newton, MA, 1997. Type: Book (9781555581640)
Feb 1 1998

E-Mail This Printer-Friendly
Send Your Comments
Contact Us
Reproduction in whole or in part without permission is prohibited.   Copyright 1999-2024 ThinkLoud®
Terms of Use
| Privacy Policy