文章目录

  • 滑动窗口协议(Sliding-window protocol)
    • GBN(Go-Back-N/后退N帧协议)
    • SR协议(Selective Repeat/选择重传协议)

滑动窗口协议(Sliding-window protocol)

  • 窗口

    • 允许使用的序列号范围
    • 窗口尺寸为N:最多有N个等待确认的消息
  • 滑动窗口
    • 随着协议的运行,窗口再序列号空间内向前滑动
  • 滑动窗口协议:GBN,SR

GBN(Go-Back-N/后退N帧协议)

发送方:

  • 分组头部包含k-bit序列号

  • 窗口尺寸为N,最多允许N个分组未确认

  • ACK(n)机制:确认帧,表示接收到的字符无错误,确认到序列号n(包含n)的分组均已被正确接受

    • 可能收到重复ACK
  • 为空中的纷纷组设置计时器(timer)

    • 超时的话需要重发
  • 超时Timeout(n)事件:重传序列号≥n,即还未收到ACK的所有分组

接收方:

  • ACK机制:发送拥有最高序列号的、已被正确接收的分分组的ACK

    • 可能产生重复ACK
    • 只需要记住唯一的expectedseqnum
  • 乱序到达的分组
    • 直接丢弃处理,但是接受方没有缓存
    • 因此需要重新确认序列号最大的、按序到达的分组

SR协议(Selective Repeat/选择重传协议)

GBN重传时会重传多个分组,比如重传n时会重传n以及n序列号以后的分组

SR中解决这种问题:

  • 接收方会对每个分组单独进行确认

    • 设置缓存机制,缓存乱序到达的分组
  • 发送方只重传那些没收到ACK的分组
    • 为每个分组设置定时器
  • 发送方窗口
    • N个连续的序列号
    • 限制已发送且未确认的分组

发送方工作

  • 上层调用事件:上层发送数据时,先检查发送窗口

    • 如果发送窗口未满:则生成数据帧,发送数据
    • 如果发送窗口已满:发送方将该信息通知上层,让上层延迟发送
  • ACK事件:逐一确认
    • 接收确认帧:接收方收到ACK确认帧
    • 标记已接收:发送窗口内将该帧序号对应的帧标记为已接收
    • 移动发送窗口:如果该帧序号是发送窗口的下界(最左侧窗口),将发送窗口移动到最小序号的没有确认的帧位置;可能移动一个位置,也可能移动多个位置
    • 发送未发送帧:发送窗口移动完毕后,如果发现该发送窗口中有没有发送的帧,就将这些帧发送出去
  • 超时事件:每个帧都有自己的定时器,如果某个帧出现了定时器超时事件,重传该单个帧

接收方工作

  • 接收正确帧:接收方接收正确的帧,不管其帧的顺序
  • 失序处理:失序的帧,将会被缓存起来,并向发送方发送该失序帧的ACK确认帧
  • 移动接收窗口:如果接收到的帧序号是接收窗口的下界(最左侧窗口),将成功接收到的连续数据交付给上层,将接收窗口移动到最小序号的没有接收到的帧位置;可能移动一个位置,也可能移动多个位置

