gbn,sr和tcp的区别

这是关于三种不同协议(GBN、SR、TCP)处理传输时序和丢包的行为比较。我们可以分别填充并解释它们的处理机制:

GBN(Go-Back-N)协议:

类型发送方的计时器保存的是啥接收方收到失序的分组怎么办超时的时候发送的超时的那个分组还是已经发送但是没有收到确认的分组
GBN发送窗口中最早未被确认的分组丢弃失序的分组,继续等待期望的分组重发所有从超时分组开始的分组(包括超时的分组)

解释:

  • 计时器保存的内容:在GBN中,发送方使用单个计时器来监控发送窗口中最早的未被确认的分组。如果该计时器超时,发送方将重发从该分组开始的所有分组。
  • 接收方处理失序分组:GBN的接收方只会接受按顺序到达的分组,对于失序到达的分组将直接丢弃,不会缓存。
  • 超时处理:当发送方的计时器超时时,发送方会重发从超时的那个分组开始的所有分组,即便有些分组已经成功到达接收方但未确认。

SR(Selective Repeat)协议:

类型发送方的计时器保存的是啥接收方收到失序的分组怎么办超时的时候发送的超时的那个分组还是已经发送但是没有收到确认的分组
SR每个未确认的分组都有一个独立的计时器缓存失序的分组,等待缺失分组到达后进行处理只重发超时的那个分组

解释:

  • 计时器保存的内容:在SR中,每个未被确认的分组都有一个独立的计时器,因此每个分组可以独立超时和重传。
  • 接收方处理失序分组:SR的接收方会缓存失序到达的分组,不会丢弃。当接收方收到期望的分组后,它会按照顺序交付缓存的分组。
  • 超时处理:如果某个分组超时,发送方只会重发这个超时的分组,而不会重发其他已经发送的分组。

TCP(Transmission Control Protocol):

类型发送方的计时器保存的是啥接收方收到失序的分组怎么办超时的时候发送的超时的那个分组还是已经发送但是没有收到确认的分组
TCP发送窗口中最早未被确认的字节(而非分组)丢弃 或者 缓存失序的分组,等待期望的分组后再按序交付重发从超时的字节开始的段,具体根据不同的拥塞控制算法决定重发策略

解释:

  • 计时器保存的内容:TCP使用字节流控制而不是基于分组,计时器通常用于监控发送窗口中最早未被确认的字节。
  • 接收方处理失序分组:TCP接收方会缓存失序到达的分组,等待期望的字节块到达后再按顺序交付数据。
  • 超时处理:TCP的超时重传机制依赖于拥塞控制算法。如果一个分组(段)超时,TCP将重传从超时的字节开始的段,根据算法(如快速重传、慢启动等)决定具体的重传范围。

这样填充和解释的表格有助于理解不同协议在数据传输中的错误处理和重传机制。


不同协议对发送窗口和接收窗口的大小有不同的规定,下面我们详细讨论 GBNSR(Selective Repeat)TCP 协议中窗口的管理。

1. GBN(Go-Back-N)协议

  • 发送窗口:大小为 ( 2 n − 1 ) (2^n - 1) (2n1),即最多可以有 ( 2 n − 1 ) (2^n - 1) (2n1)个未被确认的分组在网络中传输。这里 (n) 是用于序列号的比特数。例如,如果 (n = 3),那么发送窗口的大小最大为 7。
  • 接收窗口:固定为1。也就是说,接收方只能按顺序接收分组,无法接受和缓存失序的分组。如果接收到一个失序的分组,接收方会丢弃该分组并发回最后正确接收的分组的ACK。

2. SR(Selective Repeat)协议

  • 发送窗口:大小为 2 n − 1 2^{n-1} 2n1。SR协议的发送窗口的最大值为 2 n − 1 2^{n-1} 2n1,与GBN相比略小一半。原因是SR需要在接收方缓存失序的分组,因此为了确保序列号不会出现混淆,发送窗口最大为 2 n − 1 2^{n-1} 2n1。如果窗口太大,接收方可能无法区分一个分组是重传的旧分组还是新的分组。
  • 接收窗口:接收窗口的大小等于发送窗口的大小,也就是 2 n − 1 2^{n-1} 2n1。在SR协议中,接收方可以缓存失序的分组,因此它可以同时处理多个未按顺序到达的分组。接收方在收到某个丢失的分组后,会根据顺序依次交付缓存的分组。

