TCP拥塞控制

TCP的拥塞控制 阅读详情

浅谈网络拥塞以及他的控制方法

什么是网络拥塞

网络拥塞的对象是网络资源。包括链路宽带、结点缓存或处理能力等。在特定的时间内,当对网络中某种资源的需求超过了其可用部分时所出现的网络性能变差直至系统崩溃的现象叫做网络拥塞。

网络拥塞的成因以及危害
  • 第一,当分组到达速率超过路由器输出链路的容量时,路由器要缓存已输入但无法立即输出的分组。所以网络拥塞带来的第一种危害是当分组以大于或接近链路容量的速率到达时,分组将承受很大的时延。
  • 第二,当分组到达路由器时,若有限的缓存已满,分组就会被丢弃。所以网络拥塞带来的第二种危害就是发送方会因分组被路由器丢弃而进行不必要的重传,从而引起路由器消耗其链路带宽来重传不必要的分组副本。
  • 第三,如果有一个分组在某路由器上被丢弃,传输路径上的前几跳路由器的工作就都是“劳而无功的”。所以网络拥塞带来的第三种危害就是当一个分组沿一条路径传输而最终被丢弃时,位于该路径上游的每台路由器中用于转发该分组的传输资源也都被浪费掉了。
TCP拥塞控制

TCP基于端到端拥塞控制方法进行网络拥塞控制,为端系统提供了一种根据自己的通信确认报文作为反馈信息来感知网络状态的隐式拥塞控制机制。

  • TCP感知拥塞的方法
    • 在TCP可靠传输机制中,TCP发送的报文段通过接收方不断返回确认报文来证实这些报文已经可靠地到达目的地。所以一旦发现某个确认报文没有及时返回,就判断相应的报文段丢失,即认为网络出现了拥塞。
    • 在TCP确认报文段发生超时前,一般会出现冗余ACK现象,所以发送方通过检测冗余ACK也能预测网络拥塞情况。
  • 冗余ACK
    所谓冗余ACK就是多次收到对某个报文段的确认。
    • 冗余ACK的产生:当TCP接收方收到报文段的序号大于下一个所期望的报文段时,它发现报文段没有按序到达,此时TCP只能对按序接收到的最后一个字节的数据进行重复确认,这就产生了一个冗余ACK。因为发送方经常连续发送报文段,一个丢失的报文段后面可能跟着多个其它报文段,因此一个丢失的报文段可能会引起多个冗余ACK出现。
  • 网络拥塞控制机制
    当出现丢包事件时,迅速减小拥塞窗口CWin的长度使发送方降低其发送速率;在一般情况下则谨慎增加CWin的长度。这样使通过相同路由器的所有TCP连接都能迅速降低其发送速率,从而能够迅速消除或缓解路由器的拥塞。
    • 慢启动:先从较小的拥塞窗口开始,逐步试探网络状态;试探的发送速率要迅速增加(指数增加),直至接近某个阈值。
    • 加性增、乘性减:当网络可能进入拥塞状态时,将以指数方式增长的发送速率降低为以线性增长的发送速率。加性增是在慢启动阶段结束后,进入平缓的线性增长的拥塞避免阶段。乘性减是指发现丢包事件后,TCP要采取措施来迅速减小拥塞窗口。
  • TCP拥塞控制措施与拥塞窗口变化图示
    这里写图片描述
    如图当TCP检测到3个冗余ACK时它有两种处理方法:
    • TCP Rene乘性减:当TCP发送方收到3个冗余ACK时,它先将当前的CWin值减半,然后再按照加性增的方增加CWin值。
    • TCP Tahoe乘性减:当超时情况发生时,TCP发送方先将阈值设为CWin/2,再进入一个慢启动阶段。

参考文献:计算机网络:原理与实践/陈鸣编著.-北京:高等教育出版社,2013.2:89-92 235-248

Day7: TCP:拥塞控制原理、 TCP拥塞控制 Day7的第二篇Study blog。 偷博仔,day day up! 欣赏一下 《????小花的信念》 在山石组成的路上 浮起一片小花 它们用金黄的微笑 来回报石块的冷遇 它们相信 最后,石块也会发芽 也会粗糙地微笑 在阳光和树影间 露出善良的牙齿 ———— 1981年4月 小花信念如此,吾辈岂能且过。(言重了,言重了) 正片开始 一、TCP:拥塞控制原理 拥塞没有一个Authoritative(权威的)定义。 拥塞: (congestion)  非正式的定义:“太多的数据需要网络传输,超 阅读详情

相关推荐

TCP的拥塞控制详解

拥塞控制的一般原理在某段时间,若对网络中某资源的需求超过了该资源所能提供的可用部分,网络的性能就要变坏——产生拥塞(congestion)。出现资源拥塞的条件: 对资源需求的总和 > 可用资源 若网络中有许多资源同时产生拥塞,网络的性能就要明显变坏,整个网络的吞吐量将随输入负荷的增大而下降。 拥塞控制与流量控制的关系 拥塞控制所要做的都有一个前提,就是网络能够承受现有的网络负荷。 拥塞控制是一

