
Un planificador de red , también llamado planificador de paquetes , disciplina de cola ( qdisc ) o algoritmo de cola , es un árbitro en un nodo de una red de comunicación de conmutación de paquetes . Gestiona la secuencia de paquetes de red en las colas de transmisión y recepción de la pila de protocolos y el controlador de interfaz de red . Existen varios planificadores de red disponibles para los diferentes sistemas operativos , que implementan muchos de los algoritmos de planificación de red existentes .
La lógica del planificador de red decide qué paquete de red reenviar a continuación. El planificador de red está asociado a un sistema de colas que almacena temporalmente los paquetes de red hasta su transmisión. Los sistemas pueden tener una o varias colas, en cuyo caso cada una puede contener paquetes de un flujo , clasificación o prioridad específicos.
En algunos casos, puede que no sea posible programar todas las transmisiones dentro de las limitaciones del sistema. En estos casos, el planificador de red es responsable de decidir qué tráfico reenviar y cuál descartar .
Terminología y responsabilidades
Un planificador de red puede tener responsabilidad en la implementación de iniciativas específicas de control de tráfico de red . El control de tráfico de red es un término general que abarca todas las medidas destinadas a reducir la congestión de la red , la latencia y la pérdida de paquetes. Específicamente, la gestión activa de colas (AQM) es el descarte selectivo de paquetes de red en cola para lograr el objetivo más amplio de prevenir la congestión excesiva de la red. El planificador debe elegir qué paquetes descartar. La conformación del tráfico suaviza los requisitos de ancho de banda de los flujos de tráfico retrasando la transmisión de paquetes cuando se encolan en ráfagas. El planificador decide el tiempo para los paquetes transmitidos. La calidad de servicio (QoS) es la priorización del tráfico en función de la clase de servicio ( servicios diferenciados ) o la conexión reservada ( servicios integrados ).
Algoritmos
Con el tiempo, se han desarrollado numerosas disciplinas de encolamiento de red. Cada una de ellas proporciona un reordenamiento o descarte específico de paquetes de red dentro de diversos búferes de transmisión o recepción . [ 1 ] Las disciplinas de encolamiento se utilizan comúnmente para intentar compensar diversas condiciones de red, como la reducción de la latencia para ciertas clases de paquetes de red, y generalmente se utilizan como parte de las medidas de QoS. [ 2 ] [ 3 ] [ 4 ]
Las disciplinas de cola con clases permiten la creación de clases, que funcionan como ramas en un árbol. Se pueden establecer reglas para filtrar los paquetes en cada clase. Cada clase puede tener asignada otra disciplina de cola con o sin clases . Las disciplinas de cola sin clases no permiten añadir más disciplinas de cola. [ 5 ]
Algunos ejemplos de algoritmos adecuados para gestionar el tráfico de red son:
Varios de los anteriores se han implementado como módulos del kernel de Linux [ 13 ] [ 14 ] y están disponibles gratuitamente .
Bufferbloat
El búfer desbordado es un fenómeno en redes de conmutación de paquetes donde el almacenamiento excesivo de paquetes provoca alta latencia y variación en el retardo de los paquetes . El búfer desbordado se puede solucionar mediante un planificador de red que descarte estratégicamente paquetes para evitar una acumulación innecesaria de paquetes en el búfer. Algunos ejemplos son CoDel , FQ-CoDel y la detección temprana aleatoria .
Implementaciones
núcleo de Linux