计算机网络笔记(5) 传输层滑动窗口协议(GBN、SR)相关推荐

  1. 三句话介绍清楚滑动窗口协议/GBN/SR

    滑动窗口协议.GBN.SR之间不得不说的故事 首先我们来介绍什么是滑动窗口协议 滑动窗口协议(Sliding Window Protocol),属于TCP协议的一种应用,用于网络数据传输时的流量控制, ...

  2. 计算机网络笔记-应用层/传输层/网络层(2w字详细整理)

    文章目录 计算机网络 计算机网络概述 互联网的组成 网络边缘部分 C/S方式 P2P对等方式 网络核心部分 电路交换 分组交换 报文交换 传输延时 计算机网络体系概述 OSI七层模型 TCP/IP四层 ...

  3. 计算机网络笔记Part5 传输层(Transport Layer)

    本人计算机网络笔记总目录 计算机网络笔记Part1 概述 计算机网络笔记Part2 物理层(Physical Layer) 计算机网络笔记Part3 数据链路层(Data Link Layer) 计算 ...

  4. 【学习笔记】传输层:TCP协议(报文段、连接管理{握手}、可靠传输、流量控制、拥塞控制)

    文章目录 一. 协议特点 & 报文段 ① 特点 ② 报文段首部格式 二. TCP连接管理 ① 建立联系(三次握手) SYN洪泛攻击 ② 连接释放(四次挥手) 三. TCP流量控制 ① 序号 ② ...

  5. 计算机网络应用层和传输层及网络层协议有哪些?

    应用层协议: 1.远程登录协议(Telnet) 2.文件传输协议(FTP) 3.超文本传输协议(HTTP) 4.域名服务协议(DNS) 5.简单邮件传输协议(SMTP) 6.邮局协议(POP3) 其中 ...

  6. 计算机网络实验 Go Back N 滑动窗口协议 C++

    环境 : Microsoft Visual C++ 6.0 Go Back N 协议  ( 暂无 ack ) #include <iostream> #include <cstrin ...

  7. 链路层-滑动窗口协议-回退N帧协议-窗口大小选择问题

    问题 假设有N位比特可以用来表示帧的序列号,那么应用回退N帧协议的时候,窗口最大可以选择多少呢? 答案 2^N-1 疑点 相信很多人的疑问都是,为什么窗口的最大值不可以是2^n呢?这里首先来用一个图来 ...

  8. 计算机网络之传输层:6、TCP流量控制、滑动窗口协议

    传输层:6.TCP流量控制 实现流量控制的方法: TCP流量控制: 实现流量控制的方法: 停止等待协议和滑动窗口协议 TCP流量控制:

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

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

最新文章

  1. UNIX环境高级编程笔记之进程控制
  2. 鱼c论坛python课后题-【零基础】Python3学习课后练习题(十九)
  3. java 加法表编程_java编程——数据的加法
  4. CEPH给用户创建读写权限
  5. OpenCV蒙版图像make mask image的实例(附完整代码)
  6. Python的构造函数和析构函数,对象和类的不一样
  7. [转载] Python中的解析式和生成器表达式
  8. Linux Setuid(SUID)和Setgid(SGID) sticky bit
  9. hough变换直线检测_CV学习笔记(十五):直线检测
  10. 桌面云 服务器 价格,细数目前市场上桌面云的收费模式
  11. Screen Recorder for Mac屏幕录制软件
  12. 修改状态栏字体颜色和背景颜色
  13. Java - 两个对象值相同(x.equals(y) == true),但却可以有不同的hash code,这句话对不对?
  14. 我的计算机 不显示桌面存储路劲,win10系统保存文件路径在桌面无法显示的操作步骤...
  15. 利用python爬虫技术实现基于本福特定律_基于Python技术的校园网搜索引擎的设计与实现...
  16. mysql中查询没有选修某两门课的_50条SQL查询技巧、查询语句示例
  17. LT8618SX 是龙迅的低功耗版本 HDMI 发射器,其基于 ClearEdgeTM 技术
  18. scala函数式变程,curry,读取文件,字符串插值,隐式转换,模式匹配
  19. 【python数据分析实战】城市餐饮店铺选址问题(2)—— 确定餐馆的具体位置
  20. php怎么建留言本,php实现留言板功能的详细代码

热门文章

  1. 字符串匹配——BM算法
  2. 复制移动文件时对于目标文件系统过大的问题解决
  3. 基于openCV的视频人脸识别——演员的诞生视频人脸识别
  4. 【开奖】犀牛书获奖名单,留言开通成功,有奖征集意见赠书!
  5. python读取.pkl格式的文件
  6. web项目设计与开发——DBHelper
  7. 卧式组合机床设计(论文 CAD图纸 开题报告 任务书……)
  8. mpvue开发美团外卖点餐小程序
  9. UG NX 8.5有限元分析入门与实例精讲(PPT、视频、模型)
  10. 安装matlab到99%时出现的问题:在您的许可证文件中找不到 SERVER 行。您需要在 ...... 中手动编辑 SERVER