Buscar

ATIVIDADE N1 REDES (1)

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

Controle de erro
Para fornecer um serviço confiável, o TCP implementa um mecanismo de controle de erro. Embora o controle de erro considere um segmento como a unidade de dados para detecção de erro(segmentos perdidos ou corrompidos), o controle de erro é orientado a byte.
Número de byte
O TCP numera todos os bytes de dados que são transmitidos em uma conexão. À numeração é independente em cada direção. Quando o TCP recebe bytes de dados de um processo, ele os armazena no buffer de envio e os numera. A numeração não começa necessariamente em 0. Em vez disso, o TCP gera um número aleatório entre 0 e 2 elevado a 32 - 1 para o número do primeiro byte. Por exemplo: se o número aleatório é 1.057 e o total de dados a serem enviados é de 6.000 bytes, os bytes são numerados de 1.057 a 7.056.
A numeração de byte é usada para controle de fluxo e de erro.
Os bytes de dados que estão sendo transferidos em cada conexão são numerados pelo TCP.
Buffers de envio e de recepção
 Como os processos remetentes e receptores podem não gravar ou ler dados na mesma velocidade, o TCP precisa de buffers para armazenamento. Existem dois buffers: o buffer de envio e o buffer de recepção, um para cada direção. (esses buffers também são necessários para os mecanismos de controle de fluxo e de erro usados pelo TCP) 
Soma de verificação
 Cada segmento incluí um campo de soma de verificação que é usado para verificar um segmento corrompido. Se o segmento estiver corrompido, ele é descartado pelo TCPde destino e considerado como perdido. O TCP usa uma soma de verificação de 16
bits, obrigatória em todo segmento. A soma de verificação de 16 bits é considerada inadequada para a nova camada de transporte, SCTP.Entretanto, ela não pode ser alterada para o TCP, pois isso envolveria a reconfiguração do formato do cabeçalho inteiro.
Reconhecimento
O TCP usa reconhecimentos para confirmar a recepção de segmentos de dados. Os segmentos de controle que não transportam dados, mas consomem um número em sequência, também são reconhecidos. Os segmentos ACK nunca são reconhecidos.
Tipo de reconhecimento
No passado, o TCP usava apenas um tipo de reconhecimento: o reconhecimento acumulativo. Atualmente, algumas implementações de TCP também usam reconhecimentos seletivos.
Reconhecimento acumulativo (ACK) Originalmente, o TCP foi projetado para reconhecer a recepção de segmentos de forma cumulativa. O receptor anuncia o próximo byte que espera receber, ignorando todos os segmentos recebidos fora de ordem. Às vezes, isso é chamado de reconhecimento acumulativo positivo, ou ACK. A palavra “positivo” indica que os segmentos descartados, perdidos ou duplicados não são relatados. O campo ACK de 32 bits no cabeçalho TCP é usado para reconhecimentos cumulativos e seu valor é válido somente quando o bit do flag ACK está configurado como 1.
Reconhecimento seletivo (SACK) - Cada vez mais implementações estão adicionando outro tipo de reconhecimento, chamado de reconhecimento seletivo, ou SACK. Um SACK não substitui o ACK, mas relata informações adicionais ao remetente. Um SACK relata o bloco de dados que está fora de ordem e o bloco de segmentos que está duplicado. Entretanto, como não há meios de adicionar esse tipo de informação no cabeçalho TCP, o SACK é implementado como uma opção no final do cabeçalho TCP.
Retransmissão
O coração do mecanismo de controle de erro é a retransmissão de segmentos. Quando um segmento é corrompido, perdido ou atrasado, ele é retransmitido. Nas implementações modernas, um segmento é retransmitido em duas ocasiões: quando um cronômetro de retransmissão expira ou quando o remetente recebe três ACKs duplicados. 
Note que nenhuma retransmissão ocorre para segmentos que não consomem números em sequência. Em particular, não há transmissão para um segmento ACK.
Retransmissão após o RTO
O TCP de origem inicia um cronômetro de tempo-limite de retransmissão (RTO) para cada segmento enviado. Quando o cronômetro expira, o segmento correspondente é considerado corrompido ou perdido; e o segmento é retransmitido mesmo que a falta de um ACK recebido possa ser por causa de um segmento atrasado, um ACK atrasado ou um reconhecimento perdido. Note que nenhum cronômetro de tempo-limite é configurado para um segmento que transporta apenas um reconhecimento, o que significa que nenhum segmento desses é reenviado. O valor de RTO é dinâmico no TCP e atualizado com base no tempo de ida e volta (RTT) dos segmentos. O RTT é o tempo necessário para que um segmento chegue a
um destino e para que um reconhecimento seja recebido.
Retransmissão após três segmentos ACK duplicados
A regra anterior sobre retransmissão de um segmento é suficiente se o valor de RTO não for muito grande. Entretanto, às vezes, um segmento é perdido e o receptor recebe
muitos segmentos fora de ordem que não podem ser salvos (tamanho de buffer limitado). Para atenuar essa situação, a maioria das implementações atuais segue a regra dos
três ACKs duplicados e retransmite o segmento faltante imediatamente. Esse recurso é referido como retransmissão rápida.
Segmentos fora de ordem
Quando um segmento é atrasado, perdido ou descartado, os segmentos que vêm depois dele chegam fora de ordem. Originalmente, o TCP foi projetado para descartar todos os segmentos fora de ordem, resultando na retransmissão do segmento faltante e dos segmentos seguintes. A maioria das implementações atuais não descarta os segmentos fora de ordem. Elas os armazenam temporariamente e os sinalizam como segmentos fora de ordem até que o segmento ausente chegue. Note, contudo, que os segmentos fora de ordem não são enviados para o processo. O TCP garante que os dados sejam enviados em ordem ao processo.

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Continue navegando