TCP semiabierto - TCP half-open

El término medio abierto se refiere a las conexiones TCP cuyo estado no está sincronizado entre los dos hosts que se comunican, posiblemente debido a un bloqueo de un lado. Una conexión que está en proceso de establecerse también se conoce como conexión embrionaria . La falta de sincronización podría deberse a intenciones maliciosas .

RFC 793

Según RFC 793 , una conexión TCP se denomina semiabierta cuando el host en un extremo de esa conexión TCP se ha bloqueado o ha eliminado el socket sin notificar al otro extremo. Si el extremo restante está inactivo, la conexión puede permanecer en el estado semiabierto durante períodos de tiempo ilimitados.

Conexión embrionaria

Sin embargo, hoy en día, el término conexión semiabierta se utiliza con mayor frecuencia para describir una conexión embrionaria , es decir, una conexión TCP que está en proceso de establecerse.

TCP tiene un sistema de tres estados para abrir una conexión. Primero, el punto final de origen (A) envía un paquete SYN al destino (B). A está ahora en un estado embrionario (específicamente, SYN_SENT) y esperando una respuesta. B ahora actualiza la información de su kernel para indicar la conexión entrante de A y envía una solicitud para abrir un canal (el paquete SYN / ACK ).

En este punto, B también se encuentra en un estado embrionario (específicamente, SYN_RCVD). Tenga en cuenta que B fue puesto en este estado por otra máquina, fuera del control de B.

En circunstancias normales (ver ataque de denegación de servicio para casos de falla deliberada), A recibirá el SYN / ACK de B, actualizará sus tablas (que ahora tienen suficiente información para que A envíe y reciba) y enviará un ACK final de regreso a B.

Una vez que B recibe este ACK final, también tiene suficiente información para la comunicación bidireccional y la conexión está completamente abierta. Ambos puntos finales están ahora en un estado establecido.

Ver también

enlaces externos