2. Introdução
TCP é um protocolo orientado à conexão.
Antes que alguém tente mandar dados é necesário o
estabelecimento de uma conexão.
O estabelecimento de uma conexão entre dois peers
diferencia o TCP do UDP.
4. Estabelecendo a conexão
A conexão usa um handshake de três passos
Antes de um cliente tentar conectar, o servidor designa
uma porta para a conexão. (passive open)
Assim que o passive open estiver aberto, o cliente inicia
um active open
5. 3 passos para a conexão
O cliente envia um SYN para o servidor contendo o
initial sequence number (ISN).
O servidor responde com um SYN contendo o seu
próprio ISN e um ACK contendo (o ISN do cliente)+1.
O cliente envia um ACK para o servidor confirmando o
recebimento do SYN, contendo o ISN do servidor +1.
6. 4 passos para a desconexão
Como o TCP é full-duplex cada nodo da conexão deve
ser fechado separadamente.
A regra é que cada ponta pode enviar um FIN
sinalizando que não transmitirá mais dados.
Após o recebimento do FIN a outra ponta envia um
ACK confirmando o recebimento do FIN, mas como
ainda não emitiu seu FIN ela pode continuar enviando
dados enquanto for necessário.
Quando essa ultima ponta estiver pronta ela manda o
seu FIN.
E aguarda o ACK do FIN.