Zmodem协议是针对modem的一种错误校验协议。利用Zmodem协议,可以在modem上发送512字节的数据块。如果某个数据块发生错误,接受端会发送“否认”应答,因此,数据块就会被重传。
Zmodem协议是针对modem的一种错误校验协议。利用Zmodem协议,可以在modem上发送512字节的数据块。如果某个数据块发生错误,接受端会发送“否认”应答,因此,数据块就会被重传。
它是Xmodem 文件传输协议的一种增强形式,不仅能传输更大的数据,而且错误率更小。包含一种名为检查点重启的特性,如果通信链接在数据传输过程中中断,能从断点处而不是从开始处恢复传输。
比较
※ XModem是最早的文件传输协议,它是一种发送等待(send-and-wait)协议, 具有流量控制功能。
收、发方均采用包传送。每个包由包头、数据、包尾组成。
包头:包开始(SOH),包编号和包编号补码;
数据:固定的128字节;
包尾:存放校验和checksum。
XModem的工作过程 XModem工作时,先由收方发出NAK,然后等待发方的包开始SOH。收到SOH后,即 将整个包收完,检查是否有错。如出错,则向发方发出一个NAK,请求发方重发; 否则发出ACK,表示接收正确,请发下个包。XModem检查包编号和checksum来确定 该包是否传送有问题。编号是发方送得出包的顺序。当XModem发送完最后一个包 时,收方会收到文件结束符(EOT),此时,收方会送出一个ACK通知发方传送结束。
※ YModem是XModem的改进版。它可以传送多个文件,数据长度可达1K字节支持16位 CRC校验。
※ Zmodem不但具有纠错功能,而且是一种流式协议。它不再以收方发ACK引导。 ZModem完全以包引导,通常用于BBS。
※ KERMIT类似于XModem,但它对XModem进行了改进,可以传输多个文件,错误检测 方式明显改善。同时KERMIT还提供压缩功能。
XModem | YModem | ZModem | KERMIT | |
支持XON/XOFF | NO | NO | YES | YES |
1字节checksum | YES | NO | NO | YES |
2字节checksum | NO | NO | NO | YES |
支持多文件传输 | NO | YES | YES | YES |
最大块长度 | 128 | 1K | 8K | 9K |
最小块长度 | 128 | 128 | 10 | 64 |