How to enable modern Congestion Control algorythms BBR2/BBR and QUIC in FreeBSD 12.X (13.X, 14.X, 15.X)

Good News!

HowTo about BBR

And VERY INTERESTING press release about Fujitsu work on something like BBR2/BBR/QUIC more early than Netflix/Google.

What about CDG ?
I see that cc_cdg exist in FreeBSD 12.2... Try to load and test, and all looks like working. Please confirm if You have a positive using experience in this.

Anyway, only CDG CC is better than any other in pfSense / FreeBSD 12.2... (and **this list THE SAME AT LEAST 8+ YEARS!!!!**)


ls -l /boot/kernel/cc_*

/boot/kernel/cc_cdg.ko
/boot/kernel/cc_chd.ko
/boot/kernel/cc_cubic.ko
/boot/kernel/cc_dctcp.ko
/boot/kernel/cc_hd.ko
/boot/kernel/cc_htcp.ko
/boot/kernel/cc_vegas.ko
 
It'd really be good if someone could share iperf3 performance testings/differencies on them all.

I think, if I recall correctly, cubic is the fastest one, at least when it comes to web servers..
Metering performance of networking from CC protocols point of view ONLY may sense ON REAL LOADING IN PRODUCTION or on production infrastructure (or its ideal 2-nd copy) by hardware or software like TRex packet generators GUDED BY SCRIPTS.

Due to its nature iperf3 (and it’s predecessor iperf) even in multi-flow mode - GREAT ONLY FOR TESTING HRADWARE THROUGHPUT ON NODE LEVEL (mean how CPU, PCI bus, NIC, memory and OS drivers and IP stack ABLE to keep hi-loading packet flow).

On each other level OUTSIDE the server’s case - You need MUCH MORE COMPLEX testing that IN FACT MAY IMITATE REAL TRAFFIC and TROUGHTPUT.
This not only mean MUXING IP’s PROTOCOLS in different proportions but VARIABLE PACKETS FLOW and OVERALL LOADING.

Because of enterprise-level price tag for even aftermarket hardware packet generators (and a much less flexibility, or the same high-price tag on license for mixing types of traffic) are not in budget of most here on forum, better to using TRex (or similar) SOFTWARE PACKET GENERATORS.
Only ONE LIMITATION that Youhave in this case (like any other software packets generators in this world in 2024, even written on C++ or Go): TOP BANDWIDTH NOT POSSIBLE MORE 200Gb/s,- because all this generator’s code executed in user space (some packet generators have some modules that works in kernel space, so You need custom-compiled kernel, but this is only to be able working on non-top-servers-hardware, to be more accessible for small companies and developers/enthusiasts).

So, go to the TRex web, read the docs,
, study, and MORE PRACTICE ON EXAMPLES (Source 1 and Source 2, and Source 3).

And of course, not forget to search solutions in TRex Google User Forum!
 
I think, if I recall correctly, cubic is the fastest one, at least when it comes to web servers..
Let me a little bit correct You: no, BBR/BBR2 are better. QUIC are best.

“fastest” - is WRONG definition, much more correct “be able to achieve significant less delays, jitters”, but MOST IMPORTANTLY that QUIC create LESS LOADING ON SERVER (because multi-streaming in one TCP/IP session), INTEGRATE BETTER SECURITY technologies (TLS 1.3, etc), and BETTER COMPETE AGAINST TRADITIONAL CC ALGORITHMS (this mean traffic from Your servers would be SATURATE PHYSICAL AVAILABLE BANDWIDTH (no matter uplink to ISP or inside ISP infrastructure or between ISPs overseas) MUCH SPEEDY THAN TRADITIONAL AND OLDEST CC).

Sad but true: in fact last 5-7 years this is A WAR BETWEEN CC ALGORITHMS.
 
Back
Top