当前位置:网站首页>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
 Insert picture description here
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 ):
 Insert picture description here
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).
 Insert picture description here
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 :
 Insert picture description here
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.
 Insert picture description here
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 了 .

原网站

版权声明
本文为[Zheyuan Zou]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/187/202207060856361233.html