Colaborador: Tim Wilkerson KN6PLV
Las redes de malla AREDN® a menudo carecen del ancho de banda que podría esperar. Aquí analizamos lo que puede estar sucediendo, una propuesta para solucionarlo y los resultados de estas correcciones.
Introducción
Los enlaces SNR bajos entre nodos rompen el algoritmo de «distancia automática» de Linux, lo que resulta en una mala utilización del ancho de banda en los enlaces de nodos. Este documento describe Link Quality Manager, que se puede habilitar en los nodos para administrar mejor los enlaces de RF. Por lo general, se han observado mejoras de ancho de banda de 3x, pero son posibles mejoras mucho mayores.
Velocidad de enlace esperada frente a velocidades de enlace reales
Todos hemos apuntado un nodo AREDN® a otro nodo, encontrado el punto óptimo para la mejor SNR y luego nos hemos sentido decepcionados por la cantidad de ancho de banda que parece haber. WiFi es famoso por informar en exceso cuánto ancho de banda está disponible en comparación con lo que realmente obtiene (piense en 1/6 en muchos casos), pero de alguna manera todos esperamos que un enlace de 2 millas con SNR> 20 haga más de 1 Mbps. Desafortunadamente, los datos de rendimiento reales son difíciles de obtener, y los experimentos para ver qué podría mejorar son difíciles de coordinar. A continuación se describen varias teorías.
Teorías de rendimiento
Nodos ocultos
El problema clásico de las redes CSMA como AREDN® es el de los “nodos ocultos”. CSMA funciona mediante nodos que escuchan los transmisores antes de transmitir. Esto puede fallar cuando los nodos están dispersos, de modo que solo algunos nodos pueden escuchar a otros, lo que da como resultado que muchos transmitan simultáneamente, corrompiendo los datos, requiriendo retransmisiones y desperdiciando ancho de banda.
Si bien esto podría ser un problema real para las redes AREDN®, solo tiene efecto cuando hay muchas colisiones. Para que haya muchas colisiones tiene que haber mucho tráfico… pero las redes AREDN® están en gran medida inactivas. Probablemente el mayor generador de tráfico sea OLSRD, y en la red del Área de la Bahía de SF (por ejemplo) OLSR representa solo unos pocos kilobytes/segundo. Estadísticamente, es difícil atribuir los problemas de ancho de banda a los nodos ocultos.
Decremento del ancho de banda
La aniquilación del ancho de banda ocurre cuando demasiadas radios usan el mismo canal en ubicaciones similares y, por lo tanto, en lugar de agregar ancho de banda, cada radio termina con una parte del original.
Como se indicó anteriormente, AREDN® actualmente no utiliza gran parte de su ancho de banda disponible. Hay algo de sobrecarga al tener varias radios en el mismo canal, incluso si no están muy activas, pero no es significativa. Compare esto con una configuración wifi doméstica: si muchos dispositivos usan constantemente mucho ancho de banda, definitivamente se nota.
Al verificar el estado de varias antenas omnidireccionales en la red del Área de la Bahía de SF (por ejemplo), rara vez hay más de cinco vecinos en cada nodo y nunca más de diez. Si todos estuvieran transmitiendo constantemente, habría un problema, pero esto no ocurre con frecuencia.
CSMA frente a TDMA
TDMA es más eficiente que CSMA y evita muchos de sus problemas. Sin embargo, Linux actualmente no tiene implementación del protocolo; está restringida a radios propietarias. Esto significa que AREDN®, tal como se contempla actualmente, no puede admitir TDMA. Si bien las radios TDMA pueden tener un lugar en una red AREDN®, parecen más adecuadas para el funcionamiento de la red troncal.
Dicho esto, competir para adoptar TDMA sin comprender por qué falla la red CSMA actual es problemático. Si los nodos ocultos no son el problema y la utilización de la red es demasiado baja para diezmar el ancho de banda, ¿cómo solucionaría esto TDMA? ¿Cuál es realmente el problema?
Teoría alternativa
Clase de cobertura
El estándar Wi-Fi (IEEE Std 802.11TM-2007, Parte 11) analiza brevemente las «Clases de cobertura». Esto define la propagación del tiempo de aire para la señal wifi. Para las redes domésticas, este parámetro no es importante ya que los dispositivos están muy juntos y el tiempo real que tardan los paquetes en transferirse entre dispositivos es prácticamente cero. Sin embargo, para redes de larga distancia este parámetro se vuelve más importante. Una señal wifi se propaga aproximadamente a una milla cada cinco microsegundos. Esto parece rápido, pero rápidamente se vuelve significativo, especialmente en enlaces de 10 y 20 millas. La clase de cobertura está diseñada para tener en cuenta el tiempo de propagación de wifi. Si la Clase de cobertura es demasiado alta, los dispositivos esperarán más de lo necesario para retransmitir los paquetes fallidos. Si la clase es demasiado baja, los dispositivos retransmitirán paquetes innecesariamente.
Distancia automática
AREDN® proporciona una configuración de «Distancia al vecino MÁS LEJANO» que, indirectamente, permite establecer la Clase de cobertura (el kernel de Linux calcula la clase de cobertura a partir de la configuración de distancia). Se proporciona y habilita una opción «automática» de manera predeterminada. «Auto» utiliza un algoritmo de «reconocimiento dinámico» en el núcleo que ajusta automáticamente la Clase de Cobertura. El ajuste se basa en la sincronización de los paquetes enviados y reconocidos desde otros dispositivos. La clase siempre será lo suficientemente grande para manejar el dispositivo más distante.
AREDN® es una red abierta, ad hoc, que permite que cualquier nodo se asocie con cualquier otro nodo siempre que utilice el mismo canal y ancho de banda. Esto da como resultado que los nodos distantes con SNR muy bajos se asocien entre sí. Desafortunadamente, el algoritmo de reconocimiento dinámico no sabe que estos enlaces son esencialmente inutilizables, pero aun así ajusta la clase de cobertura para acomodarlos. El resultado es una Clase de Cobertura superior a la necesaria para un funcionamiento óptimo de la red, lo que genera retrasos más prolongados en la retransmisión de paquetes. Esto agrava las retransmisiones ya aumentadas inherentes a los enlaces más largos y reduce aún más el ancho de banda.
Administrador de calidad de enlaces (LQM)
Link Quality Manager se puede habilitar en cualquier nodo que ejecute la compilación nocturna actual o un firmware más nuevo . Se ejecuta en segundo plano para evaluar los enlaces de RF y realizar automáticamente las siguientes acciones:
- Bloquea enlaces de radio que también son enlaces DtD
- Bloquea los enlaces de radio que tienen una SNR demasiado baja
- Bloquea enlaces de radio que son demasiado distantes
- Bloquea enlaces de radio con demasiados errores de retransmisión
- Establece la clase de cobertura del nodo en función del nodo no bloqueado más distante que es un vecino enrutable directo.
¿Qué significa esto?
- En ocasiones, los nodos se conectan directamente (DtD) a nodos coubicados que también utilizan el mismo canal. Aunque OLSRD debería preferir el enlace DtD, LQM garantiza que cualquier enlace de radio entre los nodos DtD siempre se ignore.
- LQM ignora los enlaces con una SNR demasiado baja para ser útil. La aplicación utiliza configuraciones ajustables para lograr esto: cae por debajo del SNR mínimo y el enlace se bloquea hasta que el SNR esté por encima del nivel de activación. La histéresis evita que los enlaces entren y salgan de un estado bloqueado. Esto evita que OLSR use enlaces deficientes.
- LQM limita qué tan lejos puede estar un nodo de un vecino y aún así tener un enlace confiable, incluso si hay una SNR alta. Cuanto más distante es un nodo, menor es el ancho de banda del enlace. Además, el ancho de banda total de un nodo se ve afectado por el nodo más distante con el que se comunica. LQM determina automáticamente la distancia entre los nodos utilizando la información de latitud y longitud disponible en la API sysinfo.json de cada nodo.
- Algunos enlaces pueden tener una SNR alta, no estar muy lejos, pero aun así tener un rendimiento terrible debido a errores de retransmisión excesivos. Si bien se esperan algunas retransmisiones, si esta tasa aumenta, el rendimiento se ve afectado. LQM bloquea enlaces con mala calidad de enlace.
- LQM desactiva la detección automática de distancia y asume el trabajo de administrar la Clase de Cobertura. LQM evalúa los enlaces no bloqueados y determina si hay al menos una ruta que utilice este enlace. Luego selecciona el enlace con la mayor distancia y lo usa para calcular la Clase de Cobertura.
Link Quality Manager actualiza su estado cada minuto y ajusta los nodos bloqueados y los cálculos de Clase de Cobertura . La pantalla Estado vecino muestra el estado de cada enlace, mientras que la configuración de LQM se puede ajustar en las pantallas Configuración básica o Configuración avanzada .
Lo que LQM no hace
LQM bloquea los nodos al bloquear el tráfico de las direcciones MAC apropiadas. Lo que no hace es evitar que los nodos se asocien con la radio. Sería ideal prohibir que los nodos de «rendimiento deficiente» se asocien con una radio o, alternativamente, decirle al nodo que no se asocie con radios distantes. Sin embargo, el modo wifi ad-hoc que se usa en AREDN® actualmente no admite esto.
Resultados de la prueba
LQM se ha implementado y probado en varios enlaces con diversos entornos y propiedades de radio, tanto en el área de la bahía de San Francisco como en el sur de California. Los primeros comentarios de estos experimentos han ayudado a refinar y mejorar LQM y los resultados que se presentan a continuación son de la versión 0.4
.
En las tablas a continuación, enumeramos varios enlaces de diferentes longitudes que se probaron con y sin LQM. Siempre que fue posible, se anotó la relación señal/ruido en ambos extremos del enlace. Los anchos de banda se midieron utilizando varias ejecuciones de iperf3 en ambas direcciones (los resultados separados por barras). Las notas adicionales resaltan la información relevante para los nodos y las pruebas relacionadas.
Red del Área de la Bahía de San Francisco
Distancia de enlace (millas) | SNR | Sin LQM (Mbps) | Con LQM (Mbps) | notas |
---|---|---|---|---|
2 | 25/28 | 0,282/2,79 | 13,3/20,6 | Canal 177, muy congestionado en esta zona |
2 | 36/31 | 38.8/32/6 | 50,4/50,9 | Canal 173, 20 MHz, sin congestión |
Red del Sur de California
Distancia de enlace (millas) | SNR | Sin LQM (Mbps) | Con LQM (Mbps) | notas |
---|---|---|---|---|
4 | 6.4/6.3 | 11.3/11.0 | Enlaces que van desde un solo nodo a otros 3 nodos con distancias similares, algo de congestión | |
5 | 11.4/11.1 | 16,0/15,8 | ||
5 | 9.2/9.1 | 16,7/16,4 | ||
11 | 2.5/2.2 | 9.6/9.4 | ||
20 | 4.9/4.7 | 4.8/4.6 | Sitio congestionado con una mezcla de enlaces cortos y muy largos | |
34 | 0,7/0,6 | 0,7/0,7 |
Estos resultados arrojan las siguientes conclusiones. LQM nunca afecta negativamente al ancho de banda, pero el efecto positivo puede ser muy grande. El único resultado donde no hubo una mejora medible fue en un sitio que tenía una combinación de muchos enlaces de larga y corta distancia. Como era de esperar, el enlace muy largo de 34 millas impactó negativamente en todos los demás enlaces en esa radio. Se observaron mejoras de 47x en un caso (que se verificó varias veces) y se produjo en un entorno ruidoso y lleno de gente. Las mejoras más típicas fueron alrededor de 3x.
Conclusiones
Los experimentos con Link Quality Manager han demostrado que podemos mejorar el ancho de banda disponible en los enlaces en una cantidad significativa sin realizar cambios físicos en la red. Las mejoras de ancho de banda 3x son comunes y en muchos casos se observa mucho más.
LQM también bloquea rutas en la red que son marginales, ya sea debido a una distancia excesiva, una SNR deficiente o altas retransmisiones. Esperamos que al bloquear los enlaces de bajo rendimiento, toda la red sea más estable y eficiente.
Los nodos con una combinación de enlaces largos y cortos mostraron menos mejoras porque la radio está optimizada para la distancia de enlace más larga. Esto aumenta los retrasos en las retransmisiones en los enlaces más cortos, lo que reduce el ancho de banda y reduce el rendimiento general del nodo. Podría ser mejor usar dos radios en esos sitios para descargar los enlaces más largos.