做一个自适应网站多少钱,工程建设游戏,下列关于网站开发网页上传,做海外贸易网站《YModem协议总结》 目录
第1章 YModem协议简介 4
1.1 基本介绍 4 1.2 YModem基本介绍 4
第2章 YModem传输协议 5
2.1 起始帧的数据格式 5 2.2 数据帧的数据格式 5 2.3 结束帧数据结构 6 2.4 文件传输过程 6 2.5 CRC的计算 7
附录A 附录 8
A.1 附录 8 第1章 YModem协议简…《YModem协议总结》 目录
第1章 YModem协议简介 4
1.1 基本介绍 4 1.2 YModem基本介绍 4
第2章 YModem传输协议 5
2.1 起始帧的数据格式 5 2.2 数据帧的数据格式 5 2.3 结束帧数据结构 6 2.4 文件传输过程 6 2.5 CRC的计算 7
附录A 附录 8
A.1 附录 8 第1章 YModem协议简介
1.1基本介绍
最常用的几种通信传输协议有XModem、YModem、ZModem等。 XModem是最早的协议之一几乎所有的通讯程序支持的文件传输协议它传输128字节信息块。 YModem协议是XModem的改进协议它最用于调制解调器之间的文件传输的协议具有快速稳定传输的优点。它的传输速度比XModem快这是由于它可以一次传输1024字节的信息块同时它还支持传输多个文件也就是常说的批文件传输。 ZModem速度快于XModem和YModem而且可以更好地断开后恢复传输。 如今XModem基本已经被淘汰最常用的就是YModem与ZModem。
1.2YModem基本介绍
YModem分成YModem-1K与YModem-g。 YModem-1K用1024字节信息块传输取代标准的128字节传输数据的发送回使用CRC校验保证数据传输的正确性。它每传输一个信息块数据时就会等待接收端回应ACK信号接收到回应后才会继续传输下一个信息块保证数据已经全部接收。 YModem-g传输形式与YModem-1K差不多但是它去掉了数据的CRC校验码同时在发送完一个数据块信息后它不会等待接收端的ACK信号而直接传输下一个数据块。正是它没有涉及错误校验才使得它的传输速度比YModem-1K来得快。一般都会选择YModem-1K传输平时所说的YModem也是指的是YModem-1K。 第2章 YModem传输协议
2.1起始帧的数据格式
YModem的起始帧并不直接传输文件的数据而是将文件名与文件的大小放在数据帧中传输它的帧长3字节数据首部128字节数据2字节CRC16校验码33字节。它的数据结构如下 SOH 00 FF filename[ ] filezise[ ] NUL[ ] CRCH CRCL
其中SOH0x01表示这个数据帧中包含着128字节的数据部分
在SOH后面的00 FF00表示数据帧序号因为是起始帧所以它的帧序为00至于FF它是帧序的取反
filename[ ]就是文件名如文件名foo.c它在数据帧中存放格式为66 6F 6F 2E 63 00一定要在文件名最后跟上一个00表示文件名结束
filesize[ ]就是文件大小如上面的foo.c的大小为1KByte即1024Byte需要先将它转化成16进制即0x400所以它在数据帧的存放格式 为34 30 30 00即“400”同样的文件大小最后需要跟上00表示结束
NUL[ ]表示剩下的字节都用00填充数据部分大小为128字节除去文件名与文件大小占用的空间外剩余的字节全部用00填充
CRCH CRCL分别表示16位CRC校验码的高8位与低8位。2.2数据帧的数据格式
YModem的数据帧中会预留1024字节空间用来传输文件数据它跟起始帧接收差不多如下 STX 01 FE data[1024] CRCH CRCL
其中STX0x02表示这帧数据帧后面包含着1024字节的数据部分
STX后面的01 FE01表示第一帧数据帧FE则是它的取反
data[1024]表示存放着1024字节的文件数据
CRCH与CRCL是CRC16检验码的高8位与低8位。如果文件数据的最后剩余的数据在128~1024之前则还是使用STX的1024字节传输但是剩余空间全部用0x1A填充如下结构 STX [num] [~num] data[ ] 1A …1A CRCH CRCL 有一种特殊的情况如果文件大小小于等于128字节或者文件数据最后剩余的数据小于128字节则YModem会选择SOH数据帧用128字节来传输数据如果数据不满128字节剩余的数据用0x1A填充这是数据正的结构就变成了 文件大小小于128字节 SOH 01 FE data[ ] 1A …1A CRCH CRCL 文件最后剩余数据小于128字节 SOH [num] [~~num] data[ ] 1A…1A CRCH CRCL
2.3结束帧数据结构
YModem的结束帧数据也采用SOH的128字节数据帧它的结构如下 SOH 00 FF NUL[128] CRCH CRCL
结束帧同样以SOH开头表示后面跟着128字节大小的数据
结束帧的帧序也认为是00 FF
结束帧的128字节的数据部分不存放任何信息即NUL[128]全部用00填充。2.4文件传输过程
文件的传输过程以具体的例子说明。把foo.c大小为4196Byte0x1064的文件作为传输的对象则它的传输过程如下
发送端 接收端 C
SOH 00 FF foo.c 1064 NUL[118] CRC CRC ACKC
STX 01 FE data[1024] CRC CRCACK
STX 02 FD data[1024] CRC CRCACK
STX 03 FC data[1024] CRC CRCACK
STX 04 FB data[1024] CRC CRCACK
SOH 05 FA data[100] 1A[28] CRC CRCACK
EOT NAK
EOTACKC
SOH 00 FF NUL[128] CRC CRC ACKYModem的传输过程就是上面所示。但是上面传输过程中存在许多通信信号它们的数值与意义如下表所示
符号数值含义SOH0x01128字节数据包STX0x021024字节数据包EOT0x04结束传输ACK0x06回应NAK0x15不回应CA0x18传输中止C0x43请求数据包
还是有几点需要说明下 1EOT信号由发送端发送 2CA中止传输信号也有发送端发送 3C的含义开始传输时发送C请求起始帧数据然后再发送C请求文件数据帧最后有发送一次C请求结束帧
2.5CRC的计算
YModem的采用的是CRC16-CCITT欧洲版本的CRC校验它的生成多项式为x16x12x51。 附录A 附录
A.1附录