Tipos de conexiones en netstat y ss explicadas
En esta breve entradas buscamos entender los mensajes de estado, ofrecidos por herramientas como netstat o ss, cuando listamos las conexiones actuales en nuestros sistemas preferidos GNU/Linux
Hay que tener en cuenta que las conexiones TCP puedes divirse en tres fases. El establecimiento de la conexión es un proceso de reconocimiento de varios pasos que establece una conexión antes de entrar en la fase de transferencia de datos. Una vez que se completa la transmisión de datos, la terminación de la conexión cierra la conexión y libera todos los recursos asignados.
Una conexión TCP es administrada por un sistema operativo, en nuestro caso GNU/Linux, a través de un recurso que representa el punto final local para las comunicaciones, el socket de Internet. Durante la vida útil de una conexión TCP, el punto final local experimenta una serie de cambios de estado, que son las siguientes:
- ESTABLISHED: El socket tiene una conexión establecida.
- SYN_SENT: El socket está intentando activamente establecer una conexión.
- SYN_RECV: Se ha recibido una solicitud de conexión de la red.
- FIN_WAIT1: El sochet está cerrado y la conexión se está cerrando.
- FIN_WAIT2: La conexión está cerrada y el socket está esperando un apagado desde el extremo remoto.
- TIME_WAIT: El socket está esperando después del cierre para manejar los paquetes que aún están en la red.
- CLOSE: El socket no se está utilizando.
- CLOSE_WAIT: La conexión remota ha finalizado, esperando que se cierre el socket.
- LAST_ACK: La conexión remota ha finalziado y se ha cerrado el socket, se espera reconocimiento.
- LISTEN: El conector está escuchando conexiones entrantes. Dichos sockets no se incluyen en la salida de netstat, a menos que especifique la opción
--listening (-l)
o--all (-a)
. - CLOSING: Ambos sockets están apagados, pero aún no se han enviado todos los datos.
- UNKNOWN: Se desconoce el estado del socket.
A modo de ejemplo aquí tenéis una muestra de la información ofrecida por netstat -tn
, con diferentes estados:
En cambio utilizando el comando y parámetros ss -tn
, tenemos el resultado:
Y esto es todo, espero que esta información os sea de utilidad en algún momento.