Las conexiones TCP son establecidas utilizando el saludo de tres vías. Este procedimiento es necesario antes de los dos hosts puedan intercambiar algún dato. En el saludo de tres vías los segmentos son frecuentemente nombrados según las banderas activas. Por lo tanto un segmento conteniendo un solo segmento SYN es también denominado SYN, y un segmento ACK es denominado un ACK. Un segmento con SYN y ACK se denomina SYN-ACK.
El cliente inicia el saludo de tres vías enviando un SYN para señalar una petición por una conexión TCP hacia el servidor. Si el servidor está funcionando y ofreciendo el servicio deseado, puede aceptar la conexión entrante y responder hacia el SYN. La respuesta consiste ya sea de un acuse de recibo de la petición de conexión inicial del cliente (el indicador ACK está activado) y una petición de conexión propia (La bandera SYN está activa), juntos en un solo paquete (un SYN-ACK).
Finalmente después del cliente recibe el SYN-ACK, el cliente envía un ACK final hacia el servidor. Después el servidor recibe un ACK, se completa el saludos de tres vías, y la conexión ha sido establecida. Los dos servidores pueden intercambiar datos.
Después la conexión ha sido establecida, se activa la bandera ACK para cada paquete. Como resultado la presencia del ACK puede indicar si una conexión ha sido establecida o no. De hecho simples filtros de paquetes permiten todos los paquetes con el ACK activo, y asumen forman parte de una conexión establecida. Es fácil eludir este filtro creando un paquete con el bit ACK activo. Esta técnica se utiliza frecuentemente para probar una red tras un dispositivo de filtrado, siendo denominado como un escaneo ACK.
Para minimizar el tráfico los ACKS se incorporan (con la mayor frecuencia posible) a los paquetes conteniendo datos, opuesto a enviar un paquete solo con un ACK. Los ACKS confirman al cliente y al servidor ambos extremos siguen utilizando la conexión.
Fuentes: