计算机网络-后退N帧协议(弊端 滑动窗口 运行中的GBN 滑动窗口长度习题 GBN协议性能分析 )

文章目录

  • 停等协议的弊端
  • 后退N帧协议中的滑动窗口
  • GBN发送方必须响应的三件事
  • GBN接受方要做的事
  • 运行中的GBN
  • 滑动窗口长度
  • GBN协议重点总结
  • 习题1
  • 习题2
  • GBN协议性能分析
  • 小结

停等协议的弊端

信道利用率低:在停等协议中,发送方在发送完一帧后必须等待接收方确认(ACK)才能发送下一帧。如果确认丢失或延迟,发送方会因超时而重新发送数据帧,这导致信道在等待确认时处于空闲状态,造成信道资源的浪费。(通过对比完成发送两个帧的所需时长可知道)

流水线:每个数据帧都会接着上一个数据帧发送

此时需要增加序号范围(流水线发送多)并可能还需要缓存多个数据帧(流水线连续发送)
在这里插入图片描述

后退N帧协议中的滑动窗口

发送窗口是一组连续的发送的帧序号(即一个一个发送出去)

发送一个帧后会复制一份保持到发送方
接受方接受到0号帧后会右移一位
发送方接受到0号帧的确认帧ACK 0后会右移一位

接受方可以接受多个帧后再发送最后一个帧的确认帧,这样也能保证前面的帧都已经接受到是因为接受到一个帧接收方的接受窗口才会移动,所以能发送最后一个帧那么之前的帧都已经接受到了。
在这里插入图片描述

GBN发送方必须响应的三件事

累计确认:GBN(Go-back-N)协议中的累计确认是一种机制,用于告知发送方哪些数据已经被接收方成功接收。

在GBN协议中,接收方使用累积确认(Cumulative Acknowledgment)的方式来通知发送方数据的接收状态。这意味着接收方不会为每一个成功接收的数据包都发送确认消息,而是发送一个确认号(ACK),该确认号代表了接收方期望收到的下一个数据包的序号。通过这种方式,发送方可以得知接收方已经成功接收了所有序号在确认号之前的数据包。

例如,如果接收方收到了序号为1、2和3的数据包,但是序号为4的数据包出现了错误或者丢失,那么接收方会发送确认号为4的ACK,表示它已经成功接收了序号为1、2和3的数据包,并且在等待序号为4的数据包。

超时事件GBN的处理行为与停等协议不同

在这里插入图片描述

GBN接受方要做的事

并为最近按序接收的帧重新发送ACK:将没有接收的序号的前一个的确认帧发送,发送方接收到后知道接收方接收到的帧的序号,从而能够发送接收方没有接收到的帧
在这里插入图片描述

运行中的GBN

当发送完1帧接收方并且接收到1帧后,发送的2帧丢失后,即使3帧发送并且接收方接收到了,也会丢弃并发送1号确认帧

当发送方接收到一个确认帧就会右移动相应的窗口数

发送方接收2号确认帧超时时将重传2号帧以及其之后的帧

可以理解接收方吃汉堡必须按照每层规定的吃
在这里插入图片描述

滑动窗口长度

后退N帧协议(Go-Back-N ARQ)中的滑动窗口长度的上界是为了确保接收方能够正确区分新帧和旧帧。

后退N帧协议中,发送方和接收方分别维护一个发送窗口和接收窗口。这些窗口本质上是序号的集合,指示了哪些帧可以被发送或接收。具体来说:

  • 发送窗口:允许发送方发送一组连续编号的帧。
  • 接收窗口:接收方只允许接受一个指定序号的帧,即接收窗口大小通常为1。

使用n比特进行帧编号时,可以产生(2^n)个不同的序号。为了确保接收方不会混淆新旧数据帧,发送窗口的大小应满足1 ≤ W_T ≤ 2^n - 1的条件。如果发送窗口的大小超过 (2^n - 1),则可能会发生一种情况,即某个已经发送但未被确认的数据帧的序号再次出现在窗口中,导致接收方无法区分这是新的传输还是之前已发送过的旧帧的重传。

例如,如果用3比特进行编号,虽然理论上可以有8个不同的序号,但如果设置发送窗口大小为8,那么当发送完0到7号帧后,若这些帧都已正确到达但还未被确认,发送窗口将满且暂停发送。此时,如果发生了错误需要重传,由于序号会重复出现,接收方将无法区分是新的传输还是旧帧的重传,从而可能导致混乱。

