Xmodem 发送 128 字节和一个校验和,等待确认 (Acknowledgment) 以确认一切正常,然后发送下一个数据块。如果收到否定确认 (negative acknowledgement) 或者没有收到 ACK 或 NAK,则重新发送该数据块。
Xmodem 是一个简单的协议,正如您对为运行 CP/M 的 8 位计算机编写的程序所期望的那样。它有很多低效和次要问题,例如将文件大小向上舍入到下一个 128 字节边界。这些缺陷导致了协议的演变,经历了 Xmodem 的修订,然后是 Ymodem,最终是 Zmodem。Zmodem 比 Xmodem 快得多,并且没有烦人的问题。Zmodem 协议比 Xmodem 协议复杂得多,但由于我们最多只寻求编译代码,因此这种复杂性无需我们担心。
remote bash$ rz ... waiting to receive.**B0100000023be50 |
Alt-S Upload zmodem [zmodem upload - Press CTRL-C to quit] Sending: upload.bin Bytes Sent: 3072/ 10000 BPS:2185 ETA 00:09 |
如果上传失败,并且您看到 rz 等待接收文件,那么多次键入 Ctrl-X 将使您返回到命令提示符。 这也适用于 Xmodem 的 rx 和 Ymodem 的 ry。
Zmodem 的有用功能包括恢复失败的上传和在单个上传会话中发送多个文件。
Xmodem、Ymodem 和 Zmodem 在 POSIX 计算机上的实现可从 http://www.ohse.de/uwe/software/lrzsz.html 获取。Red Hat Linux 在以下位置分发了它:lrzsz RPM 软件包。lrzsz 是公共领域版本 rzsz(来自 Omen Technology)的增强型自由软件分支。