xmodem ymodem xmodem协议和区别

Overview

帧长度 = (帧头 + 数据+帧尾)

Xmodem 原始版 Xmodem CRC Xmodem 1K Ymodem Ymodem-g Zmodem kermit
帧头(1字节) NAK SOH STX SOH或者STX SOH或者STX
数据包 128字节 128字节 1024字节 1024字节或者128字节 1024字节或者128字节 最大8K最小10字节 最大9K最小64字节
校验方式(帧尾) checksum,1字节校验码 CRC16,2字节校验码 CRC16,2字节校验码 CRC16,2字节校验码 CRC16,2字节校验码
说明 相对原始版,使用CRC正确率更高 和Ymodem类似 Ymodem相对Xmodem 1K,起始帧不是直接发送数据,而是发送文件名和文件大小。而且支持多文件传输 它在发送每个块之后不等待ack确认,而是快速连续地发送块。如果任何块传输失败,则整个传输将被取消。 支持故障恢复:如果Zmodem传输因任何原因被取消或中断,则可以稍后恢复传输,并且无需重新发送之前传输的信息。

Xmodem 帧格式

  • 相比于 Xmodem 校验和, Xmodem CRC16 是发送控制字符 C,而校验和发送控制字符 NAK,并且 CRC16 校验字段占 2 Byte。 - 如果使用 Xmodem-1k 协议发送 1024 字节的数据,只需要将数据头标志由 SOH 替换为 STX,数据部分占 1024 字节。 - 如果发送的数据不满 128 字节或者 1024 字节,使用 0x1A 填充。

Ymodem

  • 起始帧不是直接发送数据,而是发送文件名和文件大小。

linux命令

sx file1
send text file file1, using the xmodem protocol
sx -b file2
send binary file file2, using xmodem
rx
receive a text file using xmodem
rx -b file3
receive a binary file, file3, using xmodem

Ref

https://web.cecs.pdx.edu/~rootd/catdoc/guide/TheGuide_226.html
https://pauillac.inria.fr/~doligez/zmodem/ymodem.txt
https://blog.51cto.com/u_16213610/10151866

posted @ 2024-07-02 10:51  zephyr~  阅读(12)  评论(0编辑  收藏  举报