3.2计算机网络(停止-等待协议 后退N帧协议 选择重传协议)

目录

1.停止-等待协议

1.概念

2.停等协议——无差错情况

3.停等协议——有差错情况

1.数据帧丢失或检测到帧出错

 2.ACK(确认帧)丢失

 3.ACK(确认帧)迟到

 4.停等协议性能分析

5. 信道利用率

2.后退N帧协议(GBN)

1. 停等协议的弊端

2. 后退N帧协议中的滑动窗口 

3. GBN发送方必须响应的三件事

4. GBN接收方要做的事

5. 滑动窗口长度

6. GBN协议重点总结

7. 习题

8. GBN协议性能分析

3.选择重传协议(Selective Repeat)

1. 选择重传协议中的滑动窗口

 2. SR发送方必须响应的三件事

3. SR接收方要做的事

 4. 滑动窗口长度

5. SR协议重点总结

6. 习题



 个人主页:个人主页
 系列专栏:计算机网络专栏

1.停止-等待协议

1.概念

1.为什么要有停止-等待协议?
①、除了比特出差错,底层信道还会出现丢包问题。【丢包:物理线路故障、设备故障、病毒攻击、路由信息错误等原因,会导致数据包的丢失。】
②、为了实现流量控制。

2.研究停等协议的前提?
虽然现在常用全双工通信方式,但为了讨论问题方便,仅考虑一方发送数据(发送方),一方接收数据(接收方)。
因为是在讨论可靠传输的原理,所以并不考虑数据是在哪一个层次上传送的。

“停止-等待”就是每发送完一个分组就停止发送,等待对方确认,在收到确认后再发送下一个分组。

3.停等协议有几种应用情况?无差错情况&有差错情况

2.停等协议——无差错情况

3.停等协议——有差错情况

1.数据帧丢失或检测到帧出错

 2.ACK(确认帧)丢失

 3.ACK(确认帧)迟到

 4.停等协议性能分析

5. 信道利用率

2.后退N帧协议(GBN)

1. 停等协议的弊端

 每次发送一个帧,就要等待对方发送确认帧。比如发送速度极快,那么在一天中,就会导致

发送方 在一天中发送了一小时,其余时间都在等待。导致浪费资源,浪费时间

故此:采用发送方 发送多个帧  来提高效率

这样就需要:

1.必须增加序号范围

2.发送方需要缓存多个分组

于是就出现了 后退N帧协议(GBN)

2. 后退N帧协议中的滑动窗口 

在这里插入图片描述

3. GBN发送方必须响应的三件事

1.上层的调用
上层要发送数据时,发送方先检查发送窗口是否已满,如果未满,则产生一个帧并将其发送;如果窗口已满,发送方只需将数据返回给上层,暗示上层窗口已满。上层等一会再发送。(实际实现中,发送方可以缓存这些数据,窗口不满时再发送帧)。

2.收到了一个ACK
GBN协议中,对n号帧的确认采用累积确认的方式,标明接收方已经收到n号帧和它之前的全部帧。

3.超时事件
协议的名字为后退N帧/回退N帧,来源于出现丢失和时延过长帧时发送方的行为。就像在停等协议中一样,定时器将再次用于恢复数据帧或确认帧的丢失。如果出现超时,发送方重传所有已发送但未被确认的帧。

4. GBN接收方要做的事

 

 兄弟们,为便于理解上图,给你们举个例子,看见上面的汉堡没。

所图所表示的内容可以简化为:

你去吃汉堡包,假若汉堡包有5层 分别是  面包1(发送0帧) 番茄酱(发送1帧) 鸡肉(发送2帧)  蔬菜(发送3帧) 面包2(发送4帧)

你是从上往下吃的,第一次吃了面包1(发送0帧)然后吃 番茄酱(发送1帧)准备吃 第三层的时候 发现  没有鸡肉(发送2帧)  因为你这个人有一个癖好→就是必须 按顺序吃:面包1(发送0帧) 番茄酱(发送1帧) 鸡肉(发送2帧)  蔬菜(发送3帧) 面包2(发送4帧)

于是 ,你就不吃了, 把后面的 蔬菜(发送3帧) 面包2(发送4帧)都丢了

然后服务员重新给你送来了:鸡肉(发送2帧)  蔬菜(发送3帧) 面包2(发送4帧)

5. 滑动窗口长度

在这里插入图片描述

若采用n个比特对帧编号,那么发送窗口的尺寸WT 应满足:1≤ WT≤2n-1。因为发送窗口尺寸过大,就会使得接收方无法区别新帧和旧帧。

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

猜你喜欢

转载自blog.csdn.net/Javascript_tsj/article/details/124168663