Aunque parece una única sesión TCP bidireccional entre el cliente y el servidor, cada mitad de la conexión se configura por separado. Esto se hace porque el algoritmo de control de flujo depende de que el emisor realice el cálculo de la ventana de congestión en función de los acuses de recibo del segmento individual del receptor. Para una conexión, hay dos pares de emisor / receptor, cada máquina de estado se ejecuta de forma independiente.
El cliente inicia una nueva conexión enviando un SYN, al que el servidor responde con un ACK para configurar la máquina de estado distribuida cliente = remitente, servidor = receptor.
Una vez que el servidor tiene la intención de abrir la conexión desde el cliente (es decir, el primer SYN), envía su propio SYN para configurar su máquina de estado servidor = remitente, cliente = receptor.
- Cómo acceder a una computadora de forma remota si conozco su dirección IP
- ¿Se ajusta un modelo OSI a TCP / IP y viceversa?
- ¿Qué son los enchufes huérfanos y cómo puedo prevenirlos?
- ¿Cómo se desarrollaron las capas OSI?
- ¿TCP aprovecha al máximo la capacidad de rendimiento de la red? ¿Por qué?
Cada configuración de máquina de estado se completa cuando el SYN se reconoce con un ACK.
Como optimización, el ACK del servidor al primer SYN del cliente y su propio SYN se contraen en el mismo paquete, que se denomina SYN-ACK. El ACK del cliente al SYN del servidor se parece al tercer paquete, lo que se denomina un “apretón de manos de tres vías”.
En realidad NO son TRES paquetes, sino CUATRO, optimizados para TRES.
Con la explicación anterior, debe quedar claro por qué se requiere el “tercer” ACK.