Ymodem协议

Ymodem协议

AMENG
2022-03-13 / 2 评论 / 7 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2022年10月25日,已超过540天没有更新,若内容或图片失效,请留言反馈。

YModem协议:  

         YModem协议是由XModem协议演变而来的,每包数据可以达到1024字节,是一个非常高效的文件传输协议。

         下面先看下YModem协议传输的完整的握手过程:先看下图。

SENDER:发送方。                   RECEIVER:接收方。

20140610144426187.png

第一步先由接收方,发送一个字符'C'

发送方收到'C'后,发送第一帧数据包,内容如下:

SOH 00 FF Foo.c NUL[123] CRC CRC

1字节SOH:表示本包数据区大小有128字节。如果头为STX表示本包数据区大小为1024

2字节00编号,第一包为00,第二包为01,第三包为02依次累加。到FF后继续从0循环递增。

3字节FF编号的反码。 编号为00 对应FF,为01对应FE,以此类推。

4字节到最后两字节:若第1字节为SOH时有128字节,为STX时有1024字节,这部分为数据区。“Foo.c” 文件名, 超级终端下,在文件名后还有文件大小。官方dome也是因为使用了这个文件大小进行比对。这就是为什么用SecureCRT中的YMODEM协议而无法正确传输的原因。在文件名和文件大小之后,如果不满128字节,以0补满。

最后两字节:这里需要注意,只有数据部分参与了效CRC,不包括头和编码部分。


16CRC效验,高字节在前,低字节在后。

接收方收到第一帧数据包后,发送ACK正确应答。

然后再发送一个字符'C'

发送方收到'C'后,开始发送第二帧,第二帧中的数据存放的是第一包数据。

接收方收到数据后,发送一个ACK然后等待下一包数据传送完毕,继续ACK应答。直到所有数据传输完毕。

数据传输完毕后,发送方发EOT,第一次接收方以NAK应答,进行二次确认。

发送方收到NAK后,重发EOT,接收方第二次收到结束符,就以ACK应答。

最后接收方再发送一个'C',发送方在没有第二个文件要传输的情况下,


发送如下数据

SOH 00 FF 00~00(128) CRCH CRCL 

接收方应答ACK后,正式结束数据传输。

以上部分,为YMODEM协议的基本操作流程。


附上ASCII码表。

o4YBAF3zOQ-AMgP_AA3en9HOY4Q803.png

0

评论 (2)

取消
  1. 头像
    上海seo
    Windows 10 · Google Chrome

    学习啦。。(*^▽^*)

    回复
  2. 头像
    鸟叔
    Windows 7 · Google Chrome

    鸟叔来串门,通过虫洞穿梭至此,期待回访!

    回复