Controle de Erro em Redes de Computadores Prof. S. Motoyama Aula 24 Motoyama: Controle de Erro 1
Enlace de Dados O controle de erro em redes de computadores é feito na camada enlace de dados (ou na camada transporte). As camadas enlaces de dados dos processos A e B trocam mensagens, chamados de quadros através de um protocolo pré-estabelecido. O verdadeiro caminho onde esses quadros trafegam é através das camadas físicas e o meio de transmissão. Processo A Aplicação Apresentação Sessão Transporte Processo B Aplicação Apresentação Sessão Transporte Rede Enlace de dados Física Troca de mensagens (Quadros) Caminho real Rede Enlace de dados Física Motoyama: Controle de Erro 2
Controle de Erro Em geral o controle de erro em redes de computadores pode ser: a) ARQ (Automatic-Repeat-reQuest) Solicitação de repetição automática e, b) FEC (Forward Error Correction) Correção de erro adiante. ARQ Utiliza códigos detetores de erro. O receptor descarta o bloco ou quadro recebido com erro e, solicita retransmissão do quadro. A retransmissão continua até que o quadro seja recebido sem erro. FEC Utiliza códigos corretores de erro (códigos de blocos ou convolucionais). Quando o receptor detecta a presença de erros no quadro de dados, localiza e corrige os erros. É um esquema complexo que exige muito processamento. São utilizados em algumas aplicações especiais como em comunicações por satélite e espacial. Motoyama: Controle de Erro 3
ARQ - Stop and Wait Operação sem Erro Controle de Erro Quadro Quadro Operação com Erro Quadro ACK ACK Quadro de Retransmissão Erro ACK ACK Motoyama: Controle de Erro 4
Controle de Erro Operação com Erro em ACK Quadro Descarta ACK Quadro de Retransmissão Erro ACK Motoyama: Controle de Erro 5
Necessidade de Numeração do ACK Controle de Erro Se o receptor for um processador lento, podemos ter o seguinte cenário Retransmissão O nó conclui erradamente que que o ACK é do quadro 1 0 0 1 0 Erro Atraso de processamento Motoyama: Controle de Erro 6
Com ACK numerado Controle de Erro O nó descarta este ACK Retransmissão 0 0 1 1 ACK 0 ACK 0 Erro Atraso de processamento. Motoyama: Controle de Erro 7
Controle de Erro ARQ contínuo: o transmissor transmite continuamente quadros de informação sem esperar os ACKs. Operação sem erro 0 1 2 3 4 5 ACK 0 ACK 1 ACK 2 ACK 3 ACK 4 ACK 5 Operação com erro - Selective-reject 0 1 2 3 1 4 Erro ACK 0 ACK 2 ACK 3 ACK 1 ACK 4 Motoyama: Controle de Erro 8
Controle de Erro O esquema Selective-reject tem as seguintes desvantagens: a) os quadros chegam fora de ordem Deve-se esperar o quadro que falta para enviar a camada acima juntamente com outros quadros, pois os quadros em geral não são independentes. b) necessidade de gerenciamento de buffer. Go-back-N - Um esquema para evitar armazenamento de quadros. 0 1 2 3 4 1 2 3 4 Erro ACK 0 NACK 1 ACK 1 ACK 2 Quadros descartados Motoyama: Controle de Erro 9
Go-back-N: Erro em ACK Controle de Erro 0 1 2 3 4 5 6 7 8 ACK 0 ACK 2 Erro ACK 1 ACK 3 ACK 4 ACK 5 ACK 6 Houve erro no ACK 3 e não foi recebido pelo transmissor. Entretanto, chegou o ACK 4. O transmissor entende que o quadro 3 chegou ao receptor, mas houve erro no ACK 3 e, nenhuma providência será tomada. Motoyama: Controle de Erro 10
Controle de Erro Controle de fluxo no protocolo ARQ Os quadros de informação recebidos na camada enlace de dados são repassados a camadas superiores. Em geral, as taxas com que essas camadas superiores podem receber informações são limitadas. Se essas taxas são menores do que o receptor está recebendo as informações, então o receptor necessita armazenar as informações em um buffer. Dependendo da taxa, o buffer pode sofrer overflow. Para evitar isso, o receptor juntamente com o transmissor necessitam de um mecanismo de controle de fluxo de quadros de informação. Controle de fluxo baseado em Sliding Window - Janela deslizante Neste esquema, o transmissor pode transmitir até W quadros de informação continuamente, antes de receber um ACK do receptor. Motoyama: Controle de Erro 11
Controle de Fluxo - Janela Deslizante Exemplo de Operação Tamanho da janela W = 3 0 1 2 3 4 5 ACK 0 ACK 1 ACK 2 O transmissor pára de transmitir após três quadros sucessivos. Quando receber o ACK 0 pode transmitir um quadro, assim como quando receber os ACK 1 e ACK 2. Neste exemplo, após a transmissão do quadro 5, o transmissor necessita parar, pois não chegou mais ACK. Motoyama: Controle de Erro 12
Controle de Fluxo - Janela Deslizante Operação com erro em ACK Vamos supor uma janela W = 4, uma numeração sequencial utilizando 2 bits e o protocolo go-back-n. Seja o exemplo da figura abaixo. 0 1 2 3 Todos os ACKs com erros 0 1 2 3 ACK 0 ACK 1 ACK 2 ACK 3 O receptor interpreta como um novo quadro e não de retransmissão. Motoyama: Controle de Erro 13 No exemplo acima, teremos uma operação errada com o protocolo. Para evitar essa situação errônea devemos utilizar um tamanho de janela W menor do que 2 n onde n é número de bits de numeração. No exemplo acima, para W = 3, evita- se a operação incorreta.
Controle de Fluxo - Janela Deslizante Operação com 2 bits e W = 3 0 1 2 Todos os ACKs com erros 0 1 2 ACK 0 ACK 1 ACK 2 O receptor reconhece que são quadros de repetição, pois aguardava como a sequência correta o número 3 Motoyama: Controle de Erro 14