En redes donde múltiples usuarios comparten el mismo enlace, la gestión del tráfico es crítica. Aquí es donde entra en juego SFQ (Stochastic Fairness Queueing), un algoritmo diseñado para repartir el ancho de banda de forma más justa entre diferentes flujos de tráfico.
Si trabajas con QoS, routers o infraestructuras donde la congestión es frecuente, entender SFQ puede marcar la diferencia entre una red estable y una caótica.
Al final del artículo encontrarás un pequeño test que te permitirá evaluar los conocimientos adquiridos en esta lectura
Qué es SFQ y por qué es importante en QoS
SFQ es un algoritmo de planificación de paquetes que busca garantizar equidad (fairness) entre distintos flujos de red.
En lugar de procesar los paquetes en orden de llegada (como hace FIFO), SFQ:
Identifica flujos individuales (por IP, puerto, protocolo).
Asigna cada flujo a una subcola.
Distribuye el envío de paquetes de manera equitativa.
En entornos de QoS (Quality of Service), esto evita que:
Una descarga masiva consuma todo el ancho de banda.
Un usuario monopolice el enlace.
Se generen latencias extremas bajo carga.
Cómo funciona SFQ internamente
El concepto de fairness
El objetivo es simple: cada flujo activo recibe una porción similar del ancho de banda disponible.
No importa si un flujo intenta enviar más datos que otro: el algoritmo limita su impacto.
El uso de hashing en SFQ
Aquí entra el componente “stochastic”.
SFQ no crea una cola explícita por cada flujo real (eso sería costoso en recursos). En su lugar:
Aplica una función hash sobre parámetros del paquete (IP origen/destino, puerto, etc.).
Asigna el resultado a una de varias colas internas.
Atiende esas colas en modo round-robin.
El hashing introduce aleatoriedad controlada.
Por eso se denomina Stochastic Fairness Queueing.
Qué significa “stochastic”
“Stochastic” implica que el reparto no es determinístico perfecto, sino probabilístico.
Dos flujos distintos podrían caer en la misma subcola (colisión de hash), pero la probabilidad disminuye cuanto mayor es el número de colas internas.
Esto permite un equilibrio entre:
Equidad
Eficiencia
Bajo consumo de CPU
Parámetros clave del algoritmo SFQ
Los parámetros suelen incluir:
Número de colas internas
Quantum (cantidad de bytes enviados por turno)
Tiempo de re-hashing
Límite de paquetes por cola
Ajustar estos valores impacta en:
Latencia
Equidad
Uso de memoria
Rendimiento general
Ventajas y limitaciones de SFQ
Ventajas
Implementación simple.
Buen equilibrio entre fairness y consumo de recursos.
Ideal para entornos con muchos usuarios concurrentes.
Reduce impacto de tráfico agresivo.
Limitaciones
No garantiza fairness perfecta (colisiones hash).
No clasifica por prioridad.
No es ideal para control granular por usuario.
SFQ vs otros algoritmos de colas
SFQ vs FIFO
FIFO procesa paquetes en orden de llegada.
Problema: un flujo pesado puede saturar el buffer.
SFQ distribuye el tráfico por flujos → mayor equidad.
SFQ vs PCQ
PCQ crea subcolas dinámicas por conexión real.
Más preciso.
Más consumo de recursos.
Mejor para ISP o control por cliente.
SFQ es más ligero y generalista.
SFQ vs RED
RED intenta prevenir congestión descartando paquetes anticipadamente.
SFQ se centra en la equidad, no en la detección temprana de congestión.
Son complementarios, no excluyentes.
Cómo configurar SFQ en MikroTik RouterOS
En entornos con equipos de MikroTik, SFQ aparece como tipo de cola disponible.
Pasos generales:
Ir a Queues → Queue Types
Crear nuevo tipo
Seleccionar kind = sfq
Ajustar parámetros como:
sfq-perturb
sfq-quantum
Aplicar en una Simple Queue o Queue Tree
Ejemplo conceptual:
/queue type add name=sfq-test kind=sfq
/queue simple add name=limit-global target=192.168.1.0/24 queue=sfq-test
Esto distribuirá el tráfico de la subred de forma equitativa.
Cuándo conviene usar SFQ (casos prácticos)
SFQ es recomendable cuando:
Hay múltiples usuarios compartiendo un enlace.
No necesitas priorización avanzada.
Quieres evitar monopolización del ancho de banda.
Buscas bajo consumo de CPU.
No es ideal si:
Necesitas control por cliente exacto.
Debes garantizar ancho de banda mínimo por usuario.
Requieres priorización por aplicación.
Errores comunes al implementar SFQ
Usarlo como única estrategia de QoS.
No combinarlo con límites de velocidad.
No entender que no reemplaza priorización.
Ignorar colisiones hash en entornos de alta densidad.
Conclusión
SFQ es un algoritmo eficiente, ligero y práctico para repartir ancho de banda de manera justa entre múltiples flujos de red.
No es perfecto, pero ofrece un equilibrio excelente entre:
Fairness
Rendimiento
Simplicidad
Consumo de recursos
En redes medianas o entornos compartidos, puede ser una solución muy eficaz dentro de una estrategia de QoS bien diseñada.
Preguntas Frecuentes
¿SFQ garantiza ancho de banda mínimo por usuario?
No. Solo distribuye equitativamente el envío de paquetes entre flujos activos.
¿SFQ sustituye a PCQ?
No. PCQ ofrece mayor granularidad y control.
¿Puede combinarse SFQ con limitación de velocidad?
Sí, y es recomendable hacerlo.
¿Es adecuado para ISP?
Puede funcionar en escenarios pequeños, pero generalmente PCQ es más adecuado para control por cliente.
Breve cuestionario de conocimientos
¿Qué te pareció este artículo?
¿Te atreves a evaluar tus conocimientos aprendidos?
Libros recomendados para éste artículo
(Book) Networking with MikroTik RouterOS: A Practical Approach to Understanding and Implementing RouterOS
Study material for the MTCNA Certification Course, updated to RouterOS v7
Libro Conceptos Fundamentales de MikroTik, RouterOS v7
Material de estudio para el Curso de Certificación MTCNA, actualizado a RouterOS v7










