Ads 468x60px

TCP's


TCP - Transmissão Fiável

  • Confirmação de recepção
    • O recetor confirma, através de uma mensagem curta (Acknowledgemente), que recebeu o segmento enviado;
  • Retransmissão
    • Se a confirmação não for recebida dentro de um período determinado, o segmento é reenviado;


TCP - Retransmissão

  • Quanto tempo esperar pela confirmação (ACK)?
    • Depende da distância ao destino e das condições do tráfego no momento.
  • O momento de espera num determinado momento é estimado a partir do Round-Trip Time de cada ligação e do tempo estimado presente:
    • Chama-se, por isso, retransmissão adaptável.
  • O segredo do sucesso do TCP.



TCP - Controlo de congestão

  • A congestão é detetada por:
    • Ocorrência de Timeout (ACKs não chegam)
    • Receção duplicada de ACKs.
  • Ao serem detetadas colisões:
    • O envio de segmentos é reduzido drasticamente (Collision Avoidance Algorithm);
    • Depois começa a aumentar devagar, inicialmente e exponencialmente com o tempo (Slow Start Algorithm);



TCP - Controlo de Fluxo

  • O recetor:
    • Anuncia, a cada ACK, o espaço livre do seu buffer (window size);
  • O emissor:
    • Envia segmentos até ao limite da janela (window size), sem ter de esperar por confirmação (ACKs);
  • Este mecanismo é conhecido como Protocolo da Janela Deslizante (Sliding Window Protocol).



TCP - Encerramento fiável

  • Importante por causa da segurança:
    • Se não for encerrada de forma correta, poderão ficar portas abertas;
    • Alguém mal intencionado poderá aproveitar-se
  • O mecanismo de encerramento de TCP permite que uma das partes termine a ligação e a outra possa continuar a enviar dados;
  • Chama-se half-closed:
    • O fecho da ligação num dos dados não obriga o fecho de ambos.




TCP - Formato

  • Source/Destinaton Port
    • Porta remente/destinatária (aplicação);
  • Sequence Number
    • Número de sequência do pacote;
  • Acknowledgement Number
    • Próximo número de sequência que o emissor espera receber;
  • HLen (Header Length)
    • Tamanho do cabeçalho;
  • URG - O campo Urgent Pointer é válido.
  • ACK - O segmento é uma confirmação (Acknowledgement);
  • PSH - O recetor deverá passar os dados para a camada de aplicação logo que possível;
  • RST - Segmento enviado não faz sentido (Exemplo: Porta não Existe);
  • SYN - Pedido de sincronização de números de sequência (para iniciar ligação);
  • FIN - Computador emissor acabou o envio de dados (para terminar ligação);
  • Window
    • Número de bytes que o host está disposto a aceitar (espaço livre na buffer);
  • Checksum
    • Cobre o cabeçalho+dados;
  • Urgent Pointer
    • Posição onde serão colocados os dados urgentes.
  • Options
    • A opção mais comum é a MSS (Maximum Segment Sender) que define o tamanho máximo de segmento que pode ser enviado.



Métodos de conexão por TCP

  • É um método standard que permite a comunicação entre processos (que se encontram eventualmente em diferentes máquinas), isto é, um conjunto de regras e procedimentos a respeitar para emitir e receber dados numa rede.
  • Existem vários métodos, de acordo com o que se espera da comunicação.
  • Certos protocolos, por exemplo, serão especializados na troca de ficheiros (FTP), outros poderão servir para gerir simplesmente o estado da transmissão, e os erros (é o caso do protocolo ICMP), …


 
▲ Ir para Topo