KERMIT PROTOCOL MANUAL

Sixth Edition

Frank da Cruz

Columbia University Center for Computing Activities New York, New York 10027

June 1986

Copyright () 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 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 functionality of Kermit, and then describe various optional functions.

The key principle is that any implementation of Kermit should work with any othe