当前位置:网站首页>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_DOWN State entry and exit
PROBE_USE State entry and exit
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 .
边栏推荐
- Summary of idea practical skills: how to rename a project or module to completely solve all the problems you encounter that do not work. It is suggested that the five-star collection be your daughter
- Packaging_ Conversion between basic type and string type
- After screwing the screws in the factory for two years, I earned more than 10000 yuan a month by "testing" and counterattacked
- Appium introduction and environment installation
- Pytest testing framework
- JMeter implementation specifies concurrent loop testing
- Axi DMA IP core operation process
- Is the waiting insurance record a waiting insurance evaluation? What is the relationship between the two?
- Debugging Analysis of Kernel panics and Kernel oopses using System Map
- Geek University cloud native training camp
猜你喜欢

ping: www.baidu.com: 未知的名称或服务

Variable setting in postman

Background of master data construction

Football information query system based on C language course report + project source code + demo ppt+ project screenshot

JMeter response assertion

自己总结的wireshark抓包技巧

Microsoft Certification (dynamic 365) test

Realization of truth table assignment by discrete mathematical programming

Tutorial on obtaining JD cookies by mobile browser

基于STM32的物联网下智能化养鱼鱼缸控制控制系统
随机推荐
Jar package operation
Big factories go out to sea and lose "posture"
基于C语言实现的足球信息查询系统 课程报告+项目源码+演示PPT+项目截图
memcached全面剖析–3. memcached的删除机制和发展方向
ping: www.baidu.com: 未知的名称或服务
Rename and delete files
[cloud native learning notes] learn about kubernetes' pod
JUnit unit test
浅谈MySql update会锁定哪些范围的数据
123. 买卖股票的最佳时机 III
TCP Jprobe utilization problem location
DHCP operation
After 5 months' test, it took 15K to come for an interview. When I asked, it was not worth even 5K. It was really
Power apps Guide
Variable setting in postman
Role of wait function
Alibaba cloud schedules tasks and automatically releases them
Subnet partition operation
网络安全审查办公室对知网启动网络安全审查
VIM usage