GoConqr has a new look! Let us know what you think.

Mind map

Transmission Control Protocol (TCP): aprofundamento

Michel Souza Redes de computadores Portuguese

Transmission Control Protocol (TCP): aprofundamento

Map content

Transmission Control Protocol (TCP): aprofundamento

  1. Conexão TCP

    • Estabelecimento de conexão
      • Utiliza o protocolo 3-way-handshake
      • Sequência de mensagens
        • Sinalização de abertura de conexão da origem – FLAG SYN (Origem)
        • Confirmação de abertura e Sinalização de conexão do destino – FLAGS SYN e ACK (Destino)
        • Confirmação de abertura da conexão pela origem – FLAG ACK (Origem)
        • Para o devido estabelecimento da conexão, necessariamente deverá ocorrer a troca das três mensagens
      • Para o devido estabelecimento das conexões, utiliza-se soquetes (sockets) nos dispositivos
        • Soquete = ENDEREÇO IP + PORTA
        • O estabelecimento da conexão então ocorre quando há a efetiva e explícita conexão entre os soquetes do nó transmissor e do nó receptor
        • Quanto um dispositivo qualquer está fornecendo algum serviço na rede, este dispositivo mantém a porta do respectivo serviço no estado LISTENING ou LISTEN
          • Neste estado, a porta está aceitando conexões de clientes
          • Quando há o estabelecimento da conexão, a porta passa para o estado ESTABLISHED
    • Encerramento de conexão
      • Utiliza o protocolo 4-way-handshake
      • Sequência de mensagens
        • FLAG FIN (1) - utilizada para requisitar o encerramento da conexão (origem)
          • Reparem ainda que não mais é enviado um pacote com dois tipos de flags como ocorria na abertura (SYN + ACK)
          • Utiliza-se as FLAGS ACK (2) e FIN (3) em mensagens separadas (destino)
            • Há, porém, a possibilidade de condensar as mensagens ACK e FIN no destino, como no estabelecimento da conexão, utilizando apenas 3 mensagens
          • Esse modo é conhecido como encerramento Simétrico
        • FLAG ACK (4) - Por fim a origem confirma o encerramento
        • Outro método utilizado é o envio de um único segmento com a FLAG RST, implicando um encerramento imediato
          • Independe mensagens FIN sendo conhecido como modo assimétrico
    • Após o estabelecimento da conexão, passa-se então à troca de dados propriamente ditos
      • Os pacotes deverão ser sequenciados para que os dispositivos reconheçam os pacotes e respondam de forma adequada
  2. Segmentação na camada de transporte

    • Camada de transporte possui a capacidade de realizar segmentação dos dados recebidos das camadas superiores
    • A segmentação objetiva evitar futuras fragmentações pela camada de rede
      • Dessa forma, avalia-se o MTU suportado na rede e partir desse valor, define-se o tamanho de cada segmento
      • Essa unidade é conhecida como MSS (Max Segment Size), ou seja, tamanho máximo do segmento
    • Na maioria das redes, temos o protocolo Ethernet, o que nos leva a um MTU padrão de 1500 bytes
      • Como esses 1500 bytes correspondem ao cabeçalho e área útil da camada de rede, na perspectiva da camada de transporte, deve-se descontar o tamanho do cabeçalho da camada de rede
  3. Sequenciamento e controle de fluxo

    • Motivação
      • Pelo protocolo TCP/IP comutar pacotes através do protocolo IP, não há garantia de entrega na devida ordem dos diversos pacotes
        • Cada um pode seguir rotas distintas
        • Além da possibilidade de ocorrência de perdas
      • Para que tal situação seja devidamente controlada, utiliza-se o recurso de marcação dos pacotes com números de sequência
        • Isso permite que o destinatário tenha condições de remontar a informação original
        • Além disso, como vimos, utiliza-se o recurso de confirmação de recebimento através do envio de pacotes do tipo ACK
    • Funcionamento da troca de mensagem
      • Confirmação de cada segmento
        • HOST A envia mensagem com número de SEQ = X, ACK = Y
          • SEQ = X indica que o segmento X é transmitido
          • ACK = Y solicita o segmento Y confirmando a chegada do Y-1
        • O HOST B, para confirmar, manda uma mensagem com ACK=X+1, informando que está esperando uma nova mensagem na sequência
          • O HOST B, no mesmo pacote de resposta anterior, gera um novo número de SEQ = Y
        • O HOST A, sabendo que o pacote foi recebido, manda o pacote seguinte com SEQ=X+1 e confirma o recebimento da resposta com ACK=Y+1
      • Janela deslizante
        • Busca otimizar a troca de dados em um meio estável e com pouquíssimas perdas
          • Nesse cenário, enviar apenas um segmento por vez e aguardar a confirmação gera uma grande perda de tempo
        • Portanto, na prática, envia-se diversos segmentos com quantidade prevista no campo WINDOW do protocolo TCP
          • Supondo que um cliente Web browser informe uma janela = 3000 e ACK = 1000, isso significa que ele solicita o próximo segmento 1000 até o limite de 3000
            • Técnica da partida lenta
              • No início da transmissão, o protocolo define o tamanho inicial de 1MSS [RFC 3390] para o tamanho da Janela
              • Consiste em incremento do tamanho da janela deslizante de 1 MSS para cada ACK recebido
                • De forma prática, o protocolo duplica a janela a cada conjunto de segmentos enviados e recebidos corretamente
                • Caso haja uma perda, o valor da janela é restaurado a 1 MSS e recomeça o procedimento de incremento
              • Entretanto, tem-se definido um valor que chamaremos de LIMIAR sendo, por padrão, o seu valor de 64kbytes
                • Uma vez que se atinge este valor, o incremento passa a ser de 1 MSS
                  • Esse procedimento é conhecido como a técnica de prevenção de congestionamento
                • Para cada perda, o algoritmo redefine esse valor de limiar como sendo a metade do tamanho da janela deslizante corrente quando houve a perda
                  • Isto é, se a janela estava em 40kbytes, o novo valor do LIMIAR será de 20kbytes
          • Dessa forma, o web server enviará as sequências solicitadas começando de 1000 até 3000
            • Tendo recebido todos os segmentos sem erros, o cliente solicita o próximo segmento (4000) podendo inclusive aumentar o tamanho da janela
            • Há uma dinamicidade do tamanho da janela em relação ao comportamento da rede
    • Erros na transferência de dados
      • Para toda mensagem enviada, em caso de confirmação por segmento, inicia-se um timer de controle interno
        • Caso esse tempo expire e não haja o recebimento da confirmação, envia-se novamente o pacote
      • Mesmo que uma mensagem seja recebida, existe a possibilidade de perda do ACK
        • Como o emissor não tem ciência do recebimento do segmento por causa da perda do ACK, há o TIMEOUT e este envia novamente
        • Tem-se um caso de duplicação da informação no destino
          • Nesse cenário, a informação duplicada é descartada e o receptor envia novamente um ACK para avisar do recebimento
      • Retransmissão de pacotes em caso de erros com transmissão com janela
        • Go-Back-N: a nomenclatura N é utilizada de acordo com o tamanho da janela
          • Havendo uma perda de qualquer pacote na sequência, todos os demais pacotes posteriores recebidos serão descartados
          • Obrigando o transmissor a retransmitir as informações a partir do pacote perdido
        • Retransmissão seletiva: conhecido também como SACK (Selective ACK)
          • Nesse modelo, caso haja perda, os pacotes recebidos posteriormente, serão armazenados em buffer aguardando a retransmissão apenas do pacote perdido
          • Entretanto, caso haja a perda de um pacote intermediário, o transmissor não enviará mensagens indefinidamente
            • Ele preencherá apenas o tamanho da janela, sendo que o início da janela estará “preso” ao recebimento do pacote perdido
  4. Stream Control Transmission Protocol (SCTP)

    • Características
      • Surgiu como alternativa intermediária aos protocolos UDP e TCP
      • Não é tão burocrático como o TCP, porém implementa alguns métodos de controle, coisa que o UDP não faz
      • É um protocolo confiável, uma vez que utiliza recurso de reconhecimento das mensagens transmitidas
        • Muitas falhas de segurança do TCP foram corrigidas em sua implementação
        • Possui suporte à mobilidade em termos de transporte
      • Além disso, é um protocolo orientado a conexões com alto nível de eficiência na transferência dos dados
    • Implementação de novos recursos
      • MultiHoming – Múltiplos endereços IP podem ser acessados para um mesmo destino
      • MultiStreaming – Em uma mesma conexão, pode-se ter diversos fluxos independentes de dados

Images and files in the map

  • Transmission Control Protocol (TCP): aprofundamento
  • Transmission Control Protocol (TCP): aprofundamento
  • Transmission Control Protocol (TCP): aprofundamento
  • Transmission Control Protocol (TCP): aprofundamento
  • Transmission Control Protocol (TCP): aprofundamento
  • Transmission Control Protocol (TCP): aprofundamento
  • Transmission Control Protocol (TCP): aprofundamento
  • Transmission Control Protocol (TCP): aprofundamento
  • Transmission Control Protocol (TCP): aprofundamento

Information

Description
Redes de computadores (Camada de Transporte) Mind Map on Transmission Control Protocol (TCP): aprofundamento, created by Michel Souza on 19/05/2018.
Created by
Michel Souza
Views
0
Rating

More on TCP e transferência confiável de dados

Feedback

What is it about?

What do you think of the new look?

How do you like it?