Modem控制字符:
- NUL: 0x00
- STX: 0x02
- SOH: 0x04
- ACK: 0x06
- NAK: 0x15
- CAN: 0x18
- C: 0x43
- G: 0x47
Modem帧格式:
head | blk | 255 - blk | data | check |
---|---|---|---|---|
1 byte | 1byte | 1byte | 128/1024 byte | 1byte sun / 2byte crc |
Modem协议特点:
- 文件传输由Receiver首先发送控制字符触发;
- Sender数据包校验方式由收到的控制字符决定(NAK,sum校验;C,crc校验);
- Sender数据包数据长度由包头决定(SOH,128 byte数据;STX,1024 byte数据);
- 传输最后一包数据报文不足128/1024 byte时,需要使用NUL填充到128/1024 byte;
- 文件数据传输包允许混用128 byte(SOH)和1024 byte(STX)数据长度;
- Receiver收到正确数据包(帧格式、块号、校验均正确)回复ACK,否则回复NAK;
- Sender收到ACK发送下包报文(数据或控制字符),收到NAK需重发本包报文(数据或控制字符);
- YModem增加了文件名、文件大小信息传输,支持一次传输多个文件;
- YModem-g允许Receiver端不发送ACK应答,以提高传输效率;