Estas disciplinas de encolamiento están basadas en el algoritmo FIFO. A continuación, se describen en detalle los tres algoritmos de cola: PFIFO, BFIFO y MQ-PFIFO.
PFIFO (Packet First In, First Out)
PFIFO es un algoritmo de cola simple basado en el principio “Primero en entrar, primero en salir” (FIFO). Funciona de la siguiente manera:
- Los paquetes que ingresan a la cola se colocan al final de la misma.
- Los paquetes se envían desde el principio de la cola en el orden en que llegaron.
- Si la cola alcanza su tamaño máximo, los nuevos paquetes que lleguen serán descartados.
PFIFO no tiene en cuenta la prioridad, el tamaño o el tipo de tráfico, lo que significa que todos los paquetes se tratan por igual y se procesan en el orden en que llegan. Este algoritmo es simple y fácil de implementar, pero no ofrece control de calidad de servicio ni garantías de entrega para tipos de tráfico específicos.
BFIFO (Byte First In, First Out)
BFIFO es una variante del algoritmo PFIFO que, en lugar de utilizar el número de paquetes en la cola, utiliza la cantidad de bytes. Funciona de la siguiente manera:
- Los paquetes que ingresan a la cola se colocan al final de la misma.
- Los paquetes se envían desde el principio de la cola en el orden en que llegaron.
- Si la cantidad de bytes en la cola alcanza su tamaño máximo, los nuevos paquetes que lleguen serán descartados.
Al igual que PFIFO, BFIFO no tiene en cuenta la prioridad, el tamaño o el tipo de tráfico. La principal diferencia entre ambos es que BFIFO limita la cantidad de bytes en lugar del número de paquetes, lo que puede ser útil en situaciones donde el tamaño de los paquetes varía significativamente.
MQ-PFIFO (Multi-Queue Packet First In, First Out)
MQ-PFIFO es una extensión del algoritmo PFIFO que permite la implementación de múltiples colas con diferentes prioridades. Funciona de la siguiente manera:
- Se crean varias colas, cada una con una prioridad asignada.
- Los paquetes que ingresan al sistema son clasificados y asignados a una cola específica según su prioridad.
- Los paquetes se envían desde el principio de las colas en el orden en que llegaron, pero se procesan primero las colas de mayor prioridad.
MQ-PFIFO permite una mejor gestión del tráfico y la calidad de servicio, ya que se pueden asignar diferentes prioridades a diferentes tipos de tráfico (por ejemplo, tráfico de voz, video o datos). Aunque no garantiza la entrega de paquetes de alta prioridad, ayuda a mejorar el rendimiento y la experiencia del usuario al dar preferencia a ciertos tipos de tráfico.
Escenarios donde se pueden utilizar estos algoritmos
Cada uno de los tres algoritmos de cola mencionados (PFIFO, BFIFO y MQ-PFIFO) es adecuado para diferentes escenarios de red y tráfico. A continuación, se presentan ejemplos de situaciones en las que cada algoritmo puede ser útil:
- PFIFO (Packet First In, First Out):
- Escenario: Redes pequeñas sin tráfico crítico en tiempo real.
- En una red pequeña con un tráfico de datos limitado y sin aplicaciones críticas en tiempo real (como VoIP o videoconferencias), PFIFO puede ser suficiente para manejar el tráfico.
- En este tipo de redes, el tráfico generalmente no es lo suficientemente alto como para causar congestión o retardos notables, por lo que un algoritmo simple como PFIFO puede manejar el tráfico de manera eficiente sin requerir una configuración compleja.
- BFIFO (Byte First In, First Out):
- Escenario: Redes con tráfico de paquetes de tamaño variable y sin requerimientos específicos de calidad de servicio.
- En redes donde el tamaño de los paquetes de datos varía significativamente (por ejemplo, al transmitir archivos de gran tamaño junto con tráfico de navegación web), BFIFO puede ser una opción adecuada.
- Este algoritmo es útil en situaciones donde se desea dar preferencia a la transmisión de paquetes más pequeños sin bloquear el tráfico de paquetes más grandes. Al igual que PFIFO, BFIFO no es adecuado para redes con aplicaciones críticas en tiempo real o con requisitos estrictos de calidad de servicio.
- MQ-PFIFO (Multi-Queue Packet First In, First Out):
- Escenario: Redes con tráfico mixto y aplicaciones con diferentes niveles de prioridad.
- En redes con aplicaciones de diferentes niveles de prioridad y tráfico mixto, como VoIP, videoconferencias, navegación web y transferencia de archivos, MQ-PFIFO es una opción adecuada.
- En este escenario, se pueden asignar diferentes prioridades a cada tipo de tráfico para garantizar un mejor rendimiento y experiencia del usuario. Por ejemplo, se puede dar prioridad al tráfico de VoIP y videoconferencias, garantizando una menor latencia y una mejor calidad de servicio en comparación con el tráfico de navegación web y transferencia de archivos.
En qué escenarios no se deben utilizar estos algoritmos
También es importante mencionar ejemplos de situaciones en las que no se recomienda aplicar los algoritmos PFIFO, BFIFO y MQ-PFIFO:
- PFIFO (Packet First In, First Out):
- Escenario: Redes con aplicaciones sensibles al retardo y la pérdida de paquetes.
- PFIFO no es adecuado para redes que manejan aplicaciones en tiempo real y sensibles al retardo, como VoIP, videoconferencias y juegos en línea.
- Esto se debe a que PFIFO no prioriza el tráfico y no garantiza una calidad de servicio adecuada para aplicaciones que requieren una entrega rápida y confiable de paquetes. En estos casos, se deben utilizar algoritmos más avanzados que puedan gestionar las prioridades y garantizar una experiencia de usuario óptima.
- BFIFO (Byte First In, First Out):
- Escenario: Redes con requisitos estrictos de calidad de servicio y aplicaciones en tiempo real.
- Al igual que PFIFO, BFIFO no es adecuado para redes con aplicaciones críticas en tiempo real y requisitos estrictos de calidad de servicio.
- Aunque BFIFO considera la cantidad de bytes en lugar del número de paquetes, sigue sin ofrecer priorización de tráfico ni garantías de entrega para tipos de tráfico específicos.
- MQ-PFIFO (Multi-Queue Packet First In, First Out):
- Escenario: Redes con tráfico altamente dinámico y requisitos de calidad de servicio muy específicos.
- Aunque MQ-PFIFO es una mejora con respecto a PFIFO y BFIFO en términos de gestión de tráfico y calidad de servicio, aún puede ser insuficiente en redes con tráfico altamente dinámico y requisitos de calidad de servicio muy específicos.
- En estos casos, se deben utilizar algoritmos de cola más avanzados, como PCQ (Per Connection Queue), SFQ (Stochastic Fair Queue) o HTB (Hierarchical Token Bucket), que ofrecen un mayor grado de control sobre el tráfico y la asignación de recursos.
Parámetros FIFO
Cada paquete que no puede ser encolado (si es que la cola está llena), es descartado. Los tamaños de colas grandes pueden incrementar la latencia, pero utilizan mejor el canal.
Estas colas usan los parámetros pfifo-limit y bfifo-limit.
mq-pfifo es PFIFO con soporte para múltiples colas de transmisión. Esta cola es beneficiosa en sistemas SMP con interfaces Ethernet que tienen soporte para múltiples colas de transmisión y tienen una compatibilidad de controladores Linux para múltiples colas de transmisión. mq-pfifo usa el parámetro mq-pfifo-limit.
En resumen
Los algoritmos PFIFO, BFIFO y MQ-PFIFO pueden no ser adecuados para redes con aplicaciones sensibles al retardo, tráfico altamente dinámico o requisitos estrictos de calidad de servicio. En estos casos, es necesario recurrir a algoritmos de cola más avanzados y sofisticados para garantizar un rendimiento óptimo y una experiencia de usuario satisfactoria.










