YModem协议简介

百度百科对Ymodem 协议描述

(Ymodem) Ymodem 协议。Ymodem是一种错误纠正协议。使用较大数据块的调制解调采用这种协议,以获得更高的工作效率。采用Ymodem协议的调制解调器以1024字节数的块发送数据。成功接收的不会被确认。有错误的块被确认(NAK),并重发。Ymodem类似于Xmodem-1K,不同之处是提供批处理模式(batch mode)。在批处理模式下,可以使用一个命令发送一些文件。Ymodem使用循环冗余码校验作为错误校验方式。 

等同于Xmodem-1K 加批文件传送的一种文件传送协议 ( 也称 Ymodem Batch) 。它比标准 Xmodem 要快,而且在发送数据之前发送文件名。 Ymodem-G 无需无错误通道的认可或当调制解调器自纠错时就可传送,但是一旦出现错误传送就会取消。

 YModem的传输定义的常量

 符号 数值 含义
 SOH 0x01 128字节数据帧,协议类型
 STX 0x02 1024字节数据帧,协议类型
 EOT 0x04 结束传输,发送者发送
 ACK 0x06 接收者处理成功回应,发送者发现下一包数据(1024或者128)
 NAK 0x15 接收者处理失败回应,发送者需要重发此1024或者128数据
 CA 0x18 传输中止
 C 0x43 接收者准备接收时会发连续的C,发送者接收到C开始发送

1、起始帧的数据格式


YModem的起始帧并不直接传输文件的数据,而是将文件名与文件的大小放在数据帧中传输,
它的帧长=3字节数据首部+128字节数据+2字节CRC16校验码=33字节。pNum表示数据帧号,2字节长度,从0x00到0xFF循环,文件信息为第一帧数据所以是00,pNumNot表示数据帧号取反,2字节长度,NUL[0] 表示文件名称+文件长度不足128字节时候,用0补齐128字节。它的数据结构如下:
SOH  pNum   pNumNot   [filename] [filezise]  NUL[ 0] CRCH CRCL

2、数据帧的数据格式

YModem数据帧有两种长度SOH和STX,两种格式除了数据帧长度不同外无较大区别。由于YModem采用每帧数据校验一次CRC,所以STX传输会减少校验,但是重发时候会增加重发数据量。

SOH pNum pNumNot data[128] CRCH CRCL
STX  pNum pNumNot data[1024] CRCH CRCL

3、数据结束帧数据格式

YModem的结束帧数据也采用SOH的128字节数据帧,pNum固定为00,pNumNot固定为FF,它的结构如下:

SOH 00 FF NUL[128] CRCH CRCL

4、取消发送帧数据格式

直接发送5个CA,即1818181818

5、文件传输过程

以SOH举例传输过程。STX只需要将文件信息帧,结束帧保留,文件内容包替换为STX即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值