Saltar al contenido
uencoder

SO_LINGER

SO_LINGER controla el comportamiento de close(): cerrar de inmediato con un RST, o esperar (con un tiempo límite) a que se vacíen los datos en cola antes de cerrar.

Propósito

Define la semántica de close() cuando hay que garantizar la entrega antes del cierre o liberar la conexión de inmediato.

Mecanismo

Con linger activado y un tiempo límite, close() se bloquea hasta que los datos se envían o expira el plazo, tras lo cual se envía un RST. Con linger desactivado (por defecto), close() regresa de inmediato y los datos restantes se envían en segundo plano. El RST inmediato se usa para cierres anómalos.

Casos de uso

  • Cierre ordenado de conexiones
  • Reinicio abrupto de conexiones
  • Apagado de servidores

Herramientas relacionadas

References