TECHNICAL BULLETIN #19 - Rev 1.10 (9/03/96) ============================================================================== TITLE : History and Features of File Transfer Protocols PRODUCT : Procomm Plus 4.x, 3.x, 2.x ============================================================================== File transfer protocols are becoming an increasingly important part of daily modem communications. These rules for sending and receiving files are becoming more complex at the same time they are becoming easier to use. As the list grows, a few protocols stand out above the rest in universal acceptance. In the following sections you will find a short history of the development of the major protocols, and explanations of their major features. XMODEM FAMILY The XMODEM Family of protocols began its development in the late 1970's when Ward Christensen designed XMODEM, which served as a basis for the creation of many other protocols. XMODEM became public domain shortly after its completion in August of 1977. This protocol, originally called MODEM or MODEM2, is one of the most simple, widely used protocols today. Despite its limitations of 128 byte block size and fragile timing rules, making it difficult to use with packet switching networks like Tymnet or CompuServe, XMODEM is widely available, providing compatibility between many different computers. 1K XMODEM, designed by Chuck Forsberg of Omen Technology, Inc., allowed the transfer of a 1024 byte XMODEM packet instead of a 128 byte packet. It only uses CRC error detection, doing away with XMODEM's optional Checksum method. 1K XMODEM was a partial solution to XMODEM's problems on packet switching networks. YMODEM, also developed by Chuck Forsberg in 1980, added file attribute information to 1K XMODEM. YMODEM uses more extensive error checking than 1K XMODEM and allows transmission of multiple files by including file information in the first packet. 1K XMODEM-G, one of two "streaming" protocols by Chuck Forsberg, evolved with, and depends on, high speed (9600 BPS and above), error correcting modems used on clean data lines. This very fast protocol depends on external error-detection to insure data integrity. YMODEM-G, yet another Chuck Forsberg creation, parallels the functions performed by the 1K XMODEM-G protocol, adding the file attribute information of the YMODEM protocol. CIS B+ The CompuServe Information Service developed the CompuServe B protocol shortly after 1979. This protocol, only available to the public on the CompuServe Information System, is driven entirely by the host system. The client modules included with most communications packages do not allow two PC's to exchange files with CIS B+. KERMIT The KERMIT protocol, released as public domain software around 1980, was developed by Columbia University graduate students under the guidance of Frank da Cruz. The project's goal was to develop a protocol able to support file transfers over any serial data link in existence. Columbia University keeps KERMIT compatible with new communications technology by constantly expanding its specifications. Because of its complexity, KERMIT is not the fastest protocol to use, but it allows you to connect most computers and transfer files and is available for virtually all computer platforms, unlike other protocols. ZMODEM An easy to use interface, combining the best aspects of all protocols, was the goal behind this 1987 Chuck Forsberg creation. It can automatically adjust to use the best methods for a file transfer in each situation, and dynamically adjusts its transmission methods to compensate for line quality. ZMODEM is generally the protocol of choice when available. PROTOCOL FEATURES AUTODOWNLOADING Autodownloading refers to the ability of an application to automatically receive a file from a host machine. This feature speeds up file transfers and allows you to automate transfers in some situations. Procomm Plus supports autodownloading in the following protocols: ZMODEM - The Auto Download feature must be enabled for Procomm Plus to automatically receive a file with ZMODEM. When enabled, Procomm Plus monitors the port for a specific sequence. Upon receiving that code, Procomm Plus opens ZMODEM to receive the file. CIS B+ - The CompuServe B+ protocol uses an Enquiry character sent from the host machine to automatically cause the local machine to receive the file. Procomm Plus monitors the port for a single character, CTRL-E, which signals it to open the CIS B protocol. KERMIT - Autodownloading was first implemented for KERMIT in Procomm Plus for DOS version 2.01. Before this version, KERMIT worked in a fashion similar to that of XMODEM or YMODEM. KERMIT uses methods similar to that of ZMODEM to automatically receive a file. CRASH RECOVERY Crash recovery refers to the ability of a protocol to automatically find the last byte of a partially transmitted file and continue the transmission from that point. This is very useful if you lose your modem connection after initiating a download. To take advantage of this feature, set Procomm Plus to save partial files in case of an aborted download. CIS B+ - The CompuServe Information System host module totally controls CIS B+ crash recovery. The user must have the Delete Aborted Downloads option in Procomm Plus disabled to take advantage of this feature for CIS B+. ZMODEM - Procomm Plus controls ZMODEM crash recovery, which has four options: On, Overwrite, Protect, or Negotiate. The "On" option permits the addition of missing bytes to a file. "Overwrite" automatically overwrites the entire file on your system. "Protect" prohibits access to the existing file. "Negotiate" uses the settings specified by the other computer involved in the data exchange. G PROTOCOLS AND ERROR DETECTION A G PROTOCOL is a streaming protocol specifically designed for use with error correcting modems. These protocols format data into blocks containing error detection bytes, though they do not wait to receive an acknowledgment from the host system until the file transfer is complete. The receiver checks each packet for errors using CRC. The receiving computer aborts the transfer if it detects an error. KERMIT SERVER MODE KERMIT has two different modes for sending and receiving files. The first, similar to XMODEM, forces the user to issue a command on both ends of the connection to send or receive a file. Server mode controls both sides of a transfer with a single, intuitive command. Procomm Plus supports the four most commonly used KERMIT server commands: Get File, Send File, Finish and Logout. * Get File The "Get File" command, often referred to as the "Receive-Initiation" command, asks the KERMIT server to send you a specific file. This command prepares your local computer to receive a file and informs the KERMIT server how to send it. * Send File The "Send File" command, often referred to as the "Send-Initiation" command, informs the KERMIT server that a file is coming. This packet prepares the server to receive a file, and tells your computer where to find that file. * Finish The Finish command closes the server but does not log you out of the host system. * Logout The Logout command closes that instance of the server and logs you off the host system. This command is most useful on dedicated file servers. ============================================================================== To ensure that you have the latest version of this document, compare its revision number to that of the same document on any of our support sites. This technical bulletin may be copied and distributed freely as long as it is distributed in its entirety and it is not distributed for profit. Copyright (c) 1996 Quarterdeck All rights reserved. ==============================================================================