YModem协议是由XModem协议演变而来的,每包数据可以达到1024
字节,是一个非常高效的
文件传输协议。
协议介绍
(Ymodem) Ymodem 协议。Ymodem是一种错误纠正协议。使用较大数据块的调制解调采用这种协议,以获得更高的工作效率。采用Ymodem协议的
调制解调器以1024字节数的块发送数据。成功接收的不会被确认。有错误的块被确认(NAK),并重发。Ymodem类似于Xmodem-1K,不同之处是提供批处理模式(batch mode)。在批处理模式下,可以使用一个命令发送一些文件。Ymodem使用
循环冗余码校验作为错误校验方式。
等同于Xmodem-1K 加批文件传送的一种文件传送协议 ( 也称 Ymodem Batch) 。它比标准 Xmodem 要快,而且在发送数据之前发送文件名。 Ymodem-G 无需无错误通道的认可或当
调制解调器自纠错时就可传送,但是一旦出现错误传送就会取消。
基本操作流程
YMODEM协议的基本操作流程
1开启是由接收方开启传输,接收方发送一个字符'C',然后进入等待(SOH)状态,如果没有回应,就会超时退出。
2发送方开始时处于等待过程中,等待字符'C'。发送方收到'C'后,发送第一帧数据包,内容如下:
SOH 00 FF Foo.c NUL[123] CRC CRC (Foo.c为文件名,NUL[123]补0)
进入等待(ACK)状态。
3接收方收到第一帧数据包后,
CRC校验满足,则发送ACK。
4发送方接收到ACK,又进入等待“文件传输开启”信号,即重新进入等待“C”的状态。
上面接收方只是收到了一个文件名,现在正式开启文件传输,Ymodem支持128字节和1024字节一个数据包。128字节以(SOH)开始,1024字节以(STX)开始。
5接收方又发出一个字符'C',开始准备接收文件。进入等待“SOH”或者“STX”状态。
6发送方收到字符'C'后,开始发送第二帧,第二帧中的数据存放的是第一包数据。内容如下:
(SOH/STX)(01序号)(FE反码)(128/1024字节数据)(CRC校验),等待接收方“ACK”。
7接收方收到数据后,发送一个ACK,然后等待下一包数据传送完毕,继续ACK应答。直到所有数据传输完毕。…
8数据传输完毕后,发送方发EOT,第一次接收方以NAK应答,进行二次确认。发送方收到NAK后,重发EOT,接收方第二次收到结束符,就以ACK应答。最后接收方再发送一个字符'C'开启另一次传输,发送方在没有第二个文件要传输的情况下,发送如下数据:SOH 00 FF 00~00(共128个) CRCH CRCL,接收方应答ACK后,正式结束数据传输。