SlideShare uma empresa Scribd logo
Estabelecimento e Encerramento
        de Conexão TCP




                    Luis Octávio C. de Moraes
                    luisoctavio.moraes@gmail.com
Estabelecimento
1. Um lado (o servidor) aguarda passivamente por uma conexão
de entrada, executando as primitivas LISTEN e ACCEPT através da
especificação de uma determinada origem ou de ninguém em
particular.

2. O outro lado (o cliente) executa a primitiva CONNECT,
especificando o endereço do socket (ip+porta) a qual deseja
conectar, o tamanho máximo do segmento TCP que está
disposto a aceitar, opcionalmente, alguns dados do usuário (por
exemplo, uma senha).
                            SYN = 1;          Sequence number = x;
                            ACK = 0;   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 não tenha, ela
envia uma resposta com o bit RST ativado para rejeitar a
conexão.

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 conexão. Se aceitar, um segmento de
confirmação será retornado.
                              SYN = 1;           Sequence number = y;
                            ACK = 1;     Acknowledgement number = x + 1
Estabelecimento
5. Agora o servidor aguarda uma confirmação final do cliente,
para poder dar início a transmissão de dados.

                            SYN = 0;          Sequence number = x + 1;
                            ACK = 1;   Acknowledgement number = y + 1



6. Os dados são transmitidos.
Estabelecimento
Segue exemplo:
Estabelecimento
Cliente                     Servidor


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

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

                                  SYN: 1        Seq: 45
                                  ACK: 1     Ack numb: 23
                                  FIN: 0




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

                                        SYN: 1        Seq: 45
                                        ACK: 1     Ack numb: 23
                                        FIN: 0




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



               Transferência de Dados
Encerramento
Apesar das conexões TCP serem full-duplex, fica mais fácil
compreender como as conexões são encerradas se as considerarmos
um par de conexões simplex. Cada conexão simplex é encerrada de
modo independente de sua parceira.
Qualquer dos lados pode enviar um segmento com o bit FIN ativado, o
que significa que não 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, são necessários quatro segmentos TCP para encerrar
uma conexão, isto é um FIN e um ACK para cada sentido. Porém é
possível que o primeiro ACK e o segundo FIN ocupem o mesmo
segmento, o que baixa o número total para três.
Encerramento
Segue exemplo:
Encerramento
Cliente                  Servidor
Encerramento
         Cliente                      Servidor
SYN: 0         Seq: 23
ACK: 1      Ack numb: 46
FIN: 1
Encerramento
         Cliente                               Servidor
SYN: 0         Seq: 23
ACK: 1      Ack numb: 46
FIN: 1

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

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




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                               Servidor
SYN: 0         Seq: 23
ACK: 1      Ack numb: 46
FIN: 1
                                      SYN: 0        Seq: 46
                                      ACK: 1     Ack numb: 24
                                      FIN: 0



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



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

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

            Encerramento da conexão finalizado
            para os dois lados da conexão.
Referências
• TANENBAUM. A. Rede de computadores. 4º
  Edição.

• http://support.microsoft.com/kb/172983/pt-
  br
  – Último acesso em 12/03/2013.

Mais conteúdo relacionado

DOC
Pino nome aplicação 1 gnd terra ou massa
Fernandobbb
 
PDF
Cap03b
samuelthiago
 
PPT
Controle de congestionamento tcp
Thiago Inacio de Matos
 
PDF
Estabelecimento e Encerramento de Conexão
Henrique Gabriel Gularte Pereira
 
PDF
Análise de Tráfego TCP/IP
Thiago Finardi
 
PPTX
Introduction to general psychology
Shaikh Mosin
 
PDF
2024 Trend Updates: What Really Works In SEO & Content Marketing
Search Engine Journal
 
PDF
Storytelling For The Web: Integrate Storytelling in your Design Process
Chiara Aliotta
 
Pino nome aplicação 1 gnd terra ou massa
Fernandobbb
 
Cap03b
samuelthiago
 
Controle de congestionamento tcp
Thiago Inacio de Matos
 
Estabelecimento e Encerramento de Conexão
Henrique Gabriel Gularte Pereira
 
Análise de Tráfego TCP/IP
Thiago Finardi
 
Introduction to general psychology
Shaikh Mosin
 
2024 Trend Updates: What Really Works In SEO & Content Marketing
Search Engine Journal
 
Storytelling For The Web: Integrate Storytelling in your Design Process
Chiara Aliotta
 
Anúncio