在努力! 4170

【TCP专题】TCP的拥塞控制

TCP的拥塞控制是TCP当中的一个难点。很多人不太理解,为什么TCP有流控,还有个拥塞控制,这两个到底有啥区别?

Linkjiee的博客 1457

什么是TCP拥塞控制算法?

最近花了些时间在学习TCP/IP协议上,首要原因是由于本人长期以来对TCP/IP的认识就只限于三次握手四次分手上,所以希望深入了解一下。再者,TCP/IP和Linux系统层级的很多设计都可以用于中间件系统架构上,比如说TCP 拥塞控制算法也可以用在以响应时间来限流的中间件上。更深一层,像TCP/IP协议这种基础知识和原理性的技术,都是经过长时间的考验的,都是前人智慧的结晶,可以给大家很多启示和帮助...

2577

TCP的快速重传机制

一、快速重传机制 上一篇讲到了TCP 的超时重传,但是超时重传往往会带来许多微妙的问题,比如说: 当一个报文段丢失时,会等待一定的超时周期然后才重传分组,增加了端到端的时延。 当一个报文段丢失时,在其等待超时的过程中,可能会出现这种情况:其后的报文段已经被接收端接收但却迟迟得不到确认,发送端会认为也丢失了,从而引起不必要的重传,既浪费资源也浪费时间。 幸运的是,由于TCP采用的是累计确认...

whgtheone的博客 5万+

3.ESP32S3 AP 配网开发实战:HTTP 与 WebSocket 协议实现

本文介绍了基于ESP32S3的AP配网实现方案,通过HTTP协议提供配网网页,利用WebSocket实现双向通信。详细解析了HTTP和WebSocket协议特点,阐述了SPIFFS文件系统存储HTML网页的方法,包括分区表配置、CMakeLists设置和代码实现。工程采用模块化设计,包含WiFi管理、Web服务器、IO扩展等组件,支持手机浏览器直接配网。测试验证了从AP热点连接到路由器切换的全流程,并总结了SPIFFS操作、WebSocket通信等核心优化点。该方案无需专用APP,适合物联网设备快速部署场景

u011697185的专栏 960

ESP32-S3驱动PCA9685模块:I2C扩展16路舵机控制实战指南

本文提供了ESP32-S3通过I2C总线驱动PCA9685模块扩展16路PWM输出的完整实战指南。详细解析了PCA9685模块原理、硬件连接、I2C地址配置,并给出了核心驱动代码与角度控制函数,帮助开发者解决微控制器PWM引脚不足的问题,轻松实现多路舵机控制。

weixin_32005771的博客 519

各种阻塞的优缺点、区别、关系以及转换

互相之间的转换可以通过线程池、异步回调、异步框架等实现,具体根据需求选择合适的转换方式。5.4 异步非阻塞通过回调函数或事件驱动的方式实现高并发处理,但编程模型复杂。5.1 线程阻塞是基础,可以在IO阻塞、同步阻塞以及异步非阻塞中运用。5.2 IO阻塞适用于低并发场景,简单易用,但可能造成整个程序的阻塞。5.3 同步阻塞通过加锁等方式来避免资源竞争,但会降低程序的并发性能。需要有效地处理异常,防止IO阻塞导致的程序异常退出。阻塞的线程会占用系统资源,降低系统的并发能力。可以实现高并发、高吞吐量的处理能力。

weixin_54248927的博客 882

Proteus仿真实战:用AT89C51+L298N搭建直流电机PID调速系统(附完整工程文件)

本文详细介绍了使用Proteus仿真平台结合AT89C51单片机和L298N驱动模块搭建直流电机PID闭环调速系统的全过程。从硬件选型、电路连接到PID算法实现与参数整定,提供了完整的开发指南和工程文件,帮助读者快速掌握闭环调速系统的设计与调试技巧。

weixin_28724661的博客 448

TCP 拥塞控制

不同的TCP拥塞控制算法在设计理念、性能优化方面有所不同。Tahoe和Reno侧重于通过丢包信号来调整拥塞窗口大小,而Vegas和BBR则试图通过预测和测量网络状态来避免拥塞的发生。随着网络环境的不断变化和发展,新的拥塞控制算法不断被提出,以适应不同的网络条件和应用需求。

坚定目标,超越自我 3454

三菱PLC通信库大比拼:手把手教你用C#实现最高效的McProtocol数据读写

本文深入比较了三菱PLC通信库的性能,重点介绍了如何使用C#高效实现McProtocol数据读写。通过实测数据对比HslCommunication、McProtocol-next和自定义方案的优劣,提供优化技巧和代码示例,帮助开发者在工业自动化场景中提升通信效率。

m0n1o2p的博客 255

数据库系统工程师软考备战:第三篇 - SQL语言深入解析与应用

