停止-等待协议
可靠通信三大机制:序号+确认反馈+超时重传机制
.
接收方收到重复帧有以下原因:
重复帧是由于发送方重发定时器超时,重发定时器超时的原因:
- 设定时间段
- 数据帧出现比特差错,或网络延迟大
- 确认差错或网络延迟长
在停止等待协议中,引入1比特位的序号字段:
数据帧的发送序号N(S)以0和1交替方式出现在数据帧中。
优点:简单
缺点:效率低,物理链路的利用率比较低,信道远远没有被数据比特填满。
连续ARQ协议
发送方可一次连续发送多个数据帧,同时等待ACK应答。
- 后退N帧协议
- 选择重发协议
后退N帧协议
1.工作原理:
- 发送方在连续发送多个数据帧,同时启动重发定时器
- 如果发送方重发定时器超时前,收到了接收方的确认帧,继续发送后面数据帧
- 如果发送方重发定时器超时,还没有收到确认,从该帧开始的后续帧全部重新发送
发送窗口大于1,接受窗口等于1.
发送方接收到连续相同序号的ACK,说明接收方出现乱序。
2.利用滑动窗口解释:
上图发送窗口大小为5,
如上图所示,帧序号空间为0,1,……,7,序号字段为3比特位,发送窗口的最大值为23 -1=7
接收方窗口大小为1
3.存在问题
将出错帧后所有数据帧重传,造成线路浪费:
- 接收窗口大小为1,无法缓存后面正确数据帧
- 过多的重复数据帧在网络上传播
改进:
- 增加接收窗口大小,缓存正确接收的数据帧
- 只重传出错的数据帧
选择重发协议
发送窗口与后退N帧一样,但是接收窗口大小大于1
在选择重传协议中,发送窗口最大值为2k-1
原因:
如上图,假设接收窗口和发送窗口均为7.
1.发送方发送0-6号数据帧后,等确认帧;
2.接收方收到后,发送0-6号确认帧,并把窗口向前移动到7-5号
3.很不幸,1号和3号确认帧丢失了,超时重传,发送方再次发送1号和3号帧
4.接收方窗口已经滑动到后继的1号和3号,接收到重复的数据帧。
协议 | 序号比特位 | 序号空间 | 发送窗口大小 | 接收窗口大小 |
---|---|---|---|---|
停止-等待协议 | 1 | [ 0, 1] | 1 | 1 |
后退N帧协议 | k | [ 0, 2k -1] | 2k -1 | 1 |
选择重发协议 | k | [ 0, 2k -1] | 2k-1 | 2k-1 |