Noções básicas de rede
11. Tarefa da camada de transporte
11.2. Reconciliação em 3 partes
TCP é um protocolo de ligação, o que significa que antes de um anfitrião de origem poder enviar quaisquer dados para um anfitrião de destino, deve ser estabelecida uma ligação entre eles. Esta combinação é chamada um aperto de mão de três vias. O hospedeiro de origem, ou seja, o cliente, envia um segmento contendo a bandeira SYN (SYN é uma bandeira de sincronização de número de série), e o segmento também contém o número de série aleatório do cliente (também chamado ISN, SEQ=100), que é utilizado para fragmentos de dados fundidos subsequentes.
Ao receber este segmento, o anfitrião de destino, ou seja, o servidor, é informado de que o cliente deseja estabelecer uma ligação com ele. Em resposta, o servidor envia um segmento com as bandeiras SYN e ACK definidas (a bandeira ACK informa o cliente de que o servidor recebeu o segmento anterior), o número de sequência recebido do cliente é aumentado em 1 (ACK = 101) e o seu número de sequência aleatório (SEQ = 300).
Finalmente, o cliente envia o segmento de volta ao servidor com a bandeira ACK definida, acusando a receção da mensagem anterior com o número de sequência do servidor aumentado em 1 (SEQ=101, ACK=301). Isto completa o processo de ligação e permite que os dados sejam transmitidos corretamente. O processo de reconciliação em três etapas é mostrado abaixo.
Só após uma ligação TCP ter sido estabelecida com o servidor é que o cliente pode enviar os dados relevantes, tais como um pedido para uma página web ou ficheiro.
Finalmente, quando todos os dados tiverem sido transmitidos, a sessão deve ser encerrada. O cliente envia então um segmento para o servidor com a bandeira FIN, que informa o servidor da sua intenção de encerrar a sessão, que responde com um segmento de reconhecimento com a bandeira ACK de que recebeu tal segmento. O servidor envia então também um segmento com a bandeira FIN, e o cliente responde com um segmento de reconhecimento com a bandeira ACK. Isto faz com que a sessão TCP seja encerrada.
Bandeira |
Aplicação |
URG |
Indica a existência de um campo indicador de urgência no cabeçalho (urgente) |
ACK |
Indica a existência de um campo de número de reconhecimento no cabeçalho. |
PSH |
Transmissão forçada de pacotes (push) |
RST |
Reconexão (reset) |
SON |
Sincronização de números sequenciais |
FIN |
Fim dos dados do remetente |