码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 传输层 TCP 拥塞控制(2):拥塞避免


    之前介绍的慢启动算法是以指数级别增加拥塞控制

    拥塞避免


    • 慢启动阈值 ssthresh(slow start threshold):
                • 达到 ssthresh 后,以线性方式增加 cwnd
                           • cwnd += SMSS*SMSS/cwnd

    如果没有拥塞避免的算法的时候,我们的慢启动是以如图所示,以指数级,所以下一次在飞行中的报文大概在50多的数字上面,大概在40的时候就开始出现丢包了,所以如果没有拥塞避免的话会发生大量的包都被丢失掉。

    拥塞避免怎么解决这个问题呢?它定义了慢启动阈值,当拥塞窗口达到了阈值之后,就不以指数的方式,就改为线性的方式,然后在发生丢包的时候需要将之前的阈值重新设定,设置为原来拥塞窗口的一半,拥塞窗口再降低为比较小的数字,再次启用慢启动,到了相应的阈值之后,再改为拥塞避免算法,所以达到阈值之后就进入到拥塞避免阶段。

    慢启动与拥塞控制


    最初以以4个MSS作为最初的拥塞窗口,以2倍的速度改为4 8 16,到16这收到ack之后就会升到32 64,到波峰的时候还没有达到最初的慢启动阈值的时候就开始出现丢包了,此时我们的拥塞窗口是64,所以新的慢启动阈值变为64的一半32,然后重新从4个mss作为初始的拥塞窗口,再进入慢启动,这里到32的时候进入拥塞避免,再次发生丢包的时候又重新进入了慢启动,拥塞避免。

  • 相关阅读:
    [C语言、C++]数据结构作业:线性表-顺序表的基本操作
    clickhouse数据库简介,列式存储
    基于Echarts实现可视化数据大屏北斗车联网大数据服务平台首页面
    TCP/IP 测试题(五)
    Docker 镜像库国内加速的几种方法
    02129 信息资源建设《信息资源管理(第2版) 电子工业出版社 肖明著》考点整理
    婚恋相亲交友红娘小程序源码开发搭建方法
    昨天的事情想说一下
    国内多位架构大牛强烈推荐的大型分布式手册
    分享5款.NET开源免费的Redis客户端组件库
  • 原文地址:https://blog.csdn.net/qq_34556414/article/details/126665079
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号