Un programador de red , también llamado programador de paquetes , disciplina de colas ( qdisc ) o algoritmo de colas , es un árbitro en un nodo en una red de comunicación de conmutación de paquetes . Administra 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 reenviar a continuación. El programador de red está asociado con un sistema de colas, que almacena los paquetes de red temporalmente hasta que se transmiten. Los sistemas pueden tener colas únicas 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 programador de red puede tener responsabilidad en la implementación de iniciativas de control de tráfico de red específicas. El control del tráfico de red es un término genérico para todas las medidas destinadas a reducir la congestión , la latencia y la pérdida de paquetes de la red. Específicamente, la gestión activa de colas (AQM) es la eliminación selectiva de paquetes de red en cola para lograr el objetivo más amplio de evitar la congestión excesiva de la red. El programador 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 momento de los paquetes transmitidos. calidad de servicio(QoS) es la priorización del tráfico basado en la clase de servicio ( Servicios diferenciados ) o conexión reservada ( Servicios integrados ).
Con el transcurso 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] Las disciplinas de 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. [2] [3] [4]
Los ejemplos de algoritmos adecuados para administrar el tráfico de red incluyen:
Varios de los anteriores se han implementado como módulos del kernel de Linux [17] y están disponibles gratuitamente .
Bufferbloat es un fenómeno en las redes de conmutación de paquetes en las que el exceso de almacenamiento en búfer de los paquetes provoca una alta latencia y una variación en el retraso de los paquetes . Bufferbloat puede ser abordado por un programador de red que descarte paquetes estratégicamente para evitar una acumulación de almacenamiento en búfer innecesariamente alta. Los ejemplos incluyen CoDel , FQ-CoDel y detección temprana aleatoria .
Esta sección necesita expansión . Puedes ayudar agregándolo . ( Octubre de 2018 ) |
El programador de paquetes del kernel de Linux es una parte integral de la pila de red del kernel de Linux y administra los búfer de anillo de transmisión y recepción de todas las NIC, trabajando en la capa 2 del modelo OSI y manejando tramas de Ethernet , por ejemplo.
El planificador de paquetes se configura utilizando la utilidad llamada tc
(abreviatura de "control de tráfico"). Como disciplina de cola predeterminada, el programador de paquetes utiliza una implementación FIFO llamada pfifo_fast , [18] aunque systemd desde su versión 217 cambia la disciplina de cola predeterminada a fq_codel
. [19]
Las utilidades ifconfig
y ip
permiten a los administradores del sistema configurar los tamaños de búfer txqueuelen
y rxqueuelen
para cada 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úfer, que no son administrados por el programador de red. [un]
Los filtros de Berkeley Packet Filter se pueden adjuntar a los clasificadores del planificador de paquetes. La funcionalidad eBPF que trajo la versión 4.1 del kernel de Linux en 2015 extiende los clasificadores programables BPF clásicos a eBPF. [20] Estos pueden compilarse usando el backend LLVM eBPF y cargarse en un kernel en ejecución usando la tc
utilidad. [21]
ALTQ es la implementación de un programador de red para BSD . A partir de la versión 5.5 de OpenBSD, ALTQ fue reemplazado por el programador HFSC.
{{cite journal}}
: Citar diario requiere |journal=
( ayuda )