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

核心机制:拥塞控制

限制滑动窗口的发送速率

流量控制,已经接受方的处理能力,进行限制

木桶效应  最短的一板

发生方的速率,不光要考虑接收方的速率,还要考虑传输路径,整个过程中所有的中间节点的情况

拥塞控制的核心思路是,"试试看",先按照比较小的速度发送数据,看一下是否丢包

如果丢包,说明中间链路已经有节点顶不住了,减小窗口大小,减小速度

如果不丢包,说明中间链路中的节点处于较好的状态,增大窗口的大小,增加速度

(面多加水,水多加面)

发送方的发送窗口的大小,同时取决于 流量控制 和 拥塞控制(谁小谁说的算)

发送方自己维护一个变量作为拥塞控制窗口

流量控制:接收方通过 ack 告诉对方流量控制窗口

选择两者中的较小值作为发送窗口的大小

拥塞窗口的大小变化过程,也是比较巧妙的设定,不是字节而是"份",一份多少个字节也是不确定的

1)初始状态下,窗口的大小是非常小的,刚开始,网络的畅通情况是未知的

2)慢启动之后如果不丢包,就会按照指数方式进行增长,短时间,快速的把窗口的大小给顶上去(刚开始的时候太小了)

3)指数增长到一定程度的时候(到达阈值),指数增长变成线性增长(主要怕指数增长的一次导致翻得倍数太大,超出上限太多)

4)线性增长到一定程度,终究会触发丢包(网络的承载能力到达上限了)

5.1)出现丢包,窗口的大小会一落千丈,回到最初的慢启动窗口额大小,接下来重复 指数增长/线性增长的过程

5.2)出现丢包,重新计算阈值(丢包窗口大小的 / 2),重阈值开始作为新的拥塞控制的窗口大小,继续线性增长(相比于旧版本,省略了指数增长的过程),使 tcp 的传输效率更加稳定,避免大起大落

http://www.xdnf.cn/news/11964.html

相关文章:

  • 使用pgAdmin导入sql文件
  • 《波段操盘实战技法》速读笔记
  • 数据库-数据查询-in和Not in
  • Linux容器篇、第一章_01Linux系统下 Docker 安装与镜像部署全攻略
  • StringRedisTemplete使用
  • 智能合约安全漏洞解析:从 Reentrancy 到 Integer Overflow
  • 算法训练第八天
  • 电气架构/域控制器/中央计算平台技术论坛
  • 考研系列—操作系统:冲刺笔记(4-5章)
  • 自动化测试工具playwright中文文档-------18.模拟
  • 宝塔使用docker创建n8n
  • 每日一令:Linux 极简通关指南 - 汇总
  • 树莓派超全系列教程文档--(54)如何使用rsync在计算机之间同步文件夹
  • MCPO:使用MCP工具为Open-WebUI/Ollama助力
  • 渗透测试服务如何全方位评估企业安全状况并揭示潜在缺陷?
  • SpringBoot(七) --- Redis基础
  • 在Windows11上安装 Ubuntu WSL
  • 大语言模型备案与深度合成算法备案的区别与联系
  • Rebel系列数据记录仪:智能车载数据采集专家
  • kafka命令
  • 【unity游戏开发入门到精通——通用篇】AssetBundle(AB包)和AssetBundleBrowser的使用介绍
  • 数据结构期末PTA选择汇总
  • L1-019 谁先倒 (15 分)
  • [安卓/ios辅助工具]给按键精灵脚本做一个日志悬浮窗
  • 制造业数字化转型解决方案及应用
  • rk3588开发板实现磁盘自动挂载vmware共享文件夹设置
  • C学习--内存管理
  • 2. 库的操作
  • 企业如何抵御复杂网络攻击?
  • Delphi用if else实现 select case、switch语句功能,实现case 以字符串为分类条件。