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

TCP/IP(十五)拥塞控制

一  拥塞控制

①   拥塞控制必要性

思考: 为什么要有'拥塞控制'呀,不是有'流量控制'了吗?

②  拥赛窗口 cwnd

'什么是'拥塞窗口? 和发送窗口有'什么关系'呢?明白: cwnd、swnd、rwnd '缩写' 含义

③  如何知道当前网络是否出现了拥塞呢?

1、其实只要'发送方' 没有在'规定时间内'接收到 ACK '应答'报文2、也就是发生了'超时'重传,就会认为网络'出现了拥塞'

④  拥塞控制有哪些控制算法?

拥塞控制'主要'是'四个'算法:1、慢启动2、拥塞避免3、拥塞发生4、快速恢复

⑤  慢启动

慢启动的算法的'规则':当 发送方 '每收到一个 ACK',拥塞窗口 cwnd 的大小就会'加 1'小结: 看出'慢启动'算法,'发包的个数'是'指数性'的增长MSS '大小'

⑥  那慢启动涨到什么时候是个头呢?

⑦   拥塞避免算法

假定 ssthresh 为 '8','拥塞避免算法'的'变化过程'如下图:

⑧  拥塞发生

1、发生'超时重传'的'拥塞发生算法'

2、怎么'查看'系统的 cwnd '初始化值'?1) Linux 针对'每一个 TCP 连接'的 cwnd 初始化值是 '10', 也就是 10 个 MSS2) 我们可以用 'ss -nli' 命令查看每一个 TCP 连接的 cwnd '初始化值',如下图:

3、拥塞发生算法的'变化如下图':cwnd --> 初始为'1'

4、 发生'快速重传'的'拥塞发生算法'

 

⑨  快速恢复

演示: '快速恢复算法'的'变化过程'如下图:

 

思考: 快速恢复算法过程中,'为什么'收到新的数据后,'cwnd' 设置回了 'ssthresh'?

http://www.lryc.cn/news/190531.html

相关文章:

  • vue3 404解决方法
  • Unity中使用Xlua调用lua相关
  • 基于http的protobuf服务实现
  • 基于uniapp的商城外卖小程序
  • 【CSS】Tailwind CSS
  • leetcode-电话号码组合(C CODE)
  • Leetcode92. 反转链表 II
  • 【算法作业记录】
  • 回归预测、分类预测、时间序列预测 都有什么区别?
  • 关于网络协议的若干问题(三)
  • 办公室人人在用的iTab桌面真的好用吗?
  • 循环中的else语句
  • 三.镜头知识之FOV
  • 分布式事务入门
  • Ubuntu的中文乱码问题
  • [GXYCTF2019]Ping Ping Ping - RCE(空格、关键字绕过[3种方式])
  • ceph 分布式存储与部署
  • Go 结构体深度探索:从基础到应用
  • 分布式系统开发技术中的CAP定理原理
  • Mysql 报错 You can‘t specify target table ‘表名‘ for update in FROM clause
  • 【DevOps】DevOps—基本概念
  • 发行版兴趣小组季度动态:Anolis OS 支持大热 AI 软件栈,引入社区合作安全修复流程
  • android app开发环境搭建
  • oracle入门笔记一
  • linux下安装ffmpeg的详细教程、ffmpeg is not installed
  • ctfshow-ssti
  • 【ES6 03】变量解构赋值
  • RustDay03——记录刷完Rust100题
  • 微软10月补丁 | 修复103个漏洞,包括2个零日漏洞,13个严重漏洞
  • ubuntu编写makefile编译c++程序