一、可靠数据传输原理
二、可靠数据传输协议
rdt1.0-经完全可靠信道
rdt2.0-经具有比特差错信道
- ARQ协议
- 差错检测:发送带有检验和的分组;接收方检验
- 接收方反馈:ACK、NAK
- 重传:收到NAK时重传上一个分组
-
停等协议
rdt2.1
- 为发送分组和期望接收分组添加序号
-
接收方发送ACK、NAK
rdt2.2
-
接收到受损分组时:不发送NAK,对上一次正确接收的分组发送ACK
rdt3.0-经具有比特差错的丢包信道
-
添加倒数定时器
流水线
- 要增加序号范围
-
双方要有缓存来保存多个分组
GBN-回退N步
- 滑动窗口协议
发送方以发送未被确认的分组的序号范围为长度N - 累计确认:正确有序
-
接收方丢失所有失序分组,并发送上一个成功接收的确认,直到上一个分组超时,重新发送自己
SR-选择重传
- 接收方缓存正确接收的分组,即使它们失序,发送方不重传失序的分组
-
发送方和接收方窗口不总是一致
三、总结
- 无差错
- 发送方一直没收到确认,重传--超时计时器、ARQ、差错检测
- 发送发未收到确认前保存副本,收到ACK后才丢弃副本
- 为发送分组添加序号,明确哪些未确认
- 接收方发送
确认,丢失
,发送方没收到就重传
- 接收方根据序号发现已有该数据,丢弃重传分组,再发送确认
-
接收方发送
确认,迟到
,经过上述流程后,发送方如果已经重传过并且收到来自接收方的确认,那么发送方丢弃迟到的重复确认
停等太慢
,信道利用率低,采用流水线传输,对按序到达的最后一个分组(已经到达了一个完整的有序分组序列)发送确认,发送发滑动窗口n部,n未已经确认的分组数目
-
累计确认
- 发送方发送了5个分组,中间第三个丢失,发送方只能确认前两个分组,只能重传已经发送但是未被确认过的3个分组-GBN、发送窗口