TCP的拥塞控制_基础知识_四种拥塞控制方法

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

TCP的拥塞控制

一.拥塞控制的基本概念

  • 在某段时间,若对网络中某一资源的需求超过了该资源所能提供的可用部分,网络性能就要变坏,这种情况就叫作拥塞
    • 计算机网络中的链路容量(带宽)、交换节点中的缓存和处理机等都是网络的资源
  • 若出现拥塞而不进行控制,整个网络的吞吐量将随输入负荷的增大而下降。
    tcp拥塞控制的实现方法。,计算机网络,tcp/ip,智能路由器,网络协议

二.拥塞控制的基本方法

首先,先对比流量控制与拥塞控制
流量控制:以接收方的接收能力控制发送方(源点)的发送速率只与特定的点对点通信的发送方和接收方之间的流量有关
拥塞控制:源点根据各方面因素,按拥塞控制算法自行控制发送速率全局性问题,涉及网络中所有的主机、路由器等

总结:流量控制是接收方限制发送方的流量,拥塞控制是根据全局的情况,设置了拥塞窗口,限制发送.


从控制论的角度分类,可分为开环控制和闭环控制

开环控制:

  • 试图用良好的设计来解决问题。
  • 从一开始就保证问题不会发生。
  • 一旦系统启动并运行起来,就不需要中途修正。

当网络的流量特征可以准确规定且性能要求可以事先获得时,适合使用开环控制。

闭环控制:

  • 基于反馈的控制方法,包括以下三个部分:
    • 监测网络拥塞在何时、何地发生。
    • 把拥塞发生的相关信息传送到可以采取行动的地方。
    • 调整网络的运行以解决拥塞问题。

当网络的流量特征不能准确描述或者当网络不提供资源预留时,适合使用闭环控制。因特网采用的就是闭环控制方法。


衡量网络拥塞的一些指标:

  • 由于缓存溢出而丢弃的分组的百分比
  • 路由器的平均队列长度
  • 超时重传的分组数量
  • 平均分组时延和分组时延的标准差

根据拥塞信息的反馈形式,可将闭环拥塞控制算法分为显示反馈算法和隐式反馈算法.

显示反馈算法:从拥塞节点(即路由器)向源点提供关于网络中拥塞状态的显式反馈信息。

隐式反馈算法:源点自身通过对网络行为的观察(例如超重传或往返时间RTT)来推断网络是否发生了拥塞。TCP采用的就是隐式反馈算法

拥塞控制并不仅仅是运输层要考虑的问题。显式反馈算法就必须涉及网络层。虽然一些网络体系结构(如ATM网络)主要在网络层实现拥塞控制,但因特网主要利用隐式反馈在运输层实现拥塞控制。

三.TCP的四种拥塞控制的方法

慢开始,拥塞避免,快重传,快恢复

为了集中精力讨论拥塞控制算法的基本原理,假定如下条件
1.数据是单方向传送的,而另一个方向只传送确认。
2.接收方总是有足够大的接收缓存空间,因而发送方的发送窗口的大小仅由网络的拥塞程度来决定,也就是不考虑接收方对发送方的流量控制。
3.以TCP最大报文段MSS(即TCP报文段的数据载荷部分)的个数作为讨论问题的单位,而不是以字节为单位(尽管TCP是面向空节流的)


首先,先来认清概念swnd,cwnd,rwnd
tcp拥塞控制的实现方法。,计算机网络,tcp/ip,智能路由器,网络协议
图解:

发送窗口的大小由接收窗口和拥塞窗口共同决定

加入慢开始门限
tcp拥塞控制的实现方法。,计算机网络,tcp/ip,智能路由器,网络协议

(一)慢开始算法与拥塞避免算法

最开始的拥塞窗口为cwnd=1,防止一开始数据传输量过大,造成拥塞.
假设慢开始门限值ssthresh=16,也就是说cwnd增大到16之后,切换算法为拥塞避免算法.

慢开始算法开始的过程:指数增长,一个传输轮次结束,也就是一个RTT的时间结束,cwnd由1变2,2变4,4变8…
tcp拥塞控制的实现方法。,计算机网络,tcp/ip,智能路由器,网络协议
拥塞避免算法开始的过程:线性增长,不同与慢开始算法的指数增长,拥塞避免每次只+1.
tcp拥塞控制的实现方法。,计算机网络,tcp/ip,智能路由器,网络协议
假如,出现了部分报文段丢失的情况,重传计时器超时,此时拥塞窗口变为1,重新开始慢开始算法,同时慢开始门限值/2.


总结:直观图如下:
tcp拥塞控制的实现方法。,计算机网络,tcp/ip,智能路由器,网络协议
图解:

“慢开始”是指一开始向网络注入的报文段少,而并不是指拥塞窗口cwnd的值增长速度慢。 “拥塞避免”也并非指完全能够避免拥塞,而是指在拥塞避免阶段将cwnd值控制为按线性规律增长,使网络比较不容易出现拥塞。

(二) 快重传算法和快恢复算法(改进TCP性能)

