Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >3.4.2 单帧滑动窗口与停止等待协议

3.4.2 单帧滑动窗口与停止等待协议

作者头像
week
发布于 2018-08-24 08:32:32
发布于 2018-08-24 08:32:32
1.5K0
举报
文章被收录于专栏:用户画像用户画像

在停止等待协议中,源站发送单个帧后必须等待确认,在目的站的回答到达源站之前,源站不能发送其他的数据帧。从滑动窗口机制的角度看,停止等待协议相当于发送窗口和接受窗口的接受窗口大小均为1的滑动窗口协议。

在停止等待协议中,除了数据帧丢失,还可能出现以下两种差错:

到达目的站的帧可能已遭破坏,接受站利用在前面讨论过的差错检测技术检出后,简单地将该帧丢弃。为了对付这种可能发生的情况,源站装备了计时器,在一个帧发送之后,源站等待确认,如果在计时器计满时仍未收到确认,则再次发送同样的帧。如此重复,直到该数据帧无错误地到达为止。

 另一个可能的差错是数据帧正确而确认被破坏。为了避免这样的问题,发送的帧交替地用0和1来标识,肯定确认则分别用ACK0和ACK1来表示,当收到的确认有误时,则重传已发送的帧。下面分析停止等待协议的实现步骤。

在发送结点:

1 从主机取一个数据帧,送交发送缓冲。

2 V(s)<---0。{发送状态V(S)初始化}

3 N(s)<---V(S):{将发送状态变量值写入数据帧的发送序列号N(s) }

4 将发送缓存中的数据帧发送出去。{这个数据帧的副本仍保留在发送缓存中}

5 设置超时计时器。{选择适当的超时重传时间Tout}

6 等待。{等待以下7和8这两个事件中最先出现的一个}

7 若收到确认帧ACKn,

若n=1-V(s),则:{已发送的数据帧被接收方确认}

从主机取一个新的数据帧,放入发送缓存;

V(s)<---[1-V(s)],转到4.{更新发送状态变量,变为下一个序号}

否则,丢弃这个确认帧,转到6.{这说明已发送的数据帧没有被接收方确认}

8 若超时计数器时间到,则转到4。{重传已发送的数据帧}

在接受结点:

1.V(R)<---0.{接受状态变量初始化,其数值等于欲接受的数据帧的发送序列}

2.等待

3.收到一个数据帧,就检查有无产生传输差错(如用CRC)。

若检查结果正确无误(否则直接丢弃,转2),则执行后续算法;

4.若N(s)=V(R),则执行后续算法;{收到发送序号正确的数据帧}

否则丢弃此数据帧,然后转到7。{丢弃的数据帧就是重复帧}

5.将收到的数据帧中的数据部分送交主机。

6.V(R)<---[1-V(R)]。{更新接受状态变量,准备接受下一个数据帧}

7.发送确认帧ACKn,并转到2。{n=V(R),表明期望收到V(R)}

由以上算法可知,对于停止-等待协议,由于每发送一个数据帧就停止并等待,因此用1bit编号就够。在停止-等待协议中,若连续出现相同发送序号的数据帧,表明发送端进行了超时重传。连续出现相同序号的确认帧,表明接收端收到了重复帧。

