NAME
ekermit —
Send or receive files using
Kermit file transfer protocol
SYNOPSIS
ekermit |
[-BdhkLRrT]
[-b 1235]
[-E
number]
[-p neoms]
[-s
file] |
DESCRIPTION
ekermit is a simple command line interface to EK (Embedded
Kermit, E-Kermit), which is an implementation of the Kermit file transfer
protocol written in ANSI C and designed for embedding in devices or firmware,
use in realtime applications, or for construction of DLLs and libraries.
ekermit performs just two functions: sending files and
receiving files.
ekermit does not include client/server functions; a command or
script programming language; character-set conversion; transport encryption;
or any form of communications or file input/output. It does not dial modems,
it does not make connections, it does not have a built-in TCP/IP stack or
interface to an external one. If you need these features, then you should use
a full Kermit program, such as C-Kermit or Kermit 95.
The following options are available:
-
-
- -B
- Force binary mode.
-
-
- -b
1235
- Block check type: 1, 2, 3, or 5.
-
-
- -d
- Create debug.log.
-
-
- -E
number
- Simulated error rate (0-100).
-
-
- -h
- Display a help message.
-
-
- -k
- Keep incompletely received files.
-
-
- -L
- Local mode (vs remote).
-
-
- -p
neoms
- Parity: none, even, odd, mark, space.
-
-
- -R
- Remote mode (vs local).
-
-
- -r
- Receive files.
-
-
- -s
file ...
- Send files.
-
-
- -T
- Force text mode.
IMPLEMENTATION NOTES
ekermit includes the following Kermit Protocol features:
- Long packets.
- Sliding windows with
Go-Back-to-N error recovery.
- Repeat-count
compression.
- Control-character prefixing
and unprefixing.
- 8th-bit prefixing (for
transferring 8-bit data on 7-bit links) (= parity).
- Attribute packets (type,
size, and date).
- Sending and receiving single
or multiple files.
- Automatic per-file
text/binary mode switching.
- All three block check types
(6- and 12-bit checksum, 16-bit CRC).
- Status reports (protocol
state, file name, size, timestamp, bytes so far).
- Transfer cancellation by
either party.
The following Kermit Protocol features are not implemented:
- Sliding windows with
selective retransmission.
- Character sets.
- Locking shifts.
- Client/server.
Because
ekermit is designed primarily for embedding, it does
not use streaming or (except in EKSW) true sliding windows (although much of
the sliding windows code is there).
The lack of true sliding windows in
ekermit is compensated by
having
ekermit pretend to support them without really doing
so. This allows its sending partner to "stream" packets rather than
waiting for ACKs after each one, as long as there isn't an error. If there is
an error, the recovery strategy is "go back to n" (or perhaps in
some cases "error out") rather than "selective repeat".
EKSW, a separate program that has not been integrated with
ekermit (but should be), supports true sliding windows with
selective repeat; that is, only those packets are retransmitted that actually
need to be.
In any event, since
ekermit is intended primarily for
embedding, it is anticipated that round-trip delays won't be a big factor;
connections will generally be local, short, relatively fast, and if the
connection is effectively flow controlled, error-free. When effective flow
control is lacking, the speed and/or packet length and/or window size can be
set to a combination of values that maximizes throughput and minimizes data
loss.
SEE ALSO
http://www.kermitproject.org/ek.html
HISTORY
Version 1.1 of
ekermit was released in 2002. A BSD-licenced
version 1.6 was released in 2011.