Baixe o app para aproveitar ainda mais
Prévia do material em texto
SERVIÇOS DE REDES DE COMPUTADORES UNIDADE 1 – ATIVIDADE 1 ALUNO: GEISON ELBERT BATISTA Mecanismos de controle de erros que são executados pelo protocolo TCP para transmissão íntegra e em ordem dos pacotes de dados em rede. Introdução Quando um dispositivo de comunicação produz informação em que será consumida por um outro dispositivo de comunicação, deve haver um balanço entre a taxa de produção de um e a taxa de consumo do outro. Se um dos dispositivos transmite informações em uma taxa superior à taxa de consumo do outro dispositivo, provavelmente mensagens terão de ser descartadas. O contrário também pode ocorrer – um dispositivo transmissor enviando informações em uma taxa muito inferior à taxa que o dispositivo de destino pode suportar – fazendo com que nesse caso haja desperdício de capacidade do sistema. Deve haver um balanço para que o sistema seja eficiente. No que tange à taxa de transmissão do primeiro caso, o balanço pode ser alcançado usando-se técnicas de Controle de Fluxo, para que seja evitada a perda de dados no dispositivo de destino da transmissão. O Controle de Fluxo deve ser empregado quando a transmissão de dados entre dois dispositivos se dá da forma que denominamos “Push”, na qual o transmissor simplesmente envia dados para o receptor assim que eles estão disponíveis, sem que o receptor os tenha requisitado. Neste caso, o receptor poderá receber dados em uma taxa muito superior à que ele suporta, e então dados acabam por serem descartados. Para que isso não ocorra, o receptor precisa pedir ao transmissor que pare de enviar dados momentaneamente, até que os dados recebidos sejam processados, e o receptor esteja pronto para receber mais dados. Quando o receptor requisita os dados não há a necessidade de controle de fluxo, e chamamos essa forma de transmissão de modo “Pull.” Controle de Fluxo via “Push” na camada de transporte TCP Para que o controle de fluxo possa ser implementado, são usados “Buffers”. Um “Buffer” é um local na memória que armazena pacotes conforme são recebidos. Existem dois “buffers” para realização de controle de fluxo: uma na camada de transporte do host transmissor, e outro na camada de transporte do host receptor. O primeiro “buffer” armazena dados provenientes da camada de aplicação do mesmo host, e o segundo “buffer” armazena os dados recebidos a partir da rede, no host receptor (de destino). Quando o “buffer” da camada de transporte do host de destino está cheio, ele informa à camada de transporte do transmissor que ela deve parar de enviar pacotes. Quando o “buffer” começa a se esvaziar, ele informa à camada de transporte do transmissor que ele pode continuar a enviar dados. O mesmo ocorre com o “buffer” da camada de transporte do transmissor: Quando ele está cheio, informa à camada de aplicação do transmissor que ela deve parar de enviar mensagens. Quando o buffer começa a se esvaziar, ele informa à camada de aplicação que pode continuar a enviar as mensagens. Controle de Erros A camada de Internet (Rede) é dita como “não-confiável”, o que significa que não há garantia da entrega de pacotes entre dois hosts que se comunicam entre si. Para que uma comunicação possa ser considerada confiável, a camada de transporte pode implementar mecanismos para garantir a entrega desses pacotes durante uma transmissão. Chamamos a esse processo de “Controle de Erros”, e ele consiste, basicamente, em detectar e descartar pacotes corrompidos, acompanhar pacotes descartados e perdidos (para reenviá-los), verificar a existência de pacotes duplicados (e descartá-los), e guardar em “buffer” pacotes que cheguem fora de ordem, até que seja possível reordená-los. O controle de erros é realizado pela camada de transporte do host de destino dos dados, informando à camada de transporte do transmissor a repeito de problemas que venham a ocorrer. Uma das informações que são usadas para realizar o controle de erros são o Números de Sequência, que são números usados para numerar os segmentos enviados. Esse número é gravado em um dos campos do cabeçalho do segmento na camada de transporte, e quando um pacote é corrompido ou perdido, a camada de transporte do receptor detecta a falta do segmento respectivo e pode informar ao transmissor para que ele reenvie o segmento faltante. Já segmentos duplicados são facilmente detectados, pois tem o mesmo número de sequência. E para colocá-los em ordem basta também observar esse número, pois os segmentos são numerados sequencialmente. Quando um ou mais segmentos chegam corretamente ao seu destino, o host receptor pode enviar uma mensagem “ACK” acknowledgement / confirmação) para o host transmissor, informando que recebeu os pacotes. Pacotes perdidos podem ser detectados pelo próprio transmissor com o uso de um timer, que é ativado ao enviar um pacote. Quando esse timer expira, se uma mensagem ACK não tiver sido recebida de volta, o transmissor reenvia o pacote, conforme o exemplo da imagem abaixo Técnicas para controle de fluxo e correção de erros Existem técnicas para controle de fluxo, tais como stop-and-go e de janela deslizante. O stop-and-go, por exemplo, funciona com a origem transmitindo somente quando recebe uma mensagem de controle do destino, avisando quando está pronto para receber o próximo pacote. Alguns exemplos: • Modelo Fuzzy TSK Aplicado à Predição do Tamanho de Fila no Buffer: O modelo fuzzy TSK, o qual interpola localmente relações de entrada-saída lineares através de funções de pertinência, resultando em sistemas não-lineares. É um algoritmo desenvolvido com a finalidade de detectar, controlar e corrigir a transmissão e recebimento de dados. (SciELO - Brasil - Esquema de controle adaptativo de tráfego de redes baseado em um algoritmo de predição fuzzy Esquema de controle adaptativo de tráfego de redes baseado em um algoritmo de predição fuzzy ) • Algoritmo de controle de congestionamento foi proposto por JACOBSON , e é chamado de Tahoe. Além das fases de partida lenta e de prevenção O tempo transcorrido desde o instante em que um segmento é enviado até o instante que ele é reconhecido. No remetente é conhecido como RTT (Round-Trip Time — Tempo de Ida e Volta), o qual varia de segmento para segmento de congestionamento, o Tahoe também inclui o mecanismo de retransmissão rápida (fast retransmit) no qual realiza o cálculo da estimativa do tempo de ida e volta (RTT) que é usado para definir o tempo de retransmissão dos segmentos TCP. • Reno TCP No algoritmo chamado Reno, o mecanismo de recuperação rápida (fast recovery) que cancela a fase de partida lenta apósuma retransmissão rápida. Desta forma, o Reno reduz a janela de congestionamento para um MSS, somente se a perda acontecer por um estouro do tempo de retransmissão. https://www.scielo.br/j/ca/a/QWZszMyzNrVdwY5R9RhSvGr/?lang=pt https://www.scielo.br/j/ca/a/QWZszMyzNrVdwY5R9RhSvGr/?lang=pt https://www.scielo.br/j/ca/a/QWZszMyzNrVdwY5R9RhSvGr/?lang=pt Quando a perda é detectada através de ACKs duplicados, então a janela de congestionamento é reduzida apenas pela metade do seu valor corrente e o remetente permanece na fase de prevenção de congestionamento, deixando de fora a fase de partida lenta. Com este procedimento, o Reno evita que a conexão fique praticamente ociosa logo após a retransmissão rápida de um segmento.
Compartilhar