在这里插入图片描述

GBN协议重点总结

偶尔捎带确认:接收方偶尔会发送数据给发送方并将确认帧捎带上

确认序列号最大的,按序到达的帧:即当接收到1,2,4确认帧时,会以2为确认帧传回

发送窗口确定后在运行过程就不能轻易改变
在这里插入图片描述

习题1

收到3号帧确认时此时意味着3及之前的帧都接收到了,那么发送窗口将右移4个
在这里插入图片描述

习题2

发送方接收到第一个确认帧时已经发送的字节/发送方接收到第一个确认帧的时间
在这里插入图片描述

GBN协议性能分析

在这里插入图片描述

小结

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/264948.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

高防IP简介

高防IP可以防御的有包括但不限于以下类型: SYN Flood、UDP Flood、ICMP Flood、IGMP Flood、ACK Flood、Ping Sweep 等攻击。高防IP专注于解决云外业务遭受大流量DDoS攻击的防护服务。支持网站和非网站类业务的DDoS、CC防护,用户通过配置转发规则&#x…

蓝桥杯备战刷题one(自用)

1.被污染的支票 #include <iostream> #include <vector> #include <map> #include <algorithm> using namespace std; int main() {int n;cin>>n;vector<int>L;map<int,int>mp;bool ok0;int num;for(int i1;i<n;i){cin>>nu…

项目:shell实现多级菜单脚本编写

目录 1. 提示 2. 演示效果 2.1. 一级菜单 2.2. 二级菜单 2.3. 执行操作 3. 参考代码 1. 提示 本脚本主要实现多级菜单效果&#xff0c;并没有安装LAMP、LNMP环境&#xff0c;如果要用在实际生成环境中部署LNMP、LAMP环境&#xff0c;只需要简单修改一下就可以了。 2. 演…

Mysql运维篇(五) 部署MHA--主机环境配置

一路走来&#xff0c;所有遇到的人&#xff0c;帮助过我的、伤害过我的都是朋友&#xff0c;没有一个是敌人。如有侵权&#xff0c;请留言&#xff0c;我及时删除&#xff01; 大佬博文 https://www.cnblogs.com/gomysql/p/3675429.html MySQL 高可用&#xff08;MHA&#x…

php伪协议 [SWPUCTF 2022 新生赛]ez_ez_php(revenge)