快重传算法有什么用?

  • 采用快重传算法可以让发送方尽早知道发生了个别TCP报文段的丢失。
  • “快重传”是指使发送方尽快(尽早)进行重传,而不是等重传计时器超时再重传
    • 这就要求接收方不要等待自己发送数据时才进行捎带确认,而是要立即发送确认,即使收到了失序的报文段要立即发出对已收到的报文段的重复确认
    • 发送方一旦收到3个连续的重复确认,就将相应的报文段立即重传,而不是等该报文段的重传计时器超时再重传。

tcp拥塞控制的实现方法。,计算机网络,tcp/ip,智能路由器,网络协议
图解:

对于个别丢失的报文段,发送方不会出现超时重传,也就不会误认为出现了拥塞而错误地把拥塞窗口cwnd的值减为1。实践证明,使用快重传可以使整个网络的吞吐量提高约20%。


快恢复算法有什么用?

  • 与快重传算法配合使用的是快恢复算法,发送方一旦收到3个重复确认,就知道现在只是丢失了个别的报文段,于是不启动慢开始算法,而是执行快恢复算法
    • 发送方将慢开始门限ssthresh的值和拥塞窗口cwnd的值都调整为当前cwnd值的一半,并开始执行拥塞避免算法
    • 也有的快恢复实现是把快恢复开始时的cwnd值再增大一些,即cwnd=新ssthresh+3.
      • 既然发送方收到了3个重复的确认,就表明有3个数据报文段已经离开了网络。
      • 这3个报文段不再消耗网络资源而是停留在接收方的接收缓存中。
      • 可见现在网络中不是堆积了报文段而是减少了3个报文段,因此可以适当把cwnd值增大一些。

总结:直观图如下:

tcp拥塞控制的实现方法。,计算机网络,tcp/ip,智能路由器,网络协议文章来源地址https://www.toymoban.com/news/detail-805130.html

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

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

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

相关文章

  • (学习笔记)TCP基础知识

    TCP 是 面向连接的、可靠的、基于字节流 的传输层通信协议。 面向连接:一定是[一对一]才能连接,不能像UDP协议可以一个主机同时向多个主机发送消息,也就是一对多是无法做到的; 可靠的:无论网络链路中出现了怎样的链路变化,TCP都可以保证一个报文一定能够到达接收

    2024年02月16日
    浏览(45)
  • TCP拥塞控制详解 | 7. 超越TCP

    网络传输问题本质上是对网络资源的共享和复用问题,因此拥塞控制是网络工程领域的核心问题之一,并且随着互联网和数据中心流量的爆炸式增长,相关算法和机制出现了很多创新,本系列是免费电子书《TCP Congestion Control: A Systems Approach》的中文版,完整介绍了拥塞控制的

    2024年02月11日
    浏览(32)
  • 如何解决TCP窗口与拥塞? TCP窗口与拥塞控制的解决办法

    计算机网络中的带宽、交换结点中的缓存和处理机等,都是网络的资源。在某段时间,若对网络中某一资源的需求超过了该资源所能提供的可用部分,网络的性能就会变坏。这种情况就叫做拥塞。拥塞控制就是防止过多的数据注入网络中,这样可以使网络中的路由器或链路不

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

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

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

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

    2024年02月05日
    浏览(39)
  • 详解TCP/IP协议第一篇:网络基础知识

    😉😉 学习交流群: ✅✅1:这是孙哥suns给大家的福利! ✨✨2:我们免费分享Netty、Dubbo、k8s、Mybatis、Spring...应用和源码级别的视频资料 🥭🥭3:QQ群:583783824   📚📚  工作微信:BigTreeJava 拉你进微信群,免费领取! 🍎🍎4:本文章内容出自上述:Spring应用课程!💞💞

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

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

    2023年04月08日
    浏览(29)
  • TCP_拥塞控制

    24年春节马上就要到了,作为开车党,最大的期盼就是顺利回家过年不要堵车。梦想是美好的,但现实是骨感的,拥堵的道路让人苦不堪言。 在网络世界中,类似于堵车的问题也存在,而TCP(Transmission Control Protocol)的拥塞控制机制就是为了解决这一问题而设计的。 前面介绍

    2024年02月21日
    浏览(25)
  • 运输层:TCP拥塞控制

    笔记来源: 湖科大教书匠:TCP的拥塞控制 声明:该学习笔记来自湖科大教书匠,笔记仅做学习参考 网络资源:在计算机网络中的链路容量(即带宽)、交换结点中的缓存和处理机等 拥塞:在某段时间,若对网络中某一资源的 需求超过 了该资源所能提供的 可用 部分,网络

    2024年02月12日
    浏览(39)
  • TCP拥塞控制

    本作是自己看书总结出来的,如有不正,请各位大佬指点一二 所谓拥塞控制,就是防止过多的数据注入到网络,使得网络中的通信设备和通信线缆不会因为过载而导致网络性能大大下降。 网络中通信设备具有数据处理转发性能、通信链路具有的传输带宽,而其中某台性能差

    2024年02月11日
    浏览(28)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包