The ZMODEM Transport Protocol
BBSs typically offer large archives of free and public software.
Transfering file from a bbs to the local machine and vis versa
is therefore one of the most beloved application of blackboard
systems. This file exchange facility is realized by so called
protocols of which exists a confusing collection.
Kom currently offers only one, but a common and efficient one
- ZMODEM.
Application notes
If you're logged-in to a linux or unix box via a dialup connection,
use sz <Filename> to initalize a download.
In this case you should consider to setup serial line ip instead of
using Kom, which is intended to be a client for DOS boxes.
Implementation notes
Chuck Forsberg, the designer and implementor of ZMODEM played a lot
which options and possible future extention and past tries in his
original program. To keep things simple, obviously obsolete and purely
experimental features were not implemented. The implemented features
were choosen carefully such that no problems with any ZMODEM complient
implementation should ever arise. Further, no drawbacks in performance
and/or security will follow from this selection.
Omitted is:
- Fallback to YMODEM and XMODEM.
That made sense in the days when ZMODEM was first released.
Since YMODEM and XMODEM have some severe flaws, they should
be out of use in these days for online file transport done
by blackboard systems - allthough still offered.
(XMODEM is really in use with fido technology networks only.)
- Variable long headers (ZVHEX,ZVBIN,ZVBIN32,ZVRBIN32)
These come out fixed size in fact, but take an extra byte.
- Telenet command escape CR-@-CR.
Rest in peace.
- 32 bit crc (ZBIN32, ZRBIN32).
16 bit crc is very secure and 32 bit crc costs 2-4 extra bytes.
- Run length encoding (ZRHEX, ZRBIN).
This is normally done by the modem hardware nowadays. Typical
bbs files are ziped somehow anyway.
- ZCOMMAND
This feature was never accepted by the users of ZMODEM so
it is implemented only to send out a notice and replying
to the other side, that the command was not executed.
- ZFREECNT
Kom never answers the correct amount of free space, but 0
indicating infinite :)) disc space instead.
References
The ZMODEM documentation Does anyone have a HTML
version of it?
The Home of ZMODEM.
It's blatanly commertial, but worth a visit if you're interested in ZMODEM backgrouds and roots.