XMODEM 文件传输协议

XMODEM 是 Ward Christensen 于 1977 年开发的标准文件传输流程,它发送与数据相关的数据块并等待接收块接收。XModem 用于硬件和软件。

  • XMODEM 是一种具有有效错误检测设备的半双工通信协议。

  • 它违反了发送给接收者的一系列数据包中的原始数据和其他允许接收者确定数据包是否已正确接收的信息。

  • 标记的文件以在最后一个块后面发送的文件结束字符完成。该字符不在数据包中,而是作为单个字节发送。

  • 由于文件的长度不作为协议的一部分进行传输,因此最终的包中填充了可以释放的已知字符。

  • 文件一次传输一个数据报。计算包校验和并与在获取端的包末尾找到的校验和进行比较。当收件人向发件人发送确认消息时,将发送后续的一组包裹。

  • 如果校验和有问题,接收方会发送一条消息,要求重新提交。

  • 收到负面反馈后,发件人重新发送包裹并尝试连续传输大约十次,然后再发出传输。

传输方式

  • 接收方进行传输,即在接收方发送第一个 NAK 之前,发送方不会发送任何数据。发送方一直等到接收方发送一个 NAK 字节。

  • NAK 字节是接收方准备开始的信号。这是指示文件传输已准备好开始的第一个字节。

  • 如果收件人等待时间过长或发生错误,发件人将停止等待或“超时”。文件传输将在到期时重新启动。

  • 如果收件人在等待数据时由于缺少 EOT 字符而在十秒内没有收到有效包裹,也会发送 NAK。

接收方执行以下功能并一次传输一个数据包:

假设发送的包号与实际包号相同,即检查包中的第二个字节。

  • 如果出现差异,请发送 CAN 字节以取消传输。数据包的校验和在检索后计算,并与包末尾从发送方接收到的校验和进行比较。

  • 如果条件 SUM = CHECKSUM 为真,则接收方向发送方发送一个 ACK 字节,指示按顺序发送下一个包。

  • 如果情况不令人满意,则发送 NAK 字节,表示发送器将重新发送该字节。

  • 当发送方发送 EOT 字节而不是 SOH 字节时,接收方发送一个 NAK 字节。

  • 如果之后发送方立即发送另一个 EOT,则接收方发送 ACK 字节,传输完成。

  • 接收方有权随时通过发送 CAN 字节取消传输,发送方只能通过发送 CAN 字节来取消块之间的传输。

以上是 XMODEM 文件传输协议 的全部内容, 来源链接: utcz.com/z/327351.html

回到顶部