TCP流量控制+拥塞控制

这篇具有很好参考价值的文章主要介绍了TCP流量控制+拥塞控制。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

TCP流量控制+拥塞控制,网络

流量控制:

  • 目标:流量控制主要解决的是发送方和接收方之间处理能力的不匹配问题。它的目的是确保发送方不会发送数据过快,以至于接收方无法及时接收并处理这些数据,从而避免数据包在网络中堆积和丢失。
  • 实现方式:在TCP协议中,流量控制主要通过使用滑动窗口机制来实现。接收方会告知发送方其当前能够接收的数据量(即接收窗口大小),发送方根据这个信息调整自己的发送速率。

TCP流量控制+拥塞控制,网络

流量控制: 流量控制主要关注的是发送方和接收方之间的数据传输速率。它确保发送方不会发送数据过快,以至于接收方来不及处理。流量控制的目的是防止接收方的缓冲区溢出,这通常通过动态调整接收窗口的大小来实现。接收方通过TCP报文的确认(ACK)来告知发送方其缓冲区的可用空间(接收窗口大小),发送方根据这个信息来调整发送速率。如果接收方的缓冲区满了,它会发送一个窗口大小为0的ACK,这时发送方会停止发送新的数据,直到接收方处理完数据并更新窗口大小。

如下,

(1)三次握手开始时:

A声明win=3,请求SYN;

B回复win=3,回复请求SYN,确认ACK;

A回复win=3,确认ACK。

(2)握手一旦建立好:

A连续发送3个数据给B,同时每一个数据里还在声明自己的窗口任然win=3,即A没接收到数据。

(3)B的3个win已经被占满

(4)当CPU取走一个窗口数据,空出1个:

B又给A发去win=1的信号

(5)A继续发来1个数据填充空白窗口

TCP流量控制+拥塞控制,网络

拥塞控制:

  • 目标:拥塞控制着眼于整个网络资源的管理,而非单个连接。它是为了防止过多的数据同时涌入网络,导致中间节点(如路由器)的缓冲区溢出,进而引发网络性能急剧下降甚至崩溃的问题。
  • 实现方式:TCP采用多种拥塞控制算法,包括慢开始、拥塞避免、快重传和快恢复等策略。发送方维护一个称为“拥塞窗口”的状态变量,根据网络反馈动态调整这个窗口的大小以适应网络状况。例如,在建立连接或检测到丢包时,TCP会启动慢开始算法逐渐增加发送速率;而在收到三个重复确认后,会触发快重传和快恢复算法。

TCP流量控制+拥塞控制,网络

拥塞控制: 拥塞控制则是为了防止网络中的数据包过多,导致网络拥塞。当网络中的路由器或链路负载过重时,可能会出现丢包现象。拥塞控制通过调整发送方的发送速率来避免这种情况。TCP协议中的拥塞控制算法包括慢开始(Slow Start)、拥塞避免(Congestion Avoidance)、快重传(Fast Retransmit)和快恢复(Fast Recovery)等策略。这些策略共同工作,使得发送方在网络出现拥塞迹象时能够减少发送速率,而在网络状况良好时逐渐增加发送速率。

cwnd(Congestion Window)

是TCP(传输控制协议)中的一个重要概念,它代表拥塞窗口的大小,用于控制发送方在任何给定时间可以发送到网络上的数据量。拥塞窗口的主要目的是防止网络拥塞,确保数据包不会过多地涌入网络,从而避免网络资源过载。

拥塞窗口cwnd的产生和调整遵循TCP的拥塞控制算法,这些算法包括慢启动(Slow Start)、拥塞避免(Congestion Avoidance)、快速重传(Fast Retransmit)和快速恢复(Fast Recovery)。

ssthresh

在TCP拥塞控制中通常被称为“慢启动阈值”(Slow Start Threshold)。这个术语描述了拥塞窗口(cwnd)在慢启动阶段增长到某个特定值时,TCP将从慢启动算法切换到拥塞避免算法的点。当拥塞窗口达到或超过这个阈值时,TCP将开始以更保守的方式增长窗口,即从指数增长(慢启动)变为线性增长(拥塞避免),以避免网络拥塞。在网络出现拥塞迹象时,如超时重传或连续收到三个重复的确认ACK,ssthresh会被设置为当前拥塞窗口的一半,这是为了迅速减少发送到网络中的数据量,给网络一个恢复的机会。

  1. 初始值:在TCP连接建立时,ssthresh通常被设置为一个较大的值,例如65535字节(这是在TCP Reno版本中常见的默认值),这允许TCP在网络中快速地探测可用的带宽。

  2. 动态调整:当网络出现拥塞迹象时(例如,通过超时重传或连续收到三个重复的确认ACK),ssthresh会被设置为当前拥塞窗口(cwnd)的一半。这样做的目的是迅速减少发送到网络中的数据量,给网络一个“喘息”的机会,以便处理积压的数据包。

慢启动(Slow Start)(指数增长):

第一个包,2^0=1;第二个包,2^2=4;第三个包,2^3=8;第四个包,2^4=16(ssthresh=16)

一切顺利,数据包直接飙到慢启动阈值(如果ssthresh=65535字节,中间可能早就网络拥塞了)

拥塞避免(Congestion Avoidance)(线性增长):

16,17,18,19,20,21,22,23,24,网络超时cwnd

慢启动(Slow Start)

