Applies To:
Show VersionsBIG-IP APM
- 14.1.2, 14.1.0
BIG-IP LTM
- 14.1.2, 14.1.0
BIG-IP AFM
- 14.1.2, 14.1.0
BIG-IP DNS
- 14.1.2, 14.1.0
BIG-IP ASM
- 14.1.2, 14.1.0
Congestion control algorithms for TCP profiles
Congestion control settings
The Congestion Control setting includes delay-based and hybrid algorithms, which can address TCP performance issues. Use this chart to assist in selecting the TCP profile setting that best corresponds to your network conditions.
Congestion Control Setting | Description |
---|---|
BBR | Specifies that the system uses a TCP algorithm that continuously measures the connection's maximum delivery rate (bottleneck bandwidth) and minimum round trip time. |
CAIA Delay-Gradient (CDG) | Specifies that the system uses a delay-based TCP that senses the onset of congestion by variations in Round Trip Time (RTT). |
CAIA Hamilton Delay (CHD) | Specifies that the system uses a TCP algorithm that aims to keep network queuing delays below a particular threshold (queue_threshold) and decides to reduce the congestion window (cwnd) probabilistically based on its estimate of the network queuing delay. |
CUBIC | Specifies that the system uses a TCP algorithm that is optimized for high bandwidth, high delay networks. |
High Speed | Specifies that the system uses a more aggressive, loss-based algorithm. RFC 3649: HighSpeed TCP for Large Congestion Windows. |
Illinois | Specifies that the system uses a TCP algorithm that is especially targeted at high-speed, long-distance networks. |
New Reno | Specifies that the system uses a modification to the Reno algorithm that responds to partial acknowledgements when SACKs are unavailable. RFC 2582: The NewReno Modification to TCP's Fast Recovery Algorithm. |
Reno | Specifies that the system uses an implementation of the TCP Fast Recovery algorithm, which is based on the implementation in the BSD Reno release. RFC 2581: TCP Congestion Control. |
Scalable | Specifies that the system uses a TCP algorithm modification that adds a scalable, delay-based and loss-based component into the Reno algorithm. |
Vegas | Specifies that the system uses a TCP algorithm modification that adds a delay-based and loss-based component into the Reno algorithm. |
Westwood+ | Specifies that the system uses a TCP algorithm based on a bandwidth estimation metric. |
Woodside | Specifies that the system uses a TCP algorithm that is especially targeted at high-speed, long-distance networks with enhanced congestion recovery. |
About BBR congestion control
Starting with BIG-IP version 14.1.0, TCP profiles can now be customized to use BBR congestion control.
Bottleneck Bandwidth and Round-trip propagation time (BBR) is a congestion control algorithm developed by Google. It is an alternative to loss-based congestion control because it is designed to respond to actual congestion rather than simple packet loss. Effective for latency-sensitive applications, BBR optimizes the speed at which traffic is sent by measuring the fastest way to send data across different network routes. BBR is the only TCP algorithm to estimate the speed of traffic to determine the best way to send it, regardless of whether packets have been lost.
You can apply BBR congestion control to a TCP profile on the BIG-IP system using the following methods:
- TMUI
- The congestion control drop down menu is found on the TCP Profile page: Local Traffic > Profiles > Protocol > TCP > TCP Profile
- TMSH
- tmsh modify ltm profile tcp <profile_name> congestion-control bbr
- iControl SOAP API
-
>>> b.LocalLB.ProfileTCP.set_congestion_control_mode(profile_names=['new_tcp'], values=[{'default_flag': False, 'value': 'TCP_CONGESTION_CONTROL_BBR'}]); >>> b.LocalLB.ProfileTCP.get_congestion_control_mode(profile_names=['new_tcp']) [{'default_flag': False, 'value': 'TCP_CONGESTION_CONTROL_BBR'}]
- iControl REST API
-
$ restcurl -X PUT -u admin:admin_pw /mgmt/tm/ltm/profile/tcp/new-tcp -d '{"congestionControl":"bbr"}' { "kind": "tm:ltm:profile:tcp:tcpstate", "name": "new-tcp", ... "congestionControl": "bbr", ... }
- SNMP
-
# snmpwalk -v 2c -c public localhost ltmTcpProfileCongestionCtrl | grep bbr F5-BIGIP-LOCAL-MIB::ltmTcpProfileCongestionCtrl."/Common/new_tcp" = INTEGER: bbr(12)
- iRules
- TCP::congestion <none|reno|newreno|highspeed|scalable|vegas |cdg|chd|illinois|woodside|cubic|westwood|bbr>