TCP和UDP相关问题(重点)——8.TCP的拥塞控制怎么实现的?

news/2024/5/18 16:08:53 标签: tcp/ip, udp, 网络协议

        在某段时间内,若对网络中某一资源的需求超过了该资源所能提供的可用部分,网络性能就会变坏,比如在高速公路上行驶的车辆,如果一时期内涌入了太多的车辆,道路将变得拥堵,交通状况变差。网络中也是一样,若出现拥塞而不进行控制,那么网络的吞吐量就会随着负荷的增大而急剧下降

        为了进行拥塞控制,TCP发送方要维持一个拥塞窗口(cwnd)的状态变量,拥塞窗口的大小取决于网络的拥塞程度,动态变化。拥塞控制的四种算法为:慢开始、拥塞避免、快重传、快恢复。

  • 慢开始:由小到大逐渐增大拥塞窗口,cwnd初始值为1,每经过一个传播轮次,成二倍增加。

  • 拥塞避免:当cwnd的值到达慢启动阈值时,开始拥塞避免算法,每经过一个传播轮次,cwnd+1。

  • 快重传与快恢复:当个别的报文段丢失时,不能坐以待毙,快重传算法就是可以让发送方尽快知道个别报文段的丢失,尽快重传,而不是一直等超时重传器超时再重传。发送方要一直探测,一旦收到三个重复的确认,立刻进行重传。重传后知道只是丢失了部分的报文段,而不是严重到拥塞的程度,所以就会执行快恢复的算法。快恢复算法将慢开始门限(ssthresh)和拥塞窗口(cwnd)同时调整到当前拥塞窗口的一半,而直接开始进行拥塞避免算法。也有的快恢复算法是再调大一下拥塞窗口(cwnd)的值

 


http://www.niftyadmin.cn/n/5378498.html

相关文章

结构体对齐规则及为什么会有结构体对齐

前言: 大家在学习结构体中,在计算结构体大小时想必会很疑惑,为什么结构体的大小不是按照常理像数组一样一个字节一个字节的挨在一起放?今天带大家一起深入探讨一下背后的规则和原因。 结构体对齐规则: 结构体对齐其实…

SpringCloud之Nacos用法笔记

SpringCloud之Nacos注册中心 Nacos注册中心nacos启动服务注册到Nacosnacos服务分级模型NacosRule负载均衡策略根据集群负载均衡加权负载均衡Nacos环境隔离-namespace Nacos与eureka的对比临时实例与非临时实例设置 Nacos配置管理统一配置管理微服务配置拉取配置自动刷新远端配置…

开源版发卡小程序源码,云盘发卡微信小程序源码带PC端

一款发卡小程序。带PC端 系统微信小程序前端采用nuiapp 后端采用think PHP6 PC前端采用vue开发 使用HBuilderX工具打开,运行到微信小程序工具,系统会自动打包微信小程序代码 修改文件common/request/request.js 改成你的后端网址 微信小程序端完全…

【退役之重学前端】关于对编程本质的回忆、理解和梳理

理论准备- 编程的本质,就是对内存中数据的访问和修改。程序所用的数据都会保存在内存中。(《疯狂java第四版》李刚 第49页 )字节(byte),字节是计算机存储中的基本单位,由8位二进制数字组成&…

《区块链公链数据分析简易速速上手小册》第2章:数据获取基础(2024 最新版)

文章目录 2.1 访问区块链数据2.1.1 基础知识2.1.2 重点案例:使用 Python 查询比特币交易记录2.1.3 拓展案例 1:使用 Web3.py 读取以太坊智能合约状态示例智能合约(Solidity)Python 脚本读取智能合约状态结论 2.1.4 拓展案例 2&…

Java的集合框架和泛型

文章目录 集合框架什么是集合框架类和接口总览 集合框架的重要性背后所涉及的数据结构以及算法什么是数据结构容器背后对应的数据结构什么是算法 包装类基本数据类型和对应的包装类装箱和拆箱自动装箱和自动拆箱 泛型什么是泛型引出泛型语法泛型类泛型的上界(没有下界)泛型方法…

前端架构: 实现脚手架处理简单的命令注册和参数解析

实现简单的命令注册和参数解析 1 )概述 这里不会使用任何第三方工具,而是给大家讲解一下参数解析的一个实现原理实现两个目标 第一目标是注册一个命令 $ xyzcli init 这个命令就可以完成一个自己的操作第二个是实现参数解析 希望能够实现 --version 的一…

STM32 寄存器操作 GPIO 与下降沿中断

一、如何使用stm32寄存器点灯? 1.1 寄存器映射表 寄存器本质就是一个开关,当我们把芯片寄存器配置指定的状态时即可使用芯片的硬件能力。 寄存器映射表则是开关的地址说明。对于我们希望点亮 GPIO_B 的一个灯来说,需要关注以下的两个寄存器…