TCP Cubic es uno de los algoritmos de control de congestión de red, y suele ser el predeterminado en Linux, Unix y Windows. Funciona mejor en redes simples, sin WIFI, sin muchos flujos y saturaciones. Suele generar ping largos, lag y microcortes, porque empieza bien, apura locamente hasta que satura los buffers y empieza a perder paquetes, entendiendo así que debe reducir su velocidad, y repite el ciclo.
A una red WIFI como la mía le va algo más "inteligente", algo que, de antemano, mida el ancho de banda real, el RTT (Round Trip Delay o tiempo de ida y vuelta en redes sin perder paquetes), y ajuste el flujo de datos a una velocidad de crucero sin perder paquete alguno. Este protocolo es BBR (Botteneck Bandwidth and RTT) + FQ (Fair Queueing) se ajusta mejor al perfil de las nuevas redes, y el otro, el TCP Cubic está más experimentado, pero nació en otro tiempo.
En todo tráfico tiene que haber un policía, ese es FQ (Fair Queuing), y depende del Kernel, diviendo el flujo en varias colas, reparte justamente la conexión, evita que aparezca el chupón de datos, como la pelota en el fútbol, y reduce el bufferbloat (colas demasiado largas, llenas de ingentes cantidades de datos). Buen poli.
Hoy, con la IA, cualquiera puede ampliar este tema e investigar sobre ello lo que quiera, pero la experiencia propia todavía se requiere cuando realmente queremos saber hasta qué punto merece la pena cambiar.
Todo esto es muy interesante, pero la verdad se vive, y no se enseña (cita de Hermann Hesse), por eso me propuse compararlos en la práctica en un miniPC como el mío.
En un miniPC usado como ordenador personal creamos en /etc/sysctl.d/ el archivo 99-bbr.conf
Yo usé Thunar lanzado desde un terminal con permisos administrativos (root), y luego de forma gráfica cree el archivo en la carpeta correspondiente:
A ese archivo le añadimos el siguiente contenido abriendo el archivo, por ejemplo, con Mousepad:
net.core.default_qdisc=fq
net.ipv4.tcp_congestion_control=bbr
Guardar y reiniciar.
Podemos comprobar si está activado en nuestro sistema usando el siguiente comando en un terminal:
sysctl net.ipv4.tcp_congestion_control
Tendrá que devolvernos bbr
Usando este otro comando, podemos verificar si el policía se persona en la red:
tc qdisc show
Debe de mostrar algo así:
qdisc fq 0: dev enp1s0 root refcnt 2 limit 10000p flow_limit 100p buckets 1024 orphan_mask 1023 quantum 3028b initial_quantum 15140b low_rate_threshold 550Kbit refill_delay 40ms timer_slack 10us horizon 10s horizon_drop
No colgaría esta entrada si no tuviera la convicción de que mereció la pena. En una red precaria como la mía, y este miniPC parece agradecerlo, mostrando una agilidad en el "flow" de la WIFI que antes no percibía.
Ya me contarán. Gracias.



