<small id='0Fv4TnrbYG'></small> <noframes id='mSUr'>

  • <tfoot id='ye6tsk5'></tfoot>

      <legend id='udfMTUG'><style id='7Rjk2'><dir id='WEVJaCv9u'><q id='PDuTz'></q></dir></style></legend>
      <i id='HCxtXkZc'><tr id='QjEGAbK2dW'><dt id='F2gr5GHJCE'><q id='A0YBFehDt'><span id='zcPY'><b id='QIjgqNi'><form id='vu4ag'><ins id='KpqlS0JYd'></ins><ul id='OsDBxJ'></ul><sub id='LSNC23JF'></sub></form><legend id='f9nC7kMGbr'></legend><bdo id='s4mfrpFVTj'><pre id='EvbDpGAla'><center id='XcbkNULT'></center></pre></bdo></b><th id='vRQY1ZK'></th></span></q></dt></tr></i><div id='QNUJYByft'><tfoot id='pV0Yf5EkKL'></tfoot><dl id='uarjz67'><fieldset id='TqnGg'></fieldset></dl></div>

          <bdo id='81BlRas'></bdo><ul id='vIBt98Ck'></ul>

          1. <li id='Nl310U'></li>
            登陆

            彩票1号平台-头条面试题 | TCP 的拥塞操控原理

            admin 2019-09-06 139人围观 ,发现0个评论

            在涉及到网络常识的面试中,TCP 和 UDP 是经常被提及的两个概念,它们是 OSI 模型中的运送层中的协议,关于 TCP 和 UDP,以下有一些扼要的介绍:

            TCP 全称为传输操控协议。这种协议能够供给面向衔接的、牢靠的、点到点的通讯,所谓牢靠,在于 TCP 树立衔接时两边需求相互承认,相似打电话,在专业术语中称为 3 次握手。

            UDP 全称为用户数据报协议,它能够供给非衔接的不牢靠的点到多点的通讯,所谓不牢靠,在于 UDP 每一次发送数据需求绑定 IP 和端口号,可是关于现已发送出去的数据来说并不去承认,也不需求相似 TCP 的三次握手的进程,因为没有了这个进程,所以其传输功率较之 TCP 来说要高许多。

            关于这两者,有一些简略安淘惠且重要的差异,在面试中也经常被问到:

            「TCP 3 次握手的进程」,「TCP 4 次挥手的进程」等考点咱们或许现已比较清楚了,在此就不多做叙说。在字节跳动的面试中还问了这么一道题:

            TCP 的拥塞操控原理是什么?UDP 有对应的拥塞操控功用嘛?

            这个问题好像看起来比较冷门,前段时间「BBR」这个概念很火,咱们都给自己的服务器跟风加上了「BBR」并感触到了传输数据功率的进步,可是或许并不是很清楚详细的原理。那么,TCP 的拥塞彩票1号平台-头条面试题 | TCP 的拥塞操控原理操控终究是什么呢?



            什么是 TCP 拥塞操控

            TCP 拥彩票1号平台-头条面试题 | TCP 的拥塞操控原理塞操控的方针是最大化运用网络上瓶颈链路的带宽。

            简略来说是将网络链路比方成一根水管,假如咱们期望尽或许地运用网络传输数据,办法便是给水管灌水,就有如下公式:

            水管内的水的数量 = 水管的容积 = 水管粗细 水管长度

            对应的网络名词便是:

            网络内尚未被承认收到的数据包数量 = 网络链路上能包容的数据包数量 = 链路带宽 往复推迟


            为了确保水管不会爆管,TCP 保护一个拥塞窗口cwnd(congestion window),用来估量在一段时间内这条链路(水管中)能够承载和运送的数据(水)的数量,拥塞窗口的巨细取决于网络的拥塞程度,而且动态地在改变,可是为了抵达最大的传输功率,咱们该怎么知道这条水管的运送功率是多少呢?

            一个简略的办法便是不断添加传输的水量,直到水管决裂停止(对应到网络上便是发作丢包),用 TCP 的描绘便是:

            只需网络中没有呈现拥塞,拥塞窗口的值就能够再增大一些,以便把更多的数据包发送出去,但只需网络呈现拥塞,拥塞窗口的值就应该减小一些,以削减注入到网络中的数据包数。



            常见的 TCP 拥塞操控算法

            本文将例举现在 Linux 内核默许的 Reno 算法和 Google 的 BBR 算法进行阐明,其间依据丢包的拥塞操控算法 Reno 因为十分闻名,所以常常作为教材的要点阐明目标。

            Reno

            Reno 被许多教材(例如:《计算机网络彩票1号平台-头条面试题 | TCP 的拥塞操控原理——自顶向下的办法》)所介绍,适用于低延时、低带宽的网络,它将拥塞操控的进程分为四个阶段:慢发动、拥塞防止、快重传和快康复,对应的状况如下所示:


            • 慢发动阶段思路是不要一开始就发送很多的数据,先勘探一下网络的拥塞程度,也便是说由小到大逐步添加拥塞窗口的巨细,在没有呈现丢包时每收到一个 ACK 就将拥塞窗口巨细加一(单位是 MSS,最大单个报文段长度),每次序发送窗口添加一倍,呈指数添加,若呈现丢包,则将拥塞窗口折半,进入拥塞防止阶段;
            • 当窗口抵达慢发动阈值或呈现丢包时,进入拥塞防止阶段,窗口每次序加一,呈线性添加;当收到对一个报文的三个重复的 ACK 时,以为这个报文的下一个报文丢掉了,进入快重传阶段,要求接收方在收到一个失序的报文段后就当即宣布重复承认(为的是使发送方及早知道有报文段没有抵达对方,可进步网络吞吐量约20%)而不要比及自己发送数据时捎带承认;
            • 快重传完成后进入快康复阶段,将慢发动阈值修改为当时拥塞窗口值的一半,一起拥塞窗口值等于慢发动阈值,然后进入拥塞防止阶段,重复上述进程。

            BBR

            BBR 是谷歌在 2016 年提出的一种新的拥塞操控算法,现已在 Youtube 服务器和谷歌跨数据中心广域网上布置,据 Youtube 官方数据称,布置 BBR 后,在全球范围内拜访 Youtube 的推迟下降了 53%,在时延较高的发展中国家,推迟下降了 80%。

            BBR 算法不将呈现丢包或时延添加作为拥塞的信号,而是以为当网络上的数据包总量大于瓶颈链路带宽和时延的乘积时才呈现了拥塞,所以 BBR 也称为依据拥塞的拥塞操控算法(Congestion-Based Congestion Control),其适用网络为高带宽、高时延、有必定丢包率的长肥网络,能够有用下降传输时延,并确保较高的吞吐量,与其他两个常见算法发包速率比照如下:


            BBR 算法周期性地勘探网络的容量,替换丈量一段时间内的带宽极大值和时延极小值,将其乘积作为作为拥塞窗口巨细,使得拥塞窗口始的值一直与网络的容量保持一致。

            所以 BBR 算法处理了两个比较首要的问题:

            • 在有必定丢包率的网络链路上充分运用带宽。

            合适高推迟、高带宽的网络链路。

            • 下降网络链路上的 buffer 占用率,然后下降推迟。

            合适慢速接入网络的用户。

            总结

            现在有十分多的 TCP 的拥塞操控协议,例如:

            • 依据丢包的拥塞操控:将丢包视为呈现拥塞,采纳缓慢勘探的办法,逐步增大拥塞窗口,当呈现丢包时,将拥塞窗口减小,如 Reno、Cubic 等。
            • 依据时延的拥塞操控:将时延添加视为呈现拥塞,延时添加时增大拥塞窗口,延时减小时减小拥塞窗口,如 Vegas、FastTCP 等。
            • 依据链路容量的拥塞操控:实时丈量网络带宽和时延,以为网络上报文总量大于带宽时延乘积时呈现了拥塞,如 BBR。
            • 依据学习的拥塞操控:没有特定的拥塞信号,而是凭借点评函数,依据练习数据,运用机器学习的办法构成一个操控战略,如 Remy。

            从运用的视点来说,咱们应该依据本身的实际情况来挑选自己机器的拥塞操控协议(而不是跟风 BBR),一起关于拥塞操控原理的把握(尤其是把握 Reno 的操控机理和几个重要阶段)能够加强关于网络发包机制的了解,在排查问题或面临面试的时分有更好的体现。

            此外,拥塞操控仅仅 TCP 相关考点中的一个部分,还有许多的常见的高频考点能够顺带去看看,例如:

            • OSI 模型是什么
            • 有哪些协议是依据 TCP 的,哪些是依据 UDP 的
            • 为什么树立衔接需求三次握手,而断开衔接需求四次握手彩票1号平台-头条面试题 | TCP 的拥塞操控原理
            • TCP首部长度,有哪些字段
            • 三次握手进程中有哪些不安全性

            本文作者彩票1号平台-头条面试题 | TCP 的拥塞操控原理:Nova Kwok

            声明:本文归 “力扣” 版权所有,如需转载请联络。

            文中部分图片来源于网络,为非商业用途运用,如有侵权联络删去。

            请关注微信公众号
            微信二维码
            不容错过
            Powered By Z-BlogPHP