可靠数据传输(RDT)的原理
<aside>
💡
</aside>

问题描述

rdt1.0:在可靠信道上的可靠数据传输
rdt1.0的假设:

发送方的行动:
- 接收上层服务数据单元
- 封装为本层的协议数据单元
- 发送给接收方
接收方的行动:
- 接收packet
- 解封装
- 通过层间接口交付给上层
rdt2.0:具有比特差错的信道
<aside>
💡 引入 ack/nak
</aside>
- 接收方成功接收时返回一个ack给发送方,发送方发送下一个数据
- 接收方未能成功接收时返回一个nak给发送方,发送方重新进行传送
rdt2.0的假设


FSM描述

发送方:
- 接收上层数据
- 封装packet(并计算checksum)
- 通过下层接口将packet发送出去,等待接收方回应
- 接收接收方的回应,ack传新的,nak传老的
- 循环直至数据全部传输完成
接收方:
- 接收数据
- 如果数据没有corrupt,则解封装并传送给上层,发给发送方一个ack
- 如果数据corrupt,则发给发送方一个nak