3. TCP(Transmission Control Protocol)

  • 发送窗口:TCP中的发送窗口大小是动态调整的,取决于接收方的接收能力和网络的拥塞状况。TCP使用两个机制来调整发送窗口:

    1. 接收方的接收窗口(Receive Window, rwnd):这是接收方通告给发送方的可用缓冲区大小,限制了发送方最多可以发送多少未被确认的数据。
    2. 拥塞窗口(Congestion Window, cwnd):这是根据网络拥塞状况动态调整的一个窗口,发送方基于这个窗口控制发送速率,避免网络过载。

    TCP的发送窗口为接收窗口和拥塞窗口中的较小值发送窗口 = min(rwnd, cwnd)。因此,TCP的发送窗口可以根据网络状况和接收方的反馈实时变化。

  • 接收窗口:TCP的接收窗口同样是动态的,由接收方根据自身的缓冲区容量来通告。接收窗口的大小(rwnd)决定了接收方能够同时处理的未确认数据量,确保发送方不会发送超过接收方缓冲区容量的数据。

4. 总结对比

协议类型发送窗口大小接收窗口大小
GBN 2 n − 1 2^n - 1 2n1固定为 1
SR 2 n − 1 2^{n-1} 2n1 2 n − 1 2^{n-1} 2n1,与发送窗口相同
TCP动态调整: m i n ( r w n d , c w n d ) min(rwnd, cwnd) min(rwnd,cwnd)动态调整,取决于接收方缓冲区容量(rwnd)

补充:

  • GBNSR 都基于序列号的位数 (n) 来确定窗口大小,GBN最大窗口是 2 n − 1 2^n - 1 2n1,而SR由于需要处理失序分组,窗口大小限制为 2 n − 1 2^{n-1} 2n1
  • TCP 不使用固定的窗口大小,窗口根据网络拥塞状况和接收方的能力动态变化,因此更加灵活,适合互联网等复杂的网络环境。

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

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

相关文章

Android按钮Button

Button是程序用于和用户进行交互的一个重要控件。Button也是继承自TextView,既可以显示文本,又可以显示图片,二者在UI上的区别主要是 Button 控件有个按钮外观,提示用户单击。 图1 Button示意图 Button最主要的功能是通过单击来执…

K折交叉验证代码实现——详细注释版

正常方法 #---------------------------------Torch Modules -------------------------------------------------------- from __future__ import print_function import numpy as np import pandas as pd import torch.nn as nn import math import torch.nn.functional as …

基于潜空间搜索的策略自适应组合优化(NeurIPS2023)(未完)

文章目录 Abstract1 Introduction2 Related work3 Methods3.1 预备知识3.2 COMPASS4 Experiments4.1 TSP、CVRP和JSSP的标准基准测试4.2 对泛化的鲁棒性:解决变异实例4.3 搜索策略分析5 ConclusionAbstract 组合优化是许多现实应用的基础,但设计高效算法以解决这些复杂的、通…

MongoDB Shell 基本命令(三)生成学生脚本信息和简单查询

一、生成学生信息脚本 利用该脚本可以生成任意个学生信息,包括学号、姓名、班级、年级、专业、课程名称、课程成绩等信息,此处生成2万名学生,学生所有信息都是给定范围后随机生成。 生成学生信息后,再来对学生信息进行简单查询。…

vue video播放m3u8监控视频

很关键的问题 vite创建的项目不需要import ‘videojs-contrib-hls’ 导入就报错 直接添加如下代码即可 html5: {vhs: {overrideNative: true},nativeVideoTracks: false,nativeAudioTracks: false,nativeTextTracks: false} 下面是完整组件示例 <template><div>…

Java学习教程,从入门到精通,Java 基本数据类型(7)

Java 基本数据类型 在Java中&#xff0c;基本数据类型是编程中最基础的构建块之一。Java提供了八种基本数据类型&#xff0c;分别是&#xff1a;byte、short、int、long、float、double、char 和 boolean。下面是每种数据类型的详细介绍&#xff0c;包括代码示例和注释。 1. …

关于武汉芯景科技有限公司的限流开关芯片XJ6241开发指南(兼容LTC4411)

一、芯片引脚介绍 1.芯片引脚 二、系统结构图 三、功能描述 1.CTL引脚控制VIN和VOUT的通断 2.CTL引脚控制STAT引脚的状态 3.输出电压高于输入电压加上–VRTO的值&#xff0c;芯片处于关断状态

Artistic Oil Paint 艺术油画着色器插件

只需轻轻一点&#xff0c;即可将您的视频游戏转化为艺术品&#xff01;&#xff08;也许更多…&#xff09;。 ✓ 整个商店中最可配置的选项。 ✓ 六种先进算法。 ✓ 细节增强算法。 ✓ 完整的源代码&#xff08;脚本和着色器&#xff09;。 ✓ 包含在“艺术包”中。 &#x1f…

