This document, "Kermit: A File Transfer Protocol" by Frank da Cruz (published by Digital Press in 1987), is a comprehensive guide to the Kermit file transfer protocol. It targets a wide audience, including general users, system support staff, and programmers.
The book's primary purpose is to enable reliable and efficient file transfer between diverse and often incompatible computer systems, ranging from microcomputers to mainframes. It highlights Kermit's development as a free, non-proprietary, and community-driven solution, emphasizing its flexibility and robustness in overcoming the challenges of varied hardware, operating systems, file formats, and communication line characteristics (e.g., noisy telephone lines, different character sets like ASCII and EBCDIC).
The document is structured into four main parts:
- The Basics: Introduces Kermit's history, its philosophy of software sharing, its role compared to traditional networks, and a high-level overview of how the protocol works, including basic file transfer steps and common connection methods.
- Primers: Provides foundational knowledge in computer science (hardware, software, data representation, file systems) and data communication (serial transmission, modems, flow control, parity, public data networks, and IBM-specific communication environments), explaining the complexities that necessitate a protocol like Kermit.
- User Guide: Details Kermit's commands, covering terminal emulation, file transfer operations (SEND, RECEIVE, GET), server mode for simplified transfers, and advanced settings (SET commands) for adapting to various communication environments. It also offers extensive troubleshooting advice for common connection and file transfer problems.
- Programmer Guide: Serves as a technical specification for those wishing to implement Kermit programs. It covers programming language considerations, software design principles, the layered structure of the Kermit protocol, packet formats, data encoding methods (like eighth-bit prefixing and run-length encoding), and optional features such as advanced block checks, graceful interruption, file attribute transmission, and performance enhancements like sliding windows and long packets.
In essence, the book aims to empower users and developers to establish and maintain reliable data communication links in a heterogeneous computing landscape, showcasing Kermit as a practical and widely adopted solution born from collaborative efforts.