当前位置:网站首页>Advanced Computer Network Review(3)——BBR
Advanced Computer Network Review(3)——BBR
2022-07-06 09:02:00 【Zheyuan Zou】
This is the third in the review series , It mainly combs BBR Some key points related to congestion control , The review points given by the teacher are as follows :
1. be based on loss What is the problem of congestion control ? Why? ?
2. Understand the following figure
The carding part of this article refers to Zheng Zhi, a teacher at the University of science and technology of China 《 Advanced computer networks 》 Relevant parts of , Hereby declare .
One 、 be based on loss What is the problem of congestion control ? Why? ?
stay BBR Not before , Some previous congestion control protocols ( Such as Reno、Cubic) And so on are based on the packet loss rate (loss) Of , That is, it will loss As a measure of whether the network is congested , The more packets are lost per unit time , The protocol will simply consider the network The more serious the congestion is , Thus, a series of actions will be carried out .
This simple is based on loss The effect of congestion control method in early Internet is acceptable , Because the network connection at that time was Wired low bandwidth links Mainly , And the network switching node buffer It's not that big . But with the continuous progress of the network , be based on loss The congestion control method of began to become no longer applicable :
1.1. The bandwidth oscillates violently , Throughput is very low
First, with the network The increasing link bandwidth and the widespread use of wireless links , The possibility of packet loss on the link is greatly increased ( Packet loss due to error 、 Packet loss due to unstable wireless link ). If you still simply think of packet loss at this time = congestion , It will lead to Violent oscillation of transmission bandwidth A lot of things happen .
The reason for the violent oscillation is tradition TCP Congestion control AIMD Characteristics of ( Additive increase 、 Multiplicative subtraction ), The protocol entity itself tentatively increases its sending window size a little when it is not congested , Once encountering congestion, the sending window will plummet to half of the original, which will cause severe bandwidth oscillation , The actual throughput is not high .
1.2. High delay
The essence of high latency is with the development of network equipment , Of each device in the link buffer The size is also increasing , because Data temporarily cached due to busy links It has also become more .
Be careful , Once on the device buffer Start caching data , At this time, link congestion has essentially occurred , An idealized congestion control protocol should start adjusting immediately . But for based on loss In terms of Congestion Control Protocol , It must wait until packet loss occurs before it starts congestion control . At the beginning of packet loss, it means that the device buffer on the path link has also burst , It has been a long time since congestion occurred , At this time, it is already very late to start congestion control . This is the meaning of the two key points in the above figure ( Circle with a red box ):
1.3. Aggressive
All based on loss Congestion control protocols always tend to Squeeze the buffer and then retreat , This aggressive behavior will not be based on loss The congestion control protocol of completely ejects the network , Make it unable to get effective bandwidth guarantee , It has greatly damaged the fairness of the network .
2.BBR How to do congestion control
First BBR The full name is (Bottleneck Bandwidth and Round-trip propagation time), be based on Bottleneck link bandwidth and round trip propagation delay Congestion Control Protocol .BBR There are two essentials of action : One is based on BDP( Let's introduce ) To control the link inflight Of traffic , The second is to control the packet sending rhythm according to the bottleneck link bandwidth , Make it Adapt to BtlBW The change of .
Bottleneck link , seeing the name of a thing one thinks of its function , It refers to the entire communication link The link with the smallest bandwidth , It is the source of the whole communication link - The decisive factor of target throughput , If there is congestion , In the bottleneck link, the cache of packets will occur first , Its bandwidth is called Bottleneck link bandwidth (BtlBW).
Round trip propagation delay (RTprop) The Internet Completely light load ( There is no waiting time ) Sum of round-trip propagation delay of time . The product of these two is defined as B D P = B t l B W × R T p r o p BDP = BtlBW \times RTprop BDP=BtlBW×RTprop. You can imagine seeing BDP That means When the network does not produce congestion , Accumulate (inflight) The maximum amount of data in the whole link .
however BtlBW and RTprop Is in constant change , This needs to be BBR The protocol itself constantly measures these two values , Go ahead in time BDP Calculation and control of . How to do this Measurement of two quantities 、 How to base on BtlBW Bandwidth for rhythm adjustment 、 How to base on BDP Control link inflight Traffic ( It's based on BDP To set up TCP In the message cwnd Field ) They are all details in the agreement , It is not intended to analyze the details of the agreement in detail here ( It's a long and trivial story , If you have time, write slowly , But digging a hole seems to be something I've never filled in :).
BBR The protocol divides the whole communication process into 3 Stages : Application limited stage 、 Bandwidth constrained phase 、 Cache restricted phase :
2.1 Application limited stage
The application restricted stage is circled in yellow below :
In the application limited stage , The network link is in a light load state , How fast you can send depends on how fast the application wants to send , At this time Round trip delay is exactly equal to RTprop No queuing time , Because of light load ). and Delivery rate ( Number of packets successfully sent per unit time ) It is also similar to what the application side injects into the network inflight The flow is positively correlated , The slope is 1 R T p r o p \frac{1}{RTprop} RTprop1.
2.2 Bandwidth constrained phase
As applications inject data faster , The network begins to enter the stage of bandwidth limitation from the stage of application limitation . Pay attention to both Transition point inflight The flow is just BDP, This is the best action point for congestion control . After this point, it will enter the stage of bandwidth limitation , This stage will At first, data is buffered in the bottleneck link buffer in . The delivery rate at this stage will also be strictly limited to BtlBW, The limiting factor is the bottleneck link . At this time, the round-trip delay also begins to increase ( Because there was waiting time at the beginning ), Slope ( That is, release speed ) by 1 B t l B W \frac{1}{BtlBW} BtlBW1.
2.3 Cache restricted phase
Note the transition point from the bandwidth constrained phase to the cache constrained phase , Its inflight The flow is BDP+BtlBufSize, It means at this time The buffer on the bottleneck link is full , If you continue to inject new traffic, there will be buffer overflow and packet loss . So after entering the cache restriction stage , Because there may be packet loss , Its delivery rate and round trip time have become It's impossible to estimate 了 .
边栏推荐
- SAP ui5 date type sap ui. model. type. Analysis of the parsing format of date
- Leetcode: Sword Finger offer 42. Somme maximale des sous - tableaux consécutifs
- ESP8266-RTOS物联网开发
- LeetCode:394. String decoding
- LeetCode:39. 组合总和
- Esp8266-rtos IOT development
- LeetCode:214. Shortest palindrome string
- Selenium+Pytest自动化测试框架实战(下)
- 可变长参数
- requests的深入刨析及封装调用
猜你喜欢
BN折叠及其量化
LeetCode41——First Missing Positive——hashing in place & swap
Pytest参数化你不知道的一些使用技巧 /你不知道的pytest
【剑指offer】序列化二叉树
Variable length parameter
使用latex导出IEEE文献格式
[OC foundation framework] - string and date and time >
如何正确截取字符串(例:应用报错信息截取入库操作)
Chapter 1 :Application of Artificial intelligence in Drug Design:Opportunity and Challenges
Alibaba cloud server mining virus solution (practiced)
随机推荐
KDD 2022 paper collection (under continuous update)
[today in history] February 13: the father of transistors was born The 20th anniversary of net; Agile software development manifesto was born
LeetCode:162. 寻找峰值
Intel distiller Toolkit - Quantitative implementation 1
LeetCode:39. Combined sum
[embedded] cortex m4f DSP Library
CUDA implementation of self defined convolution attention operator
[OC-Foundation框架]-<字符串And日期与时间>
在QWidget上实现窗口阻塞
SAP ui5 date type sap ui. model. type. Analysis of the parsing format of date
LeetCode:836. Rectangle overlap
LeetCode:836. 矩形重叠
不同的数据驱动代码执行相同的测试场景
UML圖記憶技巧
LeetCode:394. 字符串解码
LeetCode:剑指 Offer 42. 连续子数组的最大和
【文本生成】论文合集推荐丨 斯坦福研究者引入时间控制方法 长文本生成更流畅
A convolution substitution of attention mechanism
Warning in install. packages : package ‘RGtk2’ is not available for this version of R
BMINF的后训练量化实现