【数组知识的扩展①】

&#x1f308;个人主页: Aileen_0v0 &#x1f525;热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法 ​&#x1f4ab;个人格言:“没有罗马,那就自己创造罗马~” ArrayList在Java数组中的使用技巧 这篇博客灵感来源于某一天Aileen(&#x1f92b;)遇到了一道数组合并的题&…

python 文件防感染扫描

一、安装 首先&#xff0c;你需要安装 secplugs-python-client 库。你可以通过 pip 命令来安装&#xff1a; pip install secplugs-python-client确保你的 Python 环境已经正确设置&#xff0c;并且网络连接畅通&#xff0c;以便能够顺利安装。 二、基本用法 1. 初始化客户…

First - Word Fall - Through ( FWFT ) Read Operation

When looking at Xilinx 8 Kintex-7 4 FPGAs memory resources 32, you’ll find that its FIFO generators support two modes of read options - standard read operating and FWFT read operation. What is FWFT? FWFT is a acronym for First-Word Fall-Through. It is g…

【记录】Windows|Windows 修改字体大全(Windows 桌面、VSCode、浏览器)

【记录】Windows&#xff5c;Windows 修改字体大全&#xff08;Windows 桌面、VSCode、浏览器&#xff09; 前言 最近从学长那里发现了一款非常美观的衡水体字体——Maple Mono SC NF。您可以通过以下链接下载该字体&#xff1a;https://github.com/subframe7536/maple-font/…

TiDB替换Starrocks:业务综合宽表迁移的性能评估与降本增效决策

作者&#xff1a; 我是人间不清醒 原文来源&#xff1a; https://tidb.net/blog/6638f594 1、 场景 业务综合宽表是报表生成、大屏幕展示和数据计算处理的核心数据结构。目前&#xff0c;这些宽表存储在Starrocks系统中&#xff0c;但该系统存在显著的性能瓶颈。例如&#…

Vue组件开发的属性

组件开发的属性&#xff1a; 1.ref属性&#xff1a; 如果在vue里&#xff0c;想要获取DOM对象&#xff0c;并且不想使用JS的原生语法&#xff0c;那么就可以使用ref属性 ref属性的用法&#xff1a; 1&#xff09;在HTML元素的开始标记中&#xff0c;或者在Vue子组件中的开始…

JVM、字节码文件介绍

目录 初识JVM 什么是JVM JVM的三大核心功能 JVM的组成 字节码文件的组成 基础信息 Magic魔数 主副版本号 其它基础信息 常量池 字段 方法 属性 字节码常用工具 javap jclasslib插件 阿里Arthas 初识JVM 什么是JVM JVM的三大核心功能 1. 解释和运行虚拟机指…

我的世界之合成

合成&#xff08;Crafting&#xff09;是一种在Minecraft中获得多种方块、工具和其他资源的方法。合成时&#xff0c;玩家必须先把物品从物品栏移入合成方格中。22的简易合成方格可以直接在物品栏中找到&#xff0c;而33的合成方格需要使用工作台或合成器来打开。 目录 1合成系…

当数据遇到威胁:强化治理以抵御网络攻击

当数据遇到威胁&#xff1a;强化治理以抵御网络攻击 在当今这个信息化高速发展的时代&#xff0c;数据已成为企业乃至国家的核心资产。无论是金融交易、医疗健康、个人隐私&#xff0c;还是国家安全信息&#xff0c;都依赖于数字系统的存储与传输。然而&#xff0c;随着数据价…

LabVIEW智能螺杆空压机测试系统

基于LabVIEW软件开发的螺杆空压机测试系统利用虚拟仪器技术进行空压机的性能测试和监控。系统能够实现对螺杆空压机关键性能参数如压力、温度、流量、转速及功率的实时采集与分析&#xff0c;有效提高测试效率与准确性&#xff0c;同时减少人工操作&#xff0c;提升安全性。 项…

Ubuntu22.04 制作系统ISO镜像

第一步&#xff1a;安装软件-Systemback 1.如果已经添加过ppa&#xff0c;可以删除重新添加或者跳过此步 sudo add-apt-repository --remove ppa:nemh/systemback 2.添加ppa 我是ubuntu20&#xff0c;但这个软件最后支持的是 ubuntu16.04版本&#xff0c;所以加一个16版本…

C++ | Leetcode C++题解之第480题滑动窗口中位数

题目&#xff1a; 题解&#xff1a; class DualHeap { private:// 大根堆&#xff0c;维护较小的一半元素priority_queue<int> small;// 小根堆&#xff0c;维护较大的一半元素priority_queue<int, vector<int>, greater<int>> large;// 哈希表&#…