El planificador de paquetes del kernel de Linux es una parte integral de la pila de red del kernel de Linux y administra los búferes circulares de transmisión y recepción de todas las tarjetas de red.
El planificador de paquetes se configura mediante la utilidad llamada tc(abreviatura de control de tráfico ). Como disciplina de cola predeterminada, el planificador de paquetes utiliza una implementación FIFO llamada pfifo_fast , [ 15 ] aunque systemd desde su versión 217 cambia la disciplina de cola predeterminada a fq_codel. [ 16 ]
Las ifconfigutilidades ippermiten a los administradores del sistema configurar los tamaños de búfer txqueuelenpara rxqueuelencada dispositivo por separado en términos de número de tramas Ethernet, independientemente de su tamaño. La pila de red del kernel de Linux contiene varios otros búferes, que no son gestionados por el planificador de red. [ a ]
Los filtros de Berkeley Packet Filter se pueden adjuntar a los clasificadores del planificador de paquetes. La funcionalidad eBPF , introducida por la versión 4.1 del kernel de Linux en 2015, extiende los clasificadores programables BPF clásicos a eBPF. [ 17 ] Estos se pueden compilar utilizando el backend eBPF de LLVM y cargarse en un kernel en ejecución mediante la tcutilidad. [ 18 ]
BSD y OpenBSD
ALTQ es la implementación de un planificador de red para sistemas BSD . A partir de la versión 5.5 de OpenBSD, ALTQ fue reemplazado por el planificador HFSC.
Programación de redes sin celdas
Los planificadores en las redes de comunicación gestionan la asignación de recursos, incluyendo la priorización de paquetes, la sincronización y la distribución de recursos. Las implementaciones avanzadas aprovechan cada vez más la inteligencia artificial para abordar las complejidades de las configuraciones de red modernas. Por ejemplo, se ha introducido un planificador basado en redes neuronales supervisadas (NN) en redes sin celdas para gestionar de forma eficiente las interacciones entre múltiples unidades de radio (RU) y equipos de usuario (UE). Este enfoque reduce la complejidad computacional al tiempo que optimiza la latencia, el rendimiento y la asignación de recursos, lo que lo convierte en una solución prometedora para redes más allá de 5G. [ 19 ]
Véase también
Notas
- ↑ El tamaño general de todos los buffers ha sido el punto de crítica del proyecto Bufferbloat , que proporcionó una solución parcial con CoDel que se ha probado principalmente en OpenWrt .
Referencias
- ↑ "Control de tráfico: Disciplinas de colas sin clases (qdiscs)" . tldp.org . Archivado del original el 22 de febrero de 2014. Consultado el 24 de noviembre de 2013 .
- ↑ "Control de tráfico HOWTO: Componentes del control de tráfico de Linux" . tldp.org . Archivado del original el 18 de febrero de 2014. Consultado el 24 de noviembre de 2013 .
- ↑ "Control de Tráfico: Elementos Tradicionales del Control de Tráfico" . tldp.org . Archivado del original el 27 de mayo de 2013. Consultado el 24 de noviembre de 2013 .
- ↑ "Disciplinas de colas: orden de transmisión y descarte de paquetes" (PDF) . tau.ac.il. 25 de octubre de 2006. Archivado (PDF) del original el 4 de marzo de 2016. Recuperado el 18 de marzo de 2014 .
- ↑ "Control de tráfico avanzado - ArchWiki" . wiki.archlinux.org . Archivado del original el 22/09/2023 . Consultado el 11/09/2023 .
- ↑ "Que corran CAKE" . LWN.net . Archivado del original el 12 de noviembre de 2024. Consultado el 3 de septiembre de 2019 .
- ↑ "Heavy-Hitter Filter qdisc" . kernel.org . Archivado del original el 22 de febrero de 2017. Consultado el 25 de julio de 2016 .
- ↑ "Módulo de planificación de red del kernel de Linux emulador de red" . kernel.org . Archivado del original el 22 de febrero de 2017. Consultado el 7 de septiembre de 2013 .
- ↑ "Controlador Proporcional Integral Mejorado (PIE)" . kernel.org . Archivado del original el 22 de febrero de 2017. Consultado el 25 de julio de 2016 .
- ↑ "Módulo planificador de red del kernel de Linux DRR" . kernel.org . Archivado del original el 23 de febrero de 2017. Consultado el 7 de septiembre de 2013 .
- ↑ "Módulo planificador de red del kernel de Linux HTB" . kernel.org . Consultado el 7 de septiembre de 2013 .
- ↑ "Módulo planificador de red del kernel de Linux QFQ" . kernel.org . Archivado del original el 23 de febrero de 2017. Consultado el 7 de septiembre de 2013 .
- ↑ "El planificador de red del kernel de Linux" . kernel.org . 26 de diciembre de 2012. Consultado el 7 de septiembre de 2013 .
- ↑ "tc(8) - Página del manual de Linux" . man7.org . Archivado del original el 7 de septiembre de 2023. Consultado el 11 de septiembre de 2023 .
- ↑ "Linux Advanced Routing and Traffic Control HOWTO, Sección 9.2.1. pfifo_fast" . lartc.org . 19 de mayo de 2012. Archivado del original el 21 de septiembre de 2014. Consultado el 19 de septiembre de 2014 .
- ↑ "systemd Administrador de sistemas y servicios: archivo NEWS" . freedesktop.org . 22 de mayo de 2015. Archivado del original el 22 de diciembre de 2014. Consultado el 9 de junio de 2015 .
- ↑ "Núcleo de Linux 4.1, Sección 11. Redes" . kernelnewbies.org . 21 de junio de 2015. Archivado del original el 16 de octubre de 2015. Consultado el 19 de abril de 2016 .
- ↑ "Guía de referencia de BPF y XDP" . Sitio web de documentación de Cilium . Archivado del original el 24 de abril de 2018. Consultado el 21 de agosto de 2018 .
- ↑ Huleihel, Yara; Maman, Gil; Hadad, Zion; Shasha, Eli; Permuter, Haim H. (2025). "Planificador sin celdas basado en datos". Ad Hoc Networks . 169 103738. Elsevier. doi : 10.1016/j.adhoc.2025.103738 .
- Características del kernel de Linux
- Rendimiento de la red
- Algoritmos de planificación de red
- teoría de redes