YModem协议
来源:互联网 发布:cos 淘宝 编辑:程序博客网 时间:2024/05/16 19:32
YModem协议:
YModem协议是由XModem协议演变而来的,每包数据可以达到1024字节,是一个非常高效的文件传输协议。
下面先看下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协议的基本操作流程。
- YModem协议
- YModem协议
- YModem协议
- YModem协议
- Ymodem协议的学习
- ymodem协议c实现
- xmodem ymodem zmodem协议
- YModem协议理解
- Bootloader设计(YModem协议)
- Ymodem 协议 改进的CAN—Ymodem协议
- stm32 Bootloader设计(YModem协议)
- stm32 Bootloader设计(YModem协议)
- stm32 Bootloader设计(YModem协议) (转载)
- 基于Ymodem协议的IAP升级程序
- Stm32IAP使用securcrt ymodem协议 下载程序
- YModem协议的源代码下载网址(资源收藏)
- 基于Ymodem协议的STM32F407的串口IAP
- 基于Ymodem协议的IAP上位机(C#)
- oj1C
- C++中替代sprintf的std::ostringstream输出流详解
- Struts2 登录
- SVD奇异值分解(2)-详解
- 【解惑】领略Java内部类的“内部”
- YModem协议
- 关于genymotion启动虚拟机的问题解决
- 赵雅智_ContentProvider
- 【leetcode】sort list
- WeifenLuo.WinFormsUI.Docking的 右键 的个性处理
- Rotate List
- Unsupported compiler 'com.apple.compilers.llvmgcc42' selected for architecture 'armv7'
- fedora系统布的tomcat服务在其他电脑上访问不到
- 第十六周ACM(1)