计算机网络滑动窗口机制编程,计算机网络之滑动窗口机制
1. 首先我们知道TCP可靠传输原理中的停止等待协议,该协议就是发送方每发送一个报文段后就停止发送,一直等收到接收方的确认后再发送下一个报文段。
TCP通信是全双工的,我们假定A为发送方,B为接收方。A会有一个发送窗口,B有一个接收窗口。
发送窗口表示在没有收到B确认的情况下,A也可以连续把发送窗口的数据发送出去。但是已经发送过的数据在未收到确认之前,它还需要暂时保留,以便于超时重传时使用。发送窗口越大,它就可以在收到对方确认之前发送更多的数据,因而获得更高的传输效率。
2. 1比特滑动窗口协议发送窗口等于1,接收窗口等于1)
当发送窗口和接收窗口的大小固定为1时,滑动窗口协议退化为停等协议。该协议规定发送方每发送一帧后就要停下来,等待接收方已正确接收的确认(ACK)返回后才能继续发送下一帧。由于接收方需要判断接收到的帧是新发的帧还是重新发送的帧,因此发送方要为每一个帧加一个序号。由于停等协议规定只有一帧完全发送成功后才能发送新的帧,因而只用一比特来编号就够了,具有累计确认机制。
3. 回退N帧协议(发送窗口大于1,接收窗口大于1)
由于停等协议要为每一个帧进行确认后才继续发送下一帧,大大降低了信道利用率,因此又提出了后退n协议。后退n协议中,发送方在发完一个数据帧后,不停下来等待应答帧,而是连续发送若干个数据帧,即使在连续发送过程中收到了接收方发来的应答帧,也可以继续发送。且发送方在每发送完一个数据帧时都要设置超时定时器。只要在所设置的超时时间内仍收到确认帧,就要重发相应的数据帧。如:当发送方发送了N个帧后,若发现该N帧的前一个帧在计时器超时后仍未返回其确认信息,则该帧被判为出错或丢失,此时发送方就不得不重新发送出错帧及其后的N帧。
4. 选择重传协议(发送窗口大于1,接收窗口大于1)
在后退n协议中,接收方若发现错误帧就不再接收后续的帧,即使是正确到达的帧,这显然是一种浪费。另一种效率更高的策略是当接收方发现某帧出错后,其后继续送来的正确的帧虽然不能立即递交给接收方的高层,但接收方仍可收下来,存放在接收缓冲区中,同时要求发送方重新传送出错的那一帧。一旦收到重新传来的帧后,就可以原已存于缓冲区中的其余帧一并按正确的顺序递交高层。这种方法称为选择重发(SELECTICE REPEAT)。显然,选择重发减少了浪费,但要求接收方有足够大的缓冲区空间。
计算机网络滑动窗口机制编程,计算机网络之滑动窗口机制相关推荐
- 【计算机网络】数据链路层 : 流量控制 ( “流量控制“ 机制 | 停止-等待协议 | 滑动窗口协议 | 后退 N 帧协议 GBN | 选择重传协议 SR | 滑动窗口 与 流量控制、可靠传输 )
文章目录 一. 数据链路层 流量控制 二. 数据链路层 与 传输层 流量控制 机制 三. 数据链路层 流量控制 四. 数据链路层 流量控制 方法分类 五.停止等待协议 六.滑动窗口协议 七.滑动窗口协 ...
- 计算机网络笔记(5) 传输层滑动窗口协议(GBN、SR)
文章目录 滑动窗口协议(Sliding-window protocol) GBN(Go-Back-N/后退N帧协议) SR协议(Selective Repeat/选择重传协议) 滑动窗口协议(Slid ...
- tcp欢动窗口机制_TCP协议中的窗口机制------滑动窗口详解
一.窗口机制的分类 在TCP协议当中窗口机制分为两种: 1.固定的窗口大小 2.滑动窗口 二.固定窗口存在的问题 如下图所示: 我们假设这个固定窗口的大小为1,也就是每次只能发送一个数据,只有接收方对 ...
- 滑动窗口协议 c语言,TCP滑动窗口协议详解.docx
本文源自CSDN博客: HYPERLINK "/THISISPAN" /THISISPAN欢迎各位访问博客,进行技术交流 滑动窗口机制 (1)?窗口机制 滑动窗口协议的基本原理就是 ...
- 对于窗口大小为n个滑动窗口,最多可以有( )帧已发送但没有确认。
对于窗口大小为n的滑动窗口,最多可以有( n-1 )帧已发送但没有确认. 在连续ARQ协议中,发送窗口大小<=窗口总数-1. 例如:窗口总数为8,编号为0 ~ 7,假设8个帧都已发出,下一轮又发 ...
- uiautomation遍历windows所有窗口_万字长文!滑动窗口看这篇就够了!
大家好,我是小浩.今天是小浩算法 "365刷题计划" 滑动窗口系列 - 整合篇.之前给大家讲解过一些滑动窗口的题目,但未作系统整理. 所以我就出了这个整合合集,整合工作中除了保留原 ...
- android 滑动翻转动画,Android编程实现3D滑动旋转效果的方法
本文实例讲述了Android编程实现3D滑动旋转效果的方法.分享给大家供大家参考,具体如下: 这里我们通过代码实现一些滑动翻页的动画效果. Animation实现动画有两个方式:帧动画(frame-b ...
- 【计算机网络】传输层 : TCP 可靠传输 ( 可靠传输机制 | 快速重传机制 )
文章目录 一.TCP 可靠传输 二.TCP 可靠传输机制 三.TCP 快速重传 机制 一.TCP 可靠传输 可靠性 : 保证 接收方进程 从 TCP 缓冲区 中读取的数据 与 发送方进程 发送的数据 ...
- 计算机网络协议和通信规则,计算机网络协议基本知识
计算机网络协议 网络协议为计算机网络中进行数据交换而建立的规则.标准或约定的集合.例如,网络中一个微机用户和一个大型主机的操作员进行通信,由于这两个数据终端所用字符集不同,因此操作员所输入的命令彼此不 ...
最新文章
- P8实战(一):架构概论,从过去到未来
- 前端学习(1271):async/await处理多个异步请求
- Promise解决多个异步Ajax请求导致的代码嵌套问题(完美解决方案)
- 记录一个奇葩问题 宝塔 nginx: [warn] conflicting server
- 38. 统计一个整数的二进制表示中bit为1的个数
- VS CODE Python开发环境配置
- SQL Server 创建表
- 2016年4月计算机组成原理试题答案,2019年4月成人自考计算机组成原理真题及答案解析...
- 计算机网络基础系列(八)TCP三次握手、四次挥手、可靠数据传输、拥塞控制和UDP
- CSS技巧之数字美化为机械字体样式
- OPPO A55刷root获取magisk权限OPPO A55 root教程
- 公交线路图-数据结构课程设计C++实现
- 移动宽带服务器维护,移动宽带 设置服务器
- 2021年的理财收益,2022继续加油
- 360打开html乱码怎么办,360浏览器出现乱码怎么回事_360浏览器页面乱码如何解决-win7之家...
- 关于 FullNat 模式的 Toa 实现原理【转】
- Unity中AssetBundle打包文件大致解读
- 秉火429笔记之二寄存器
- ipad air4参数配置
- 解决联发科mt7921网卡在ubuntu下没有wifi的问题
热门文章
- python异步高并发_python高并发异步服务器核心库forkcore使用方法
- 三维图像处理_【图像处理】用于三维物体检测的三维骨干网络
- Leetcode每日一题:36.valid-sudoku(有效的数独)
- 集成学习—决策树(CART)
- Android自定义view之基础知识
- echarts js 删除框选数据_ECharts进行区域选择
- readfile读取串口数据_谈一谈使用字体库加密数据仿58同城
- 若依如何使用多数据源?
- 若依(RuoYi)如何不登录直接访问?
- java线程池 core_Java 线程池 ThreadPoolExecutor 的使用