计算机网络——数据链路层-可靠传输的实现机制:选择重传协议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



目录
相关文章
|
9月前
|
数据采集 算法 数据挖掘
模块化控制协议(MCP)在网络中增强智能体执行效率的研究
随着Web3技术的迅速发展,去中心化应用和智能体在各种领域的应用逐渐增多。MCP(Modularized Control Protocol,模块化控制协议)作为一种增强智能体执行能力的关键技术,为Web3场景中的智能体提供了更强的灵活性和可扩展性。本文将探讨如何利用MCP技术提升智能体在Web3场景中的执行能力,并通过实例代码展示其实现路径。
859 22
|
6月前
|
监控 负载均衡 安全
WebSocket网络编程深度实践:从协议原理到生产级应用
蒋星熠Jaxonic,技术宇宙中的星际旅人,以代码为舟、算法为帆,探索实时通信的无限可能。本文深入解析WebSocket协议原理、工程实践与架构设计,涵盖握手机制、心跳保活、集群部署、安全防护等核心内容,结合代码示例与架构图,助你构建稳定高效的实时应用,在二进制星河中谱写极客诗篇。
WebSocket网络编程深度实践:从协议原理到生产级应用
|
7月前
|
运维 架构师 安全
二层协议透明传输:让跨域二层协议“无感穿越”多服务商网络
简介:本文详解二层协议透明传输技术,适用于企业网工、运营商及架构师,解决LLDP/LACP/BPDU跨运营商传输难题,实现端到端协议透传,提升网络韧性与运维效率。
|
11月前
|
安全 网络协议 Linux
Linux网络应用层协议展示:HTTP与HTTPS
此外,必须注意,从HTTP迁移到HTTPS是一项重要且必要的任务,因为这不仅关乎用户信息的安全,也有利于你的网站评级和粉丝的信心。在网络世界中,信息的安全就是一切,选择HTTPS,让您的网站更加安全,使您的用户满意,也使您感到满意。
315 18
|
SQL 监控 安全
网络安全与信息安全:漏洞、加密与安全意识
随着互联网的迅猛发展,网络安全和信息安全问题日益受到关注。本文深入探讨了网络安全漏洞、加密技术以及提高个人和组织的安全意识的重要性。通过分析常见的网络攻击手段如缓冲区溢出、SQL注入等,揭示了计算机系统中存在的缺陷及其潜在威胁。同时,详细介绍了对称加密和非对称加密算法的原理及应用场景,强调了数字签名和数字证书在验证信息完整性中的关键作用。此外,还讨论了培养良好上网习惯、定期备份数据等提升安全意识的方法,旨在帮助读者更好地理解和应对复杂的网络安全挑战。
|
SQL 安全 网络安全
网络安全与信息安全:知识分享####
【10月更文挑战第21天】 随着数字化时代的快速发展,网络安全和信息安全已成为个人和企业不可忽视的关键问题。本文将探讨网络安全漏洞、加密技术以及安全意识的重要性,并提供一些实用的建议,帮助读者提高自身的网络安全防护能力。 ####
405 17
|
SQL 安全 网络安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
随着互联网的普及,网络安全问题日益突出。本文将从网络安全漏洞、加密技术和安全意识三个方面进行探讨,旨在提高读者对网络安全的认识和防范能力。通过分析常见的网络安全漏洞,介绍加密技术的基本原理和应用,以及强调安全意识的重要性,帮助读者更好地保护自己的网络信息安全。
317 10
|
存储 SQL 安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
随着互联网的普及,网络安全问题日益突出。本文将介绍网络安全的重要性,分析常见的网络安全漏洞及其危害,探讨加密技术在保障网络安全中的作用,并强调提高安全意识的必要性。通过本文的学习,读者将了解网络安全的基本概念和应对策略,提升个人和组织的网络安全防护能力。
|
SQL 安全 网络安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
在数字化时代,网络安全和信息安全已成为我们生活中不可或缺的一部分。本文将介绍网络安全漏洞、加密技术和安全意识等方面的内容,并提供一些实用的代码示例。通过阅读本文,您将了解到如何保护自己的网络安全,以及如何提高自己的信息安全意识。
318 10
|
监控 安全 网络安全
网络安全与信息安全:漏洞、加密与意识的交织
在数字时代的浪潮中,网络安全与信息安全成为维护数据完整性、保密性和可用性的关键。本文深入探讨了网络安全中的漏洞概念、加密技术的应用以及提升安全意识的重要性。通过实际案例分析,揭示了网络攻击的常见模式和防御策略,强调了教育和技术并重的安全理念。旨在为读者提供一套全面的网络安全知识框架,从而在日益复杂的网络环境中保护个人和组织的资产安全。
下一篇
开通oss服务