TCP/IP(十四)流量控制

一  流量控制

说明: 本文只是'原理'铺垫,没有用'tcpdump+wiresahrk'鲜活的案例讲解,后续'补充'

①   基本概念

流量控制: TCP 通过'接受方实际能接收的数据量'来控制'发送方'的'窗口'大小

②   正常传输过程

背景:1、客户端是'接收方',服务端是'发送方'  --> '下载'2、假设接收窗口和发送'窗口相同',都为 '200'3、假设两个设备在整个'传输过程'中都保持'相同'的窗口大小,'不受'外界'影响''可用'窗口大小 = SND.WND -(SND.NXT - SND.UNA)

'原理'解读

③  操作系统缓冲区与滑动窗口的关系   重点

思考: 操作系统的缓冲区是'如何影响'发送'窗口'和接收'窗口'的呢?

比较常见'能影响'接受方的'可用窗口发生变化'的因素,有'如下'几个:1、接受方的应用程序'没办法'及时读取数据,此时会影响'滑动窗口'大小值2、接受方的'系统资源'非常紧张,操作系统可能'直接减少'可用窗口大小的'缓存'空间+++++++++++++++  "案例1"  +++++++++++++++发送窗口和接收窗口'初始'大小为 '360'  -->  '发送窗口'

根据上图的'流量'控制,说明"案例1"每个过程:

+++++++++++++++  "案例2"  +++++++++++++++

根据上图的'流量'控制,说明"案例2"每个过程:重点:1、TCP 规定是'不允许'同时减少缓存又收缩窗口的;2、而是采用'先收缩'窗口,过段时间'再减少缓存',这样就可以'避免了丢包'情况

④  窗口关闭

1、窗口关闭的'概念'

2、窗口关闭'潜在'的'危险'

3、TCP 是'如何解决窗口关闭'时,潜在的'死锁'现象呢?

⑤  糊涂窗口综合症

1、'概念'

2、糊涂窗口综合症'案例'讲解,考虑'以下'场景:

思考1:怎么让接收方'不通告'小窗口呢? --> '了解即可'

思考2: 怎么让'发送方'避免发送'小数据'呢?

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

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

相关文章

OpenCV4(C++)——模板匹配

matchTemplate 模板匹配和卷积运算大致相同,模板图类似于卷积核,从原图的左上角开始进行滑动窗口的操作,最后得到一个特征图,这个特征图里的数值就是每次计算得到的相似度,通用匹配方式,相似值是&#xff…

浅谈高速公路服务区分布式光伏并网发电

前言 今年的国家经济工作会议提出:将“做好碳达峰、碳中和工作”作为 2021年的主要任务之一,而我国高速公路里程 15.5万公里,对能源的需求与日俱增,碳排放量增速明显。 为了实现采用减少碳排放量,采用清洁能源替代的…

【Java 进阶篇】JavaScript 与 HTML 的结合方式

JavaScript是一种广泛应用于Web开发中的脚本语言,它与HTML(Hypertext Markup Language)结合使用,使开发人员能够创建交互式和动态的网页。在这篇博客中,我们将深入探讨JavaScript与HTML的结合方式,包括如何…

第一个 Python 程序

三、第一个 Python 程序 好了,说了那么多,现在我们可以来写一下第一个 Python 程序了。 一开始写 Python 程序,个人不太建议用专门的工具来写,不方便熟悉语法,所以这里我先用 Sublime Text 来写,后期可以…

RobotFramework自动化测试框架的基础关键字

1.1.1 如何搜索RobotFramework的关键字 有两种方式可以快速的打开RIDE的关键字搜索对话框 1、选择菜单栏Tools->Search Keywords,然后会出现如下的关键字搜索对话框,这个对话框就类似提供了一个关键字的API的功能,提供了关键字的…

如何建立线上线下相结合的数字化新零售体系?

身处今数字化时代,建立线上线下相结合的数字化新零售体系是企业成功的关键。蚓链数字化营销系统致力于帮助企业实现数字化转型,打通线上线下销售渠道,提升品牌影响力和用户黏性,那么具体是如何建立的? 1. 搭建数字化中…

创新学习方式,电大搜题助您迈向成功之路

近年来,随着信息技术的发展,互联网在教育领域发挥的作用越来越显著。贵州开放大学作为国内首家电视大学,一直致力于创新教学模式,帮助学生更好地获取知识。在学习过程中,学生常常遇到疑难问题,而解决这些问…

Linux内存管理 (2):memblock 子系统的建立

前一篇:Linux内存管理 (1):内核镜像映射临时页表的建立 文章目录 1. 前言2. 分析背景3. memblock 简介3.1 memblock 数据结构3.2 memblock 接口 4. memblock 的构建过程 1. 前言 限于作者能力水平,本文可能存在谬误,因此而给读者…

vue3+ts项目03 element-plus、vue-router、pinia

