Three-way Handshake
Antes de transmitir as informações, o protocolo TCP estabelece uma comunicação entre os computadores, num processo chamado three-way-handshake (apresentação de três vias). Ao final da transmissão das informações, a conexão é fechada pelo mesmo processo.
Para transmitir os dados, o pacote TCP é dividido em segmentos menores que são numerados e enviados ao destino. O receptor, recompõe o pacote original, reordenando se preciso segmentos que chagaram fora de ordem e/ou solicitando o envio de segmentos que não chegaram.
Cada segmento é verifica por meio de um “checksum” para que não tenha sofrido interferência no meio do caminho por parte do meio físico.
Mecanismo
A conexão TCP é estabelecida do seguinte modo:
1º O host que inicia a conexão envia um segmento com o flag SYN ativado (no campo flags do header TCP);
2º O host de destino, ao receber o segmento, envio outro segmento os flags SYN e ACK ativados, um número de sequência que identifica o próximo segmento que o host enviará e o próximo número de sequência que este host espera receber;
3º O host que iniciou a conexão, envio um último segmento com o flag ACK ativado, o numero de sequência que o outro host espera e o próximo número de sequência que espera receber.
Basicamente é assim que funciona o handshake.
Fonte:https://dhiogosantos.wordpress.com/2011/05/13/entendendo-o-three-way-handshake/
payload e o segmento syn:
The server responds to the client with a sequence number of zero, as this is its first packet in this TCP session, and a relative acknowledgement number of 1. The acknowledgement number is set to 1 to indicate the receipt of the client's SYN flag in packet #1.Notice that the acknowledgement number has been increased by 1 although no payload data has yet been sent by the client. This is because the presence of the SYN or FIN flag in a received packet triggers an increase of 1 in the sequence. (This does not interfere with the accounting of payload data, because packets with the SYN or FIN flag set do not carry a payload.)
https://packetlife.net/blog/2010/jun/7/understanding-tcp-sequence-acknowledgment-numbers/