graph TD subgraph Entradas ["Tráfico Entrante"] P1["Tráfico IT (Cámaras, Web)
Prioridad Baja"] P2["Tráfico OT (Motion Control)
Prioridad Alta"] end subgraph SW_QoS ["Switch Industrial con QoS"] Colas["Gestor de Colas (Queues)"] end subgraph Salida ["Puerto de Salida (Congestionado)"] Out["Enlace Troncal"] end P1 --> Colas P2 --> Colas Colas -->|1 Pasa OT Tiempo Real| Out Colas -. 2 Pasa IT Si hay hueco .-> Out style P1 fill:#3498db,color:#fff style P2 fill:#e74c3c,color:#fff style Colas fill:#f39c12,color:#fff style Out fill:#95a5a6,color:#2c3e50

1. El Problema de la Congestión: Cuellos de Botella

A lo largo de la UF1794 hemos visto que los switches Gigabit modernos son increíblemente rápidos. Pero la física tiene un límite. Imagina un switch industrial que recibe ráfagas de tráfico a 1 Gbps desde tres puertos simultáneamente (dos cámaras y un SCADA) y debe sacar todo ese tráfico por un único enlace troncal (uplink) que también funciona a 1 Gbps. Matemáticamente, 3 Gbps no caben por un tubo de 1 Gbps. Esto es un cuello de botella.

Cuando esto ocurre, el switch guarda el exceso de paquetes en una memoria interna (buffer). Si el atasco dura demasiado, el buffer se llena y el switch empieza a "tirar" los paquetes al vacío (Packet Drop). En una red convergente IT/OT sin configurar, el switch destruirá de forma aleatoria tanto un trozo de vídeo de la cámara como un paquete de control de movimiento crítico del PLC. El resultado: la máquina se bloquea y la producción se detiene. La solución a este caos se llama QoS (Quality of Service - Calidad de Servicio).



2. Marcado de Tráfico: PCP (Capa 2) y DSCP (Capa 3)

Para que el switch sepa a qué paquete salvarle la vida durante una congestión, los dispositivos emisores deben "etiquetar" o "marcar" sus paquetes según su importancia. Existen dos estándares principales para esto:

  • IEEE 802.1p (CoS / PCP): Opera en la Capa 2. Utiliza 3 bits dentro de la etiqueta VLAN (802.1Q) que estudiamos anteriormente. Con 3 bits, se obtienen 8 niveles de prioridad (del 0 al 7). El tráfico best-effort o normal suele llevar un 0. El tráfico crítico de control de red o PTP suele llevar un 7.
  • DSCP (Differentiated Services Code Point): Opera en la Capa 3. Utiliza 6 bits dentro de la cabecera IP, permitiendo 64 valores de prioridad. Al estar en la cabecera IP, esta prioridad "sobrevive" cuando el paquete cruza un router hacia otra subred.


3. Algoritmos de Encolado (Scheduling)

Una vez que el tráfico está marcado, ¿cómo gestiona el switch el atasco? Los switches gestionados (Managed Switches) dividen su memoria de salida en varias "colas" (Queues), típicamente 4 u 8 colas. Asignan los paquetes de Prioridad 7 a la Cola A, y los paquetes de Prioridad 0 a la Cola D. Luego, el chip del switch decide de qué cola sacar los datos usando algoritmos matemáticos:

  • Strict Priority (Prioridad Estricta): Es el favorito en el mundo OT. La regla es simple: mientras haya UN SOLO paquete en la cola de Alta Prioridad, se procesará. Las colas inferiores deben esperar. Si la cola Alta está enviando datos continuamente, la cola Baja "morirá de hambre" (Starvation) y sus paquetes serán destruidos. Es drástico, pero asegura que el PLC siempre mueva el motor a tiempo, sacrificando el vídeo de la cámara si es necesario.
  • WRR (Weighted Round Robin): Es más democrático. El switch saca 4 paquetes de la cola Alta, luego 2 paquetes de la cola Media, luego 1 paquete de la cola Baja, y repite. Evita que la cámara muera de hambre por completo, pero introduce un Jitter inaceptable para sistemas deterministas de control de ejes.


4. El Caso Práctico de PROFINET y EtherNet/IP

En el ecosistema industrial, el QoS no es opcional, es el núcleo del sistema. En PROFINET RT, todos los paquetes de control de E/S se marcan automáticamente con Prioridad 6 en la etiqueta VLAN (dejando el nivel 7 para la sincronización de reloj PTP). Los switches PROFINET están configurados de fábrica para usar Strict Priority, garantizando que el tráfico de control se salte la cola frente a cualquier otro dato TCP/IP (que viaja con Prioridad 0).

Si introduces un switch de oficina barato (Unmanaged) en medio de la fábrica, este no entenderá las etiquetas 802.1p. Mezclará todo el tráfico en una única cola FIFO (First In, First Out). El paquete del PLC se pondrá detrás del paquete del vídeo de YouTube de un operario, y el determinismo de tu red industrial se evaporará al instante.

QoS: ALGORITMO STRICT PRIORITY EN UN SWITCH Tráfico Crítico P6 Tráfico Normal P0 P0 Sorter Cola Alta Prioridad P6 P6 Cola Baja Prioridad P0 P0 P0 P0 Sched. Puerto Salida P6 P6 El planificador (Scheduler) en modo 'Strict Priority' vacía completamente la Cola Alta. La Cola Baja queda bloqueada (punteado gris) hasta que la Cola Alta esté vacía, garantizando el tiempo real.
Figura 1: La anatomía de la Calidad de Servicio (QoS). El hardware de un switch gestionable clasifica el tráfico que entra mezclado según las etiquetas 802.1p. Los separa en colas de memoria distintas. Ante un cuello de botella en el puerto de salida, el algoritmo "Strict Priority" actúa de embudo dictatorial: los paquetes rojos de control (P6) saltan siempre al principio de la fila, mientras que los azules (P0) asumen toda la latencia o son descartados si se agota la memoria.
Fuente: Elaboración Propia. Licencia: CC BY-SA 4.0.

🎥 Formación Técnica: QoS en Redes PROFINET

Descubre por qué mezclar tráfico IT/OT sin configurar la Calidad de Servicio provoca movimientos erráticos en los robots y cómo activar el mapeo de prioridades (PCP) en un switch.

▶ Ver Tutorial sobre Priorización QoS

📝 Evaluación Técnica: Priorización de Tráfico

1. En el contexto de las redes industriales (QoS), ¿qué problema físico intenta solucionar la tecnología de Calidad de Servicio?

2. El tráfico crítico de control de un PLC PROFINET RT viaja etiquetado con un nivel de prioridad 6 (PCP 6). ¿En qué parte estructural de la trama Ethernet se guarda exactamente esta información de prioridad de Capa 2?

3. Durante la configuración del QoS en un Switch Gestionado Industrial, debes elegir el algoritmo de encolado (Scheduling). ¿Por qué se prefiere "Strict Priority" sobre "Weighted Round Robin" (WRR) para el control de ejes y robótica?

🤖 Ejercicio Práctico 4: Simulador de Encolado Strict Priority en Python

Objetivo: Bajar a nivel lógico y comprender cómo el chip de un switch prioriza paquetes programando un mecanismo de colas jerárquicas.

Copia el siguiente *prompt* y pégalo en un modelo de IA (como ChatGPT, Gemini o Claude).

Actúa como programador de ASICs de red. Escribe un script en Python que simule el algoritmo 'Strict Priority' de un switch con dos colas (Queue_High y Queue_Low). El script debe: 1. Inicializar ambas listas vacías y un bucle que representa un 'Puerto de Salida' que solo puede sacar 1 paquete por iteración. 2. Simular un aluvión de tráfico: Insertar simultáneamente 3 paquetes en Queue_High (ej. 'Comando Eje Z') y 5 paquetes en Queue_Low (ej. 'Video Cámara'). 3. En el ciclo de salida, usar un bloque if-else: SI Queue_High tiene elementos, sacar y procesar el primero de High. SINO, procesar el de Low. 4. Imprimir paso a paso qué paquete sale de la red. Comenta el código explicando el concepto de 'Starvation' (Inanición) y cómo el tráfico de video se queda atascado hasta que el robot termina de comunicarse.