一.超级终端1K Xmodem文件传输协议
超级终端的1KXmodem文件传输协议为基于点对点连接的服务与客户端间的通信,提供了一种固定包长度的简单的连续文件传输协议。每一个包都包含1024字节的文件数据,并且都单独的被接收客户端响应。每次只能传输一个文件,并且失败后只能从新开始传输。
超级终端的1K Xmodem文件传输协议是超级终端Xmodem文件传输协议的扩展,包大小由Xmodem中的128字节增加到1024字节。该协议通过使用一个交替的开始字符(包头SOH<0x02>)来标识1KXmodem包的开始。
二.1K Xmodem协议传输流程
超级终端1K Xmodem文件传输协议并不需要向接收客户端发送待发送文件的名称,该文件将会被接收方授予一个局部有效的文件名。
要开始文件传输的过程,首先接收方向发送方发送一个轮询字符,来提示发送方客户端已经准备好了。如果接收方支持check-sum(CRC)校验,则轮询字符可以用0x43 (ASCII 字母 C);如果接收方只支持旧的checksum(求总和)校验,则轮询字符可以用0x15 (NACK线控制字符)。
发送方响应接收方的启动字符,开始发送文件数据包,每个包都是1024字节的固定长度。如果最后一个文件数据包不足1024字节,则利用NACK(0x1A)填充到1024字节。接收方通过ACK(正常接收)或者NACK(非正接收)来响应每一个包。
如果发送方收到ACK,则发送下一个包知道文件传输完成;乳沟发送方收到NAC K,则重新发送上一个包。
当发送方发送完成后,发送EOT通知接收方文件传输结束;接收方发送ACK来响应;发送方收到ACK后则文件传输完成。
文件数据包的结构:
<SOH><包序号><包序号反码><文件数据(1024字节)><校验位>
文件传输流程:
三.控制字符
字符(16进制) | 含义 |
0x01 | SOH: 包头 |
0x04 | EOT: 结束文件传输 |
0x06 | ACK: 正常响应,如:数据包正确接收 |
0x15 | NACK: 非正常响应 |
0x18 | CAN: 取消文件传输 |
0x43 | C: ASCII字符C |