Programador de red


Un programador de red , también llamado programador de paquetes , disciplina de puesta en cola ( qdisc ) o algoritmo de puesta en cola , es un árbitro en un nodo en 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 . Hay varios programadores de red disponibles para los diferentes sistemas operativos , que implementan muchos de los algoritmos de programación de red existentes .

La lógica del programador de red decide qué paquete de red enviar a continuación. El planificador de red está asociado con un sistema de cola, almacenando los paquetes de red temporalmente hasta que se transmiten. Los sistemas pueden tener una cola única o múltiples, en cuyo caso cada una puede contener los paquetes de un flujo , clasificación o prioridad.

En algunos casos, puede que no sea posible programar todas las transmisiones dentro de las limitaciones del sistema. En estos casos, el programador de la red es responsable de decidir qué tráfico reenviar y qué se descarta .

Un planificador de red puede tener la responsabilidad de implementar iniciativas de control de tráfico de red específicas . El control del tráfico de la red es un término general para todas las medidas destinadas a reducir la congestión, la latencia y la pérdida de paquetes. Específicamente, la gestión de cola activa (AQM) es la eliminación selectiva 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. El modelado del tráfico suaviza los requisitos de ancho de banda de los flujos de tráfico al retrasar los paquetes de transmisión cuando se ponen en cola en ráfagas. El planificador decide el tiempo de los paquetes transmitidos. La calidad de servicio (QoS) es la priorización del tráfico según la clase de servicio (Servicios diferenciados ) o conexión reservada ( servicios integrados ).

Con el paso del tiempo, se han desarrollado muchas disciplinas de colas de red. Cada uno de estos proporciona un reordenamiento específico o eliminación de paquetes de red dentro de varios búferes de transmisión o recepción . [1] [2] Las disciplinas de puesta en cola se usan comúnmente como intentos de compensar varias condiciones de red, como reducir la latencia para ciertas clases de paquetes de red, y generalmente se usan como parte de las medidas de QoS. [3] [4] [5]

Bufferbloat es un fenómeno en las redes de conmutación de paquetes en el que el almacenamiento en búfer excesivo de los paquetes provoca una alta latencia y una variación del retardo de los paquetes . El bloqueador de búfer puede ser abordado por un programador de red que descarta paquetes estratégicamente para evitar una acumulación innecesariamente alta de almacenamiento en búfer. Los ejemplos incluyen CoDel , FQ-CoDel y detección temprana aleatoria .


Paquetes en cola en una estructura de datos FIFO (primero en entrar , primero en salir).
El programador de paquetes del kernel de Linux es parte de la pila de red, junto con netfilter , nftables y Berkeley Packet Filter .