¿Qué es un keepalive?
Una conexión ociosa puede ser matada en silencio por la red entre dos sistemas mucho antes de que cualquiera lo note. Un keepalive es el truco de bajo costo que mantiene un enlace tranquilo a la vez abierto y observablemente vivo.
Keepalive en una línea: Un keepalive es un pequeño mensaje periódico enviado sobre una conexión de otro modo ociosa para mantenerla abierta y confirmar que el otro extremo sigue siendo alcanzable. En enlaces SCADA dirigidos por eventos que quedan en silencio entre cambios, los dispositivos intermedios como firewalls, ruteadores NAT y operadores celulares descartan una conexión que creen muerta. Los keepalives generan apenas el tráfico suficiente para evitar ese tiempo de espera y para detectar rápido un enlace de verdad roto.
El problema de la conexión ociosa
Cuando el SCADA usa reporte por excepción, una conexión puede quedarse sin datos por tramos largos: nada cambió, así que nada se envió. Los dos extremos consideran la conexión perfectamente sana. Pero los dispositivos en medio no. Los firewalls y los ruteadores NAT rastrean las conexiones activas en una tabla con un tiempo de espera de inactividad; cuando no ven tráfico por unos minutos, descartan la entrada para recuperar recursos. Los operadores celulares hacen lo mismo para conservar el estado de la red.
Una vez que ese dispositivo intermedio olvida la conexión, el siguiente mensaje real no tiene a dónde ir, y los extremos solo descubren la pérdida cuando por fin intentan comunicarse, potencialmente minutos después de que se rompió. En un enlace de campo intermitente esto crea caídas confusas y difíciles de diagnosticar que parecen fallas de dispositivo pero en realidad son la red envejeciendo una sesión ociosa.
Cómo un keepalive mantiene un enlace vivo y honesto
Un keepalive arregla ambas mitades del problema. Al enviar un mensaje diminuto en un intervalo más corto que el tiempo de espera de inactividad de la red, mantiene fresca la entrada de conexión en cada firewall y dispositivo NAT del camino, para que la sesión nunca envejezca. TCP tiene un keepalive integrado para esto, y protocolos de aplicación como OPC UA y MQTT definen sus propios intervalos de keepalive o de tiempo de espera de sesión.
El keepalive también sirve como verificación de vida. Si se envía un keepalive y no vuelve respuesta dentro de la ventana esperada, el emisor aprende que el enlace está roto de inmediato en lugar de esperar por los próximos datos reales. Esto da una detección de falla rápida y determinista en conexiones que de otro modo parecerían bien hasta el momento en que se necesitan. El intervalo se elige para ubicarse cómodamente por debajo del tiempo de espera de inactividad más corto del camino mientras agrega tráfico insignificante.
Keepalives en conexiones de petróleo y gas
Los sitios remotos casi siempre se ubican tras el NAT del operador en una red celular y tras al menos un firewall, y normalmente usan reporte dirigido por eventos que deja el enlace tranquilo. Esa combinación es justo el escenario donde muerden los tiempos de espera de inactividad. Afinar los keepalives para que venzan los tiempos de espera del operador y del firewall es una parte rutinaria de lograr que una conexión SCADA remota se mantenga arriba de forma confiable.
Los keepalives se emparejan naturalmente con diseños de conexión solo salientes. Un dispositivo de campo que abre una conexión saliente y persistente a un sistema central o en la nube debe mantener viva esa única conexión para recibir comandos y para ser confiable como alcanzable; el keepalive es lo que la sostiene abierta a través de los tiempos de espera de inactividad agresivos del operador sin necesitar ningún puerto entrante.
También complementan a los latidos y watchdogs. Un keepalive mantiene la conexión de transporte en la capa de red; un latido prueba que la aplicación por encima está produciendo datos frescos. Juntos distinguen un enlace sano pero tranquilo de uno que murió en silencio, lo que es esencial para confiar en un campo de sitios conectados de forma intermitente.
Preguntas frecuentes
¿Por qué se descarta del todo una conexión ociosa?
Los firewalls, ruteadores NAT y operadores celulares rastrean las conexiones activas en tablas con tiempos de espera de inactividad y descartan las entradas que no ven tráfico. Una vez que la entrada desaparece, la conexión está efectivamente muerta aunque ambos extremos aún crean que está abierta.
¿Un keepalive es lo mismo que un latido?
Se solapan pero difieren en la capa. Un keepalive mantiene y verifica la conexión de transporte en sí, a menudo en el nivel de TCP o de sesión de protocolo. Un latido prueba que la aplicación está viva y produciendo datos frescos. Los sistemas confiables comúnmente usan ambos.
¿Cómo elijo el intervalo de keepalive?
Fíjelo más corto que el tiempo de espera de inactividad más ajustado del camino de red - normalmente el del operador celular o el del firewall - para que la conexión se refresque antes de que cualquier dispositivo la envejezca, mientras mantiene insignificante el tráfico agregado. En celular esto a menudo significa de decenas de segundos a un par de minutos.
Servicios de automatización
¿Necesita convertir esta información en un sistema que funcione?
Merobix integra SCADA, programa PLC Allen-Bradley y Siemens, y diseña y fabrica tableros de control industrial.
Las solicitudes de reunión se revisan antes de confirmarse.