Computadores Prof. S. Motoyama Aula 24 Motoyama: Controle de Erro 2 Camada 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 atravs de um protocolo pr-estabelecido. O verdadeiro caminho onde esses quadros trafegam atravs das camadas fsicas e o meio de transmisso. Processo A Processo B Camada Fsica Camada Enla- ce de dados Camada Rede Camada Transporte Camada Sesso Camada Apresentao Camada Aplicao Camada Fsica Camada Enla- ce de dados Camada Rede Camada Transporte Camada Sesso Camada Apresentao Camada Aplicao Troca de mensagens (Quadros) Caminho real Motoyama: Controle de Erro 3 Controle de Erro Em geral o controle de erro em redes de computadores pode ser: a) ARQ (Automatic-Repeat-reQuest) Solicitao de repetio automtica e, b) FEC (Forward Error Correction) Correo de erro adiante. ARQ Utiliza cdigos detetores de erro. O receptor descarta o bloco ou quadro recebido com erro e, solicita retransmisso do quadro. A retransmisso continua at que o quadro seja recebido sem erro. FEC Utiliza cdigos corretores de erro (cdigos de blocos ou convolucionais). Quando o receptor detecta a presena de erros no quadro de dados, localiza e corrige os erros. um esquema complexo que exige muito processamento. So utilizados em algumas aplicaes especiais como em comunicaes por satlite e espacial. Motoyama: Controle de Erro 4 Controle de Erro ARQ - Stop and Wait Operao sem Erro Quadro Quadro Transmissor Receptor Tempo ACK ACK ACK Transmissor Receptor Tempo Quadro ACK Quadro de Retransmisso Operao com Erro Time out Erro Motoyama: Controle de Erro 5 Controle de Erro Operao com Erro em ACK Transmissor Receptor Tempo Quadro ACK Quadro de Retransmisso Time out Descarta ACK Erro Motoyama: Controle de Erro 6 Controle de Erro Necessidade de Numerao do ACK Se o receptor for um processador lento, podemos ter o seguinte cenrio O n conclui erradamente que que o ACK do quadro 1 Time out 0 0 1 0 Erro Retransmisso Transmissor Receptor Tempo Atraso de processamento Motoyama: Controle de Erro 7 Controle de Erro Com ACK numerado O n descarta este ACK 0 0 1 1 Erro ACK 0 ACK 0 Time out Time out Retransmisso Transmissor Receptor Tempo Atraso de processamento. Motoyama: Controle de Erro 8 Controle de Erro ARQ contnuo: o transmissor transmite continuamente quadros de informao sem esperar os ACKs. Operao sem erro 0 1 2 3 4 5 ACK 0 ACK 1 ACK 2 ACK 3 ACK 4 ACK 5 Operao com erro - Selective-reject ACK 0 ACK 2 ACK 3 ACK 1 ACK 4 Erro 0 1 2 3 1 4 Time out Motoyama: Controle de Erro 9 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 no so independentes. b) necessidade de gerenciamento de buffer. Go-back-N - Um esquema para evitar armazenamento de quadros. ACK 0 NACK 1 ACK 1 ACK 2 Erro Quadros descartados 0 1 2 3 4 1 2 3 4 Motoyama: Controle de Erro 10 Controle de Erro Go-back-N: Erro em ACK Transmissor ACK 0 ACK 2 ACK 5 ACK 6 0 1 2 3 4 5 6 7 8 ACK 1 ACK 3 ACK 4 Erro Receptor Tempo Houve erro no ACK 3 e no 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 providncia ser tomada. Motoyama: Controle de Erro 11 Controle de Erro Controle de fluxo no protocolo ARQ Os quadros de informao recebidos na camada enlace de dados so repassados a camadas superiores. Em geral, as taxas com que essas camadas superiores podem receber informaes so limitadas. Se essas taxas so menores do que o receptor est recebendo as informaes, ento o receptor necessita armazenar as informaes 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 informao. Controle de fluxo baseado em Sliding Window - Janela deslizante Neste esquema, o transmissor pode transmitir at Wquadros de informao continuamente, antes de receber um ACK do receptor. Motoyama: Controle de Erro 12 Controle de Fluxo - Janela Deslizante Exemplo de Operao Tamanho da janela W = 3 Transmissor 0 1 2 3 4 5 ACK 0 ACK 2 ACK 1 Receptor Tempo O transmissor pra de transmitir aps trs quadros sucessivos. Quando receber o ACK 0 pode transmitir um quadro, assim como quando receber os ACK 1 e ACK 2. Neste exemplo, aps a transmisso do quadro 5, o transmissor necessita parar, pois no chegou mais ACK. Motoyama: Controle de Erro 13 Controle de Fluxo - Janela Deslizante Operao com erro em ACK Vamos supor uma janela W = 4, uma numerao sequencial utilizando 2 bits e o protocolo go-back-N. Seja o exemplo da figura abaixo. Time out Transmissor O receptor interpreta como um novo quadro e no de retransmisso. 0 1 2 3 3 0 1 2 Todos os ACKs com erros ACK 0 ACK 2 ACK 1 ACK 3 Receptor Tempo No exemplo acima, teremos uma operao errada com o protocolo. Para evitar essa situao errnea devemos utilizar um tamanho de janela Wmenor do que 2 n onde n nmero de bits de numerao. No exemplo acima, para W = 3, evita- se a operao incorreta. Motoyama: Controle de Erro 14 Controle de Fluxo - Janela Deslizante Operao com 2 bits e W = 3 ACK 0 ACK 2 ACK 1 Transmissor Receptor Tempo 0 1 2 0 1 2 Time out Todos os ACKs com erros O receptor reconhece que so quadros de repetio, pois aguardava como a sequncia correta o nmero 3