拥塞控制概念

news2024/11/20 22:40:18

网络拥塞

何为拥塞控制?拥塞控制是指在计算机网络中,通过监测网络的拥塞程度并采取相应的措施来维持网络的稳定运行的方法。它的主要目标是确保网络资源的合理利用,避免网络拥塞导致的性能下降和服务质量下降。

为什么需要拥塞控制?因为我们的网络也会拥塞

网络拥塞是指在网络中传输的数据量超过了网络设备(如路由器、交换机)的处理能力,导致网络性能下降或者完全不可用的现象。

成千上万台终端都先网络发送报文进行交流,导致网络中需要处理大量的报文,导致了网络运载的负担,这是我们不喜欢遇见的,为了有效的缓解拥塞情况,tcp协议在对网络拥塞有着对应的控制。

TCP引入 慢启动 机制,先发送少量的数据, 探探路, 摸清当前的网络拥堵状态, 再决定按照多大的速度传输数据;

那么我们的TCP协议如何知道网络拥的呢

  1. 丢包率:TCP通过检测传输过程中的丢包情况来判断网络拥塞。当发送方收到三个重复的ACK时,就会认为网络中出现了拥塞,会采取拥塞控制措施。当同时收到3个相同的ACK应答报文,我们TCP就判定网络出现拥塞情况,因为在拥塞时,路由器和交换机可能丢弃TCP报文,导致丢包。

  2. 延迟:TCP还通过测量数据包的往返时间(RTT)来判断网络拥塞。当RTT变大时,TCP会认为网络出现了拥塞,并减少发送速率。

  3. 队列长度:TCP还会监测网络中的队列长度来判断网络是否拥塞。当队列长度超过一定阈值时,TCP会认为网络出现了拥塞,并减少发送速率。为了维护网络的拥塞控制,TCP使用拥塞窗口来确定发送数据的速率。这个窗口的大小取决于网络的拥塞程度和接收方的可用缓冲区大小

  4. ECN标志位:TCP还支持使用显式拥塞通知(ECN)来判断网络拥塞。当路由器在转发数据包时发现网络拥塞时,可以将ECN标志位置为1,传递给接收方和发送方,以便它们采取相应的措施。

拥塞算法概念

那么我们的拥塞算法如何控制发送速率呢?前期将以2倍报文数量试探性发送TCP报文,在一个阈值后,将指数增长在改变为线性增长。

拥塞窗口是干什么用的,是控制滑动窗口大小用的。滑动窗口大小不仅仅是依赖报文中16位的报文大小控制,也需拥塞窗口控制,每次收到报文后,我们的拥塞窗口win_end=start+min(16位窗口大小,拥塞窗口大小)。

拥塞窗口在每次拥塞控制时开始为一条报文大小,后续每收到一条应答,拥塞窗口加一个报文大小单位。

那么,一直都是指数增长发送数量吗,不是的。在发送数量抵达某个阈值我们就开始线性增长。

  • 当TCP开始启动的时候, 慢启动阈值等于窗口最大值;
  • 在每次超时重发的时候, 慢启动阈值会变成原来的一半, 同时拥塞窗口置回1;

少量的丢包, 我们仅仅是触发超时重传; 大量的丢包, 我们就认为网络拥塞 。当TCP通信开始后, 网络吞吐量会逐渐上升; 随着网络发生拥堵, 吞吐量会立刻下降; 拥塞控制, 归根结底是TCP协议想尽可能快的把数据传输给对方, 但是又要避免给网络造成太大压力的折中方案。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1017330.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【力扣每日一题】2023.9.17 打家劫舍Ⅱ

目录 题目: 示例: 分析: 代码: 题目: 示例: 分析: 打家劫舍2在1的基础上增加了一个规则,那就是房屋是首尾相连的。 这对我们解题有什么影响呢? 唯一的影响就是我们…

数据结构:树和二叉树之-堆排列 (万字详解)

目录 树概念及结构 1.1树的概念 1.2树的表示 ​编辑2.二叉树概念及结构 2.1概念 2.2数据结构中的二叉树:​编辑 2.3特殊的二叉树: ​编辑 2.4 二叉树的存储结构 2.4.1 顺序存储: 2.4.2 链式存储: 二叉树的实现及大小堆…

Logrus日志

目录 一、Logrus 1、Logrus使用 1、下载Logrus第三方库: 2、日志配置文件 3、加载日志配置文件 4、初始化日志记录器 5、在main.go中加载init函数 一、Logrus 日志的重要性及作用 日志是程序的重要组成部分 1.记录用户操作的审计日志 2.快速定位问题的根源…

【计算机视觉】Vision Transformers算法介绍合集(三)

文章目录 一、OODformer二、Colorization Transformer三、MUSIQ四、LeVIT五、Visformer六、Twins-PCPVT七、Conditional Position Encoding Vision Transformer八、Twins-SVT九、Shuffle Transformer十、RegionViT十一、LocalViT十二、EsViT十三、Multi-Heads of Mixed Attenti…

推荐一个页面引导库 driver_js