(一夜回到解放前,同时ssthresh被更新为拥塞窗口的一半:cwnd/2)

第一个包,2^0=1;第二个包,2^2=4;第三个包,2^3=8;ssthresh=12

拥塞避免(Congestion Avoidance)(线性增长)

TCP流量控制+拥塞控制,网络文章来源地址https://www.toymoban.com/news/detail-828430.html

到了这里,关于TCP流量控制+拥塞控制的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【计算机网络】深入理解TCP协议二(连接管理机制、WAIT_TIME、滑动窗口、流量控制、拥塞控制)

    正常情况下,TCP需要经过三次握手建立连接+四次挥手断开链接,下面看一个图: 服务器的状态变化: [CLOSED - LISTEN] 服务器端调用listen后进入LISTEN状态, 等待客户端连接; [LISTEN - SYN_RCVD] 一旦监听到连接请求(同步报文段), 就将该连接放入内核等待队列中, 并向客户端发送SYN确认

    2024年02月07日
    浏览(59)
  • TCP流量控制+拥塞控制

    目标:流量控制主要解决的是发送方和接收方之间处理能力的不匹配问题。它的目的是确保发送方不会发送数据过快,以至于接收方无法及时接收并处理这些数据,从而避免数据包在网络中堆积和丢失。 实现方式:在TCP协议中,流量控制主要通过使用滑动窗口机制来实现。接

    2024年02月20日
    浏览(39)
  • TCP流量控制和拥塞控制

    当发送方发送速率大于接收方的处理速率时,接收方会把数据包放入缓冲区,当缓冲区满了,就只能将数据包丢弃。为了应对这种情况,流量控制就可以大展身手了 流量控制的作用对象是发送方和接收方 当接收方网络拥塞,未能及时ACK时,导致发送方超时重传大量数据,使

    2024年02月05日
    浏览(53)
  • TCP流量控制与拥塞控制(重要)

     本文参考了一些优秀的书籍-图解TCP/IP,TCP协议卷一,小林coding,还有等等的知乎,百度.   小林coding  小林coding 知乎牛客的文章 : 万字长文 | 23 个问题 TCP 疑难杂症全解析_技术交流_牛客网 本文主要讲解TCP可靠性的机制: 流量控制与拥塞控制 尤其拥塞控制的算法是大公司非常愿

    2023年04月08日
    浏览(39)
  • TCP重传, 滑动窗口, 流量控制, 拥塞控制

    1. 重传机制 TCP 实现可靠传输的方式之一,是通过 序列号与确认应答 。 在 TCP 中,当发送端的数据到达接收主机时,接收端主机会返回一个确认应答消息,表示已收到消息。 针对数据可能丢失的情况, 用重传机制来解决, 四种常见的重传机制: 超时重传 快速重传 SACK D-SACK 1.

    2024年01月22日
    浏览(47)
  • TCP滑动窗口、流量控制及拥塞控制详解

    TCP虽然是面向字节流的,但是TCP传输的单元确实报文段。一个TCP报文段分为首部和数据部分。TCP首部前20个字节是固定的,后面有4N个字节是可选的。因此,TCP首部最小字节数是20个字节。 下面我们看下一TCP首部中几个重要的字段: 源端口 和 目的端口 各占两个字节 序号 ,占

    2024年02月02日
    浏览(38)
  • TCP之超时重传、流量控制和拥塞控制

    TCP超时重传是TCP协议中的一种机制,用于在发生丢包或数据包未及时确认的情况下,重新发送未确认的数据段。 当发送方发送一个数据段后,会启动一个定时器(称为超时计时器),等待接收方的确认。如果在超时时间内未收到确认,发送方就会认为该数据段已经丢失,并进

    2024年02月10日
    浏览(48)
  • <JavaEE> TCP 的通信机制(四) -- 流量控制 和 拥塞控制

    目录 TCP的通信机制的核心特性 五、流量控制 1)什么是“流量控制”? 2)如何做到“流量控制”? 3)“流量控制”的作用 六、拥塞控制 1)什么是“拥塞控制”? 2)如何做到“拥塞控制”? 3)“拥塞控制”的作用 4)“流量控制”和“拥塞控制”下的窗口大小如何取值

    2024年02月03日
    浏览(42)
  • 八股文——TCP四大机制!小白也能懂!(重传机制、滑动窗口、流量控制、拥塞控制)

    TCP巨复杂!同时在八股计算机网络中也经常被问到,必须会!这篇文章将让小白有个大体框架,知道怎么个事,面试中可以有话说,也能让佬更加巩固知识点。 TCP是一个可靠的传输协议,为了保证它的可靠性,出现七七八八的机制,它可能有数据的破坏、丢包、重复以及分片

    2024年04月25日
    浏览(31)
  • 网路原理-传输层UDP,TCP/IP(确认应答,超时重传,连接管理,三次握手,四次挥手,状态转换,流量控制,滑动窗口,拥塞控制,延时应答,捎带应答,异常情况,面向字节流)-网络层(IP协议,地址管理)

    本节重点 • 理解传输层的作⽤,深⼊理解TCP的各项特性和机制 • 对整个TCP/IP协议有系统的理解 • 对TCP/IP协议体系下的其他重要协议和技术有⼀定的了解 我们之前编写完了基本的 java socket ,要知道,我们之前所写的所有代码都在应⽤层,都是为了 完成某项业务,如翻译等。

    2024年04月15日
    浏览(58)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包