Articles

¿Qué es el handshake de tres vías de TCP? ¿Qué son los paquetes SYN y ACK?

Sabemos que TCP es uno de los ejemplos de implementación del protocolo de capa de transporte según el modelo OSI. El protocolo está orientado a la conexión, lo que significa que antes de enviar cualquier dato al par remoto, el cliente tcp establece una conexión virtual sobre la red IP subyacente basada en paquetes. El procedimiento del protocolo para establecer la conexión es un handshake de tres vías. Aquí cubriremos el procedimiento de establecimiento de la conexión tcp en detalle. La primera pregunta que nos viene a la mente es ¿quién es el responsable de iniciar la conexión TCP? ¿La propia capa del protocolo, al iniciarse, o alguna otra entidad externa que instruya a la capa para la conexión? La respuesta es que el usuario de TCP es responsable de iniciar un handshake TCP de tres vías. Por ejemplo, HTTP (el navegador web utiliza HTTP), es uno de los usuarios de TCP. Cuando el usuario HTTP necesita enviar una petición web al servidor remoto. Antes de enviar cualquier dato del usuario, HTTP solicita a TCP que establezca una conexión con el servidor remoto. Una vez que la capa TCP recibe la solicitud de conexión, inicia el handshake TCP de tres vías. Al igual que cualquier otro protocolo, el procedimiento de handshake de tres vías requiere el intercambio de paquetes o mensajes entre el cliente y el servidor. Lo siguiente es lo que se utiliza en la configuración de la conexión.

Lo siguiente es el flujo de mensajes para el handshake de tres vías.

El usuario de HTTP emite una solicitud de conexión a la capa TCP. La capa TCP funciona como cliente tcp y envía el syn tcp con un número de secuencia inicial. El número de secuencia es para mantener la secuencia de los mensajes. Una vez recibido el SYN, el servidor envía al cliente un nuevo syn y un ack del syn recibido, y luego el cliente envía el ACK al servidor para el syn recibido del servidor. Esto completa el establecimiento de la conexión. A continuación se menciona cada mensaje en detalle para el handshake de tres vías.

Este es el primer paquete del cliente al servidor. El mensaje TCP establece la bandera SYN a 1 en el mensaje, por lo que el mensaje tcp es un paquete SYN. Tiene el número de secuencia inicial del cliente junto con otros pocos parámetros más.

Paquete TCP SYN ACK:

Después de recibir el paquete SYN, el servidor envía el paquete syn ack al cliente. No hay que olvidar que se trata de un único paquete tcp con el bit syn y ack puestos a 1. El número de secuencia syn es el número de secuencia inicial del servidor que acepta la conexión. La parte ack tiene el número de secuencia del cliente más uno. De esta manera el servidor dice que está listo para aceptar el paquete con el siguiente número de secuencia del cliente.

Paquete TCP ACK:

El paquete final para la configuración de la conexión es tcp ack. El cliente envía el paquete tcp ack al recibir el tcp syn ack del servidor. El paquete incluye el número de secuencia del servidor más uno.

Indicación del usuario TCP después del handshake de tres vías :

Al principio hemos mencionado que, es el usuario quien inicia la solicitud de conexión. Pero, ¿cómo el usuario recibe, que la conexión se hace? ¿Y el usuario puede usar la conexión para enviar datos al servidor remoto? El usuario recibe una indicación sobre el resultado de la conexión de la capa TCP. Si el handshake es exitoso, entonces obtiene el identificador de la conexión. Si no, recibe un error. El identificador de conexión funciona como manejador para enviar/recibir datos a/desde el servidor. Vamos a mostrar en otro post sobre la implementación exacta de TCP cliente/servidor , entonces usted puede obtener una imagen más clara de controlador de conexión.

Dejar una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *