1K Xmodem协议介绍

一.超级终端1K Xmodem文件传输协议

超级终端的1K Xmodem文件传输协议为基于点对点连接的服务与客户端间的通信,提供了一种固定包长度的简单的连续文件传输协议。每一个包都包含1024字节的文件数据,并且都单独的被接收客户端响应。每次只能传输一个文件,并且失败后只能从新开始传输。

超级终端的1K Xmodem 文件传输协议是超级终端Xmodem文件传输协议的扩展,包大小由Xmodem中的128字节增加到1024字节。该协议通过使用一个交替的开始字符(包头SOH<0x02>)来标识1K Xmodem包的开始。

二.1K Xmodem协议传输流程

超级终端1K Xmodem文件传输协议并不需要向接收客户端发送待发送文件的名称 ,该文件将会被接收方授予一个局部有效的文件名。

要开始文件传输的过程,首先接收方向发送方发送一个轮询字符,来提示发送方客户端已经准备好了。如果接收方支持check-sum CRC)校验,则轮询字符可以用0x43 (ASCII 字母 C);如果接收方只支持旧的checksum (求总和)校验,则轮询字符可以用0x15 (NACK线控制字符)

发送方响应接收方的启动字符,开始发送文件数据包,每个包都是1024字节的固定长度。如果最后一个文件数据包不足1024字节,则利用NACK0x1A)填充到1024字节。接收方通过ACK(正常接收)或者NACK(非正接收)来响应每一个包。

如果发送方收到ACK,则发送下一个包知道文件传输完成;乳沟发送方收到NACK,则重新发送上一个包。

当发送方发送完成后,发送EOT通知接收方文件传输结束;接收方发送ACK来响应;发送方收到ACK后则文件传输完成。

文件数据包的结构:

<包序号><包序号反码><文件数据(1024字节)><校验位>

文件传输流程:

三.控制字符

字符(16进制)

含义

0x01

SOH: 包头

0x04

EOT: 结束文件传输

0x06

ACK: 正常响应,如:数据包正确接收

0x15

NACK: 非正常响应

0x18

CAN: 取消文件传输

0x43

C: ASCII字符C

 

你可能感兴趣的:(通信协议,终端,扩展,c)