计算机网络笔记(5) 传输层滑动窗口协议(GBN、SR)
文章目录
- 滑动窗口协议(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)相关推荐
- 三句话介绍清楚滑动窗口协议/GBN/SR
滑动窗口协议.GBN.SR之间不得不说的故事 首先我们来介绍什么是滑动窗口协议 滑动窗口协议(Sliding Window Protocol),属于TCP协议的一种应用,用于网络数据传输时的流量控制, ...
- 计算机网络笔记-应用层/传输层/网络层(2w字详细整理)
文章目录 计算机网络 计算机网络概述 互联网的组成 网络边缘部分 C/S方式 P2P对等方式 网络核心部分 电路交换 分组交换 报文交换 传输延时 计算机网络体系概述 OSI七层模型 TCP/IP四层 ...
- 计算机网络笔记Part5 传输层(Transport Layer)
本人计算机网络笔记总目录 计算机网络笔记Part1 概述 计算机网络笔记Part2 物理层(Physical Layer) 计算机网络笔记Part3 数据链路层(Data Link Layer) 计算 ...
- 【学习笔记】传输层:TCP协议(报文段、连接管理{握手}、可靠传输、流量控制、拥塞控制)
文章目录 一. 协议特点 & 报文段 ① 特点 ② 报文段首部格式 二. TCP连接管理 ① 建立联系(三次握手) SYN洪泛攻击 ② 连接释放(四次挥手) 三. TCP流量控制 ① 序号 ② ...
- 计算机网络应用层和传输层及网络层协议有哪些?
应用层协议: 1.远程登录协议(Telnet) 2.文件传输协议(FTP) 3.超文本传输协议(HTTP) 4.域名服务协议(DNS) 5.简单邮件传输协议(SMTP) 6.邮局协议(POP3) 其中 ...
- 计算机网络实验 Go Back N 滑动窗口协议 C++
环境 : Microsoft Visual C++ 6.0 Go Back N 协议 ( 暂无 ack ) #include <iostream> #include <cstrin ...
- 链路层-滑动窗口协议-回退N帧协议-窗口大小选择问题
问题 假设有N位比特可以用来表示帧的序列号,那么应用回退N帧协议的时候,窗口最大可以选择多少呢? 答案 2^N-1 疑点 相信很多人的疑问都是,为什么窗口的最大值不可以是2^n呢?这里首先来用一个图来 ...
- 计算机网络之传输层:6、TCP流量控制、滑动窗口协议
传输层:6.TCP流量控制 实现流量控制的方法: TCP流量控制: 实现流量控制的方法: 停止等待协议和滑动窗口协议 TCP流量控制:
- 【计算机网络】数据链路层 : 流量控制 ( “流量控制“ 机制 | 停止-等待协议 | 滑动窗口协议 | 后退 N 帧协议 GBN | 选择重传协议 SR | 滑动窗口 与 流量控制、可靠传输 )
文章目录 一. 数据链路层 流量控制 二. 数据链路层 与 传输层 流量控制 机制 三. 数据链路层 流量控制 四. 数据链路层 流量控制 方法分类 五.停止等待协议 六.滑动窗口协议 七.滑动窗口协 ...
最新文章
- UNIX环境高级编程笔记之进程控制
- 鱼c论坛python课后题-【零基础】Python3学习课后练习题(十九)
- java 加法表编程_java编程——数据的加法
- CEPH给用户创建读写权限
- OpenCV蒙版图像make mask image的实例(附完整代码)
- Python的构造函数和析构函数,对象和类的不一样
- [转载] Python中的解析式和生成器表达式
- Linux Setuid(SUID)和Setgid(SGID) sticky bit
- hough变换直线检测_CV学习笔记(十五):直线检测
- 桌面云 服务器 价格,细数目前市场上桌面云的收费模式
- Screen Recorder for Mac屏幕录制软件
- 修改状态栏字体颜色和背景颜色
- Java - 两个对象值相同(x.equals(y) == true),但却可以有不同的hash code,这句话对不对?
- 我的计算机 不显示桌面存储路劲,win10系统保存文件路径在桌面无法显示的操作步骤...
- 利用python爬虫技术实现基于本福特定律_基于Python技术的校园网搜索引擎的设计与实现...
- mysql中查询没有选修某两门课的_50条SQL查询技巧、查询语句示例
- LT8618SX 是龙迅的低功耗版本 HDMI 发射器,其基于 ClearEdgeTM 技术
- scala函数式变程,curry,读取文件,字符串插值,隐式转换,模式匹配
- 【python数据分析实战】城市餐饮店铺选址问题(2)—— 确定餐馆的具体位置
- php怎么建留言本,php实现留言板功能的详细代码
热门文章
- 字符串匹配——BM算法
- 复制移动文件时对于目标文件系统过大的问题解决
- 基于openCV的视频人脸识别——演员的诞生视频人脸识别
- 【开奖】犀牛书获奖名单,留言开通成功,有奖征集意见赠书!
- python读取.pkl格式的文件
- web项目设计与开发——DBHelper
- 卧式组合机床设计(论文 CAD图纸 开题报告 任务书……)
- mpvue开发美团外卖点餐小程序
- UG NX 8.5有限元分析入门与实例精讲(PPT、视频、模型)
- 安装matlab到99%时出现的问题:在您的许可证文件中找不到 SERVER 行。您需要在 ...... 中手动编辑 SERVER