ARQ协议与滑动窗口协议
目录
- ARQ协议与滑动窗口协议
- 一.ARQ协议
- 1.停等ARQ协议
- (1)工作原理
- (2)效率分析
- 2.退回N帧ARQ协议
- (1)滑动窗口协议
- (2)工作原理
- (3)GBN缺陷
- 3.选择ARQ协议
- (1)工作原理
- (2)发送窗口和接收窗口的尺寸限制
ARQ协议与滑动窗口协议
一.ARQ协议
(Automatic Repeat-reQuest,ARQ)自动重传请求.
是一种传输层和数据链路层都在使用的网络协议。传统自动重传请求分成为三种,即停等式(stop-and-wait)ARQ,回退n帧(go-back-n)ARQ,以及选择性重传(selective repeat)ARQ。后两种协议是滑动窗口技术与请求重发技术的结合,由于窗口尺寸开到足够大时,帧在线路上可以连续地流动,因此又称其为连续ARQ协议。三者的区别在于对于出错的数据报文的处理机制不同。三种ARQ协议中,复杂性递增,效率也递增。除了传统的ARQ,还有混合ARQ(Hybrid-ARQ)。
1.停等ARQ协议
(1)工作原理
停等ARQ协议是最原始简单的ARQ协议,该协议分组的编号(序列号)只有0和1两种,停等ARQ的工作方式可以如下描述:
- 发送方发送一个序列号为0或1的分组,然后进入等待确认分组ack的状态
- 发送方发送分组的同时为该分组设置一个计时器,假如在设置的时间内未收到该分组的确认号ack,则重发该分组。
- 接收方接收到发送方刚才发送的分组之后,向发送方返回一个为0或1的确认号ack。
- 假如接收方刚才已经接收到了编号为0的分组,而下一个接收到的还是编号为0的重复分组,则丢弃掉该分组,同时也要返回ack。
- 发送方收到接收方返回的ack之后检查该ack是否是发送方正在等待的ack,如果是,则转换状态发送下一个编号的分组,如果不是则继续等待期望收到的ack。
停等ARQ协议更详细具体的工作过程和状态可以参照下图:
(2)效率分析
停等ARQ协议虽然实现简单,但是效率很差,下面进行分析:
停等ARQ协议的发送效率为(L/R)/ [(L/R)+RTT] 从上面分析可以看出,L/R的时间通常很小,只是分组通过链路的时间,而RTT的时间通常比这L/R的时间大得多,这就意味着停等ARQ协议运行的大部分时间内,发送发都处在等待分组确认返回的状态,浪费了资源效率低下。为了改进效率低下的问题,我们可以让发送方连续发送多个分组:
如图所示,连续发送三个分组的情况使得效率显著提升,所以我们引出连续发送多个分组的连续ARQ协议
2.退回N帧ARQ协议
(1)滑动窗口协议
连续ARQ协议通常是借助滑动窗口协议运行的:
滑动窗口协议就是设置一个固定大小的窗口,在一定时间内只处理窗口中的数据。当窗口中最左边的数据被处理完成之后,窗口会向右进行滑动,转而连续地处理后面的数据。
(2)工作原理
- 发送方在窗口允许的分组范围内连续发送分组
- 接收方接收到分组后如果是期望的分组(按序到达的分组),则保存该分组并更新下一个期望收到的分组编号,如果不是期望的分组(乱序到达的分组),则丢弃该分组。两种情况都要返回相应的ack。
- 假如发送方发送到了第j个分组,而其中第i个分组丢失或者超时了,那么发送方将会重新发送第i到第j这n个分组。即从丢失超时分组开始,重发已经发送的所有分组。
- 发送方在接收到接收方返回的ack号之后,将窗口中对应的等待的ack的分组变为已确认的分组,每当窗口最左边的分组被确认时,窗口就要向右滑动一个分组。
- GBN-ARQ协议采用了累计确认的机制,也就是说接收方返回的ack号是目前已经接收的最后一个分组的编号,这意味着该ack号前的n个分组都已经被接收了。
(3)GBN缺陷
GoBackN协议的缺陷在于每次分组丢失时,都有可能重传多个分组而使得效率下降。假如窗口的大小是N,已经将N个分组全部发送而此时第一个发送的分组丢失了,这是最坏的情况,因为这将会导致所有分组被重新发送而浪费了时间和资源。
3.选择ARQ协议
(1)工作原理
选择ARQ协议也是连续ARQ协议,与GBN-ARQ协议不同的是,选择ARQ协议采用分组单独确认的机制,并且为每个乱序到达的分组设置缓存,而不是单纯地丢弃它们。当接收方接收到的分组序列号可以和缓存中的分组序列号连起来时,直接取出这些缓存中的分组即可而避免了让发送方重发。发送方在分组超时和丢失时也不必重发所有发送过的分组,而只是重新发送哪些未收到ack确认号的分组。
发送方和接收方窗口
接收窗口与发送窗口相类似,只有当最左边期望接收的分组接收到之后,窗口才会向右移动。而在此分组之后的分组如果乱序接收到之后会先缓存起来。如果乱序的分组和最前面期望的分组接收到并连起来之后,则将它们一并变为已接受到的分组然后右移。
(2)发送窗口和接收窗口的尺寸限制
假设用k个字节对分组进行编号,则发送窗口的尺寸Ns和接收窗口的尺寸Nr之间必须满足:Ns+Nr<=2^k这样的关系式ARQ协议才能正常运行。
为什么是满足这样的关系式?
下面介绍一些情形并分析:
假设接收窗口和发送窗口的大小都是3,而分组编号为0~3,则在下面的两种情况下会出现问题:即分组编号不够用,接收方无法辨别并处理最后接收到的分组0是否是重复分组
下面这道例题也进一步证明了Ns与Nr之间的大小关系,可以作为参考:
ARQ协议与滑动窗口协议相关推荐
- TCP连续ARQ协议和滑动窗口协议
TCP协议通过使用连续ARQ协议和滑动窗口协议,来保证数据传输的正确性,从而提供可靠的传输. 一.ARQ协议 ARQ协议,即自动重传请求(Automatic Repeat-reQuest),是OSI模 ...
- 3.4.1 计算机网络之流量控制(停止-等待协议、滑动窗口、后退N帧协议GBN、选择重传协议SR)、滑动窗口、可靠传输机制
文章目录 0.思维导图 1.什么是流量控制? 2.什么是可靠传输机制? 3.什么是滑动窗口机制? 4.可靠传输.流量控制.滑动窗口之间的关系 5.停止-等待协议 (1)为什么要有停止-等待协议? (2 ...
- 计算机网络之传输层:6、TCP流量控制、滑动窗口协议
传输层:6.TCP流量控制 实现流量控制的方法: TCP流量控制: 实现流量控制的方法: 停止等待协议和滑动窗口协议 TCP流量控制:
- 实用知识点梳理:BGP协议、调制解调技术、路由特点、VOIP、FTP、Cookie、滑动窗口协议与自动重传请求
BGP协议 边界网关协议(BGP)是运行于 TCP 上的一种自治系统的路由协议. BGP 是唯一一个用来处理像因特网大小的网络的协议,也是唯一能够妥善处理好不相关路由域间的多路连接的协议.BGP构建在 ...
- 三句话介绍清楚滑动窗口协议/GBN/SR
滑动窗口协议.GBN.SR之间不得不说的故事 首先我们来介绍什么是滑动窗口协议 滑动窗口协议(Sliding Window Protocol),属于TCP协议的一种应用,用于网络数据传输时的流量控制, ...
- TCP滑动窗口协议与流量控制
谈到TCP的滑动窗口协议与流量控制,便会想起当年面试时的场景.那时刚刚毕业,匆匆学了一点TCP的皮毛,仅仅是知道了TCP是面向连接的协议,以对每个报文都进行确认+超时重传的机制来保证端到端的可靠传输: ...
- 网络通信-滑动窗口协议-SWP
本篇主要讲解:网络通信-滑动窗口协议-SWP 参考链接1 参考链接2 参考链接3 目录 文章目录 网络通信-滑动窗口协议-SWP TCP可靠传输 窗口介绍 窗口和缓存的关系 功能作用 窗口大小 工作原 ...
- WireShark 探索网络请求过程(五层网络模型、三次握手、滑动窗口协议)
当我们在浏览器输入URL点击确认后,浏览器展示出网页信息.可你曾想过这其中的过程是怎样的?理论性较强的朋友可能知道后续DNS会解析地址,然后TCP/IP三次握手建立起连接,紧接着客户端与服务器开始传 ...
- 【计算机网络】数据链路层 : 流量控制 ( “流量控制“ 机制 | 停止-等待协议 | 滑动窗口协议 | 后退 N 帧协议 GBN | 选择重传协议 SR | 滑动窗口 与 流量控制、可靠传输 )
文章目录 一. 数据链路层 流量控制 二. 数据链路层 与 传输层 流量控制 机制 三. 数据链路层 流量控制 四. 数据链路层 流量控制 方法分类 五.停止等待协议 六.滑动窗口协议 七.滑动窗口协 ...
- 117.滑动窗口协议
滑动窗口协议是TCP流量控制的一种方法,提高吞吐量避免阻塞. 把待发送报文或者分组分成四种状态 1.已发送,已接收 2.已发送,未接收 3.可以发送,但还没发送 4.不可以发送 2跟3划分成一个窗口, ...
最新文章
- 某程序员求助:求职大厂时合并简历,如今面试已过,还能坦白吗?
- C#.NET学习笔记---C#中的条件编译
- cmd锁定计算机病毒,反病毒常用CMD命令大全
- java 怎么向串口发送指令_idea ssm项目java程序使用十六进制rxtx包向串口发送指令的方法...
- SAP中服务性订单的替代解决方案
- ubuntu16 redis5.0以后版本集群部署示例
- SQL Server 2008 高可用性视频(四)-- 故障转移群集
- [css] CSS中的calc()有什么作用?
- 记一次吐血的ping: unknown host
- BBlean最初级的入门幽默教程
- 将unsigned char字符串以16进制的字符串显示
- http响应返回的状态码
- 六、Spring MVC之返回数据
- java下载不了怎么_如何下载和安装Java
- 融云 SDK 5.0.0 功能迭代
- React-native设置全局函数globle【适用于有组件嵌套时】
- 慧荣SM2263XT量产开卡成功,附SM2263XT量产工具、开卡软件(一个512G固态硬盘不认盘修复教程)
- Windows 8轻松用系列
- 费解的开关 (蓝桥杯倒计时12天)
- Geoffrey Hinton