Protocolo de acuerdo a 3 vías

El mecanismo es el siguiente

0. El host receptor, que en el caso de más común será un servidor, espera pasivamente una conexión ejecutando las primitvas LISTEN y ACCEPT.

1. En primer lugar, el host que deséa iniciar la conexión ejecuta una primitiva CONNECT especificando la dirección IP y el puerto con el que se deséa conectar, el tamaño máximo del segmento que está dispuesto a aceptar y opcionelmente otros datos, como alguna contraseña de usuario. Entonces la primitiva CONNCET hace una apertura activa, enviando al otro host un paquete que tiene el bit SYN (ver formato de un segmento TCP más abajo) activado, indicándole también el número de secuencia inicial "x" que usará para enviar sus mensajes.

2. El host receptor recibe el segmento revisa si hay algún proceso activo que haya ejecutado un LISTEN en el puerto solicitado, es decir, preparado para recibir datos por ese puerto. Si lo hay, el proceso a la escucha recibe el segmento TCP entrante, registra el número de secuencia "x" y, si deséa abrir la conexión, responde con un acuse de recibo "x + 1" con el bit SYN activado e incluye su propio número de secuencia inicial "y", dejando entonces abierta la conexión por su extremo. El número de acuse de recibo "x + 1" significa que el host ha recibido todos los octetos hasta e incluyendo "x", y espera "x + 1" a continuación. Si no deséa establecer la conexión, envía un contestación con el bit RST activado, para que el host en el otro extremo lo sepa.

3. El primer host recibe el segmento y envía su confirmación, momento a partir del cual puede enviar datos al otro extremo, abriendo entonces la conexión por su extremo.

4. La máquina receptora recibe la confirmación y entiende que el otro extremo ha abierto ya su conexión, por lo que a partir de ese momento también puede ella enviar datos. Con ésto, la conexión ha quedado abierta en ambos sentidos.

 
Nivel de Transporte/Protocolo de acuerdo a 3 vías