当前位置: 首页 > news >正文

做网站的框架模版/新野seo公司

做网站的框架模版,新野seo公司,富阳做兼职的网站,邢台专业做网站文章目录1. 流量控制2. 拥塞控制TCP 工作机制:确认应答机制 超时重传机制 连接管理机制 滑动窗口 1. 流量控制 流量控制是一种干扰发送的窗口大小的机制,滑动窗口,窗口越大,传输的效率就越高(一份时间,…

文章目录

  • 1. 流量控制
  • 2. 拥塞控制

TCP 工作机制

确认应答机制

超时重传机制

连接管理机制

滑动窗口

1. 流量控制


流量控制是一种干扰发送的窗口大小的机制,滑动窗口,窗口越大,传输的效率就越高(一份时间,等待的 ACK 就越多)

  • 完全不等待 ACK ,可靠性能否有保障。
  • 窗口太大,也会消耗大量的系统资源。
  • 发送的速度太快,接收方处理不过来,发了也是白发。

鉴于以上三点原因,窗口也不能无限大。

接收方的处理能力是一个很重要的约束依据。发送方的速度,不能超过接收方的处理能力。
流量控制 要做的就是 根据接收方的处理能力,协调发送方的发送效率

有一个比较简单的衡量接收方的处理能力的办法:

根据接收缓冲区的剩余大小来衡量




把这个接收缓冲区中剩余的空间容量作为衡量发送方发送速率的指标。

每次 A 给 B 发了一个数据,B 就需要计算一下这个接收缓冲区中剩余的容量,然后把这个值通过 ACK 报文返回给 A。
A 就根据这个值来决定接下来发送的速率是多少,也就是决定窗口大小是多少。

从这里就可看出,由于接收方的缓冲区剩余空间是一直在动态变化的,所以每次返回的 ACK 带的窗口大小也都是在变化的。
发送方也是在动态调整。

发送方窗口大小不是固定值,也不是配置的,而是随着传输过程的进行动态调整的。


可以把接收缓冲区想象成一个蓄水池。



根据蓄水池的剩余空间大小,来决定往里输水的速率。




16 位窗口大小只有在报文是 ACK 的时候才是有效的,发送方会根据这个返回 ACK 报文来决定下一轮发送的窗口大小了。

虽然这里的窗口大小是 16 位(64KB)的,但是不意味着它的窗口大小最大是 64 KB。
因为这里为了让窗口更大,在选项部分引入了 窗口扩展因子,比如说扩展因子是 2,意思就是让 64 KB << 2(左移两位)
那就变成了 256 KB 了。


当窗口大小为0,发送方就会暂停发送,暂停发送的等待过程中,会给 B 定期发送窗口探测报文
这个报文不携带具体的业务数据,只是为了触发 ACK 查询窗口大小。

2. 拥塞控制


流量控制 和 拥塞控制 共同决定发送方的窗口大小是多少。

流量控制考虑的是接收方的处理能力,而拥塞控制描述的是传输过程中,中间结点的处理能力。

窗口大小是发送方的的概念,只不过这个窗口大小是通过接收方 ACK 报头里的窗口大小字段,从接收方告诉发送方。




前面的 流量控制 考虑发送方的发送速率,只是考虑了接收方的处理能力,而没有考虑中间结点。
在网络通信的过程中,涉及到了很多的路由器和交换机,也就是通信工程中的中间结点。

接收方的处理能力好量化衡量,但是中间结点不好衡量,于是就有人想出了一种通过“实验”的方式,
来测试出一个合适的的值来衡量中间结点。


这个方式就好比是在悬崖边上跳舞,在危险的边缘跃跃欲试。

比如说,张三在看书,李四过来一会儿看他一眼、一会儿摸他一下、一会儿替他翻页,
刚开始还没生气,但是怒气值在到达一个数值的时候,张三就忍不住动手打了李四。
这就是通过一点一点的打扰张三,李四就可以逐渐找到一个不会使李四生气的最大怒气值。

拥塞控制的本质就是通过这样实验的方式,来逐渐找到一个合适的窗口大小,也就是一个合适的发送速率。




拥塞窗口以尝试多大的窗口大小进行发送。


传输轮次为 第0轮 的时候,窗口大小是 1,这个时候是以非常慢的速度发送数据。
(此处的 1 不是字节,而是 1 单位。一个单位代表着多少字节,不去研究)
如果此时发现数据传输顺利,就扩大窗口。

到第 1 轮的时候,窗口大小是 2 ,此时窗口大小扩大了一倍。
到第 2 轮的时候,窗口大小变成了 4。
初始阶段,由于初始窗口大小比较小,每一轮不丢包都会使窗口大小扩大一倍。(指数增长)

当增长速率达到阈值(窗口大小为16)之后,此时指数增长,就成为了线性增长,这些增长的前提都是不丢包。

接下来,当传输过程中一旦丢包了,说明此时发送的数据已经接近网络的极限了,
此时就把窗口大小一下缩成很小的值(重复刚才指数增长和线性增长的过程),重复刚才的过程后,阈值就会相应的变小。


拥塞窗口不是固定数值,而是一直变化的,随着时间的推移,逐渐达到一个动态平衡的过程。
这样既解决了中间结点无法衡量的问题,同时也能随着网络的动态变化而变化。

拥塞窗口 和 流量控制的窗口共同决定了发送方实际的发送窗口。(拥塞窗口和流量控制窗口的较小值)


拥塞窗口的变化过程就好比谈恋爱的感觉。

两个人刚开始的时候,“热恋期” 感情会迅速升温。(指数增长),热恋期过了,不在指数增长而是线性增长。
吵架了之后闹分手,但是第二天之后又和好了,之后又会是一个感情迅速升温的过程。(一般来说,这个热恋期回比之前的短)
随着时间的推移,两个人的感情就在这样的曲线中动态变化,最终到达动态平衡过程。

相关文章:

javaEE 初阶 — 流量控制与拥塞控制

文章目录1. 流量控制2. 拥塞控制TCP 工作机制&#xff1a;确认应答机制 超时重传机制 连接管理机制 滑动窗口 1. 流量控制 流量控制是一种干扰发送的窗口大小的机制&#xff0c;滑动窗口&#xff0c;窗口越大&#xff0c;传输的效率就越高&#xff08;一份时间&#xff0c;…...

HTML自主学习 - 2

一、表格 基本语法 <table><tr><td>单元格内容1</td><td>单元格内容2</td><td>单元格内容3</td></tr></table> 1、<table> </table>标签用于定义表格 2、<tr> </tr>标签用于定义表格的…...

【转载】通过HAL库实现MODBUS从机程序编写与调试-----STM32CubeMX操作篇

通过HAL库实现MODBUS从机程序编写与调试-----STM32CubeMX操作篇[【STM32】RS485 Modbus协议 采集传感器数据](https://blog.csdn.net/qq_33033059/article/details/106935583)基于STM32的ModbusRtu通信--ModbusRtu协议(一)基于STM32的ModbusRtu通信--终极Demo设计(二)STM32RS48…...

【C++】string类(上)

文章目录1.为什么要学习string类2.标准库中的string类1.string分类2.string类对象的常见构造1.string3. string类对象的容量操作1.size2.capacity3.reserve4.resize扩容初始化删除数据4. string类对象的修改操作1.push_back2.append3.operator1.为什么要学习string类 c语言的字…...

Java泛型

文章目录一、泛型介绍1. 背景2. 概念3. 好处二、泛型声明泛型类型符号泛型声明方式三、类型擦除1. 什么是类型擦除桥接方法2. 为何需要类型擦除3. 类型信息并未完全擦除四、泛型使用1. 泛型类2. 泛型接口3. 泛型方法五、泛型扩展1. 泛型的上下边界泛型的上边界泛型的下边界2. 泛…...

07 分布式事务Seata使用(2)

1、Seata是什么 Seata 是一款开源的分布式事务解决方案&#xff0c;致力于提供高性能和简单易用的分布式事务服务。Seata 将为用户提供了 AT、TCC、SAGA 和 XA 事务模式&#xff0c;为用户打造一站式的分布式解决方案。AT模式是阿里首推的模式,阿里云上有商用版本的GTS&#x…...

c++练习题5

5.在C语言中&#xff0c;程序运行期间&#xff0c;其值不能被改变的量叫 常量 。 6.符号常量是指用一个符号名代表一个常量。 7&#xff0e;整型常量和浮点型常量也称为 数值常量 &#xff0c;它们有正负之分。 9&#xff0e;在C中&#xff0c;变量是 其值可以改变的量 。 …...

Python 高级编程之正则表达式(八)

文章目录一、概述二、正则表达式语法1&#xff09;字符匹配2&#xff09;字符集合3&#xff09;定位符4&#xff09;分组1、定义分组2、引用分组3、命名分组三、Python 的 re 模块1&#xff09;re.match() 方法2&#xff09;re.search() 方法3&#xff09;re.match() 与 re.sea…...

pynrrd常用操作解析

目录依赖安装官方文档常用操作1. 读部分nrrd.read()nrrd.read_header()nrrd.read_data()2. 写部分nrrd.write()依赖安装 pip install pynrrd官方文档 https://pynrrd.readthedocs.io/en/stable/ 常用操作 1. 读部分 nrrd.read() nrrdpath "your nrrd file path"…...

数据结构:链表基础OJ练习+带头双向循环链表的实现

目录 一.leetcode剑指 Offer II 027. 回文链表 1.问题描述 2.问题分析与求解 (1) 快慢指针法定位链表的中间节点 (2) 将链表后半部分进行反转 附:递归法反转链表 (3) 双指针法判断链表是否回文 二.带头双向循环链表的实现 1.头文件 2.节点内存申请接口和链表初始化接口…...

计算机视觉方向地理空间遥感图像数据集汇总

文章目录1.DSTL卫星图像数据集/Kaggle竞赛2.Swimming Pool and Car Detection/Kaggle竞赛3.SpaceNet Challenge 3数据集4.RarePlanes数据集5.BigEarthNet数据集6.NWPU VHR-10数据集7.UC Merced Land-Use数据集8.Inria Aerial Image Labeling数据集9.RSOD数据集1.DSTL卫星图像数…...

信息系统项目管理师真题精选(一)

1.信息系统的&#xff08; &#xff09;决定了系统可以被外部环境识别&#xff0c;外部环境或者其他系统可以按照预定的方法使用系统的功能或者影响系统的行为。A.可嵌套性B.稳定性C.开放性D.健壮性2、在实际的生产环境中&#xff0c;&#xff08; &#xff09;能使底层物理硬件…...

信息系统项目管理师刷题知识点(持续更新)

主要记录自己在备考高项过程中知识点 信息系统项目管理师刷题知识点&#xff08;按刷题顺序排列&#xff09; 1.信息技术应用是信息化体系六要素中的龙头&#xff0c;是国家信息化建设的主阵地&#xff0c;集中体现了国家信息化建设的需求和效益。 2.原型化方法也称为快速原型法…...

RabbitMq及其他消息队列

消息队列中间价都有哪些 先进先出 Kafka、Pulsar、RocketMQ、RabbitMQ、NSQ、ActiveMQ Rabbitmq架构 消费推拉模式 客户端消费者获取消息的方式&#xff0c;Kafka和RocketMQ是通过长轮询Pull的方式拉取消息&#xff0c;RabbitMQ、Pulsar、NSQ都是通过Push的方式。 pull类型…...

Toolformer: Language Models Can Teach Themselves to Use Tools

展示了LM可以通过简单的API教自己使用外部工具&#xff0c;并实现两个世界的最佳效果。我们介绍了Toolformer&#xff0c;这是一个经过训练的模型&#xff0c;可以决定调用哪些API&#xff0c;何时调用&#xff0c;传递哪些参数&#xff0c;以及如何将结果最好地纳入未来的标记…...

悲观锁与乐观锁

何谓悲观锁与乐观锁 乐观锁对应于生活中乐观的人总是想着事情往好的方向发展&#xff0c;悲观锁对应于生活中悲观的人总是想着事情往坏的方向发展。这两种人各有优缺点&#xff0c;不能不以场景而定说一种人好于另外一种人。 悲观锁 总是假设最坏的情况&#xff0c;每次去拿数据…...

LeetCode 25. K 个一组翻转链表

原题链接 难度&#xff1a;hard\color{red}{hard}hard 题目描述 给你链表的头节点 headheadhead &#xff0c; kkk 个节点一组进行翻转&#xff0c;请你返回修改后的链表。 kkk 是一个正整数&#xff0c;它的值小于或等于链表的长度。如果节点总数不是 kkk 的整数倍&#xf…...

朗润国际期货招商:历次科技风头下巨头的博弈

历次科技风头下巨头的博弈 VR/AR、区块链、折叠屏、元宇宙、AIGC五轮科技风头下巨头们都进场了吗&#xff1f; VR/AR硬件 谷歌&#xff1a;2014年入局&#xff0c;推出AR眼镜 百度&#xff1a;未入局 京东&#xff1a;未入局 腾讯&#xff1a;传要开发 亚马逊&#xff1…...

配置中心Config

引入依赖<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.0.6.RELEASE</version></parent><properties><spring-cloud.version>Finchley.SR…...

【原创】java+jsp+servlet学生信息管理系统(jdbc+ajax+filter+cookie+分页)

一直想写一个比较基础的JavaWeb项目&#xff0c;然后综合各种技术&#xff0c;方便Java入门者进行学习。学生信息管理系统大家一般接触的比较多&#xff0c;那么就以这个为例来写一个基础项目吧。 需求分析&#xff1a; 使用jspservletmysql开发的学生信息管理系统&#xff0…...

链表题目总结 -- 回文链表

目录一. 从中心开始找最大的回文字符串1. 思路简述2. 代码3. 总结二. 判断是否为回文字符串1. 思路简述2. 代码3.总结三. 判断是否是回文链表1. 思路简述2. 代码3. 总结4. 优化解法一. 从中心开始找最大的回文字符串 题目链接&#xff1a;没有。给定一个字符串s&#xff0c;从…...

JAVA集合之List >> Arraylist/LinkedList/Vector结构

在Java开发过程中&#xff0c;可能经常会使用到List作为集合来使用&#xff0c;List是一个接口承于Collection的接口&#xff0c;表示着有序的列表。而我们要讨论的是它下面的实现类Arraylist/LinkedList/Vector的数据结构及区别。 ArrayList ArrayList&#xff1a;底层为数组…...

Linux多进程开发

一、进程概述 1、程序和进程 程序是包含一系列信息的文件&#xff0c;这些信息描述了如何在运行时创建一个进程&#xff1a; 二进制格式标识&#xff1a;每个程序文件都包含用于描述可执行文件格式的元信息。内核利用此信息来解释文件中的其他信息。&#xff08;ELF可执行连…...

三维重建小有基础入门之特征点检测基础

前言&#xff1a;本文将从此篇开始&#xff0c;记录自己从普通CVer入门三维重建的学习过程&#xff0c;可能过程比较坎坷&#xff0c;都在摸索阶段&#xff0c;但争取每次学习都能进一步&#xff0c;提高自己的能力&#xff0c;同时&#xff0c;每篇文章都会按情况相应地推出B站…...

基于node.js+vue+mysql考研辅导学习打卡交流网站系统vscode

语言 node.js 框架&#xff1a;Express 前端:Vue.js 数据库&#xff1a;mysql 数据库工具&#xff1a;Navicat 开发软件&#xff1a;VScode 主要功能包括管理员&#xff1a;首页、个人中心、用户管理、每日打卡管理、考研学校管理、考研专业管理、直通车管理、学习教材管理、…...

【C++、数据结构】封装unordered_map和unordered_set(用哈希桶实现)

文章目录&#x1f4d6; 前言1. 复用同一个哈希桶⚡1.1 &#x1f300;修改后结点的定义1.2 &#x1f300;两个容器各自模板参数类型&#xff1a;2. 改造之后的哈希桶⛳3. 哈希桶的迭代器&#x1f525;3.1 &#x1f4a5;哈希桶的begin&#xff08;&#xff09;和 end&#xff08;…...

StratoVirt 的 vCPU 拓扑(SMP)

CPU 拓扑用来表示 CPU 在硬件层面的组合方式&#xff0c;本文主要讲解 CPU 拓扑中的 SMP&#xff08;Symmetric Multi-Processor&#xff0c;对称多处理器系统&#xff09;架构&#xff0c;CPU 拓扑还包括其他信息&#xff0c;比如&#xff1a;cache 等&#xff0c;这些部分会在…...

现在直播大部分都是RTMP RTMP VS RTC

一 RTMP 抓了下抖音直播的包&#xff0c;windows端&#xff0c;走的TCP&#xff0c;加密了&#xff0c;估计还是RTMP。 我以为直播带货&#xff0c;都是RTC了。 快手直播也是TCP&#xff0c;地址用了IPV6。 淘宝直播也是。现在大部分直播都是RTMP。 只有视频会议走的RTC。…...

【Unity实战100例】Unity循环UI界面切换卡片功能

目录 ​编辑 一:制作UI界面 二:代码逻辑 1.定义基础变量...

Monorepo or 物料市场?结合工作实际情况对公司现有前端体系的思考

前言 去年年中基于若依vue前端框架进行了改造&#xff0c;加上后端的配合&#xff0c;我写了一套脚手架和项目中后台模板。中后台模板中包含了许多基础代码&#xff0c;比如登录/注册、路由、权限等等相关功能。这个中后台模板是基于我们实际开发定制的&#xff0c;所以跟通用…...