1

CS5865 Laboratory #1 Notes

File Transfer Protocols - An Overview

Dr. B.J. Kurz

XMODEM (, 1970), one of the earliest ‘industry standard’ protocols in the public domain. HDX operation, character (byte)-oriented, fixed-length 128-byte blocks, 8-bit characters (bytes), 8-bit BCC = sum-mod256, stop-wait ARQ, block counts, binary data capability. Poor error detection capability, typically 95%. data block format: SOH/count/1’s compl. count/ user data/BCC control block format: ACK or NAK (or C), EOT

Several later versions of XMODEM are in use:

XMODEM-CRC same as regular XMODEM above except uses 8-bit BCC = CRC-8 (some implementations use 16-bit BCC = CRC-16). Better error detection capability, typically 99.97% (for CRC-8). Some versions negotiate the error character generation method: the sender first tries sum- mod256 BCC, then switches to CRC-8 BCC after three unsuccessful attempts indicated by NAKs from the receiver.

XMODEM-1K same as XMODEM-CRC except uses 1024-byte blocks for better throughput (fewer line- turn-arounds), but slightly degraded error detection performance.

WXMODEM a sliding-window version of XMODEM. Group size is fixed as 4 blocks. Much improved throughput. FDX capable lines needed if continous-ARQ error recovery used.

YMODEM (Chuck Forsberg) a variation of XMODEM-1K. Supports two block lengths of 128 bytes and 1024 bytes, uses 2-byte CRC-16, excellent error detection capability, typically 99.99%.

KERMIT (Frank de Cruz, Columbia Univ. Comp. Center, N.Y), most popular file transfer protocol, copyrighted, over 200 implementations for various systems. This is a comprehensive 2 remote communications package including terminal emulators, storage-to-storage transfer, not only a file transfer protocol. basically HDX operation, character (byte)-oriented, typically 94-byte blocks (but can be variable), sends 7-bit user characters (printable ASCII, in bytes) only, 8-bit BCC , stop- wait ARQ, sliding-window capability (optionally), block counts, has binary data capability and data compression capability (optionally). Negotiates capabilities and operation modes prior to actual file transfer. Preprocessing of 8-bit binary user data needed by prefixing: printable ASCII character -> send as is 7-bit -> # plus printable ASCII (CR -> #M) # is character stuffed as ## 8-bit printable ASCII with bit7=1: & plus printable ASCII (‘A’ with bit7 =1 -> &A) & becomes #& 8-bit control character with bit7=1: &# plus printable ASCII

Data compression by Run length coding: use ~ plus 8-bit (repeat count+32) for repeated bytes

Data block format: SOH/length+32/count+32/type/user data/BCC Control block format: SOH/ctrl fct/count+32/ACK, etc.../BCC

Some other file transfer protocols:

ZMODEM a streaming protocol without error recovery, mostly for use with error-correcting , excellent throughput.

FTP Military-standard file transfer protocol from DOD’s DPA protocol suite.

MNP a suite of proprietary protocols for file transfer from Microcom Systems (Microcom Systems Networking Protocols). Used mostly as embedded protocols in modems). Several levels of increasing capabilities and sophistication, MNP1..5..10.

MODEM/7 used in CP/M

X.PC and BLAST similar to HDLC but for asynchronous transmission mode. ftpsumry.wpd