YMODEM

SENDER:发送方
RECEIVER:接收方
第一步先由接收方发送一个字符'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验,不包括头和编码部分
16位CRC效验高字节在前低字节在后
接收方收到第一帧数据包后发送ACK正确应答
然后再发送一个字符'C'
发送方收到'C'开始发送第二帧第二帧中的数据存放的是第一包数据
接收方收到数据后发送一个ACK然后等待下一包数据传送完毕继续ACK应答直到所有数据传输完毕
数据传输完毕后发送方发EOT第一次接收方以NAK应答进行二次确认
发送方收到NAK后重发EOT接收方第二次收到结束符就以ACK应答
最后接收方再发送一个'C'发送方在没有第二个文件要传输的情况下发送如下数据SOH 00 FF 00~00(共128个) CRCH CRCL接收方应答ACK后正式结束数据传输

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