可靠数据传输基本原理
实现可靠数据传输的措施:
- 差错检测:利用差错编码实现数据包传输过程中的比特差错检测。
- 确认:接收方向发送方反馈接收状态。
- 重传:发送方重新发送接收方没有正确接收的数据。
- 序号:确保数据按序提交。
- 计时器:解决数据丢失问题。
停-等协议
停-等协议的主要特点就是每发送一个报文段后就停下来等待接收方的确认。
停-等协议的基本工作过程是:
- 发送方发送经过差错编码和编号的报文段,等待接收方的确认;(发送并等待确认)
- 接收方如果正确接收报文段,即差错检测无误且序号正确,则接收报文段,并向发送方发送ACK,否则丢弃报文段,并向发送方发送NAK;(接收并确认/否认)
- 发送方如果收到ACK,则继续发送后续报文段,否则重发刚刚发送的报文段。(继续发送/重发)
停-等协议的主要性能问题:停-等机制降低了信道利用率。
解决方法:流水协议或管道协议——允许发送方在没有收到确认前连续发送多个分组。
流水线协议的改进:增加分组序号范围;
发送方或接收方必须缓存多个分组。
典型的流水线协议:滑动窗口协议。
滑动窗口协议
两种最具有代表性的滑动窗口协议:
- 回退N步(Go-Back-N, GBN)协议:
发送端窗口大小较大,可以在未得到确认前练习发送多个分组;但接收窗口大小仅为1,只能接收1个按序到达的分组,未按序到达的分组或者某个分组差错,就会引起发送方重发该分组及其之后的所有分组。
- 选择重传(Selective Repeat, SR)协议:
选择接收方缓存能力(接收窗口>1),缓存正确到达但失序的分组,仅要求发送方重传未被接收方确认的分组,等缺失分组到达后一并向上层按序提交。