计算机网络——数据链路层-可靠传输的实现机制:选择重传协议SR(介绍、工作原理、窗口尺寸、题目练习)

简介: 计算机网络——数据链路层-可靠传输的实现机制:选择重传协议SR(介绍、工作原理、窗口尺寸、题目练习)

选择重传协议SR

介绍

在上篇中,我们介绍了回退N帧协议。回退N帧协议的接收窗口尺寸只能等于一,因此接收方只能按序接收正确到达的数据分组;一个数据分组的误码就会导致其后续多个数据分组不能被接方按序接收而丢弃,尽管他们没有误码。


这必然会造成发送方对这些数据分组的超时重传,显然这是对通信资源的极大浪费。为了进一步提高性能,可设法只重传出现误码的数据分组;因此,接收窗口的尺寸不应再等于1而应大于1;以便接收方先收下失序到达但无误码并且序号落在接收窗口内的那些数据分组,等到所缺分组收齐后再一并送交上层。这就是选择重传协议。


需要注意的是,选择重传协议为了使发送方仅重传出现差错的数据分组,接收方不能再采用累积确认,而需要对每个正确接收到的数据分组进行逐一确认。

工作原理

下面我们来举例说明选择重传协议的工作原理:

假设采用三个比特给分组编序号,因此序号的取值范围是0-7。

如下图所示,这是发送方的分组序号:

这是接收方的分组序号:

当序号增加到7时,下一个序号又从0开始发送。

窗口的尺寸 的取值范围是 ,其中的3是构成分组序号的比特数量,本例取WT的值为4。

如下图所示,序号落在发送窗口内的这4个数据分组可以连续发送;而序号落在发送窗口外的数据分组不允许发送。

接收窗口的尺寸 的取值,一般情况下可与发送窗口的尺寸 的取值相同,在本例中其值为4。

如下图所示,序号落在接收窗口内的这4个数据分组允许接收;而序号落在接收窗口外的数据分组不允许接收。

送方将序号落在发送窗口内的这4个数据分组依次连续发送出去,他们经过互联网的传输,陆续到达接收方,但其中的2号数据分组丢失了,只要序号落入接收窗口内且无误码的数据分组,接收方都会接收。

接收方接收0号和1号数据分组,并发送0号和1号确认分组,接收窗口向前滑动两个位置,这样就有4和5这两个新的序号落入接收窗口。

接收方接收3号数据分组,并发送3号确认分组;但接收窗口不能向前滑动,因为3号数据分组是未按序到达的数据分组 。

与接收窗口一样,这些确认分组经过互联网的传输,陆续到达发送方,发送方每按序收到一个确认分组,发送窗口就向前滑动一个位置,发送方接收0号和1号确认分组,发送窗口向前滑动两个位置,这样就有4和5这两个新的序号落入发送窗口,发送方将序号落入发送窗口的4号和5号数据分组发送出去,



发送方现在可以将已经收到确认的0号和1号数据分组从发送缓存中删除了;而接收方可择机将已按需接收的0号和1号数据分组交付上层处理。

发送方接收3号确认分组,但发送窗口不能向前滑动,因为这是一个未按序到达的确认分组,发送方还未收到他之前的2号确认分组;不过,需要记录3号数据分组已收到确认,这样该数据分组就不会超时重发。

4号和5号数据分组到达接收方,接收方接收他们,并发送4号和5号确认分组,但接收窗口不能向前滑动,因为他们是未按序到达的数据分组;接收方还未收到他们之前的2号数据分组。

假设在4号和5号确认分组的传输过程中,发送方针对2号数据分组的重传计时器超时了,发送方重传2号数据分组。

4号和5号确认分组陆续到达发送方,发送方接收他们,但发送窗口不能向前滑动,因为他们是未按序到达的确认分组,发送方还未收到他们之前的2号确认分组;不过需要记录,4号和5号数据分组已收到确认,这样他们就不会超时重发。



发送方之前重传的2号数据分组到达接收方,接收方接收该数据分组,并发送2号确认分组;接收窗口现在可以向前滑动四个位置,这样就有6、7、0、1这四个新的序号落入接收窗口 。

2号确认分组经过互联网的传输到达发送方,发送方接收该确认分组;发送窗口现在可以向前滑动四个位置,同样可以有6、7、0、1这四个新的序号落入发送窗口 。

发送方现在就可以继续将这四个序号的数据分组依次发送出去了。

窗口尺寸

接下来我们再来讨论一下选择重传协议的发送窗口和接收窗口的尺寸问题。

发送方的发送窗口的尺寸 的取值范围是

其中n是构成分组序号的比特数量,若 等于1,则与停止等待协议相同;

大于 ,则会造成接收方无法分辨新旧数据分组的问题。

接收方的接收窗口尺寸

必须满足 ,若 等于1,则与回退N帧协议相同;

大于 ,则没有意义。

下面我们就来看看,如果发送窗口和接收窗口的尺寸超过了它们的取值范围会出现什么样的情况:


我们还是采用三个比特给分组编序号,即序号0-7。


发送窗口的尺寸取最大值,接收窗口的尺寸也取最大值,也就是===4。


假设,我们故意将发送窗口尺寸设置为5,相应的将接收窗口尺寸也设置为5,看看会出现什么情况。


发送方将序号落入发送窗口内的0-4号这5个数据分组依次发送出去,他们经过互联网的传输依次到达接收方,接收方接收他们并发送0-4号确认分组,接收窗口向前滑动5个位置,这样就有5、6、7、0、1这5个新的序号落入接收窗口。

