是什么
YMODEM是发源于XMODEM/CRC的早期应用在调制解调器上的协议,它的产生是为了解决XMODEM协议的如下缺点:
- 单次传输字节少
- 8bit校验影响了传输的可靠性
- 传输文件过程中可能最多累计会产生127byte的无效字节的传输
- 传文件会丢失文件的修改日期信息
正因为XMODEM协议有如上这些缺点,所以,YMODEM在此基础上,优化解决了以上这些缺点,并且尽可能地使得协议变得更简单。
如下这些公共域程序中已经支持YMODEM协议,YAM (CP/M),
YAM(CP/M-86), YAM(CCPM-86), IMP (CP/M), KMD (CP/M), MODEM76.ASM (CP/M),
rb/sb (Unix, VMS, Berkeley Unix, Venix, Xenix, Coherent, IDRIS, Regulus)和Professional-YAM.1等,
关键字定义
在YMODEM协议中定义了几种关键字,分别代表不同的含义。
Key Words | Value | Description |
---|---|---|
SOH | 0x01 | 协议头(128bytes类型) |
STX | 0x02 | 协议头(1k类型) |
EOT | 0x04 | 传输结束 |
ACK | 0x06 | 接收响应 |
NAK | 0x15 | 失败响应 |
CAN | 0x18 | 取消传输 |
C | 0x43 | 开启文件传输 |
除了以上关键字,还有如下特定功能的符号定义。
Key Words | Value | Description |
---|---|---|
ASCII tabs | 0x09 | 每个tabs符号宽度为8 |
CR/LF | 0x0D/0x0A | 行结束标志 |
CPMEOF(^Z) |