Home
  • 计算机网络
  • 操作系统
  • 数据结构与算法
  • 设计模式
  • JavaSE
  • JVM
  • JUC
  • Netty
  • CPP
  • QT
  • UE
  • Go
  • Gin
  • Gorm
  • HTML
  • CSS
  • JavaScript
  • vue2
  • TypeScript
  • vue3
  • react
  • Spring
  • SpringMVC
  • Mybatis
  • SpringBoot
  • SpringSecurity
  • SpringCloud
  • Mysql
  • Redis
  • 消息中间件
  • RPC
  • 分布式锁
  • 分布式事务
  • 个人博客
  • 弹幕视频平台
  • API网关
  • 售票系统
  • 消息推送平台
  • SaaS短链接系统
  • Linux
  • Docker
  • Git
GitHub (opens new window)
Home
  • 计算机网络
  • 操作系统
  • 数据结构与算法
  • 设计模式
  • JavaSE
  • JVM
  • JUC
  • Netty
  • CPP
  • QT
  • UE
  • Go
  • Gin
  • Gorm
  • HTML
  • CSS
  • JavaScript
  • vue2
  • TypeScript
  • vue3
  • react
  • Spring
  • SpringMVC
  • Mybatis
  • SpringBoot
  • SpringSecurity
  • SpringCloud
  • Mysql
  • Redis
  • 消息中间件
  • RPC
  • 分布式锁
  • 分布式事务
  • 个人博客
  • 弹幕视频平台
  • API网关
  • 售票系统
  • 消息推送平台
  • SaaS短链接系统
  • Linux
  • Docker
  • Git
GitHub (opens new window)
  • HTTP

  • TCP

    • 网络模型模型
    • TCP三次握手&四次挥手
    • 重传机制
    • 流量控制
    • 拥塞控制
      • 拥塞控制
    • TCP与UDP区别
    • TCP和UDP可以使用同一个端口吗?
    • 如何解决粘包?
    • 一个服务端进程最多支持多少条TCP连接?
  • UDP

  • IP

  • 网络安全

  • 计算机网络
  • TCP
Nreal
2024-03-03
目录

拥塞控制

# 拥塞控制

避免发送数据填满整个网络;

计算机网络都处在一个共享的环境。因此也有可能会因为其他主机之间的通信使得网络拥堵。

解决方法:

  1. 慢启动

    每收到一个ack,拥塞窗口+1

    第一次收到ack,窗口+1,可以发送2个;

    下一轮收到2个ack,窗口+2,可以发送4个;

    ....

  2. 拥塞避免

    当窗口大小超过慢启动门限,指数增长变为线性增长;

  3. 拥塞发生

    当发生超时重传:将慢启动门限设置为当前窗口的1/2,再将窗口设置为初始值;

    发生快速重传:将窗口设置为1/2,慢启动门限设置为当前窗口大小,开始快速恢复算法;

  4. 快速恢复

    如果收到相同ack,将窗口+1;

    如果收到新的ack,窗口设置为慢启动门限+3;

    接下来线性增长;

流量控制
TCP与UDP区别

← 流量控制 TCP与UDP区别→

Theme by Vdoing | Copyright © 2021-2024
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式