这些确认分组经过互联网的传输陆续到达发送方,但其中的0号确认分组丢失了,发送方接收1-4号确认分组,并记录1-4号数据分组已收到确认

发送窗口不能向前移动。一段时间后,0号数据分组的重传计时器超时了,发送方重传0号数据分组

该数据分组经过互联网的传输到达接收方,其序号0落在接收窗口内,接收方会接收它,但是接收方先前已经正确接收过该数据分组了,如果现在还要接收,那就会出现分组重复这种传输差错。

也就是说,如果发送窗口和接收窗口的尺寸超过了取值范围,就会使接收方无法分辨新旧数据分组,进而出现分组重复这种传输差错。

练习

接下来我们来做一个有关选择重传协议的练习。

题目

这是计算机专业考研全国统考计算机网络部分 2011年 的题35:

答案


答案是选项B


解析

我们来分析一下:

与回退N帧协议不同,选择重传协议不支持累积确认,接收方每接收一个数据帧就会发回相应的确认帧。题目所给收到1号帧的确认,而0号和2号帧依次超时;因此需要重传0号和2号帧。


至于发送方已发送的3号数据帧,题目并未给出他的任何其他线索,因此无需考虑3号帧。


示意图

我们再来画个示意图,以便更容易理解该题:

假设这是帧可用的序号:

这是发送窗口:

发送方将序号落在发送窗口内的0-3号数据帧依次发送出去,之后收到了1号帧的确认,而0号和2号帧的重传计时器超时,因此需要重传的就是0号和2号这两个帧。


END



目录
相关文章
|
安全 网络安全 数据安全/隐私保护
访问控制列表(ACL)是网络安全中的一种重要机制,用于定义和管理对网络资源的访问权限
访问控制列表(ACL)是网络安全中的一种重要机制,用于定义和管理对网络资源的访问权限。它通过设置一系列规则,控制谁可以访问特定资源、在什么条件下访问以及可以执行哪些操作。ACL 可以应用于路由器、防火墙等设备,分为标准、扩展、基于时间和基于用户等多种类型,广泛用于企业网络和互联网中,以增强安全性和精细管理。
1927 7
|
缓存 应用服务中间件 nginx
Web服务器的缓存机制与内容分发网络(CDN)
【8月更文第28天】随着互联网应用的发展,用户对网站响应速度的要求越来越高。为了提升用户体验,Web服务器通常会采用多种技术手段来优化页面加载速度,其中最重要的两种技术就是缓存机制和内容分发网络(CDN)。本文将深入探讨这两种技术的工作原理及其实现方法,并通过具体的代码示例加以说明。
1053 1
|
10月前
|
机器学习/深度学习 编解码 移动开发
RT-DETR改进策略【Conv和Transformer】| TPAMI-2024 Conv2Former 利用卷积调制操作和大核卷积简化自注意力机制,提高网络性能
RT-DETR改进策略【Conv和Transformer】| TPAMI-2024 Conv2Former 利用卷积调制操作和大核卷积简化自注意力机制,提高网络性能
229 5
RT-DETR改进策略【Conv和Transformer】| TPAMI-2024 Conv2Former 利用卷积调制操作和大核卷积简化自注意力机制,提高网络性能
|
10月前
|
机器学习/深度学习 编解码 移动开发
YOLOv11改进策略【Conv和Transformer】| TPAMI-2024 Conv2Former 利用卷积调制操作和大核卷积简化自注意力机制,提高网络性能
YOLOv11改进策略【Conv和Transformer】| TPAMI-2024 Conv2Former 利用卷积调制操作和大核卷积简化自注意力机制,提高网络性能
328 7
YOLOv11改进策略【Conv和Transformer】| TPAMI-2024 Conv2Former 利用卷积调制操作和大核卷积简化自注意力机制,提高网络性能
|
负载均衡 安全 网络协议
|
SQL 运维 安全
网络安全等级保护2.0 定级、评测、实施与运维-复习题目资料
本文详细总结了网络信息安全等级保护的练习题,包括单选题、多选题、判断题和简答题。供朋友们参考复习,学习相关领域知识参考。
|
网络协议 网络安全 数据中心
|
安全 搜索推荐 网络安全
HTTPS协议是**一种通过计算机网络进行安全通信的传输协议
HTTPS协议是**一种通过计算机网络进行安全通信的传输协议
391 11
|
网络协议 Java 应用服务中间件
深入浅出Tomcat网络通信的高并发处理机制
【10月更文挑战第3天】本文详细解析了Tomcat在处理高并发网络请求时的机制,重点关注了其三种不同的IO模型:NioEndPoint、Nio2EndPoint 和 AprEndPoint。NioEndPoint 采用多路复用模型,通过 Acceptor 接收连接、Poller 监听事件及 Executor 处理请求;Nio2EndPoint 则使用 AIO 异步模型,通过回调函数处理连接和数据就绪事件;AprEndPoint 通过 JNI 调用本地库实现高性能,但已在 Tomcat 10 中弃用
深入浅出Tomcat网络通信的高并发处理机制
|
缓存 算法 网络协议
一文详细理解计算机网络 - 数据链路层(考试和面试必备)
这篇文章详细介绍了计算机网络中数据链路层的概念、基本问题、点对点信道和广播信道的数据链路协议(如PPP和CSMA/CD),以及局域网和以太网的相关知识。
3244 0
一文详细理解计算机网络 - 数据链路层(考试和面试必备)