拥塞控制(TCP限制窗口大小的机制)

        拥塞控制机制可以使滑动窗口在保证可靠性的前提下,提高传输效率

        关于滑动窗口的属性以及部分机制推荐看TCP中窗口和滑动窗口的含义以及流量控制

拥塞控制出现的原因

        看了上面推荐的博客我们已经知道了,由于接收方接收数据的能力有限,所以要通过流量控制的机制来限制滑动窗口的窗口大小,而我们在决定发送方窗口大小时,需要考虑的不仅仅是接收方接收数据的能力,还有中间设备处理数据的能力,因为我们在传输数据时不仅仅需要发送方和接收方,在它们之间还有许多传输数据的中间设备(如路由器),而发送方滑动窗口的实际大小应该取决于接收方接收数据的能力和中间设备处理数据的能力,而拥塞控制便是去动态的实践出中间设备处理数据的能力能够承载的窗口大小。

拥塞控制的过程图示

        

 

拥塞控制的详细过程

        1.慢启动,在刚开始通讯时会用一个较小的窗口数量去批量发送较少的数据,主要是为了判断当前网络的流畅情况(如何当前网络不流畅,出现了网络堵塞,还用较大的窗口去批量发送较多的数据就会给当前的网络情况雪上加霜)

        2.在传播数据以后,发现当前传播流畅,便按指数增长的方式去增加窗口大小

        3.但指数增长是非常快的,所以必须要加以限制,当窗口大小增加到规定的阈值以后,窗口大小的增长便会从指数增长变为线性增长

        4.变为线性增长后也终会达到最大值,当发现网络中出现大量的丢包情况(网络堵塞),便将阈值变为当前窗口大小的一半,并且还原窗口大小为最初的窗口大小

        5.循环之前的操作

总结

        在拥塞控制下的窗口大小就是在这个过程中不断变化,不断重新调整的过程,这样的调整就可以很好的适应多变的网络环境,当然,这里也是有不少的性能缺失,每当拥塞控制下的窗口大小还原为最初的小窗口时就会使传输速度大打折扣

        我们根据接收方处理数据的能力得到了一个流量控制窗口大小,根据中间设备处理数据的能力得到了一个拥塞窗口大小,那么发送方实际上发送数据时采用的窗口大小是什么呢?

实际发送方的窗口=min(拥塞窗口,流量控制窗口)因为我们不仅要考虑接收方的处理能力还要保证中间设备的处理能力,拥塞控制和流量控制,共同限制了滑动窗口机制,可以使滑动窗口在可靠性的前提下,提高传输效率。

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

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

相关文章

LLM架构自注意力机制Transformers architecture Attention is all you need

使用Transformers架构构建大型语言模型显著提高了自然语言任务的性能,超过了之前的RNNs,并导致了再生能力的爆炸。 Transformers架构的力量在于其学习句子中所有单词的相关性和上下文的能力。不仅仅是您在这里看到的,与它的邻居每个词相邻&…

Go语言入门指南:基础语法和常用特性(下)

上一节,我们了解Go语言特性以及第一个Go语言程序——Hello World,这一节就让我们更深入的了解一下Go语言的**基础语法**吧! 一、行分隔符 在 Go 程序中,一行代表一个语句结束。每个语句不需要像 C 家族中的其它语言一样以分号 ;…

Ajax介绍

1.与服务器进行数据交换:通过 Ajax 可以给服务器发送请求,并获取服务器响应的数据。 2.异步交互:可以在 不重新加载整个页面 的情况下,与服务器交换数据并 更新部分网页 的技术,如: 搜索联想、用户名是否可…

ChatGpt开源项目完美运行配置-ChatGml2

