Un keepalive ( KA ) es un mensaje enviado por un dispositivo a otro para comprobar que el enlace entre los dos está funcionando o para evitar que se rompa.
Descripción
Una señal de keepalive a menudo se envía a intervalos predefinidos y juega un papel importante en Internet . Después de que se envía una señal, si no se recibe respuesta, se asume que el enlace está inactivo y los datos futuros se enrutarán a través de otra ruta hasta que el enlace vuelva a estar activo. También se puede utilizar una señal de keepalive para indicar a la infraestructura de Internet que se debe preservar la conexión. Sin una señal de keepalive, los enrutadores intermedios habilitados para NAT pueden interrumpir la conexión después del tiempo de espera.
Dado que el único propósito es encontrar enlaces que no funcionen o indicar conexiones que deben conservarse, los mensajes keepalive tienden a ser cortos y no requieren mucho ancho de banda . Sin embargo, su formato y términos de uso precisos dependen del protocolo de comunicación.
Mantener activo de TCP
Las actividades de mantenimiento del Protocolo de control de transmisión (TCP) son una función opcional y, si se incluyen, deben estar desactivadas de forma predeterminada. [1] El paquete keepalive no contiene datos. En una red Ethernet , esto da como resultado tramas de tamaño mínimo (64 bytes [2] ). Hay tres parámetros [3] relacionados con keepalive:
- El tiempo de mantenimiento es la duración entre dos transmisiones de mantenimiento en estado inactivo. Se requiere que el período de mantenimiento de TCP sea configurable y, de forma predeterminada, se establece en no menos de 2 horas.
- El intervalo de keepalive es la duración entre dos retransmisiones de keepalive sucesivas, si no se recibe el acuse de recibo de la transmisión de keepalive anterior.
- El reintento de Keepalive es el número de retransmisiones que se realizarán antes de declarar que el extremo remoto no está disponible
Cuando dos hosts están conectados a través de una red a través de TCP / IP, los paquetes de mantenimiento de TCP se pueden usar para determinar si la conexión sigue siendo válida y finalizarla si es necesario.
La mayoría de los hosts que admiten TCP también admiten TCP Keepalive. Cada host (o par) envía periódicamente un paquete TCP a su par que solicita una respuesta. Si se envía un cierto número de keepalives y no se recibe ninguna respuesta (ACK), el host de envío terminará la conexión desde su final. Si una conexión se ha terminado debido a un tiempo de espera de TCP Keepalive y el otro host finalmente envía un paquete para la conexión anterior, el host que terminó la conexión enviará un paquete con el indicador RST configurado para indicar al otro host que el anterior la conexión ya no está activa. Esto obligará al otro host a terminar su extremo de la conexión para que se pueda establecer una nueva conexión.
Normalmente, los Keepalives de TCP se envían cada 45 o 60 segundos en una conexión TCP inactiva, y la conexión se interrumpe después de que se pierdan 3 ACK secuenciales. Esto varía según el host, por ejemplo, las PC con Windows envían el primer paquete TCP Keepalive después de 7200000ms (2 horas), luego envían 5 Keepalives a intervalos de 1000ms, interrumpiendo la conexión si no hay respuesta a ninguno de los paquetes Keepalive.
Manténgase vivo en capas superiores
Dado que TCP keepalive es opcional, varios protocolos (por ejemplo, SMB [4] y TLS [5] ) implementan su propia característica de mantener vivo sobre TCP. También es común que los protocolos que mantienen una sesión sobre un protocolo sin conexión, por ejemplo, OpenVPN sobre UDP, [6] implementen su propio Keep-Alive.
Otros usos
Keepalive HTTP
El Protocolo de transferencia de hipertexto usa la palabra clave "Keep-Alive" en el encabezado "Conexión" para indicar que la conexión debe mantenerse abierta para más mensajes (este es el valor predeterminado en HTTP 1.1, pero en HTTP 1.0 el valor predeterminado era usar un nuevo conexión para cada par de solicitud / respuesta). [7] A pesar del nombre similar, esta función no tiene ninguna relación.
Otros dispositivos
Los dispositivos "Keep-alive" se utilizan en la reparación de automóviles para mantener el voltaje de la batería de los dispositivos en el vehículo cuando la batería se desconecta o se cambia, generalmente conectando una batería pequeña al tomacorriente de 12 voltios del vehículo. Una aplicación típica es evitar que la radio del vehículo u otro dispositivo pase al modo "código" (bloqueo de seguridad) durante la reparación del vehículo. Por lo general, una fuente de voltaje más bajo, como una batería de 9 voltios, es suficiente para este propósito.
Los relojes eléctricos a menudo tienen circuitos de funcionamiento a batería para mantener la hora y otras configuraciones durante un corte de energía. Algunos dispositivos electrónicos utilizan un circuito de condensador para mantener la memoria volátil cuando el usuario cambia la batería.
Ver también
Referencias
- ^ "Requisitos para hosts de Internet - capas de comunicación" . IETF . Octubre de 1989 . Consultado el 8 de noviembre de 2013 .
- ^ 3.1.1 Formato de paquete . Estándar IEEE para Ethernet, 802.3-2015 - sección uno . 2016. p. 108. doi : 10.1109 / IEEESTD.2016.7428776 . ISBN 978-1-5044-0078-7.
- ^ "Utilizando TCP keepalive en Linux" . tldp.org . Consultado el 29 de julio de 2016 .
- ^ "Estándar de protocolo para un servicio NetBIOS en un transporte TCP / UDP: conceptos y métodos" . IETF . Marzo de 1987 . Consultado el 18 de junio de 2015 .
- ^ "Transport Layer Security (TLS) y Datagram Transport Layer Security (DTLS) Heartbeat Extension" . IETF . Febrero de 2012 . Consultado el 18 de junio de 2015 .
- ^ "Página de manual de OpenVPN" . Consultado el 18 de junio de 2015 .
- ^ "HTTP Keep Alive discurso de Jim Driscoll" . Archivado desde el original el 13 de agosto de 2010.