Estabelecimento e encerramento de conexão tcp

  • 1. Estabelecimento e Encerramento de Conexão TCP Luis Octávio C. de Moraes luisoctavio.moraes@gmail.com
  • 2. Estabelecimento 1. Um lado (o servidor) aguarda passivamente por uma conexão de entrada, executando as primitivas LISTEN e ACCEPT através da especificação de uma determinada origem ou de ninguém em particular. 2. O outro lado (o cliente) executa a primitiva CONNECT, especificando o endereço do socket (ip+porta) a qual deseja conectar, o tamanho máximo do segmento TCP que está disposto a aceitar, opcionalmente, alguns dados do usuário (por exemplo, uma senha). SYN = 1; Sequence number = x; ACK = 0; Acknowledgement number = 0
  • 3. 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 não tenha, ela envia uma resposta com o bit RST ativado para rejeitar a conexão. 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 conexão. Se aceitar, um segmento de confirmação será retornado. SYN = 1; Sequence number = y; ACK = 1; Acknowledgement number = x + 1
  • 4. Estabelecimento 5. Agora o servidor aguarda uma confirmação final do cliente, para poder dar início a transmissão de dados. SYN = 0; Sequence number = x + 1; ACK = 1; Acknowledgement number = y + 1 6. Os dados são transmitidos.
  • 6. Estabelecimento Cliente Servidor Rede
  • 7. Estabelecimento Cliente Servidor SYN: 1 Seq: 22 ACK: 0 Ack numb: 0 FIN: 0
  • 8. Estabelecimento Cliente Servidor SYN: 1 Seq: 22 ACK: 0 Ack numb: 0 FIN: 0 SYN: 1 Seq: 45 ACK: 1 Ack numb: 23 FIN: 0
  • 9. Estabelecimento Cliente Servidor SYN: 1 Seq: 22 ACK: 0 Ack numb: 0 FIN: 0 SYN: 1 Seq: 45 ACK: 1 Ack numb: 23 FIN: 0 SYN: 0 Seq: 23 ACK: 1 Ack numb: 46 FIN: 0
  • 10. Estabelecimento Cliente Servidor SYN: 1 Seq: 22 ACK: 0 Ack numb: 0 FIN: 0 SYN: 1 Seq: 45 ACK: 1 Ack numb: 23 FIN: 0 SYN: 0 Seq: 23 ACK: 1 Ack numb: 46 FIN: 0 Transferência de Dados
  • 11. Encerramento Apesar das conexões TCP serem full-duplex, fica mais fácil compreender como as conexões são encerradas se as considerarmos um par de conexões simplex. Cada conexão simplex é encerrada de modo independente de sua parceira. Qualquer dos lados pode enviar um segmento com o bit FIN ativado, o que significa que não 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, são necessários quatro segmentos TCP para encerrar uma conexão, isto é um FIN e um ACK para cada sentido. Porém é possível que o primeiro ACK e o segundo FIN ocupem o mesmo segmento, o que baixa o número total para três.
  • 14. Encerramento Cliente Servidor SYN: 0 Seq: 23 ACK: 1 Ack numb: 46 FIN: 1
  • 15. Encerramento Cliente Servidor SYN: 0 Seq: 23 ACK: 1 Ack numb: 46 FIN: 1 SYN: 0 Seq: 46 ACK: 1 Ack numb: 24 FIN: 0
  • 16. Encerramento Cliente Servidor SYN: 0 Seq: 23 ACK: 1 Ack numb: 46 FIN: 1 SYN: 0 Seq: 46 ACK: 1 Ack numb: 24 FIN: 0 Obs: Neste momento foi encerrado o envio de novos dados apenas no sentido cliente-servidor. Nada impede do servidor continuar enviando novos dados.
  • 17. Encerramento Cliente Servidor SYN: 0 Seq: 23 ACK: 1 Ack numb: 46 FIN: 1 SYN: 0 Seq: 46 ACK: 1 Ack numb: 24 FIN: 0 SYN: 0 Seq: 46 ACK: 1 Ack numb: 24 FIN: 1
  • 18. Encerramento Cliente Servidor SYN: 0 Seq: 23 ACK: 1 Ack numb: 46 FIN: 1 SYN: 0 Seq: 46 ACK: 1 Ack numb: 24 FIN: 0 SYN: 0 Seq: 46 ACK: 1 Ack numb: 24 FIN: 1 SYN: 0 Seq: 24 ACK: 1 Ack numb: 47 FIN: 0 Encerramento da conexão finalizado para os dois lados da conexão.
  • 19. Referências • TANENBAUM. A. Rede de computadores. 4º Edição. • http://support.microsoft.com/kb/172983/pt- br – Último acesso em 12/03/2013.