- 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).
- 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