(以下所有软件均可免费在网盘获取。) 任务描述 本节任务是安装和配置chatgpt项目所需的软件以及chatgpt项目所需要的python库包,同时编写python代码来完成chatgpt项目的人机对话功能。 实验工具 显卡GTX1070(专用内存需要大于等…

[JavaWeb]【五】web后端开发-Tomcat SpringBoot解析

目录 一 介绍Tomcat 二 基本使用 2.1 解压绿色版 2.2 启动TOMCAT 2.3 关闭TOMCAT 2.4 常见问题 2.5 修改端口号 2.6 部署应用程序 三 SpringBootWeb入门程序解析 前言:tomcat与SpringBoot解析 一 介绍Tomcat 二 基本使用 2.1 解压绿色版 2.2 启动TOMCAT 2…

BOXTRADE-天启量化分析平台 系统功能预览

BOXTRADE-天启量化分析平台 系统功能预览 系统功能预览 1.登录 首页 参考登录文档 2. A股 行情与策略分析 2.1 A股股票列表 可以筛选和搜索 2.2 A股行情及策略回测 2.2.1 行情数据提供除权和前复权,后复权数据;外链公司信息 2.2.2 内置策略执行结果…

matlab 检测点云中指定尺寸的矩形平面

目录 一、概述1、算法概述2、主要函数二、代码示例三、结果展示四、参数解析输入参数名称-值对应参数输出参数五、参考链接一、概述 1、算法概述 detectRectangularPlanePoints:检测点云中指定尺寸的矩形平面 <

git快速入门

常用指令 git config --global user.email yinweitingptxinke.com git config --global user.name yinweiting git commit -m "日志消息" filename git reflog 查看精简版本信息 git log 查看详细版本信息 注意:这里设置的用户签名和将来登录的GitHub的账号没有任…

【HCIP】01.RSTP

STP的缺点 STP对计时器的依赖&#xff08;需要等固定30s&#xff09;STP重收敛速度过程慢&#xff08;30s或50s&#xff09;拓扑变化机制太慢&#xff08;高度中央集权&#xff0c;需要上报到根桥再下发TCN&#xff09; RSTP 802.1W&#xff0c;收敛速度更快&#xff0c;能够…

Python程序设计基础:random库的使用

文章目录 一、常见的random库函数二、应用实例 一、常见的random库函数 在使用Python语言进行编程计算时&#xff0c;计算机完成的计算主要是确定的&#xff0c;但是在将其进行应用时&#xff0c;人们会模拟现实生活中的现象和活动&#xff0c;希望其增加一些随机性&#xff0…

econml介绍

EconML简介 EconML: A Python Package for ML-Based Heterogeneous Treatment Effects Estimation EconML是一个通过机器学习方法从观察数据中估计heterogeneous treatment effects的Python包。该软件包是微软研究院ALICE项目的一部分&#xff0c;目的是将最新的机器学习方法…

神经网络改进:注重空间变化,权重参数调整,正则化, 熵的简单理解

目录 神经网络改进&#xff1a;注重空间变化 将高纬空间映射到地位空间便于表示&#xff08;供给数据&#xff09; 将地位空间映射到高纬空间进行分类聚合&#xff08;达到可分状态&#xff08;K-means&#xff09;&#xff09; 神经网络改进&#xff1a;权重参数调整 自注…

【RabbitMQ】RabbitMQ整合SpringBoot案例

文章目录 1、前情提要【RabbitMQ】2、RabbitMQ-SpringBoot案例 -fanout模式2.1 实现架构总览2.2 具体实现2.2.1生产者2.2.1消费者 1、前情提要【RabbitMQ】 【RabbitMQ】消息队列-RabbitMQ篇章 RabbitMQ实现流程 2、RabbitMQ-SpringBoot案例 -fanout模式 2.1 实现架构总览…

maven打出jar中动态替换占位符

使用场景&#xff1a; maven打出的jar中pom.xml动态替换占位符 有些时候某些公共工具jar包被项目引用后发现公共jar的pom.xml中的version依然还是占位符&#xff0c;例如下面 <dependency><groupId>org.projectlombok</groupId><artifactId>lombok<…

相关搜索引擎常用搜索语法(Google hacking语法和FOFA语法)

一&#xff1a;Google Hack语法 Google Hacking原指利用Google搜索引擎搜索信息来进行入侵的技术和行为&#xff0c;现指利用各种搜索引擎并使用一些高级的搜索语法来搜索信息。既利用搜索引擎强大的搜索功能&#xff0c;在在浩瀚的互联网中搜索到我们需要的信息。 &#xff0…

STM32 CubeMX (第二步Freertos任务通信:队列、信号量、互斥量,事件组,任务通知)

STM32 CubeMX STM32 CubeMX ____Freertos任务通信&#xff1a;队列、信号量、互斥量&#xff0c;事件组&#xff0c;任务通知 STM32 CubeMX一、STM32 CubeMX设置时钟配置HAL时基选择TIM1&#xff08;不要选择滴答定时器&#xff1b;滴答定时器留给OS系统做时基&#xff09;使用…

基于docker搭建owncloud Harbor 构建镜像

环境介绍&#xff1a;ContenOS7.9 docker17.12.1-ce 使用mysql:5.6和 owncloud 镜像&#xff0c;构建一个个人网盘。 docker pull owncloud #拉取镜像 docker pull mysql5.6 创建容器 docker run --name owncloud-mysql -p 3306:3306 -e MYSQL\_ROOT\_PASSWORDroot …

Const的区别 学习笔记

C程序设计之const八大用法_哔哩哔哩_bilibili const优先修饰const左边&#xff0c;若左边没有东西&#xff0c;则修饰右边的东西 前两个a,b不是指针由于修饰的是int&#xff0c;是类型&#xff0c;所以a和b的值不能改变 c的类型的指针&#xff0c;const修饰的是int&#xff0…

Azure创建可用性集

什么是可用性集 在Azure中&#xff0c;可用性集&#xff08;Availability Set&#xff09;是一种用于提高虚拟机&#xff08;VM&#xff09;可用性和可靠性的功能。它通过将虚拟机分布在不同的物理硬件和故障域中来提供高可用性。每个故障域都是一个独立的电力和网络故障区域&…

数据同步后数据总条数对不上的问题解决

文章目录 [toc] 1.问题2.解决办法2.1&#xff09;设置合理的线程池参数2.2&#xff09;设置url连接参数2.3) 优化msql的系统参数2.4&#xff09;使用CountDownLatch减法计数器和数据插入的公共方法新开一个事务2.5&#xff09;sql批量注入器执行成功后&#xff0c;当前线程slee…