当前位置:网站首页>Analysis of BBR congestion control state machine

Analysis of BBR congestion control state machine

2022-06-24 21:24:00 already_ skb

Catalog

BBR Description of the source file

Four stage ideal state diagram

STARTUP Entry and exit conditions

DRAIN Entry and exit conditions  

PROBE_BW Entry and exit conditions

PROBE_RTT Entry and exit conditions

PROBE_BW Internal state analysis

PROBE_UP State entry and exit

PROBE_DOWN State entry and exit

PROBE_USE State entry and exit

follow-up


BBR Description of the source file

 * A BBR flow starts in STARTUP, and ramps up its sending rate quickly.
 * When it estimates the pipe is full, it enters DRAIN to drain the queue.
 * In steady state a BBR flow only uses PROBE_BW and PROBE_RTT.
 * A long-lived BBR flow spends the vast majority of its time remaining
 * (repeatedly) in PROBE_BW, fully probing and utilizing the pipe's bandwidth
 * in a fair manner, with a small, bounded queue. *If* a flow has been
 * continuously sending for the entire min_rtt window, and hasn't seen an RTT
 * sample that matches or decreases its min_rtt estimate for 10 seconds, then
 * it briefly enters PROBE_RTT to cut inflight to a minimum value to re-probe
 * the path's two-way propagation delay (min_rtt). When exiting PROBE_RTT, if
 * we estimated that we reached the full bw of the pipe then we enter PROBE_BW;
 * otherwise we enter STARTUP to try to fill the pipe. 

Four stage ideal state diagram

       BBR Full state diagram  :

 PROBE_BW Status details :

 

STARTUP :TCP The stage entered after the connection is started , The main purpose is bandwidth detection , Consider convergence , Fast convergence to the maximum bandwidth of the link . The condition for this status to exit is that the maximum bandwidth of the link has been collected .

DRAIN: stay STARTUP The acquisition of the maximum link bandwidth in the phase is rough , This will cause many data packets to be cached in the link buffer in , The maximum bandwidth of the link will not increase because the intermediate link data is cached , So you need to empty the cached data . Exit conditions for this state infilgh The number of messages is just equal to max bw Corresponding cwnd.

PROBE_BW: Bandwidth utilization and uplink stage , On the one hand, it ensures that the detected bandwidth is fully utilized , In addition, it also detects the change of link bandwidth in real time .

PROBE_RTT: Multi stream fairness considers the introduction of a super mechanism , stay PROBE_BW After the state lasts for a long time , He needs to be punished , Free up some bandwidth for other streams .

STARTUP Entry and exit conditions

1. TCP Connection initialization start , Default entry STARTUP Stage ;

2. TCP Connected to the PROBE_RTT When the state exits , If no... Is currently collected full bw, Get into STARTUP state

3. stay STARTUP Phase acquired full bw after , sign out STARTU, Get into DRAIN state

DRAIN Entry and exit conditions  

1.  stay STARTUP Phase acquired full bw after , sign out STARTU, Get into DRAIN state

2. stay DRAIN state , At present inflight Less than or equal to max bw Converted target cwnd when , sign out DRAIN, Get into PROBE_BW state .

PROBE_BW Entry and exit conditions

1.  stay DRAIN state , At present inflight Less than or equal to max bw Converted target cwnd when , sign out DRAIN, Get into PROBE_BW state .

2. TCP Connected to the PROBE_RTT When the state exits , If... Is collected full bw, Get into PROBE_BW state

3. stay PROBE_BW Status too long , Nothing smaller has ever been collected rtt rise , continued 10s Back entry PROBE_RTT state

PROBE_RTT Entry and exit conditions

1.  stay PROBE_BW Status too long , Nothing smaller has ever been collected rtt rise , continued 10s Back entry PROBE_RTT state

2. stay PROBE_RTT The state lasts 200ms after , sign out PROBE_RTT state , Get into STARTUP perhaps PROBE_BW state .

PROBE_BW Internal state analysis

To follow up PROBE_BW State of pacing coefficient , Can be divided into 3 Medium state :

1. The coefficient is greater than 1, Probe status on bandwidth , Referred to as PROBE_UP

2. Coefficient less than 1, After bandwidth uplink drain, Referred to as PROBE_DOWN

3. The coefficient is equal to 1, Bandwidth utilization status , Referred to as PROBE_USE

PROBE_UP State entry and exit

1. Just in PROBE_BW The first small state of , Random entry

2. PROBE_BW The internal small status polling enters in turn

3. Exit conditions , At present PROBE_UP lasted min_rtt_us Time , And packet loss or inflight Greater than max bw Converted target cwnd.

PROBE_DOWN State entry and exit

1.  Just in PROBE_BW The first small state of , Random entry

2. PROBE_BW The internal small status polling enters in turn

3. Exit conditions , At present PROBE_UP lasted min_rtt_us Time , perhaps inflight Less than or equal to max bw Converted target cwnd.

PROBE_USE State entry and exit

1.  Just in PROBE_BW The first small state of , Random entry

2. PROBE_BW The internal small status polling enters in turn

3. stay PROBE_USE The state lasted min_rtt_us Time , immediate withdrawal

follow-up

Rationality of the mechanism and optimization strategy .

原网站

版权声明
本文为[already_ skb]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/02/202202211315156042.html