1.停止-等待协议
1.概念
1.为什么要有停止-等待协议?
①、除了比特出差错,底层信道还会出现丢包问题。【丢包:物理线路故障、设备故障、病毒攻击、路由信息错误等原因,会导致数据包的丢失。】
②、为了实现流量控制。
2.研究停等协议的前提?
虽然现在常用全双工通信方式,但为了讨论问题方便,仅考虑一方发送数据(发送方),一方接收数据(接收方)。
因为是在讨论可靠传输的原理,所以并不考虑数据是在哪一个层次上传送的。
“停止-等待”就是每发送完一个分组就停止发送,等待对方确认,在收到确认后再发送下一个分组。
3.停等协议有几种应用情况?无差错情况&有差错情况
2.停等协议——无差错情况
3.停等协议——有差错情况
1.数据帧丢失或检测到帧出错
2.ACK(确认帧)丢失
3.ACK(确认帧)迟到
4.停等协议性能分析
5. 信道利用率
2.后退N帧协议(GBN)
1. 停等协议的弊端
2. 后退N帧协议中的滑动窗口
3. GBN发送方必须响应的三件事
1.上层的调用
上层要发送数据时,发送方先检查发送窗口是否已满,如果未满,则产生一个帧并将其发送;如果窗口已满,发送方只需将数据返回给上层,暗示上层窗口已满。上层等一会再发送。(实际实现中,发送方可以缓存这些数据,窗口不满时再发送帧)。
2.收到了一个ACK
GBN协议中,对n号帧的确认采用累积确认的方式,标明接收方已经收到n号帧和它之前的全部帧。
3.超时事件
协议的名字为后退N帧/回退N帧,来源于出现丢失和时延过长帧时发送方的行为。就像在停等协议中一样,定时器将再次用于恢复数据帧或确认帧的丢失。如果出现超时,发送方重传所有已发送但未被确认的帧。
4. GBN接收方要做的事
5. 滑动窗口长度
6. GBN协议重点总结
7. 习题
选择题:
数据链路层采用后退 N 帧(GBN)协议,发送方已经发送了编号为 0~7 的帧。当计时器超时时,若发送方 只收到 0、2、3 号帧的确认,则发送方需要重发的帧数是______。
A.2
B.3
C.4
D.5
题解:
考查后退 N 帧协议的工作原理。
在后退 N 帧协议中,发送方可以连续发送若干个数据帧,如果收到接收方的确认帧则可以继续发送。若某个帧出错,接收方只是简单的丢弃该帧及其后所有的后续帧,发送方超时后需重传该数据帧及其后续的所有数据帧。这里要注意,连续 ARQ 协议中,接收方一般采用累积确认的方式,即接收方对按序到达的最后一个分组发送确认,因此题目中收到 3 的确认帧就代表编号为 0、1、2、3 的帧已接收,而此时发送方未收到 1 号帧的确认只能代表确认帧在返回的过程中丢失了,而不代表 1 号帧未到达接收方。因此需要重传的帧为编号是 4、5、6、7 的帧。故选C
8. GBN协议性能分析
因连续发送数据帧而提高了信道利用率
在重传时必须把原来已经正确传送的数据帧重传,是传送效率降低。
3.选择重传协议(Selective Repeat)
1. 选择重传协议中的滑动窗口
2. SR发送方必须响应的三件事
1.上层的调用
从上层收到数据后,SR发送方检查下一个可用于该帧的序号,如果序号位于发送窗口内,则发送数据帧;否则就像GBN一样,要么将数据缓存,要么返回给上层之后再传输。
2.收到了一个ACK
如果收到ACK,加入该帧序号在窗口内,则SR发送方将那个被确认的帧标记为已接收。如果该帧序号是窗口的下界(最左边第一个窗口对应的序号),则窗口向前移动到具有最小序号的未确认帧处。如果窗口移动了并且有序号在窗口内的未发送帧,则发送这些帧。
3.超时事件
每个帧都有自己的定时器,一个超时事件发生后只重传一个帧。
3. SR接收方要做的事
来者不拒(窗口内的帧)
SR接收方将确认一个正确接收的帧而不管其是否按序。失序的帧将被缓存,并返回给发送方一个该帧的确认帧【收谁确认谁】,直到所有帧(即序号更小的帧)皆被收到为止,这时才可以将一批帧按序交付给上层,然后向前移动滑动窗口。
如果收到; 窗口序号外(小于窗口下界)的帧,就返回一个ACK。
其他情况,就忽略该帧
4. 滑动窗口长度
5. SR协议重点总结
1、对数据帧逐一确认,收一个确认一个
2、只重传出错帧
3、接收方有缓存
4、WTmax = WRmax = 2n-1
6. 习题
数据链路层采用了选择重传(SR)协议,发送方已经发送了编号为0~3的帧。现已收到1号帧的确认,而0、2号帧依次超时,则发送方需要重传的帧数是(A)。【重新发送0、2号帧】
A.2 B.3 C.4 D.5