Вы находитесь на странице: 1из 19

Estabelecimento e Encerramento de Conexo TCP

Luis Octvio C. de Moraes luisoctavio.moraes@gmail.com

Estabelecimento
1. Um lado (o servidor) aguarda passivamente por uma conexo de entrada, executando as primitivas LISTEN e ACCEPT atravs da especificao de uma determinada origem ou de ningum em particular. 2. O outro lado (o cliente) executa a primitiva CONNECT, especificando o endereo do socket (ip+porta) a qual deseja conectar, o tamanho mximo do segmento TCP que est disposto a aceitar, opcionalmente, alguns dados do usurio (por exemplo, uma senha).
SYN = 1;
ACK = 0;

Sequence number = x;
Acknowledgement number = 0

Estabelecimento
3. Quando o segmento chega ao servidor, a entidade TCP verifica se existe um processo executando a primitiva LISTEN na porta informada no campo destination port. Caso no tenha, ela envia uma resposta com o bit RST ativado para rejeitar a conexo.
4. Se algum processo estiver na escuta da porta, esse processo receber o segmento TCP de entrada. Em seguida, ele poder aceitar ou registrar a conexo. Se aceitar, um segmento de confirmao ser retornado.
SYN = 1; ACK = 1; Sequence number = y; Acknowledgement number = x + 1

Estabelecimento
5. Agora o servidor aguarda uma confirmao final do cliente, para poder dar incio a transmisso de dados.
SYN = 0; Sequence number = x + 1;

ACK = 1;

Acknowledgement number = y + 1

6. Os dados so transmitidos.

Estabelecimento
Segue exemplo:

Estabelecimento Cliente Servidor

Rede

Estabelecimento Cliente
SYN: 1 ACK: 0 FIN: 0 Seq: 22 Ack numb: 0

Servidor

Estabelecimento Cliente
SYN: 1 ACK: 0 FIN: 0 Seq: 22 Ack numb: 0

Servidor

SYN: 1 ACK: 1 FIN: 0

Seq: 45 Ack numb: 23

Estabelecimento Cliente
SYN: 1 ACK: 0 FIN: 0 Seq: 22 Ack numb: 0

Servidor

SYN: 1 ACK: 1 FIN: 0

Seq: 45 Ack numb: 23

SYN: 0 ACK: 1 FIN: 0

Seq: 23 Ack numb: 46

Estabelecimento Cliente
SYN: 1 ACK: 0 FIN: 0 Seq: 22 Ack numb: 0

Servidor

SYN: 1 ACK: 1 FIN: 0

Seq: 45 Ack numb: 23

SYN: 0 ACK: 1 FIN: 0

Seq: 23 Ack numb: 46

Transferncia de Dados

Encerramento
Apesar das conexes TCP serem full-duplex, fica mais fcil compreender como as conexes so encerradas se as considerarmos um par de conexes simplex. Cada conexo simplex encerrada de modo independente de sua parceira. Qualquer dos lados pode enviar um segmento com o bit FIN ativado, o que significa que no h mais dados para serem transmitidos. Quando FIN confirmado, esse sentido desativado para novos dados. No entanto, os dados podem continuar a fluir indefinitamente no outro sentido. De modo geral, so necessrios quatro segmentos TCP para encerrar uma conexo, isto um FIN e um ACK para cada sentido. Porm possvel que o primeiro ACK e o segundo FIN ocupem o mesmo segmento, o que baixa o nmero total para trs.

Encerramento
Segue exemplo:

Encerramento Cliente Servidor

Encerramento Cliente
SYN: 0 ACK: 1 FIN: 1 Seq: 23 Ack numb: 46

Servidor

Encerramento Cliente
SYN: 0 ACK: 1 FIN: 1 Seq: 23 Ack numb: 46

Servidor

SYN: 0 ACK: 1 FIN: 0

Seq: 46 Ack numb: 24

Encerramento Cliente
SYN: 0 ACK: 1 FIN: 1 Seq: 23 Ack numb: 46

Servidor

SYN: 0 ACK: 1 FIN: 0

Seq: 46 Ack numb: 24

Obs: Neste momento foi encerrado o envio de novos dados apenas no sentido cliente-servidor. Nada impede do servidor continuar enviando novos dados.

Encerramento Cliente
SYN: 0 ACK: 1 FIN: 1 Seq: 23 Ack numb: 46 SYN: 0 ACK: 1 FIN: 0 Seq: 46 Ack numb: 24

Servidor

SYN: 0 ACK: 1 FIN: 1

Seq: 46 Ack numb: 24

Encerramento Cliente
SYN: 0 ACK: 1 FIN: 1 Seq: 23 Ack numb: 46
SYN: 0 ACK: 1 FIN: 0 Seq: 46 Ack numb: 24

Servidor

SYN: 0 ACK: 1 FIN: 1 SYN: 0 ACK: 1 FIN: 0 Seq: 24 Ack numb: 47

Seq: 46 Ack numb: 24

Encerramento da conexo finalizado para os dois lados da conexo.

Referncias
TANENBAUM. A. Rede de computadores. 4 Edio.
http://support.microsoft.com/kb/172983/ptbr
ltimo acesso em 12/03/2013.