segunda-feira, 15 de abril de 2013

TCP - transmissão Fiavel

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

TCP - Retransmissão 
  • Quanto tempo esperar pela confirmação (ACK)?
    • Depende da distancia ao destino e das condições de trafego no momento.
  • O tempo de espera num determinado momento é estimado a partir do Round-trip time de cada ligação e o temppo estimado presente
    • Chama-se por isso, retransmissão adoptavel
    • O segredo do sucesso do TCP

TCP - Controlo de congestão
  • A congestão é detectada por:
    • Ocorrência de Timeout (ACKs não chegam);
    • Recepção duplicada de ACKs
  • Ao serem detectadas colisões:
    • O envio de segmentos é reduzido dramaticamente ( Collision Avoidance Algorithm)
    • Depois começa  a aumentar devagar inicialmente com o tempo (Slow Stort 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.


Sem comentários:

Enviar um comentário