此外,为了超时重发和判定重复帧的需要,发送方和接受方都需设置一个帧缓冲区。发送端在发送完数据帧时,必须在其发送缓存中保留此数据帧的副本,这样才能在出差错时进行重传。只有在收到对方发来的确认帧ACK时,方可清除此副本。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016年09月05日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
3.4.4 多帧滑动窗口与选择重传协议(SR)
为了进一步提高信道的利用率,可设法只重传出现差错的数据帧或者是计数器超时的数据帧。但此时必须加大接受窗口,以便先收下发送序号不连续但仍处在接受窗口中的那些数据帧。等到所缺序号的数据帧收到后再一并送交主机。这就是选择重传ARQ协议。
week
2018/08/24
1.9K0
计算机网络:流量控制与可靠传输机制
在面向帧的自动重传请求系统中,当待确认帧的数量增加时,有可能超出缓冲存储空间而造成过载。
timerring
2022/11/16
2K0
计算机网络:流量控制与可靠传输机制
计算机网络基础知识整理「建议收藏」
公共电话网(PSTN网)和移动网(包括GSM和CDMA网)采用的都是电路交换技术,它的基本特点是采用面向连接的方式,在双方进行通信之前,需要为通信双方分配一条具有固定宽带的通信电路,通信双方在通信过程中一直占用所分配的资源,直到通信结束,并且在电路的建立和释放过程中都需要利用相关的信令协议。这种方式的优点是在通信过程中可以保证为用户提供足够的带宽,并且实时性强,时延小,交换设备成本低,但同时带来的缺点是信道利用率低,一旦电路被建立不管通信双方是否处于通话状态分配的电路一直被占用。
全栈程序员站长
2022/08/01
3.6K0
计算机网络基础知识整理「建议收藏」
3.4.3 多帧滑动窗口和后退N帧协议(GBN)
在后退N帧式ARQ中,发送方不需要在收到上一帧的ACK后才能开始发送下一帧,而是可以连续发送帧。当接受方检测出失序的信息帧后,要求发送方重发最后一个正确接受的信息帧之后的所有未确认的帧;或者当发送方发送了N个帧后,若发现该N个帧的前一个帧在计时器超时后仍未返回其确认信息,则该帧被判为出错或丢失,此时发送方就不得不又重传该出错帧及随后的N个帧。换句话说,接受帧只允许按顺序接受帧。
week
2018/08/24
2.2K0
计算机网络基础知识整理--运输层
从IP层来说,通信的两端是两个主机。IP数据报的首部明确地标志了这两个主机的IP地址。我们需要知道,真正进行通信的实体是在主机中的进程,是这个主机中的一个进程和另一个主机中的进程在交换数据(即通信)。因此严格地讲,两个主机进行通信就是两个主机中的应用进程进行通信。IP协议虽然等把分组送到目的主机,但是这个分组还停留在主机的网络层而没有交付主机中的应用进程。从运输层的角度看,通信的真正端点并不是主机而是主机中的进程。也就是说,端到端的通信是应用进程之间的通信。
黄桂期
2018/05/11
2.1K2
计算机网络之传输层-停等协议与滑动窗口协议
为了使传输层提供可靠的数据传输服务,基于不可靠信道实现可靠数据传输需要采取以下措施:
越陌度阡
2020/11/26
2.2K0
计算机网络之传输层-停等协议与滑动窗口协议
【计算机网络】数据链路层 : 停止-等待协议 ( 无差错情况 | 有差错情况 | 帧丢失 | 帧出错 | ACK 确认帧丢失 | ACK 确认帧延迟 | 信道利用率公式 | 信道利用率计算 )★
停止-等待 协议 讨论场景 : 只考虑 一方为发送方 , 一方为接收方 ; 相当于 单工通信场景 ;
韩曙亮
2023/03/28
2.6K0
【计算机网络】数据链路层 : 后退 N 帧协议 GBN ( 滑动窗口 | 发送窗口长度 | “发送方“ 累计确认、超时机制 | “接收方“ 按序接收、确认帧发送机制 | 计算示例 )★
"停止-等待" 协议 弊端 : 信道利用率低 , 发送完一帧后等待 , 这个时候信道完全是空闲的 ;
韩曙亮
2023/03/28
4.7K0
TCP 滑动窗口原理解析
前些日子,在分享网络编程知识文章的时候,有个网友私信给我留言了一条“能不能写一篇关于 TCP 滑动窗口原理的文章”。
Java极客技术
2023/09/02
4180
TCP 滑动窗口原理解析
计算机网络学习9:可靠传输
如果提供不可靠传输,丢弃有误码的帧即可,其他不做。 如果提供可靠传输服务,就需要告诉发送端重发。
程序员洲洲
2024/06/07
1080
计算机网络学习9:可靠传输
计算机网络-可靠传输的实现机制
S给R发送的请求可以在请求头中新增一个序列号(Seq),如果Seq重复,那么我们R端可以丢弃,并且做出响应,这个时候如果之前网络延迟导致消息迟到的响应也到达了S,那么我们为了能够让S也知道消息重复,所以我们给响应头增加了个(ACK)]
Karos
2023/11/16
4500
计算机网络-可靠传输的实现机制
【编程者必会系列】:TCP/IP之传输层
计算机网络是计算机基础知识的重点,不管你是C++还是JAVA,安卓还是IOS,都必须要会的基础知识。今天学习的就是TCP/IP的传输层知识点总结,很多知识点将来面试中都会问到,值得学习!
张拭心 shixinzhang
2022/11/30
4160
3.4.1 流量控制、可靠传输与滑动窗口机制
流量控制涉及对链路上帧的发送速率的控制,以使接收方有足够的缓冲空间来接受每一个帧。例如,在面向帧的自动重传请求系统中,当待确认帧的数量增加时,有可能超出缓冲存储空间而造成过载。流量控制的基本方法是由接收方控制发送方发送数据的速率,常见的方式有两种:停止-等待协议和滑动窗口协议。
week
2018/08/24
7940
TCP协议详解
“面向字节流”的含义是:虽然应用程序和 TCP 的交互式一次一个数据块(大小不等),但 TCP 把应用程序交下来的数据仅仅看成是一连串的无结构的字节流。TCP 并不知道所传送的字节流的含义
ColinLiu
2019/04/29
1.4K0
TCP协议详解
计算机网络面试题总结
相对与上一个版本的计算机网路面试知识总结,这个版本增加了 “TCP协议如何保证可靠传输”包括超时重传、停止等待协议、滑动窗口、流量控制、拥塞控制等内容并且对一些已有内容做了补充。
全栈程序员站长
2022/08/26
3680
计算机网络面试题总结
7-数据链路层-逻辑链路控制子层
解决方案:当数据中存在标记字节时,在标记前添加转义字符(这种方式解决了一部分问题,但同时也带来了一些特殊情况,当数据中包含转义字符时,又必须在转义字符前添加转义字符避免混淆)
Ywrby
2022/10/27
2.3K0
【计算机网络】数据链路层 : 选择重传协议 SR ( 帧分类 | “发送方“ 确认帧、超时事件 | “接受方“ 接收帧机制 | 滑动窗口长度 | 计算示例 )★
帧协议 ( GBN ) 弊端 : 累计确认 机制 , 导致的批量重传 , 这些重传的帧 , 可能已经传输成功 , 就是因为之前的帧出错 , 导致传输成功的帧被丢弃 ;
韩曙亮
2023/03/28
4.1K0
计算机网络(三)—— 数据链路层
为了使数据链路层能更好地适应多种局域网标准,802委员会就将局域网的数据链路层拆成两个子层
繁依Fanyi
2023/05/07
1.7K0
计算机网络(三)—— 数据链路层
计算机网络 3 -数据链路层
使用点对点链路和链路层交换机的交换式局域网已经在(有线)局域网的领域取代了共享式局域网
Rikka
2022/01/20
1.5K0
计算机网络 3 -数据链路层
计算机网络:这是一份全面 & 详细 的TCP协议学习指南
对于接收端:当收到数据帧后,将窗口向前移动一个位置,并发回确认帧,若收到的数据帧落在接收窗口之外,则一律丢弃。
Carson.Ho
2019/02/22
5780
推荐阅读
相关推荐
3.4.4 多帧滑动窗口与选择重传协议(SR)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档