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)。显然,选择重发减少了浪费,但要求接收方有足够大的缓冲区空间。

计算机网络滑动窗口机制编程,计算机网络之滑动窗口机制相关推荐

  1. 【计算机网络】数据链路层 : 流量控制 ( “流量控制“ 机制 | 停止-等待协议 | 滑动窗口协议 | 后退 N 帧协议 GBN | 选择重传协议 SR | 滑动窗口 与 流量控制、可靠传输 )

    文章目录 一. 数据链路层 流量控制 二. 数据链路层 与 传输层 流量控制 机制 三. 数据链路层 流量控制 四. 数据链路层 流量控制 方法分类 五.停止等待协议 六.滑动窗口协议 七.滑动窗口协 ...

  2. 计算机网络笔记(5) 传输层滑动窗口协议(GBN、SR)

    文章目录 滑动窗口协议(Sliding-window protocol) GBN(Go-Back-N/后退N帧协议) SR协议(Selective Repeat/选择重传协议) 滑动窗口协议(Slid ...

  3. tcp欢动窗口机制_TCP协议中的窗口机制------滑动窗口详解

    一.窗口机制的分类 在TCP协议当中窗口机制分为两种: 1.固定的窗口大小 2.滑动窗口 二.固定窗口存在的问题 如下图所示: 我们假设这个固定窗口的大小为1,也就是每次只能发送一个数据,只有接收方对 ...

  4. 滑动窗口协议 c语言,TCP滑动窗口协议详解.docx

    本文源自CSDN博客: HYPERLINK "/THISISPAN" /THISISPAN欢迎各位访问博客,进行技术交流 滑动窗口机制 (1)?窗口机制 滑动窗口协议的基本原理就是 ...

  5. 对于窗口大小为n个滑动窗口,最多可以有( )帧已发送但没有确认。

    对于窗口大小为n的滑动窗口,最多可以有( n-1 )帧已发送但没有确认. 在连续ARQ协议中,发送窗口大小<=窗口总数-1. 例如:窗口总数为8,编号为0 ~ 7,假设8个帧都已发出,下一轮又发 ...

  6. uiautomation遍历windows所有窗口_万字长文!滑动窗口看这篇就够了!

    大家好,我是小浩.今天是小浩算法 "365刷题计划" 滑动窗口系列 - 整合篇.之前给大家讲解过一些滑动窗口的题目,但未作系统整理. 所以我就出了这个整合合集,整合工作中除了保留原 ...

  7. android 滑动翻转动画,Android编程实现3D滑动旋转效果的方法

    本文实例讲述了Android编程实现3D滑动旋转效果的方法.分享给大家供大家参考,具体如下: 这里我们通过代码实现一些滑动翻页的动画效果. Animation实现动画有两个方式:帧动画(frame-b ...

  8. 【计算机网络】传输层 : TCP 可靠传输 ( 可靠传输机制 | 快速重传机制 )

    文章目录 一.TCP 可靠传输 二.TCP 可靠传输机制 三.TCP 快速重传 机制 一.TCP 可靠传输 可靠性 : 保证 接收方进程 从 TCP 缓冲区 中读取的数据 与 发送方进程 发送的数据 ...

  9. 计算机网络协议和通信规则,计算机网络协议基本知识

    计算机网络协议 网络协议为计算机网络中进行数据交换而建立的规则.标准或约定的集合.例如,网络中一个微机用户和一个大型主机的操作员进行通信,由于这两个数据终端所用字符集不同,因此操作员所输入的命令彼此不 ...

最新文章

  1. P8实战(一):架构概论,从过去到未来
  2. 前端学习(1271):async/await处理多个异步请求
  3. Promise解决多个异步Ajax请求导致的代码嵌套问题(完美解决方案)
  4. 记录一个奇葩问题 宝塔 nginx: [warn] conflicting server
  5. 38. 统计一个整数的二进制表示中bit为1的个数
  6. VS CODE Python开发环境配置
  7. SQL Server 创建表
  8. 2016年4月计算机组成原理试题答案,2019年4月成人自考计算机组成原理真题及答案解析...
  9. 计算机网络基础系列(八)TCP三次握手、四次挥手、可靠数据传输、拥塞控制和UDP
  10. CSS技巧之数字美化为机械字体样式
  11. OPPO A55刷root获取magisk权限OPPO A55 root教程
  12. 公交线路图-数据结构课程设计C++实现
  13. 移动宽带服务器维护,移动宽带 设置服务器
  14. 2021年的理财收益,2022继续加油
  15. 360打开html乱码怎么办,360浏览器出现乱码怎么回事_360浏览器页面乱码如何解决-win7之家...
  16. 关于 FullNat 模式的 Toa 实现原理【转】
  17. Unity中AssetBundle打包文件大致解读
  18. 秉火429笔记之二寄存器
  19. ipad air4参数配置
  20. 解决联发科mt7921网卡在ubuntu下没有wifi的问题

热门文章

  1. python异步高并发_python高并发异步服务器核心库forkcore使用方法
  2. 三维图像处理_【图像处理】用于三维物体检测的三维骨干网络
  3. Leetcode每日一题:36.valid-sudoku(有效的数独)
  4. 集成学习—决策树(CART)
  5. Android自定义view之基础知识
  6. echarts js 删除框选数据_ECharts进行区域选择
  7. readfile读取串口数据_谈一谈使用字体库加密数据仿58同城
  8. 若依如何使用多数据源?
  9. 若依(RuoYi)如何不登录直接访问?
  10. java线程池 core_Java 线程池 ThreadPoolExecutor 的使用