​​创建表​​​修改表​​​删除表​。

Programming Talk 122

TCP协议-TCP的拥塞控制

一、拥塞控制概述 TCP模块除了要进行流量控制外,还有一个重要的任务,就是提高网络利用率,降低丢包率,并保证网络资源对每条TCP连接的数据流的公平性。这就是拥塞控制要解决的问题。 在计算机网络中的链路容量(即带宽)、交换结点中的缓存和处理机等,都是网络的资源。在某段时间,如果对网络中的某一资源的需求超过了该资源所能提供的可用部分,网络的性能就要发生变化,这种情况就叫做拥塞(congestion)。可以把出现网络拥塞的条件写成如下的关系式: Demand for r...

yunfan 9818

Kafka 性能优化与常见问题排查

Kafka 的高性能依赖于合理的集群设计、参数优化与高效的监控体系。生产环境中,应重点关注I/O 瓶颈、分区规划、Producer/Consumer 参数调优,并通过监控与排查手段快速定位问题,从而保障 Kafka 在实时场景下的稳定运行。

X2829352498的博客 235

TCP的拥塞控制策略

一、TCP基于窗口的拥塞控制策略 1.1 加法增加乘法减少(AIMD)窗口算法     TCP是Internet中最流行的端到端传输协议,为主机之间提供可靠按序的传输服务。在现有的TCP/IP协议体系下,TCP拥塞控制机制主要基于加法增加乘法减少(AIMD)算法。在该算法中主要用到三个窗口变量:     (1)拥塞窗口(cwnd):限定源端在拥塞控制中在一定时间内允许传送的最大数据量,是来自

fengqiaojiangshui的专栏 9304

高通平台开发系列讲解(USB篇)MBIM协议详解

📢本文主要介绍高通平台USB网卡MBIM协议。

内核笔记 5438

回归预测 | MATLAB实现基于贝叶斯线性回归(Bayesian Regression)的多变量输入回归预测

回归预测 | MATLAB实现基于贝叶斯线性回归(Bayesian Regression)的多变量输入回归预测

机器学习之心的博客,关注并私信文章链接,获取对应文章源码和数据。 2199

TCP的拥塞控制简介

从《自顶向下》书中复制过来TCP的拥塞控制。介绍了TCP拥塞控制的相关算法:Tahoe、Reno、NewReno、SACK、Vegas。这些算法的区别,我不是特别清楚,所以这里不写他们之间的对比区别。完。

大草的博客 2237

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

TCP-拥塞控制

TCP进行拥塞控制的算法有四种:慢开始,拥塞避免,快重传,快恢复。发送方维持一个叫做拥塞窗口cwnd的状态变量,拥塞窗口大小取决于网络的拥塞程度,并且是动态变化的。发送方的发送窗口等于拥塞窗口。发送方在超时重传计时器启动时,就判断网络出现了拥塞。由于路由器的队列长度有限,因此当队列满时,以后再到达的所有分组(如果能继续排队,这些分组都将排在队列的尾部)将被丢弃,这叫做尾部丢弃策略。主动队列管理AQM在路由器队列长度达到某个警惕的数值时就主动丢弃到达的分组。

cliff,的博客 6632

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

TCP 拥塞控制算法

转自:https://mp.weixin.qq.com/s/NIFandX8w-Cynnbl-f2Lwg TCP拥塞控制算法 TCP 通过维护一个拥塞窗口来进行拥塞控制,拥塞控制的原则是,只要网络中没有出现拥塞,拥塞窗口的值就可以再增大一些,以便把更多的数据包发送出去,但只要网络出现拥塞,拥塞窗口的值就应该减小一些,以减少注入到网络中的数据包数。 拥塞控制算法的核心是选择一个有效的策略来控制拥塞窗口的变化。 TCP 拥塞控制算法发展的过程中出现了如下几种不同的思路: 基于丢包的拥塞控制:将丢包视为出现拥

lin的博客 2677

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

计算机网络:(十五)TCP拥塞控制与TCP拥塞控制算法

本文围绕TCP拥塞控制展开,先解释网络拥塞的概念及发生原因,明确拥塞控制的目标是平衡网络资源利用与避免拥堵。区分了拥塞控制(全局防网络过载)与流量控制(点对点防接收方过载)的不同,指出TCP采用闭环控制适应动态网络。介绍核心工具拥塞窗口(cwnd)及实际发送窗口的计算方式,说明TCP通过超时重传和3个重复确认判断拥塞。重点讲解慢开始(初始试探,指数增长)、拥塞避免(接近上限时线性增长)、快重传(快速处理丢包)、快重传(高效恢复传输)四大算法,展现TCP动态调控数据发送的机制。

2402_83322742的博客 3221
上一篇: 浅谈TCP连接的三次握手与四次挥手(2017.08.08修复版)
下一篇: MySql AB复制(主从复制)的基本原理与过程
Jeaforea
博客等级 码龄10年 30粉丝 29原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值