This book contains general information about Kermit. It assumes no prior knowledge and explains every aspect of Kermit in very simple terms. The book ends with a thorough explanation of the implementation of all features of the Kermit protocol, with numerous programming examples. Highly recommended for anyone who wants a detailed understanding of Kermit.
Computing and Communications Services Office
University of Illinois at Urbana-Champaign
User Guide 402, March 1994

Date: Tue, 22 Mar 1994 14:29:00 -0600 (MDT)
From: Rob Slade
Subject: "Kermit: a File Transfer Protocol" by da Cruz

Kermit: a File Transfer Protocol, da Cruz, Digital Press, 1987

It may be that Kermit is popular because it is a robust file transfer protocol suitable for almost any line or network conditions. It may be that Kermit is popular because it is available for pretty much any computer you can name (and a bunch that you can't). It may be that Kermit is popular because it is free. Or, it may be that Kermit is popular because of the (written) communications skills of Christine Gianone and Frank da Cruz.

As Kermit is both protocol and communications program, so this book is an introduction to computer communications, protocol specification, introduction to the Kermit implementations and programmers' reference guide, all rolled into one. An ambitious task, but one handled with grace and skill, in this instance.

Part one gives us the basics of the development of Kermit and of data communications from the user's perspective. This confirms that, yes, the name was inspired by the Jim Henson muppet character (or, more exactly, by a Muppets wall calendar). One hopes that Jim Henson approves of this memorial. Chapter two does not get into exhaustive detail on computer (mostly PC) communications, but does cover the fundamental steps and needs with more brevity, completeness and wit than one sees in many works intended for the mass market. (I am sorry to see the confusion of "baud" and "bits per second", although the two terms are correctly defined in the glossary.)

Part two gives us two primers; one on computers and data files, and the other on data communications. The section is well named. Both chapters are easily understood by the novice and provide the minimum necessary information to proceed from. Excellent pieces, both of them.

Part three is an introduction to using Kermit. Chapter five describes a set of the most commonly used commands, including an introduction to the simplest login scripts. Chapter six discusses common problems while seven deals with the possibly thorny issue of getting Kermit into your machine in the first place. Included in this last chapter is a BASIC source code program for a "read only" Kermit protocol for downloading files.

Part four is a guide to writing a Kermit implementation. Quite a complete guide: not only does it give you the protocol specification (which is still *the* protocol specification) but also optional features, advanced options and even tips on programming style. Appendices give you the bulk of the Kermit source code (in C), a command summary, packet summary, the ASCII character set and a discussion of binary, octal and hexadecimal numbers and notation.

If you want to build your own implementation of Kermit, this is the book for you. If you care nothing for programming, and have only bought your computer in order to "get online", this is the book for you, too. (Be sure to get "Using MS-DOS Kermit," too.) (cf. BKUMSKMT.RVW) For those in between, this is an excellent resource to have around to answer those "how does work?" type questions.

Copyright Robert M. Slade, 1993

DECUS Canada Communications, Desktop, Education and Security group newsletters Editor and/or reviewer.

"Kermit, A File Transfer Protocol, by Frank da Cruz (Digital Press, 1987), will satisfy your appetite if you wish to learn more about this fascinating protocol than is covered here. KERMIT is laced with green ink, light-hearted analogies, and drawings which are often as amusing as they are illustrative. It is also exceptionally well-written and full of sound information. If you want to study every detail of Kermit, this book is the best reference known to me; should you be implementing the protocol, note that the text includes a large section specifically about writing Kermit, with most of the C code that you'll need. I also highly recommend da Cruz' text for anyone designing a file transfer protocol."
Pete Maclean, Desktop Communications with IBM Personal Computers, Wiley, 1987.

Review of Kermit -- A File Transfer Protocol
This review appeared in the October 1988 issue of V/UPDATE, the VM Systems Group Newsletter. It may be quoted with attribution.
All There Is To Know About KERMIT

Kermit, A File Transfer Protocol, by Frank da Cruz (Digital Press 1987) ... describes, as the title states, a file transfer protocol. It was invented at Columbia University in 1981 to transfer large amounts of data and files between various mainframes and personal computers. A year later, it was presented to computer user-groups. Whoever wanted Kermit received the programs, source code and documentation at no charge.

This started the birth of a multitude of Kermit implementations. Today, Kermit is available for most computers and is used worldwide...

The title doesn't tell you that the book describes more than just the Kermit protocol. The 379 page book is divided into four parts and five appendices with a glossary and reference section. It provides valuable information to persons of all levels of expertise, from administrators to programmers. It is structured in a tutorial fashion, making it unnecessary to read the book from cover to cover. Information on specific areas can be found in one place. The book starts at a novice level and progresses at an even pace through various technical levels.

For those with a casual interest, Part I consists of two chapters of basic information. These describe the history behind Kermit, how to obtain the software, what a protocol is, how to connect to other computers, and how to transfer files. Interesting historical tidbits and trivia lighten the subject and relax the novice reader. It assumes no prior knowledge of data communications.

For an introduction to communications, Part II presents a concepts-and-facilities style section contained in two chapters. This is a detailed primer on files and data communications. If you want to know about handshaking, flow control, parity and the like, read this. It contains information dealing with hardware, file structure and management, data representation and transmission, and networks. It covers items from pin connections to 3705 controllers.

Part III is the Kermit user's guide. These three chapters serve as a command reference guide to Kermit's features. Here you'll find descriptions of the major Kermit commands along with how and why to use them. Also described are common problems and their solutions. These are grouped by category, such as connection, data translation, and file transfer difficulties.

Also included in this section is a discussion on bootstrapping. Once you receive Kermit on tape, it is uploaded to the mainframe. You must then get the programs to your PC to complete the installation. This chapter provides the source code in Microsoft BASIC to do just that. It is surprisingly short, only 83 lines of code, and is referred to by the author as "the baby Kermit program". It actually uses Kermit to receive the initial Kermit files! Following the program source code is a detailed explanation of what function each section of the code performs. It even explains how to bootstrap in the other direction, from a PC to a remote mainframe. At the end of this section, da Cruz bids farewell to the nontechnical reader with closing comments expressing his hope that this material will help make you a "self-sufficient creator and user of reliable data communication links", and to that end he is successful.

The technically oriented Part IV serves as a programmers guide to Kermit. This is the longest section, consisting of six chapters. The first chapter discusses how to write a Kermit program. It covers items from programming style to outlining the steps necessary in order to contribute a program to the Kermit family of software.

The next chapter describes basic file transfer, concentrating primarily on Kermit packets and layered protocol. A packet is a piece of the file transfer process, or transaction. These transactions include send initiation, data transfer, end of file notification, receipt acknowledgement, and error notification.

Layered protocol is a method by which the process of receiving files is broken down into functions. These functions control character translation, ensure data integrity, and perform hardware specific requirements. Packets are passed between these layers of function, and each layer extracts information pertinent to itself, passing other parts of the packet along as required. A detailed discussion of the 7-layer ISO Open Systems Interconnection (OSI) Reference Model, and a comparison to similar Kermit processes, is provided.

The third chapter in this section describes 8-bit data transfer through 7-bit communications media. It includes information on data encoding and compression, as well as how to gracefully interrupt a file transfer. There are several programming examples written in C that perform some of the functions.

The next two chapters describe the basis for a Kermit client/server relationship and advanced options. These are followed by a discussion and analysis of the Kermit protocol, implementation tricks, and a comparison of Kermit to other file transfer protocols.

Appendixes provide more programming examples, a Kermit command summary, a Kermit packet summary, the ASCII character set in detail, and a discussion of binary, octal, and hexadecimal numbers.

In summary, the book provides a complete reference guide to Kermit and its current implementation. It is well written in a lighthearted and non-condescending manner. Most diagrams are hand-scribed, giving it a notebook style. Even if you don't use Kermit, if you're at all interested in what goes on in the elusive process of one computer 'talking' to another, I highly recommend this book. By the way, in case you're wondering if there is any relationship between Kermit and the popular frog, you'll have to read the book. Hint -- the cover is green.

Tom Kumpf

Kermit Documentation / Columbia University / / 18 Dec 95