Arreglando bufferbloat en la red doméstica

9

En nuestra red doméstica, con una red continua de IO, las latencias se vuelven ridículas. Está bien con cargas ligeras, pero rápidamente se vuelve inutilizable si, por ejemplo, estoy enviando una gran cantidad de archivos pequeños, otras transferencias se detienen esencialmente. Los pings apenas llegan.

Topología simple: un módem de banda ancha / enrutador WIFI en una sola caja, con algunos clientes inalámbricos y algunos cableados.

He intentado configurar ifconfig wlan0/eth0 txqueuelen 1en todos los clientes, esto parece ayudar un poco, pero no mucho.

Consejos bienvenidos: ¿cómo debo hacer para diagnosticar y eliminar problemas de latencia? ¿Hay más opciones de configuración que puedo establecer en los clientes, o tal vez un mejor enrutador WIFI podría ayudar?

cuu508
fuente

Respuestas:

3

Lo que necesita es calidad de servicio y un algoritmo de colas modificable. Recomiendo una configuración como esta si está contento de jugar con los componentes internos de Linux / FreeBSD y tiene algo de dinero extra:

+------+     +--------+      +------+<----> Wireless Access Point
|Router|<--->|Firewall|<---->|Switch|
+------+     +--------+      +------+<----> Wired computers

Donde el firewall es una máquina Linux o FreeBSD o similar con 2 tarjetas de red que pueden imponer algunas reglas avanzadas de cola y calidad de servicio en el tráfico.

Tuve que hacer algo similar para detener el tiempo de espera de las búsquedas de DNS al realizar grandes transferencias de datos a través de una conexión a Internet más lenta.

La otra opción es obtener un mejor enrutador, uno en el que pueda instalar dd-wrt o open-wrt, ya que creo que estos dos firmwares proporcionan más QoS, etc., que los enrutadores domésticos estándar.

Majenko
fuente
2

He intentado configurar ifconfig wlan0/eth0 txqueuelen 1en todos los clientes ...

Ese comando reduce el tamaño del búfer a 1 paquete en esa máquina. La máquina importante para ejecutar este comando es el cuello de botella para su red, es decir, la máquina que tiene la conexión gigabit en un lado y la conexión mucho más lenta a Internet en el otro. Por lo tanto, ¡ es el enrutador en el que desea ejecutar ese comando, no los clientes!
Asegúrese de ejecutar el comando en la interfaz correcta (solo la interfaz LAN saliente) .

Por supuesto, esto solo funcionará si su enrutador ejecuta Linux y le permite ejecutar comandos. Afortunadamente, la mayoría de los firmwares personalizados para enrutadores domésticos (DD-WRT, OpenWRT, Tomato) sí.


Cabe señalar que reducir el tamaño del búfer de esta manera puede arruinar la QoS, por lo que si está utilizando la QoS en su enrutador, es mejor que deje el tamaño del búfer solo y solo use QoS para limitar las velocidades de carga / descarga de cada cliente estar significativamente por debajo de la carga / descarga máxima de la conexión ... aunque esto tiene la desventaja obvia de tener ancho de banda no utilizado cuando solo una persona está conectada.

BlueRaja - Danny Pflughoeft
fuente
1

QoS o Quality of Service es una especie de orden y establecimiento de prioridades para los paquetes que serán procesados ​​por el enrutador ... Esto es exactamente lo que debería tener en cuenta cuando tenga tales problemas ... Intente buscar en el panel de configuración de sus enrutadores y habilite QoS ... Es mejor usar la configuración manual en su caso, pero debe conocer el orden de prioridad de los paquetes que desea procesar primero a último.

morie
fuente
0

Estoy usando Windows y Mac en lugar de Linux, pero una solución para mí fue cambiar de un enrutador Netgear justo debajo de la caja de los ISP a un enrutador Edge, y configurar un enrutamiento inteligente (que viene de Linux)

George Marengo
fuente