推荐一个页面引导库 driver.js 页面引导功能是 web 开发中常见的一个功能。通过页面引导功能,你可以让用户第一时间熟悉你的页面功能。今天给大家推荐一个页面引导库 driver.js。 1 简介 driver.js 是一款用原生 js 实现的页面引导库,上手非常简单&am…

远程连接PostgreSQL:配置指南与安全建议

🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🐅🐾猫头虎建议程序员必备技术栈一览表📖: 🛠️ 全栈技术 Full Stack: &#x1f4da…

UDP/TCP 最大可传输单元细节可不少~

一、MTU 简述 - 分包后数据包最大长度 1、定义 Maximum Transmission Unit(最大可传输单元) 的缩写,它的单位是字节。在 *数据链路层* 定义 一个数据包穿过一个大的网络,它其间会穿过多个网络,每个网络的 MTU 值是不…

探索Adobe Photoshop 2024:新功能与增强功能详解

Adobe Photoshop 2024,这款传奇的图像编辑软件,近期又迎来了一些令人振奋的新特性。对于专业设计师和摄影爱好者来说,Photoshop 的每次更新都牵动着他们的心。那么,这次的新版本究竟带来了哪些值得我们期待的功能呢?且…

GDB之打印函数堆栈(十二)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 人生格言: 人生…

Mysql002:(库和表)操作SQL语句

目录: 》SQL通用规则说明 SQL分类: 》DDL(数据定义:用于操作数据库、表、字段) 》DML(数据编辑:用于对表中的数据进行增删改) 》DQL(数据查询:用于对表中的数…

获取spring容器中的bean实例

在开发过程中,我们可能需要动态获取spring容器中的某个bean的实例,此时我们就会用到ApplicationContext spring应用上下文,这里做一下记录,网上很多类似的的工具类。 先写好工具类再测试一下是否好用 工具类: packag…

CLIP 基础模型:从自然语言监督中学习可转移的视觉模型

一、说明 在本文中,我们将介绍CLIP背后的论文(Contrastive Language-I mage Pre-Training)。我们将提取关键概念并分解它们以使其易于理解。此外,还对图像和数据图表进行了注释以澄清疑问。 图片来源: 论文&#xff1a…

关于 Qt串口不同电脑出现不同串口号打开失败 的解决方法

若该文为原创文章,转载请注明原文出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/132842297 红胖子(红模仿)的博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软…

8. 工厂方法模式

一 典型工厂方法模式&#xff08;Factory Method&#xff09;结构图 二 典型工厂模式实现 测试代码 #include <iostream> using namespace std;class Product{ public:string name;virtual void show(){cout << "我是:";} }; class Desk : public Produ…

LeetCode 热题 100(九):回溯复习。77. 组合、17. 电话号码的字母组合、39. 组合总和

题目一&#xff1a; 77. 组合 思路&#xff1a; 思路&#xff1a;回溯算法。使用回溯三部曲进行解题&#xff1a; 1.递归函数的返回值以及参数&#xff1a;n&#xff0c;k&#xff0c;startIndex(记录每次循环集合从哪里开始遍历的位置)&#xff0c;其中startIndex 就是防止…

【管理运筹学】第 8 章 | 动态规划(1,多阶段决策过程与动态规划基本概念)

文章目录 引言一、多阶段决策过程及实例二、动态规划的基本概念和方法2.1 动态规划的基本概念 写在最后 引言 倒回来学动态规划&#xff0c;网络计划和排队论先放到后面吧。 动态规划是解决多阶段决策过程最优化问题的一种方法。该方法由美国数学家贝尔曼等人在 20 世纪 50 年…

网安之python基础作业(2-3)

目录 目录 前言 系列文章列表 网安之python基础学习作业(1) 思维导图 1&#xff0c;网安之python基础学习作业(2) 1.1,作业一: 1.1.1,题目 1.1.2,题解 1.2&#xff0c;作业二: 1.2,1,题目 1.2.2,题解 2&#xff0c;网安之python基础学习作业(3) 2.1,作业1 2.1…

【面向对象的三大基本特征与五大基本原则】

文章目录 面向对象的三大基本特征与五大基本原则一、三大基本特征&#xff1a;封装、继承、多态1、封装2、继承3、多态 二、五大基本原则1、单一职责原则&#xff08;SRP&#xff09;2、开放封闭原则&#xff08;OCP&#xff09;3、里氏替换原则&#xff08;LSP&#xff09;4、…

免费:CAD批量转PDF工具,附下载地址

分享一款CAD 批量转PDF、打印的工具插件。能自动识别图框大小、自动识别比例、自动编号命名。重点&#xff01;重点&#xff01;重点&#xff01;自动将CAD的多张图纸一次性地、批量地转为PDF&#xff0c;或者打印。效果看下图&#xff1a; 适用环境&#xff1a; 32位系统 Auto…

前端JavaScript入门到精通,javascript核心进阶ES6语法、API、js高级等基础知识和实战 —— JS基础(二)

人生是旷野&#xff0c;不是轨道。 思维导图 一、运算符 1.1 赋值运算符 1.2 一元运算符 1.3 比较运算符 1.4 逻辑运算符 逻辑与&#xff0c;一假则假 逻辑或&#xff0c;一真则真 <!DOCTYPE html> <html lang"en"><head><meta charset&quo…