当前位置:网站首页>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 了 .
边栏推荐
- [text generation] recommended in the collection of papers - Stanford researchers introduce time control methods to make long text generation more smooth
- After reading the programmer's story, I can't help covering my chest...
- Niuke winter vacation training 6 maze 2
- Advanced Computer Network Review(4)——Congestion Control of MPTCP
- 不同的数据驱动代码执行相同的测试场景
- 超高效!Swagger-Yapi的秘密
- [OC]-<UI入门>--常用控件的学习
- Variable length parameter
- 随手记01
- @Jsonbackreference and @jsonmanagedreference (solve infinite recursion caused by bidirectional references in objects)
猜你喜欢

SimCLR:NLP中的对比学习

Advanced Computer Network Review(4)——Congestion Control of MPTCP

自定义卷积注意力算子的CUDA实现

Promise 在uniapp的简单使用

LeetCode:236. 二叉树的最近公共祖先

LeetCode:221. 最大正方形

Pytest之收集用例规则与运行指定用例
![[OC]-<UI入门>--常用控件-提示对话框 And 等待提示器(圈)](/img/af/a44c2845c254e4f48abde013344c2b.png)
[OC]-<UI入门>--常用控件-提示对话框 And 等待提示器(圈)

UML diagram memory skills

ant-design的走马灯(Carousel)组件在TS(typescript)环境中调用prev以及next方法
随机推荐
多元聚类分析
The ECU of 21 Audi q5l 45tfsi brushes is upgraded to master special adjustment, and the horsepower is safely and stably increased to 305 horsepower
【嵌入式】Cortex M4F DSP库
【嵌入式】使用JLINK RTT打印log
The ECU of 21 Audi q5l 45tfsi brushes is upgraded to master special adjustment, and the horsepower is safely and stably increased to 305 horsepower
BN折叠及其量化
UML图记忆技巧
TP-LINK enterprise router PPTP configuration
LeetCode:214. 最短回文串
LeetCode:236. The nearest common ancestor of binary tree
可变长参数
LeetCode:673. Number of longest increasing subsequences
[today in history] February 13: the father of transistors was born The 20th anniversary of net; Agile software development manifesto was born
【文本生成】论文合集推荐丨 斯坦福研究者引入时间控制方法 长文本生成更流畅
Navicat Premium 创建MySql 创建存储过程
LeetCode:836. Rectangle overlap
Leetcode: Jianzhi offer 04 Search in two-dimensional array
Problems encountered in connecting the database of the project and their solutions
[text generation] recommended in the collection of papers - Stanford researchers introduce time control methods to make long text generation more smooth
Philosophical enlightenment from single point to distributed