打开题目 题目源代码如下 <?php error_reporting(0); if (isset($_GET[file])) {if ( substr($_GET["file"], 0, 3) "php" ) {echo "Nice!!!";include($_GET["file"]);} else {echo "Hacker!!";} }else {highlight_fi…

【高德地图】Android高德地图控件交互详细介绍

&#x1f4d6;第5章 与地图控件交互 ✅控件交互&#x1f9ca;缩放按钮&#x1f9ca;指南针&#x1f9ca;定位按钮&#x1f9ca;地图Logo ✅手势交互&#x1f9ca;缩放手势&#x1f9ca;滑动手势&#x1f9ca;旋转手势&#x1f9ca;倾斜手势&#x1f9ca;指定屏幕中心点的手势操…

C语言中strstr函数的使用!

strstr函数的作用是什么&#xff1f; 查找子字符串 具体直接看下面的这段代码我相信你必明白 #define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> int main() { char *p1 "abcdefghijklmnopqrstuvwxyz"; char* p2 "abc"; char* r…

智慧公厕让社区生活更美好

随着科技的迅猛发展&#xff0c;城市管理、城市服务均使用科技化的手段进行升级改造&#xff0c;社区生活更美好赋予全新的智慧效能&#xff0c;其中智慧公厕也成为了城市环卫设施的新宠。智慧公厕以物联网、互联网、大数据、云计算、5G通信、自动化控制等技术为核心&#xff0…

LLM (Large language model)的指标参数

1. 背景介绍 我们训练大模型的时候&#xff0c;或者我们用RAG的时候&#xff0c;不知道我们的算法&#xff0c;或者我们的提示&#xff0c;或者我们的本地知识库是否已经整理得符合要求了。又或我们需要一个指标去评估我们目前的所有围绕大模型&#xff0c;向量数据库或外挂知…

【可实战】被测系统业务架构、系统架构、技术架构、数据流、业务逻辑分析

一、为什么要学习 更深的理解业务逻辑&#xff08;公司是做什么的&#xff1f;它最重要的商务决策是什么&#xff1f;它里面的数据流是怎么做的&#xff1f;有哪些业务场景&#xff1f;考验你对这家公司、对所负责业务的熟悉程度。公司背后服务器用什么软件搭建的&#xff1f;…

高性能API云原生网关 APISIX安装与配置指南

Apache APISIX是Apache软件基金会下的顶级项目&#xff0c;由API7.ai开发并捐赠。它是一个高性能的云原生API网关&#xff0c;具有动态、实时等特点。 APISIX网关可作为所有业务的流量入口&#xff0c;为用户提供了丰富的功能&#xff0c;包括动态路由、动态上游、动态证书、A…

【C语言基础】:操作符详解(一)

文章目录 操作符详解1. 操作符的分类2. 二进制和进制转换2.1 什么是二进制、八进制、十进制、十六进制2.1.1 二进制和进制转换2.1.2 二进制转十进制2.2.3 二进制转八进制2.2.4 二进制转十六进制 3. 源码、反码、补码4. 移位操作符4.1 左移操作符4.2 右移操作符 5. 位操作符&…

神经网络系列---激活函数

文章目录 激活函数Sigmoid 激活函数Tanh激活函数ReLU激活函数Leaky ReLU激活函数Parametric ReLU激活函数 &#xff08;自适应Leaky ReLU激活函数&#xff09;ELU激活函数SeLU激活函数Softmax 激活函数Swish 激活函数Maxout激活函数Softplus激活函数 激活函数 一般来说&#xf…

Unity零基础到进阶 | Unity中的 RectTransformUtility 方法整理汇总

Unity零基础到进阶 ☀️| RectTransformUtility 方法整理汇总一、RectTransformUtility 官方文档1.1 RectTransformUtility.CalculateRelativeRectTransformBounds&#xff08;重&#xff09;1.2 RectTransformUtility.FlipLayoutAxes1.3 RectTransformUtility.FlipLayoutOnAxi…

python:xml.etree.ElementTree 读 Freeplane.mm文件,生成测试案例.csv文件

Freeplane 是一款基于 Java 的开源软件&#xff0c;继承 Freemind 的思维导图工具软件&#xff0c;它扩展了知识管理功能&#xff0c;在 Freemind 上增加了一些额外的功能&#xff0c;比如数学公式、节点属性面板等。 强大的节点功能&#xff0c;不仅仅节点的种类很多&#xf…

XSS原理和攻防

Cross Site Scripting:跨站脚本攻击 用户提交的数据中可以构造恶意代码&#xff0c;并且执行&#xff0c;从而实现窃取用户信息等攻击 攻击&#xff1a; 防御&#xff1a; 1.对输入进行过滤&#xff0c;对输出进行编码 2.cookie设置http-only

Nest.js权限管理系统开发(八)jwt登录

安装相关依赖 虽然仅使用nestjs/jwt就能实现身份验证的功能&#xff0c;但是使用passport能在更高层次上提供更多便利。Passport 拥有丰富的 strategies 生态系统&#xff0c;实现了各种身份验证机制。虽然概念简单&#xff0c;但你可以选择的 Passport 策略集非常丰富且种类繁…

(HAL)STM32F103C6T8——软件模拟I2C驱动0.96寸OLED屏幕

一、电路接法 电路接法参照江科大视频。 二、相关代码及文件 说明&#xff1a;代码采用hal库&#xff0c;通过修改江科大代码实现。仅OLED.c文件关于引脚定义作了hal库修改&#xff0c;并将宏定义OLED_W_SCL(x)、OLED_W_SDA(x)作了相关修改。 1、OLED.c void OLED_I2C_Init(voi…

自动化行业文件数据\资料防泄密软件——天锐绿盾|@德人合科技

天锐绿盾是一款自动化行业文件数据防泄密软件&#xff0c;由德人合科技提供。该软件采用动态加解密技术&#xff0c;能够有效防止公司内部数据泄密&#xff0c;同时支持各种文件格式加密&#xff0c;如CAD、OFFICE、PDF、图纸等。 PC端&#xff1a;https://isite.baidu.com/sit…

项目管理工具git

git 1. git介绍1.1. 版本控制系统 2. 创建本地版本库2.1 概念2.2 操作步骤 3. 修改文件4. 练习: 添加一个本地项目到仓库5. 添加远程仓库5.1 添加远程仓库5.2 本地仓库同步到远程仓库5.3 克隆远程仓库到本地5.4 SSH设置 6. 分支管理6.1 创建分支6.2 切换分支6.3 合并分支6.4 解…