KERMIT PROTOCOL MANUAL
Sixth Edition
Frank da Cruz
Columbia University Center for Computing Activities New York, New York 10027
June 1986
Copyright (C) 1981,1986 Trustees of Columbia University in the City of New York
Permission is granted to any individual or institution to copy or use this document, except for explicitly commercial purposes. Preface to the Sixth Edition
The sixth edition (June 1986) of the Kermit Protocol Manual is being issued for two major reasons: to correct minor errors in the fifth edition, and to include new sections on two major protocol extensions: long packets and sliding windows. No attempt has been made to reorganize, rewrite, or otherwise improve the protocol manual. The Kermit protocol has been presented in an entirely different -- hopefully more thorough, organized, coherent, and useful (if not more formal) -- manner in the book, Kermit, A File Transfer Protocol, by Frank da Cruz, Digital Press, Bedford MA (1987), ISBN 0-932376-88-6, DEC order number EY-6705E-DP. If you have the book, you won't need this protocol manual. On the other hand, if you don't have the book, this manual should still contain all the necessary information. The Kermit Protocol Manual will continue to be freely distributed in perpetuity.
The bare-bones C-language Kermit program that appeared as an appendix in previous editions has been removed. It was not a particularly good example of how to write a Kermit program, and made the manual unnecessarily thick. For sample Kermit programs, see the source code for any of the hundreds of Kermit implementations, or follow the program fragments in the book.
Preface to the Fifth Edition
The fifth edition (March 1984) attempts to clarify some fine points that had been left ambiguous in the 4th edition, particularly with respect to when and how prefix encoding is done, and when it is not, and about switching between block check types. A mechanism is suggested (in the Attributes section) for file archiving, and several attributes have been rearranged and some others added (this should do no harm, since no one to date has attempted to implement the attributes packet). A more complete protocol state table is provided, a few minor additions are made to the collection of packet types.
Preface to the Fourth Edition
The fourth edition (November 1983) of the Kermit Protocol Manual incorporates some new ideas that grew from our experience in attempting to implement some of the features described in earlier editions, particularly user/server functions. These include a mechanism to allow batch transfers to be interrupted gracefully for either the current file or the entire batch of files; a "capability mask"; a protocol extension for passing file attributes. In addition, numbers are now written in decimal notation rather than octal, which was confusing to many readers. Also, several incompatible changes were made in minor areas where no attempts at an implementation had yet been made; these include: • The format and interpretation of the operands to the server commands. • Usurpation of the reserved fields 10-11 of the Send-Init packet, and addition of new reserved fields. Most of the remaining material has been rewritten and reorganized, and much new material added, including a section on the recommended vocabulary for documentation and commands.
The previous edition of the Protocol Manual attempted to define "protocol version 3"; this edition abandons that concept. Since Kermit development is an unorganized, disorderly, distributed enterprise, no requirement can be imposed on Kermit implementors to include a certain set of capabilities in their implementations. Rather, in this edition we attempt to define the basic functionality of Kermit, and then describe various optional functions.
The key principle is that any implementation of Kermit should work with any othe