yarn add element-plus yarn add element-plus/icons-vue修改main.ts import { createApp } from vue import App from ./App.vueimport ElementPlus from element-plus import element-plus/dist/index.css import zhCn from element-plus/dist/locale/zh-cn.mjsconst app c…

【MySQL】MySQL分区表详解

原创不易,注重版权。转载请注明原作者和原文链接 文章目录 分区表介绍表分区的优缺点和限制 分区适用场景分区方式分区策略RANGE 分区LIST 分区HASH 分区KEY 分区COLUMNS 分区 常见分区命令是否支持分区创建分区表向分区表添加新的分区删除指定的分区重新组织分区合…

vue七牛云视频直传

完成后样式&#xff1a; 下面的代码是我自己项目里面用到的&#xff0c;一些判断看自己情况去掉&#xff0c;用的是element-ui组件 安装 uuid 库。你可以使用 npm 或 yarn 来完成安装。在终端中执行以下命令&#xff1a; npm install uuidhtml部分 <el-upload class&quo…

【python】time

文章目录 【calendar】是否闰年星期英文缩写今天星期几打印日历 【datetime】今天星期几 【time】当前时间 【pandas】当前时间文件修改的时间 【日历】 【calendar】 是否闰年 import calendar print(calendar.isleap(2000))out True星期英文缩写 print(calendar.weekhead…

TCP/IP(十三)滑动窗口

一 滑动窗口 通信双方要读懂对方的反馈信息,并进行调整 TCP滑动窗口原理终于清楚了 TCP Window Full 和 TCP Zero Window "特殊的场景" 1、TCP Window Full 是站在发送端角度说的特点&#xff1a; 表示发送端不能再发数据给对方,除非发送的数据包得到ACK响应2、…

SSM - Springboot - MyBatis-Plus 全栈体系(二十四)

第五章 SSM 二、SSM 整合配置实战 1. 依赖整合添加 1.1 数据库准备 依然沿用 mybatis 数据库测试脚本&#xff01; CREATE DATABASE mybatis-example;USE mybatis-example;CREATE TABLE t_emp(emp_id INT AUTO_INCREMENT,emp_name CHAR(100),emp_salary DOUBLE(10,5),PRIM…

谷歌云 | 零售行业的生成式 AI:如何跟上步伐并取得领先

【Cloud Ace 是 Google Cloud 全球战略合作伙伴&#xff0c;在亚太地区、欧洲、南北美洲和非洲拥有二十多个办公室。Cloud Ace 在谷歌专业领域认证及专业知识目前排名全球第一位&#xff0c;并连续多次获得 Google Cloud 各类奖项。作为谷歌云托管服务商&#xff0c;我们提供谷…

基于 ACK Fluid 的混合云优化数据访问(四):将第三方存储目录挂载到 Kubernetes,提升效率和标准化

作者&#xff1a;车漾 前文回顾&#xff1a; 本系列将介绍如何基于 ACK Fluid 支持和优化混合云的数据访问场景&#xff0c;相关文章请参考&#xff1a; -基于 ACK Fluid 的混合云优化数据访问&#xff08;一&#xff09;&#xff1a;场景与架构 -基于 ACK Fluid 的混合云优…

JavaScript的懒加载处理

&#x1f618;博主&#xff1a;小猫娃来啦 &#x1f618;文章核心&#xff1a;JavaScript的懒加载处理 文章目录 什么是懒加载实现懒加载的方式js四步法设置占位图监听滚动事件加载图片触发加载函数 什么是懒加载 懒加载&#xff08;Lazy Loading&#xff09;是一种优化技术&a…

【opencv】windows10下opencv4.8.0-cuda C++版本源码编译教程

【opencv】windows10下opencv4.8.0-cuda C版本源码编译教程 提示:博主取舍了很多大佬的博文并亲测有效,分享笔记邀大家共同学习讨论 文章目录 【opencv】windows10下opencv4.8.0-cuda C版本源码编译教程前言准备工具cuda/cudnncmakeopencv4.8.0opencv_contrib CMake编译VS2019编…

文心一言 VS 讯飞星火 VS chatgpt (111)-- 算法导论10.2 2题

二、用go语言&#xff0c;用一个单链表 L实现一个栈。要求操作 PUSH和 POP 的运行时间仍为 O(1)。 文心一言&#xff1a; 在 Go 语言中&#xff0c;我们可以用结构体来实现一个单链表&#xff0c;然后再用栈的相关操作。 以下是一个可能的实现方式&#xff1a; package mai…

碰撞检测算法——分离轴算法在Unity中实现(二)

一、介绍 分离轴算法&#xff08;简称SAT&#xff09;通常用于检查两个简单多边形&#xff08;凸边形&#xff09;之间或多边形与圆之间的碰撞。本质上&#xff0c;如果您能够绘制一条线来分隔两个多边形&#xff0c;则它们不会发生碰撞&#xff0c;如果找不到一条线来分割两个…