传输层如何让实现可靠传输的?
不可靠传输信道在数据传输中可能发生:
1.比特差错:1001 —— 1000
2.乱序:1、5、3、2、4、6
3.数据丢失:数据块1、2、5
解决措施:
1.差错检测:利用编码实现数据包传输过程中的比特差错检测
2.确认:接受方向发送方反馈接收状态。ACK(可定确认),NAK(否定确认)
3.重传:发送方重新发送接收方没有正确接收的数据
4.序号:确保数据按序提交
5.计时器:解决数据丢失问题
自动重传请求协议之停-等协议(ARQ,Automatic Repeat ReQuest)
发送方需要得到接收方的确认之后才允许再次发送分组
缺点:
1.性能差
2.信道利用率低
流水线协议(管道协议)之滑动窗口协议
滑动窗口协议允许发送方没有收到确认之前连续发送多个分组
滑动窗口协议-GBN协议(GO-BACK-N,回退N步协议)
发送窗口Ws >=1,接收窗口Wr=1
发送终端缓存能力高,可以在没有得到确认前发送多个分组。接收方缓存能力低,只能接受1个按序到达的分组,不能缓存未到达的分组。
GBN发送方响应的3类事件:
1.上层调用
2.收到1个ACKn。GBN采用累积确认的方式,即发送方收到ACKn时,表明接收方正确接收序号n以及序号小于n的所有分组
3.即使器超时。发送方只使用一个计时器
滑动窗口协议-SR协议(选择重传协议)
发送窗口Ws >1,接收窗口Wr >1
SR发送方响应的3类事件:
1.上层调用
2.计时器超时。发送方对每个分组进行计时
3.收到ACKn。SR协议采取逐个确认方式