当前位置:网站首页>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 了 .
边栏推荐
- 项目连接数据库遇到的问题及解决
- Improved deep embedded clustering with local structure preservation (Idec)
- LeetCode:34. Find the first and last positions of elements in a sorted array
- 【剑指offer】序列化二叉树
- Detailed explanation of dynamic planning
- Cesium draw points, lines, and faces
- LeetCode:124. 二叉树中的最大路径和
- vb.net 随窗口改变,缩放控件大小以及保持相对位置
- Variable length parameter
- Selenium+Pytest自动化测试框架实战(下)
猜你喜欢
随机推荐
A convolution substitution of attention mechanism
IJCAI2022论文合集(持续更新中)
Booking of tourism products in Gansu quadrupled: "green horse" became popular, and one room of B & B around Gansu museum was hard to find
[MySQL] limit implements paging
LeetCode:162. Looking for peak
Cesium draw points, lines, and faces
Post training quantification of bminf
Improved deep embedded clustering with local structure preservation (Idec)
LeetCode:剑指 Offer 04. 二维数组中的查找
Tdengine biweekly selection of community issues | phase III
R language ggplot2 visualization: place the title of the visualization image in the upper left corner of the image (customize Title position in top left of ggplot2 graph)
Advanced Computer Network Review(5)——COPE
BMINF的後訓練量化實現
Compétences en mémoire des graphiques UML
LeetCode:124. Maximum path sum in binary tree
可变长参数
Using pkgbuild:: find in R language_ Rtools check whether rtools is available and use sys The which function checks whether make exists, installs it if not, and binds R and rtools with the writelines
不同的数据驱动代码执行相同的测试场景
[OC-Foundation框架]---【集合数组】
R language ggplot2 visualization, custom ggplot2 visualization image legend background color of legend