Я не знаю много о Mac, но ... проверка выходных
sysctl -a | grep net.inet.tcp
показал, что он знает о существовании алгоритмов контроля заторов:
net.inet.tcp.rfc1323: 1
явно позволяет реализовать RFC1323, директиву IEEE об улучшении TCP. Тем не менее, нет никакого поля, касающегося выбора CCA, что, в свою очередь, предполагает, что LEDBAT является единственным доступным выбором.
В Linux вместо этого хранятся доступные алгоритмы управления перегрузкой:
$ ls /lib/modules/`uname -r`/kernel/net/ipv4/
ah4.ko ip_gre.ko tcp_bic.ko tcp_illinois.ko tcp_veno.ko xfrm4_mode_beet.ko
esp4.ko ipip.ko tcp_diag.ko tcp_lp.ko tcp_westwood.ko xfrm4_mode_transport.ko
gre.ko ip_tunnel.ko tcp_highspeed.ko tcp_probe.ko tcp_yeah.ko xfrm4_mode_tunnel.ko
inet_diag.ko ip_vti.ko tcp_htcp.ko tcp_scalable.ko tunnel4.ko xfrm4_tunnel.ko
ipcomp.ko netfilter tcp_hybla.ko tcp_vegas.ko udp_diag.ko
Чтобы использовать один из них, вы просто запустите соответствующий модуль и измените /proc /sys следующим образом:
echo "westwood" > /proc/sys/net/ipv4/tcp_congestion_control
В Википедии есть хорошая, кристально чистая, информативная страница, посвященная алгоритмам контроля заторов. В частности, CCA по умолчанию в Linux,
# sysctl -a | grep net.ipv4 | grep congestion
net.ipv4.tcp_allowed_congestion_control = cubic reno
net.ipv4.tcp_available_congestion_control = cubic reno
net.ipv4.tcp_congestion_control = cubic
TCP-Cubic, хорошо описано здесь.
В отношении вашего вопроса указано, что:
[CUBIC] ... является менее агрессивной и более систематической производной TCP BIC, в которой окно является кубической функцией времени с момента последнего события перегрузки, с точкой перегиба, установленной в окне до события.
Точка перегиба - это место, где кривая меняет знак кривизны, то есть она переходит от вогнутой к выпуклой или наоборот. Это означает, что вблизи этой точки кривая почти точно линейная, а первый поправочный член исчезает, как описано выше.
Таким образом, это не правда, что
Контроль перегрузки TCP использует ... мультипликативное уменьшение при настройке размера скользящего окна
Это зависит от ОСО. Кроме того, стандартный в Linux, TCP-Cubic, практически линейно близок к последнему событию перегрузки.