Kermit File Transfer Features
Frank da Cruz
Created: 15 April 2022
Tue Apr 19 20:20:00 2022
The Kermit file-transfer protocol was designed from the beginning (1980-81)
to be suitable for the widest variety of computers, operating systems, and
communication methods. It has been implemented successfully on
supercomputers, mainframes, minicomputers, microcomputers, desktops,
laptops, tablets, and even handheld calculators. Not to mention assorted
cash registers, industrial milling machines, and medical devices. Cell
phones, I'm not sure, but there is
version! CLICK HERE
for a list of
- Accurate transfers accomplished by error detection and
correction, stop-and-wait protocol, or sliding windows with selective
retransmission, or continuous streaming, depending on the type of
connection. Plus the ability to tailor packet length and window size
to the capacity and quality of the connection.
- Transfer of single files, groups of files (via "wildcards"),
lists of files, or an entire directory tree in a single
operation, even between unlike file systems (e.g. Windows, Unix, VMS).
- Automatic download: when you are using a Kermit program as your
terminal emulator and the host sends a file to you with Kermit protocol,
your terminal emulator automatically switches into file-transfer mode to
receive the file and then switches back to terminal mode automatically when
the transfer ends. Automatic upload is possible too, driven by the Kermit
program at the far end.
- File attributes: Kermit transfers not just the file's name and
contents, but also its creation date, size, permissions, and other
attributes so they can be handled appropriately or preserved on the
receiving computer. Attributes regarding the transfer itself are also
included: the character encoding (for text files only) and the transfer mode
(text or binary). No conversions are necessary when the two computers are
"alike", but they are required fot text files when formats differ
(e.g. between Windows and Unix).
- Text-file encoding conversion,
e.g. between PC Code Pages, ISO 8859 encodings, various national character
sets (like Russian KOI-8), and UTF-8. This is vital for text files written
in languages other than English (but less important as UTF-8 — the
Universal Character Set — sees wider
adoption). See list of supported character
- Automatic per-file text/binary mode selection. The
file-attribute mechanism lets Kermit transfer files in the appropriate mode
automatically not only in single-file transfers but also during a multifile
transfer; each file is sent in the appropriate format along with a
transfer-mode attribute so the receiver knows to convert incoming text files
to its own format, if necessary, and to leave binary files alone. Examples
of binary files include executable program images, JPG and other images,
Microsoft Word documents, PDF files, and so on, which must not be altered in
any way during transfer. Text files consist of lines of text — prose,
computer program source code, HTML Web pages — that can have different
formats (end-of-line marker, character encoding) on different platforms
(Unix, Windows, etc).
- Options for handling filename collisions (overwrite, refuse,
accept only if newer, append, backup, rename, etc).
- Recovery of interrupted transfers
(binary files only between unlike filesystems; all files between like
- Suitability to all types of connections: Internet, dialup
modem, direct serial-port connections.
- High-speed streaming transfers on error-free connections
such as TCP/IP or flow-controlled error-correcting modems.
- The ability to adapt to slow, noisy, and/or nontransparent
communications channels such as modems, front ends, or other devices
that have an "escape character" or sequence, and to receivers that can't
accept long bursts of input. And the ability to adapt to 7-bit
connections and to half-duplex connections (typical of 1970s-era IBM
- Selection of files to be transferred not only by name, but also
date ranges, size ranges, type (text or binary), and
numerous other selection criteria, e.g. exception lists, in any
- For transaction processing: the ability to
automatically delete a file after (and only if) it was sent successfully and
to move a successfully received file to a different location after (and only
if) it was received successfully.
- The ability to send a file with a different name than it is stored with;
ability to send a received file to a printer or to send it as email... etc
- A client-server configuraton in which the human user (or script)
controls everything from the client side.
- Speaking of scripts, the major Kermit programs
(C-Kermit for Unix and VMS,
Kermit 95 for Windows,
and MS-DOS Kermit for MS-DOS) include a
built-in script programming language for
automation of any communication and/or file-transfer and management task.
And almost any other task you can think of, such
as this one.
- The About Kermit web page.
- da Cruz, Frank,
The Kermit Protocol Manual, June 1986.
- da Cruz, Frank,
A File Transfer Protocol, Digital Press, Burlington MA, 1987.
- da Cruz, Frank, and Christine M. Gianone,
Using C-Kermit, Second Edition, Digital Press / Butterworth
Heinemann, Newton MA (1997). C-Kermit 6.0 for Unix, VMS, and some other
operating systems (Unix = Linux, MacOS, OpenBSD, NetBSD,
FreeBSD, etc etc). Updates online at
ckermit70.html for C-Kermit 7.0,
ckkermit80.html for C-Kermit 8.0,
ckkermit90.html for C-Kermit 9.0.
- Kermit News issues, 1986-1995.
- Kermit 95 manual for K95 2.1.3
Oral History Panel, Computer History Museum, 2012.
- Kermit Protocol 40th Anniversary,
29 April 2021.