SlideShare una empresa de Scribd logo
1 de 69
Descargar para leer sin conexión
10.1
Capítulo 10
Detecção e Correção de erros
Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
10.2
Os dados podem ser corrompidos
durante uma transmissão.
Algumas aplicações exigem que os
erros sejam dectados e corrigidos.
Note
10.3
10-1 Introdução
Iremos discutir, inicialmente, as questões
relacionadas, direta ou indiretamente, à detecção e à
correção de erros.
Tipos de Erros
Redundância
Detecção versus Correção
Correção Antecipada de Erros versus Retransmissão
Códigos de Erros
Aritmética Modular (Não será vista)
Topicos discutidos nesta seção:
10.4
10-1 Tipos de Erros
• Toda vez que uma cadeia de bits flui de um ponto a outro de uma rede de
computadores, eles estão sujeitos a alterações imprevisíveis por causa das
interferências.
• Essas interferências podem modificar as características do sinal.
• Em um erro de bit, um 0 passa a ser 1 e um 1 passa a ser 0.
• Em um erro em rajada, vários bits são corrompidos.
• Por exemplo, uma rajada de 1/100 s de ruídos impulsivos em uma
transmissão com taxa de dados de 1.200bps poderia alterar todos os 12
bits de informação ou parte deles.
10.5
10-1 Tipos de Erros (Erro de Bit)
• O termo erro de bit significa dizer que apenas 1 bit de determinada unidade de
dados (por exemplo, um byte, caractere ou pacote) foi alterado de 1 para 0 ou de 0
para 1.
• A próxima figura mostra efeito do erro de bit sobre uma unidade de dados, para
compreender o impacto desse problema, imagine que cada grupo de 8 bits seja
caractere ASCII com um bit 0 adicionado à esquerda.
• Na figura 10.1, o caractere 00000010 (ASCII STX) foi enviado, significando
início do texto (start of text), mas foi recebido 00001010 (ASCII LF), significando
avanço de linha (line feed).
• Os erros de bit são do tipo de erro de menor probabilidade de ocorrência em uma
transmissão de dados serial, imagine que dados são enviados a 1Mbps. Isso
significa que a duração de cada bit é de apenas 1/1.000.00 s, ou seja, 1 µs, o que é
muito raro na prática; normalmente os ruídos duram muito mais que isso.
10.6
Figure 10.1 Single-bit error
10.7
10-1 Tipos de Erros (Erro em Rajada)
• O termo erro de rajada significa dizer que 2 ou mais bits na unidade de dados
foram corrompidos.
• A figura 10.2 ilustra o efeitos de um erro em rajada sobre uma unidade de dados,
observe que um erro em rajada não significa, necessáriamente, que os erros
ocorrem em bits consecutivos. O comprimento da rajada é medido do primeiro bit
corrompido até último. Pode ser que alguns bits entre eles não tenham sido
corrompidos.
10.8
10-1 Redundância
• O conceito mais importante na detecção e correção de erros é
a redundância.
• Para sermos capazes de detectar ou ccorrigir erros,
precisamos enviar alguns bits extras redundantes junto com
os dados.
• Esses bits redundantes são acrescentados pelo emissor e
posteriomente retirados pelo receptor.
• Sua presença possibilita que o receptor detecte ou corrija bits
corrompidos.
10.9
10-1 Detecção versus Correção
• Corrigir erros em uma transmissão de dados é muito mais difícil que a detecção.
• Na detecção de erros, estamos apenas verificando se ocorreu algum erro. A
responta é simples sim ou não.
• Na correção de erros, precisamos saber o número exato de bits que foram
corrompidos e, mas importante, sua localização na mensagem.
• O número de erros e o tamanho da mensagem são fatores essenciais.
• Se precisamos corrigir um único erro em uma unidade de dados de 8 bits,
podemos considerar oito localizações possíveis de erro.
• Se precisarmos corrigir dois erros em uma unidade de dados de mesmo tamanho,
teremos de considerar 28 possibilidades. Pode-se imaginar a dificuldade do
receptor para corrigir dez erros em uma unidade de dados de 1.000 bits?
10.10
10-1 Correção antecipada de Erros versus
Retransmissão
• Existem dois métodos principais de correção de erros;
• Na correção antecipada de erros (FEC - Forward Error
Correction), o receptor tenta adivinhar a mensagem pelo uso
de bits redundantes;
• Na correção de erros por retransmissão o receptor detecta a
ocorrência de um erro e solicita ao emissor para reenviar a
mensagem. O reenvio é repetido até mensagem chegar no
receptor livre de erros.
10.11
10-1 Código de Erros
• A redundância pode ser implementada por meio de vários
métodos de codificação.
• O emissor adiciona bits redundantes por meio de um processo
que crie uma relação entre os bits redundantes e os bits de dados
reais.
• O receptor verifica essas relações entre os dois conjuntos de bits
para detectar ou corrigir os erros. A razão entre os bits
redundantes e os bits reais, bem como a eficiência do processo,
são fatores determinantes em qualquer esquema de codificação.
• Podemos dividir os códigos de erros em duas categorias amplas:
códigos de blocos e códigos convolucionais.
10.12
Figure 10.3 The structure of encoder and decoder
10.13
10-1 Aritmédica Modular
• Módulo Aritmédico 2.
Operação XOR em dois bits simples e em duas palavras
Ou exclusivo chamada também disjunção exclusiva, conhecido geralmente por
XOR ou por EOR (também XOU ou EOU), é uma operação lógica em dois
operandos que resulta em um valor lógico verdadeiro se e somente se
exactamente um dos operandos tem um valor verdadeiro.
10.14
10-2 Códigos de Blocos
Na codificação de bloco, dividimos a nossa mensagem
em blocos, cada um dos k bits, chamado datawords.
Nós adicionar bits R redundantes para cada bloco
para tornar o comprimento n = k + r. O resultado n
bits blocos são chamados palavras-código.
Detecção de Erros
Correção de Erros
Distância de Hamming
Minimum Hamming Distance
Topics discussed in this section:
10.15
Figure 10.5 Palavras de dados e palavras de código no código de blocos
10.16
10-2 Códigos de Blocos
 A codificação de blocos 4B/5B discutidos no
capítulo 4 é um bom exemplo de codificação. Na
codificação 4B/5B, k=4 e n=5.
 Conforme vimos, temos 2k = 16 palavras de dados e
2n = 32 palavras de código. Vimos que 16 das 32
palavras de códigos são usadas para a transmissão de
mensagens e o restante, para outros fins ou então não
são usadas.
Exemplo 10.1
10.17
10-2 Códigos de Blocos
 Como os erros podem ser detectados usando-se os
códigos de blocos?
 Se as duas condições a seguir forem atendidas, o
receptor poderá detectar uma mudança na palavra de
código original.
 1. O receptor tem (ou pode encontrar) uma lista
de palavras de código válida.
 2. A palavra de código original mudou para uma
palavra inválida.
Detecção de Erros
10.18
Figure 10.6 Processo de detecção de erros na codificação de blocos
10.19
Vamos supor que k = 2 e n = 3. Tabela 10.1 mostra a lista
de datawords e palavras-código.
Exemplo 10.2
Table 10.1 Exemplo de codificação para detecção de erros (Exemplo 10.2)
10.20
Suponha que o remetente codifica os 01 dataword como 011 e a
envie para o receptor. Considere os seguintes casos:
1.O receptor recebe 011. É uma palavra de código válida. O receptor
extrai então dataword 01 a partir dele;
2. A palavra de código é corrompida durante a transmissão, e é
recebido como 111 (o bit mais esquerda foi corrompido). Esta não é
uma palavra de código válido, portanto a palavra de dados será
descartada;
3. A palavra de código é corrompida durante a transmissão e 000 é
recebido. Esta é uma palavra de código válida. O receptor
incorretamente extrai dataword 00. Os dois bits corrompidos
tornaram o erro indetectável.
Example 10.2 (continued)
10.21
Um código de detecção de erros é capaz
de detectar apenas os tipos de erros
para os quais ele foi projetado; outros
tipos de erros podem permanecer
indetectáveis.
Note
10.22
10-2 Códigos de Blocos
 A correção de erros é muito mais fácil que a detecção de
erros;
 Na detecção de erros, o receptor precisa saber apenas se a
palavra de código recebida é correta ou inválida;
 Na correção de erros, o receptor precisa encontrar (ou
adivinhar) a palavra de código que foi originalmente
transmitida;
 Podemos dizer que precisamos de mais bits redundantes para
a correção de erros que para detecção de erros.
Correção de Erros
10.23
Figure 10.7 Structure of encoder and decoder in error correction
10.24
Acrescentamos mais bits redundantes ao Exemplo 10.2 para ver se o
receptor pode corrigir um erro sem saber o que foi realmente
enviada. Adicionamos 3 bits redundantes para a dataword 2 bit para
fazer palavras-código 5 bit. Tabela 10.2 mostra os datawords e
palavras-código.
Supondo que o dataword é 01. O remetente cria a palavra-código
01011. A palavra de código é corrompida durante a transmissão, e
01001 é recebido.
• Primeiro, o receptor verifica que a palavra de código
recebida não está na tabela.
• Isto significa que ocorreu um erro. (A detecção deve vir
antes da correção)
• O receptor, assumindo que existe apenas 1 bit corrompido,
usa a seguinte estratégia para adivinhar a dataword correta.
Example 10.3
10.25
Table 10.2 A code for error correction (Example 10.3)
10.26
1.Comparando a palavra de código recebida com a primeira palavra
de código da tabela (01001 contra 00000), o receptor decide que a
palavra de código primeiro não é aquela que foi enviado, pois
existem dois bits diferentes.
2. Seguindo o mesmo raciocínio, a palavra de código original não
pode ser o terceiro ou quarto na tabela.
3. A palavra de código original deve ser a segunda da tabela, porque
esta é a única que difere da palavra de código recebida em um bit. O
receptor substitui 01001 por 01011 e consulta a tabela para encontrar
a dataword 01.
Exemplo 10.3 (continuação)
10.27
10-2 Códigos de Blocos
 Um dos mais importantes conceitos associados à codificação para
controle de erros é a idéia da distância de Hamming.
 A distância de Hamming entre duas palavras do mesmo tamanho é o
número de diferenças entre os bits alinhados correspondentes.
 A distância de Hamming entre duas palavras x e y será descrita como
d(x,y).
 A distância de Hamming pode ser facilmente encontrada se aplicarmos
a operação XOR entre duas palavras e contarmos o número de 1s
resultado.
 Note que a distância de Hamming é um valor maior que zero.
Distância de Hamming
10.28
Encontremos a distância de Hamming entre dois pares de
palavras.
1. A distânica de Hamming d(000, 011) é 2 porque
Exemplo 10.4
2. A distânica de Hamming d(10101, 11110) é 3 porque
Técnicas de Detecção de
Erros
Redes de Computadores e Comunicação de Dados - Tradução da 6ª Edição Norte-Americana
CURT M. WHITE - Editora Cengage Learning
Prof. Rodrigo Ronner
Capítulo 6
30
Prevenção de Erros
Para evitar que erros aconteçam, várias técnicas
podem ser aplicadas:
 Blindagem adequada de cabos para reduzir interferência;
 Condicionamento de linha telefônica ou equalização;
 Substituição de meios antigos e equipamentos com
componentes novos, possivelmente digitais;
 O uso adequado de repetidores digitais e amplificadores
analógicos para aumentar intensidade do sinal,
reduzindo, assim, a probabilidades de erros.
 Observe as capacidades indicadas de cada meio.
31
Detecção de Erros
 Apesar das melhores técnicas de prevenção,
os erros ainda podem acontecer;
 Para detectar um erro, algo extra tem de ser
adicionado aos dados/sinal;
 Este extra é um código de detecção de erro;
 Duas técnicas básicas para a detecção de
erros:
 verificação de paridade, e soma de verificação de
redundância cíclica (cyclic redundancy
checksum).
32
Verificação de Paridade
 Paridade Simples
 Com paridade par, o 0 ou 1 adicionado à cadeia
resulta em um número par de “1s” binários.
 Com paridade ímpar, o 0 ou 1 adicionado à
cadeia resulta em um número ímpar de “1s”
binários.
 Por exemplo, enviando 1101011 usando paridade
par, seria igual 11010111. Agora, há um número
par de (6) de “1s”.
 Por exemplo, enviando 1101011 usando paridade
ímpar, seria igual 11010110.
33
Verificação de Paridade (Continuação)
 Paridade Simples
 O que acontece se utilizando paridade par
e fossem enviado caractere 11010111 e os
dois primeiros 1s acidentalmente, fossem
dois 0s?
Assim, o carácter seguinte é recebido : 00010111
Será que vai haver um erro de paridade?
 Problema: a paridade simples detecta apenas os
números ímpares de bits em erro
34
 Paridade longitudinal
 Adiciona um bit de paridade para cada caractere,
em seguida, adiciona uma linha de bits de
paridade após um bloco de caracteres;
 A linha de bits de paridade é realmente um bit de
paridade para cada "coluna" de caracteres;
 A fila de bits de paridade, mais os bits de
paridade de coluna adicionar uma grande
quantidade de redundância para um bloco de
caracteres.
Verificação de Paridade
(Continuação)
35
Verificação de Paridade
(Continuação)
36
Verificação de Paridade
(Continuação)
37
 Tanto a paridade simples e paridade
longitudinal não pega todos os erros;
 Paridade simples só pega os números
ímpares de erros de bits;
 Paridade longitudinal é melhor na captura de
erros, mas requer bits de verificação de
muitas adicionados a um bloco de dados;
 Precisamos de um método melhor detecção
de erros
 E quanto a soma aritmética?
Verificação de Paridade
(Continuação)
38
Checksum aritmético
 Usado em TCP e IP na Internet;
 Caracteres a serem transmitidos são
convertidos para a forma numérica e
somados;
 Soma é colocado em alguma forma, no final
da transmissão.
39
 Receptor executa a conversão mesmo e
somando e compara com nova soma soma
enviado;
 TCP e IP processos um pouco mais
complexo,mas idéia é a mesma;
 Mas, mesmo soma aritmética pode deixar
escapar por entre os erros.
 Existe algo mais poderoso ainda?
Checksum aritmético
40
Checksum de redundância
cíclica
 CRC método de detecção de erro trata o
pacote de dados a serem transmitidos
como um polinómio grande;
 Transmissor leva o polinômio mensagem e
usando a aritmética polinomial, divide-o
por um polinômio gerador dado;
 Quociente é descartada, mas o restante é
"ligado" para o fim da mensagem.
41
 A mensagem (com o restante) é transmitida
para o receptor;
 O receptor divide a mensagem eo resto pelo
polinômio gerador mesmo;
 Se um resto não é igual a zero resultados,
houve um erro durante a transmissão;
 Se um resto de zero resultados, não houve
erro durante a transmissão.
Checksum de redundância
cíclica
43
Controle de erros
 Uma vez detectado um erro no fluxo de
dados recebido, o que o receptor deve
fazer?
 Não fazer nada(simplesmente enviar o frame
ou pacote);
 Retornar uma mensagem ao transmissor
solicitando reenvio do pacote de dados com
erro;
 Corrigir o erro sem retransmissão.
44
Não Fazer Nada
 Parece uma maneira estranha para controlar
erros, mas alguns protocolos de camada
inferior, como frame relay realizar esse tipo
de controle de erro;
 Por exemplo, se o frame relay detecta um
erro, ele simplesmente descarta o frame;
 Nenhuma mensagem é retornada;
 Frame relay assume que outro protocolo
(como TCP / IP) irá detectar erro no frame e
pedir retransmissão
45
Retornar uma mensagem
 Uma vez que é detectado um erro, uma
mensagem de erro é retornado para o
transmissor
 Existem duas formas básicas:
 Stop-and-wait error control
 Sliding window error control (Janela Deslizante)
46
Stop-and-Wait Error Control
 Stop-and-wait é o mais simples dos
protocolos de controle de erro;
 Um transmissor envia um frame, em
seguida, para e espera por uma
confirmação
 Se uma confirmação positiva acknowledgment
(ACK) e recebido, o próximo frame é enviado;
 se um confirmação negativa acknowledgment
(NAK) e recebida, o mesmo frame é
transmitido novamente.
47
Stop-and-Wait Error Control
(Continuação)
48
Controle de erros de janela
deslizante
 Estas técnicas assumir que vários quadros estão
em transmissão de uma só vez;
 Um protocolo de janela deslizante permite que o
transmissor para enviar um certo número de
pacotes de dados de uma só vez antes de
receber quaisquer reconhecimentos;
 Depende do tamanho da janela;
 Quando um receptor não acusar a recepção, o
ACK retornado contém o número do quadro
esperado seguinte.
49
Controle de erros de janela
deslizante
50
 Mais velhos protocolos de janela deslizante
numeradas cada quadro ou pacote que foi
transmitido;
 Mais moderno janela deslizante número
protocolos cada byte dentro de um quadro;
 Um exemplo em que os pacotes são
numerados, seguido por um exemplo em que
os bytes são numerados:
Controle de erros de janela
deslizante
51
Controle de erros de janela
deslizante
52
Controle de erros de janela
deslizante
53
 Observe que um ACK não é sempre
enviado após cada frame é recebido
 É mais eficiente que esperar por alguns
quadros recebidos antes de retornar um ACK
 Quanto tempo você deve esperar até você
voltar um ACK?
Controle de erros de janela
deslizante
54
 Usando TCP/IP, existem algumas regras básicas sobre ACKs:
 Regra 1: Se um receptor acabou de receber alguns dados e deseja
enviar dados de volta ao emissor, o receptor deve incluir ACK com
dados que está para enviar. Isso de chama piggybacking e poupa o
receptor de enviar uma mensagem separada de ACK. (Figura 6-12);
 Regra 2: Se um receptor não estiver com dados para retornar ao
emissor e tiver acabado de confirmar o recebimento do pacote
enviado anteriormente, o receptor aguarda 500 ms para que outro
pacote chegue. Porém, se um segundo pacote chegue antes do final
dos 500ms, o receptor deve enviar imediatamente um ACK;
 Regra 3: Se um receptor estiver esperando a chegada de um
segundo pacote e os 500ms acabem, ele encerra a espera por esse
segundo pacote e emite imediatamente um ACK.
Controle de erros de janela deslizante
55
Controle de erros de janela
deslizante
56
 O que acontece se o pacote for perdido?
 Como mostrado no slide seguinte, se um
frame é perdido, o quadro seguinte será "fora
de sequência“
 O receptor manterá a sequência de bytes em um
buffer e pedir ao remetente para retransmitir o
quadro faltando.
Controle de erros de janela
deslizante
57
Controle de erros de janela deslizante
58
 O que acontece quando um ACK é
perdido?
 Como mostrado no slide seguinte, se um ACK
é perdido, o remetente vai esperar o ACK
chegar e, eventualmente, tempo limite.
 Quando o tempo limite ocorre, o remetente
reenvia o último quadro.
Controle de erros de janela
deslizante
59
Controle de erros de janela
deslizante
60
Correção de Erros
 Para um receptor corrigir erros sem ajuda,
ainda mais a partir do transmissor, requer
uma grande quantidade de informação
redundante para acompanhar os dados
originais;
 Esta informação redundante permite que o
receptor determine o erro e efetue as correções.
Este tipo de controle de erro é muitas vezes
chamado de correção antecipada de erro e
envolve códigos chamados códigos de Hamming.
61
Correção de Erros (continuação)
 Adicionar códigos de Hamming bits de verificação
adicionais a um caractere.
 Estes bits de verificação executar verificações de paridade em
várias partes.
Exemplo: Pode-se criar um código de Hamming no
qual 4 bits de verificação são adicionados a um
caractere de 8 bits.
 Podemos enumerar os bits de verificação c8, c4, c2
and c1
 Vamos numerar os bits de dados b12, b11, b10, b9,
b7, b6, b5, and b3
 Colocar os bits na seguinte ordem: b12, b11, b10, b9,
c8, b7, b6, b5, c4, b3, c2, c1
62
 Exemplo (continued):
 c8 irá executar uma verificação de paridade em bits
b12, b11, b10, and b9
 c4 irá executar uma verificação de paridade em bits
b12, b7, b6 and b5
 c2 irá executar uma verificação de paridade em bits
b11, b10, b7, b6 and b3
 c1 irá executar uma verificação de paridade em bits
b11, b9, b7, b5, and b3
Correção de Erros (continuação)
63
Correção de Erros (continuação)
64
 O remetente levará o caractere de 8 bits e
gerará os 4 bits de verificação, como descrito
 Os 4 bits de verificação são então adicionados
para os 8 bits de dados na sequência imediata e
depois transmitida
 O receptor irá executar as verificações de 4
paridade usando os 4 bits de verificação
 Se nenhum bit foi alterado durante a
transmissão, então não deve haver nenhum erro
de paridade.
O que acontece se um dos bits seja alterado
durante a transmissão?
Correção de Erros (continuação)
65
 Por exemplo, se o bit b9 for corrompido?
 O bit c8 checa os bits b12, b11, b10, b9 and c8
(01000)
 Podemos perceber que houve um erro de paridade.
 O bit c4 checa os bits b12, b7, b6, b5 and c4 (00101)
 Isso não causaria um erro de paridade (mesmo número
de 1s)
 O bit c2 checa os bits b11, b10, b7, b6, b3 and c2
(100111)
 Isso não causaria um erro de paridade.
Correção de Erros (continuação)
66
Correção de Erros (continuação)
 Por exemplo, se o bit b9 for corrompido?
 O bit c1 checa os b11, b9, b7, b5, b3 and c1
(100011)
 Isso não causaria um erro de paridade.
 Escrever os erros de paridade em sequência
nos dá 1001, que é o valor binário para 9.
 Assim, o erro de bit ocorreu na posição 9.
67
Detecção de erro em ação
 Asynchronous transfer mode (ATM) incorpora
muitos tipos de detecção de erro e controle
de erro;
 ATM insere um CRC para o quadro de dados,
que verifica apenas o cabeçalho e não os
dados;
 Este CRC também é poderoso o suficiente para
realizar a correção de erros simples no cabeçalho
 Uma segunda camada de ATM se aplica uma
CRC para os dados, com graus variáveis ​​de
controlo de erro.
68
Resumo
 Ruído está sempre presente em redes de
computadores, e se o nível de ruído é demasiado
elevado, os erros serão introduzido durante a
transmissão dos dados.
 Entre as técnicas para reduzir o ruído são próprias da
blindagem de cabos, o condicionamento de linha
telefônica ou equalização, usando equipamentos
digitais modernos, usando repetidores digitais e
amplificadores analógicos, e observando as
capacidades indicadas da mídia.
69
Resumo (continuação)
 Três formas básicas de detecção de erro são
paridade, checksum aritmética e soma de
verificação de redundância cíclica;
 Verificação de redundância cíclica é um esquema
de detecção de erros superior com quase 100 por
cento a capacidade de reconhecer os pacotes de
dados corrompidos;
 Uma vez que um erro foi detectado, há três
opções possíveis: não fazer nada, retornar uma
mensagem de erro e corrigir o erro
70
 Stop-and-wait protocol permite que apenas um
pacote para ser enviado em um tempo;
 A técnica de janelamento é um protocolo que
permite múltiplos pacotes para serem enviados
de uma só vez;
 Correção de erro é uma possibilidade, se os
dados transmitidos contém informações
suficientes redundante para que o receptor pode
corretamente corrigir o erro sem pedir o
transmissor para obter informações adicionais.
Resumo (continuação)

Más contenido relacionado

La actualidad más candente

Endereços IP
Endereços IPEndereços IP
Endereços IP
Ivo Cuco
 
Redes de computadores
Redes de computadoresRedes de computadores
Redes de computadores
Aron Sporkens
 
Aula 07 - Projeto de Topologia e Exercícios - Parte II
Aula 07 - Projeto de Topologia e Exercícios - Parte IIAula 07 - Projeto de Topologia e Exercícios - Parte II
Aula 07 - Projeto de Topologia e Exercícios - Parte II
Dalton Martins
 

La actualidad más candente (20)

Transmissão síncrona e assíncrona
Transmissão síncrona e assíncronaTransmissão síncrona e assíncrona
Transmissão síncrona e assíncrona
 
Redes de Computadores
Redes de ComputadoresRedes de Computadores
Redes de Computadores
 
Cabeamento estruturado redes de computadores
Cabeamento estruturado   redes de computadoresCabeamento estruturado   redes de computadores
Cabeamento estruturado redes de computadores
 
Placas de rede
Placas de redePlacas de rede
Placas de rede
 
Criando rede WLAN e SERVIDOR DNS E HTTP no Packet Tracer
Criando rede WLAN e SERVIDOR DNS E HTTP no Packet TracerCriando rede WLAN e SERVIDOR DNS E HTTP no Packet Tracer
Criando rede WLAN e SERVIDOR DNS E HTTP no Packet Tracer
 
Endereços IP
Endereços IPEndereços IP
Endereços IP
 
FIBRA ÓPTICA TECNOLOGIA GPON
FIBRA ÓPTICA TECNOLOGIA GPONFIBRA ÓPTICA TECNOLOGIA GPON
FIBRA ÓPTICA TECNOLOGIA GPON
 
Wifi
WifiWifi
Wifi
 
Redes - Enderecamento IP
Redes - Enderecamento IPRedes - Enderecamento IP
Redes - Enderecamento IP
 
Redes de-computadores-tipos-de-redes
Redes de-computadores-tipos-de-redesRedes de-computadores-tipos-de-redes
Redes de-computadores-tipos-de-redes
 
Redes 2 padronização e arquitetura de redes
Redes 2 padronização e arquitetura de redesRedes 2 padronização e arquitetura de redes
Redes 2 padronização e arquitetura de redes
 
FIBRA ÓPTICA FTTH
FIBRA ÓPTICA FTTHFIBRA ÓPTICA FTTH
FIBRA ÓPTICA FTTH
 
Redes de computadores
Redes de computadoresRedes de computadores
Redes de computadores
 
conteúdos UFCD 0771.ppt
conteúdos UFCD 0771.pptconteúdos UFCD 0771.ppt
conteúdos UFCD 0771.ppt
 
Redes 6 equipamentos ativos da rede
Redes 6 equipamentos ativos da redeRedes 6 equipamentos ativos da rede
Redes 6 equipamentos ativos da rede
 
Redes 3 protocolos
Redes 3 protocolosRedes 3 protocolos
Redes 3 protocolos
 
Tecnologias Atuais de Redes - Aula 4 - Comutação
Tecnologias Atuais de Redes - Aula 4 - ComutaçãoTecnologias Atuais de Redes - Aula 4 - Comutação
Tecnologias Atuais de Redes - Aula 4 - Comutação
 
Aula 07 - Projeto de Topologia e Exercícios - Parte II
Aula 07 - Projeto de Topologia e Exercícios - Parte IIAula 07 - Projeto de Topologia e Exercícios - Parte II
Aula 07 - Projeto de Topologia e Exercícios - Parte II
 
Fibras opticas
Fibras opticasFibras opticas
Fibras opticas
 
Aula03 camada física - meios de transmissão
Aula03  camada física - meios de transmissãoAula03  camada física - meios de transmissão
Aula03 camada física - meios de transmissão
 

Destacado

Redes de Comunicação - Técnicas de deteção e correção de erros em transm...
Redes de Comunicação - Técnicas de deteção e correção de erros em transm...Redes de Comunicação - Técnicas de deteção e correção de erros em transm...
Redes de Comunicação - Técnicas de deteção e correção de erros em transm...
Filipe Martins
 
Capítulo 20 camada de rede - internet protocol
Capítulo 20   camada de rede - internet protocolCapítulo 20   camada de rede - internet protocol
Capítulo 20 camada de rede - internet protocol
Faculdade Mater Christi
 

Destacado (11)

Modelo OSI - Camada de Enlace
Modelo OSI - Camada de EnlaceModelo OSI - Camada de Enlace
Modelo OSI - Camada de Enlace
 
Camadas de enlace de dados
Camadas de enlace de dadosCamadas de enlace de dados
Camadas de enlace de dados
 
Seminário reed solomon
Seminário reed solomonSeminário reed solomon
Seminário reed solomon
 
Redes - Camada Enlace
Redes - Camada EnlaceRedes - Camada Enlace
Redes - Camada Enlace
 
Redes de Comunicação - Técnicas de deteção e correção de erros em transm...
Redes de Comunicação - Técnicas de deteção e correção de erros em transm...Redes de Comunicação - Técnicas de deteção e correção de erros em transm...
Redes de Comunicação - Técnicas de deteção e correção de erros em transm...
 
Bloco c
Bloco cBloco c
Bloco c
 
Capítulo 20 camada de rede - internet protocol
Capítulo 20   camada de rede - internet protocolCapítulo 20   camada de rede - internet protocol
Capítulo 20 camada de rede - internet protocol
 
Relatório pr 20
Relatório pr 20Relatório pr 20
Relatório pr 20
 
Comunicacao de dados
Comunicacao de dadosComunicacao de dados
Comunicacao de dados
 
Circuitos Digitais: Paridade parte 2
Circuitos Digitais: Paridade parte 2Circuitos Digitais: Paridade parte 2
Circuitos Digitais: Paridade parte 2
 
io
ioio
io
 

Similar a Capítulo 10 detecção e correção de erros

T aula2-revisões bases e ip
T aula2-revisões bases e ipT aula2-revisões bases e ip
T aula2-revisões bases e ip
Hélio Martins
 
Protocolos caracter
Protocolos caracterProtocolos caracter
Protocolos caracter
redesinforma
 
Principios da microprogramacao
Principios da microprogramacaoPrincipios da microprogramacao
Principios da microprogramacao
Marcelle Guiné
 
Nobytes Tipos de Dados
Nobytes Tipos de DadosNobytes Tipos de Dados
Nobytes Tipos de Dados
Neoicarus
 

Similar a Capítulo 10 detecção e correção de erros (20)

Redes de Computadores Capítulo 3 - Camada de Enlace
Redes de Computadores Capítulo 3 - Camada de EnlaceRedes de Computadores Capítulo 3 - Camada de Enlace
Redes de Computadores Capítulo 3 - Camada de Enlace
 
Cap05a
Cap05aCap05a
Cap05a
 
Cap05b
Cap05bCap05b
Cap05b
 
Códigos de Detecção.pptx
Códigos de Detecção.pptxCódigos de Detecção.pptx
Códigos de Detecção.pptx
 
Tk codigos erros_manuela
Tk codigos erros_manuelaTk codigos erros_manuela
Tk codigos erros_manuela
 
Exercicio rossana
Exercicio rossanaExercicio rossana
Exercicio rossana
 
02 - Aplicação-Transporte.pdf
02 - Aplicação-Transporte.pdf02 - Aplicação-Transporte.pdf
02 - Aplicação-Transporte.pdf
 
T aula2-revisões bases e ip
T aula2-revisões bases e ipT aula2-revisões bases e ip
T aula2-revisões bases e ip
 
CCNA - Introdução a redes para certificação 640-802 // CISCO
CCNA - Introdução a redes para certificação 640-802 // CISCOCCNA - Introdução a redes para certificação 640-802 // CISCO
CCNA - Introdução a redes para certificação 640-802 // CISCO
 
R&C 0202 07 1
R&C 0202 07 1R&C 0202 07 1
R&C 0202 07 1
 
Tecnicas de conversão e compressão; Redes de comunicação 1º Módulo
Tecnicas de conversão e compressão; Redes de comunicação 1º MóduloTecnicas de conversão e compressão; Redes de comunicação 1º Módulo
Tecnicas de conversão e compressão; Redes de comunicação 1º Módulo
 
Protocolos caracter
Protocolos caracterProtocolos caracter
Protocolos caracter
 
Aula 4 conversor ad e pwm
Aula 4   conversor ad e pwmAula 4   conversor ad e pwm
Aula 4 conversor ad e pwm
 
Aula19
Aula19Aula19
Aula19
 
Apostila Redes Industriais - Prof. Camilo A. Anauate
Apostila Redes Industriais - Prof. Camilo A. AnauateApostila Redes Industriais - Prof. Camilo A. Anauate
Apostila Redes Industriais - Prof. Camilo A. Anauate
 
Bits & Bytes
Bits & BytesBits & Bytes
Bits & Bytes
 
Principios da microprogramacao
Principios da microprogramacaoPrincipios da microprogramacao
Principios da microprogramacao
 
Circuitos de portas logicas - Conversão de sistemas binarios e decimais
Circuitos de portas logicas - Conversão de sistemas binarios e decimaisCircuitos de portas logicas - Conversão de sistemas binarios e decimais
Circuitos de portas logicas - Conversão de sistemas binarios e decimais
 
Unidades de Medidas Computacionais
Unidades de Medidas ComputacionaisUnidades de Medidas Computacionais
Unidades de Medidas Computacionais
 
Nobytes Tipos de Dados
Nobytes Tipos de DadosNobytes Tipos de Dados
Nobytes Tipos de Dados
 

Más de Faculdade Mater Christi

Capítulo 6 e 8 comutação e multiplexação (3º unidade)
Capítulo 6 e 8   comutação e multiplexação (3º unidade)Capítulo 6 e 8   comutação e multiplexação (3º unidade)
Capítulo 6 e 8 comutação e multiplexação (3º unidade)
Faculdade Mater Christi
 
Capítulo 5 e 4 transmissão analógica e digital (2º unidade)
Capítulo 5 e 4   transmissão analógica e digital (2º unidade)Capítulo 5 e 4   transmissão analógica e digital (2º unidade)
Capítulo 5 e 4 transmissão analógica e digital (2º unidade)
Faculdade Mater Christi
 
Capítulo 1 introdução a comunicação de dados(1º unidade)
Capítulo 1   introdução a comunicação de dados(1º unidade)Capítulo 1   introdução a comunicação de dados(1º unidade)
Capítulo 1 introdução a comunicação de dados(1º unidade)
Faculdade Mater Christi
 
Capítulo 23 comunicação entre processos
Capítulo 23   comunicação entre processosCapítulo 23   comunicação entre processos
Capítulo 23 comunicação entre processos
Faculdade Mater Christi
 
Capítulo 19 camada de rede - end lógico
Capítulo 19   camada de rede - end lógicoCapítulo 19   camada de rede - end lógico
Capítulo 19 camada de rede - end lógico
Faculdade Mater Christi
 
Capítulo 15 conexões de lans, redes backbone e lans virtuais
Capítulo 15   conexões de lans, redes backbone e lans virtuaisCapítulo 15   conexões de lans, redes backbone e lans virtuais
Capítulo 15 conexões de lans, redes backbone e lans virtuais
Faculdade Mater Christi
 
Sistemas de arquivos cap 04 (iii unidade)
Sistemas de arquivos cap 04 (iii unidade)Sistemas de arquivos cap 04 (iii unidade)
Sistemas de arquivos cap 04 (iii unidade)
Faculdade Mater Christi
 
Introdução aos sistemas operacionais cap 01 (i unidade)
Introdução aos sistemas operacionais cap 01 (i unidade)Introdução aos sistemas operacionais cap 01 (i unidade)
Introdução aos sistemas operacionais cap 01 (i unidade)
Faculdade Mater Christi
 
Gerenciamento de memória cap 03 (ii unidade)
Gerenciamento de memória cap 03 (ii unidade)Gerenciamento de memória cap 03 (ii unidade)
Gerenciamento de memória cap 03 (ii unidade)
Faculdade Mater Christi
 
Conceitos de hardware e software cap 02 (i unidade)
Conceitos de hardware e software cap 02 (i unidade)Conceitos de hardware e software cap 02 (i unidade)
Conceitos de hardware e software cap 02 (i unidade)
Faculdade Mater Christi
 

Más de Faculdade Mater Christi (15)

Capítulo 6 e 8 comutação e multiplexação (3º unidade)
Capítulo 6 e 8   comutação e multiplexação (3º unidade)Capítulo 6 e 8   comutação e multiplexação (3º unidade)
Capítulo 6 e 8 comutação e multiplexação (3º unidade)
 
Capítulo 5 e 4 transmissão analógica e digital (2º unidade)
Capítulo 5 e 4   transmissão analógica e digital (2º unidade)Capítulo 5 e 4   transmissão analógica e digital (2º unidade)
Capítulo 5 e 4 transmissão analógica e digital (2º unidade)
 
Capítulo 1 introdução a comunicação de dados(1º unidade)
Capítulo 1   introdução a comunicação de dados(1º unidade)Capítulo 1   introdução a comunicação de dados(1º unidade)
Capítulo 1 introdução a comunicação de dados(1º unidade)
 
Capítulo 23 comunicação entre processos
Capítulo 23   comunicação entre processosCapítulo 23   comunicação entre processos
Capítulo 23 comunicação entre processos
 
Capítulo 19 camada de rede - end lógico
Capítulo 19   camada de rede - end lógicoCapítulo 19   camada de rede - end lógico
Capítulo 19 camada de rede - end lógico
 
Capítulo 15 conexões de lans, redes backbone e lans virtuais
Capítulo 15   conexões de lans, redes backbone e lans virtuaisCapítulo 15   conexões de lans, redes backbone e lans virtuais
Capítulo 15 conexões de lans, redes backbone e lans virtuais
 
Capítulo 2 modelos de redes
Capítulo 2   modelos de redesCapítulo 2   modelos de redes
Capítulo 2 modelos de redes
 
Sistemas de arquivos cap 04 (iii unidade)
Sistemas de arquivos cap 04 (iii unidade)Sistemas de arquivos cap 04 (iii unidade)
Sistemas de arquivos cap 04 (iii unidade)
 
Introdução aos sistemas operacionais cap 01 (i unidade)
Introdução aos sistemas operacionais cap 01 (i unidade)Introdução aos sistemas operacionais cap 01 (i unidade)
Introdução aos sistemas operacionais cap 01 (i unidade)
 
Introdução à sistemas distribuídos
Introdução à sistemas distribuídosIntrodução à sistemas distribuídos
Introdução à sistemas distribuídos
 
Impasses cap 06 (ii unidade)
Impasses cap 06 (ii unidade)Impasses cap 06 (ii unidade)
Impasses cap 06 (ii unidade)
 
Gerenciamento de memória cap 03 (ii unidade)
Gerenciamento de memória cap 03 (ii unidade)Gerenciamento de memória cap 03 (ii unidade)
Gerenciamento de memória cap 03 (ii unidade)
 
Entrada e saida cap 05 (iii unidade)
Entrada e saida  cap 05 (iii unidade)Entrada e saida  cap 05 (iii unidade)
Entrada e saida cap 05 (iii unidade)
 
Conceitos de hardware e software cap 02 (i unidade)
Conceitos de hardware e software cap 02 (i unidade)Conceitos de hardware e software cap 02 (i unidade)
Conceitos de hardware e software cap 02 (i unidade)
 
Processos e threads cap 02 (i unidade)
Processos e threads   cap 02 (i unidade)Processos e threads   cap 02 (i unidade)
Processos e threads cap 02 (i unidade)
 

Capítulo 10 detecção e correção de erros

  • 1. 10.1 Capítulo 10 Detecção e Correção de erros Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
  • 2. 10.2 Os dados podem ser corrompidos durante uma transmissão. Algumas aplicações exigem que os erros sejam dectados e corrigidos. Note
  • 3. 10.3 10-1 Introdução Iremos discutir, inicialmente, as questões relacionadas, direta ou indiretamente, à detecção e à correção de erros. Tipos de Erros Redundância Detecção versus Correção Correção Antecipada de Erros versus Retransmissão Códigos de Erros Aritmética Modular (Não será vista) Topicos discutidos nesta seção:
  • 4. 10.4 10-1 Tipos de Erros • Toda vez que uma cadeia de bits flui de um ponto a outro de uma rede de computadores, eles estão sujeitos a alterações imprevisíveis por causa das interferências. • Essas interferências podem modificar as características do sinal. • Em um erro de bit, um 0 passa a ser 1 e um 1 passa a ser 0. • Em um erro em rajada, vários bits são corrompidos. • Por exemplo, uma rajada de 1/100 s de ruídos impulsivos em uma transmissão com taxa de dados de 1.200bps poderia alterar todos os 12 bits de informação ou parte deles.
  • 5. 10.5 10-1 Tipos de Erros (Erro de Bit) • O termo erro de bit significa dizer que apenas 1 bit de determinada unidade de dados (por exemplo, um byte, caractere ou pacote) foi alterado de 1 para 0 ou de 0 para 1. • A próxima figura mostra efeito do erro de bit sobre uma unidade de dados, para compreender o impacto desse problema, imagine que cada grupo de 8 bits seja caractere ASCII com um bit 0 adicionado à esquerda. • Na figura 10.1, o caractere 00000010 (ASCII STX) foi enviado, significando início do texto (start of text), mas foi recebido 00001010 (ASCII LF), significando avanço de linha (line feed). • Os erros de bit são do tipo de erro de menor probabilidade de ocorrência em uma transmissão de dados serial, imagine que dados são enviados a 1Mbps. Isso significa que a duração de cada bit é de apenas 1/1.000.00 s, ou seja, 1 µs, o que é muito raro na prática; normalmente os ruídos duram muito mais que isso.
  • 7. 10.7 10-1 Tipos de Erros (Erro em Rajada) • O termo erro de rajada significa dizer que 2 ou mais bits na unidade de dados foram corrompidos. • A figura 10.2 ilustra o efeitos de um erro em rajada sobre uma unidade de dados, observe que um erro em rajada não significa, necessáriamente, que os erros ocorrem em bits consecutivos. O comprimento da rajada é medido do primeiro bit corrompido até último. Pode ser que alguns bits entre eles não tenham sido corrompidos.
  • 8. 10.8 10-1 Redundância • O conceito mais importante na detecção e correção de erros é a redundância. • Para sermos capazes de detectar ou ccorrigir erros, precisamos enviar alguns bits extras redundantes junto com os dados. • Esses bits redundantes são acrescentados pelo emissor e posteriomente retirados pelo receptor. • Sua presença possibilita que o receptor detecte ou corrija bits corrompidos.
  • 9. 10.9 10-1 Detecção versus Correção • Corrigir erros em uma transmissão de dados é muito mais difícil que a detecção. • Na detecção de erros, estamos apenas verificando se ocorreu algum erro. A responta é simples sim ou não. • Na correção de erros, precisamos saber o número exato de bits que foram corrompidos e, mas importante, sua localização na mensagem. • O número de erros e o tamanho da mensagem são fatores essenciais. • Se precisamos corrigir um único erro em uma unidade de dados de 8 bits, podemos considerar oito localizações possíveis de erro. • Se precisarmos corrigir dois erros em uma unidade de dados de mesmo tamanho, teremos de considerar 28 possibilidades. Pode-se imaginar a dificuldade do receptor para corrigir dez erros em uma unidade de dados de 1.000 bits?
  • 10. 10.10 10-1 Correção antecipada de Erros versus Retransmissão • Existem dois métodos principais de correção de erros; • Na correção antecipada de erros (FEC - Forward Error Correction), o receptor tenta adivinhar a mensagem pelo uso de bits redundantes; • Na correção de erros por retransmissão o receptor detecta a ocorrência de um erro e solicita ao emissor para reenviar a mensagem. O reenvio é repetido até mensagem chegar no receptor livre de erros.
  • 11. 10.11 10-1 Código de Erros • A redundância pode ser implementada por meio de vários métodos de codificação. • O emissor adiciona bits redundantes por meio de um processo que crie uma relação entre os bits redundantes e os bits de dados reais. • O receptor verifica essas relações entre os dois conjuntos de bits para detectar ou corrigir os erros. A razão entre os bits redundantes e os bits reais, bem como a eficiência do processo, são fatores determinantes em qualquer esquema de codificação. • Podemos dividir os códigos de erros em duas categorias amplas: códigos de blocos e códigos convolucionais.
  • 12. 10.12 Figure 10.3 The structure of encoder and decoder
  • 13. 10.13 10-1 Aritmédica Modular • Módulo Aritmédico 2. Operação XOR em dois bits simples e em duas palavras Ou exclusivo chamada também disjunção exclusiva, conhecido geralmente por XOR ou por EOR (também XOU ou EOU), é uma operação lógica em dois operandos que resulta em um valor lógico verdadeiro se e somente se exactamente um dos operandos tem um valor verdadeiro.
  • 14. 10.14 10-2 Códigos de Blocos Na codificação de bloco, dividimos a nossa mensagem em blocos, cada um dos k bits, chamado datawords. Nós adicionar bits R redundantes para cada bloco para tornar o comprimento n = k + r. O resultado n bits blocos são chamados palavras-código. Detecção de Erros Correção de Erros Distância de Hamming Minimum Hamming Distance Topics discussed in this section:
  • 15. 10.15 Figure 10.5 Palavras de dados e palavras de código no código de blocos
  • 16. 10.16 10-2 Códigos de Blocos  A codificação de blocos 4B/5B discutidos no capítulo 4 é um bom exemplo de codificação. Na codificação 4B/5B, k=4 e n=5.  Conforme vimos, temos 2k = 16 palavras de dados e 2n = 32 palavras de código. Vimos que 16 das 32 palavras de códigos são usadas para a transmissão de mensagens e o restante, para outros fins ou então não são usadas. Exemplo 10.1
  • 17. 10.17 10-2 Códigos de Blocos  Como os erros podem ser detectados usando-se os códigos de blocos?  Se as duas condições a seguir forem atendidas, o receptor poderá detectar uma mudança na palavra de código original.  1. O receptor tem (ou pode encontrar) uma lista de palavras de código válida.  2. A palavra de código original mudou para uma palavra inválida. Detecção de Erros
  • 18. 10.18 Figure 10.6 Processo de detecção de erros na codificação de blocos
  • 19. 10.19 Vamos supor que k = 2 e n = 3. Tabela 10.1 mostra a lista de datawords e palavras-código. Exemplo 10.2 Table 10.1 Exemplo de codificação para detecção de erros (Exemplo 10.2)
  • 20. 10.20 Suponha que o remetente codifica os 01 dataword como 011 e a envie para o receptor. Considere os seguintes casos: 1.O receptor recebe 011. É uma palavra de código válida. O receptor extrai então dataword 01 a partir dele; 2. A palavra de código é corrompida durante a transmissão, e é recebido como 111 (o bit mais esquerda foi corrompido). Esta não é uma palavra de código válido, portanto a palavra de dados será descartada; 3. A palavra de código é corrompida durante a transmissão e 000 é recebido. Esta é uma palavra de código válida. O receptor incorretamente extrai dataword 00. Os dois bits corrompidos tornaram o erro indetectável. Example 10.2 (continued)
  • 21. 10.21 Um código de detecção de erros é capaz de detectar apenas os tipos de erros para os quais ele foi projetado; outros tipos de erros podem permanecer indetectáveis. Note
  • 22. 10.22 10-2 Códigos de Blocos  A correção de erros é muito mais fácil que a detecção de erros;  Na detecção de erros, o receptor precisa saber apenas se a palavra de código recebida é correta ou inválida;  Na correção de erros, o receptor precisa encontrar (ou adivinhar) a palavra de código que foi originalmente transmitida;  Podemos dizer que precisamos de mais bits redundantes para a correção de erros que para detecção de erros. Correção de Erros
  • 23. 10.23 Figure 10.7 Structure of encoder and decoder in error correction
  • 24. 10.24 Acrescentamos mais bits redundantes ao Exemplo 10.2 para ver se o receptor pode corrigir um erro sem saber o que foi realmente enviada. Adicionamos 3 bits redundantes para a dataword 2 bit para fazer palavras-código 5 bit. Tabela 10.2 mostra os datawords e palavras-código. Supondo que o dataword é 01. O remetente cria a palavra-código 01011. A palavra de código é corrompida durante a transmissão, e 01001 é recebido. • Primeiro, o receptor verifica que a palavra de código recebida não está na tabela. • Isto significa que ocorreu um erro. (A detecção deve vir antes da correção) • O receptor, assumindo que existe apenas 1 bit corrompido, usa a seguinte estratégia para adivinhar a dataword correta. Example 10.3
  • 25. 10.25 Table 10.2 A code for error correction (Example 10.3)
  • 26. 10.26 1.Comparando a palavra de código recebida com a primeira palavra de código da tabela (01001 contra 00000), o receptor decide que a palavra de código primeiro não é aquela que foi enviado, pois existem dois bits diferentes. 2. Seguindo o mesmo raciocínio, a palavra de código original não pode ser o terceiro ou quarto na tabela. 3. A palavra de código original deve ser a segunda da tabela, porque esta é a única que difere da palavra de código recebida em um bit. O receptor substitui 01001 por 01011 e consulta a tabela para encontrar a dataword 01. Exemplo 10.3 (continuação)
  • 27. 10.27 10-2 Códigos de Blocos  Um dos mais importantes conceitos associados à codificação para controle de erros é a idéia da distância de Hamming.  A distância de Hamming entre duas palavras do mesmo tamanho é o número de diferenças entre os bits alinhados correspondentes.  A distância de Hamming entre duas palavras x e y será descrita como d(x,y).  A distância de Hamming pode ser facilmente encontrada se aplicarmos a operação XOR entre duas palavras e contarmos o número de 1s resultado.  Note que a distância de Hamming é um valor maior que zero. Distância de Hamming
  • 28. 10.28 Encontremos a distância de Hamming entre dois pares de palavras. 1. A distânica de Hamming d(000, 011) é 2 porque Exemplo 10.4 2. A distânica de Hamming d(10101, 11110) é 3 porque
  • 29. Técnicas de Detecção de Erros Redes de Computadores e Comunicação de Dados - Tradução da 6ª Edição Norte-Americana CURT M. WHITE - Editora Cengage Learning Prof. Rodrigo Ronner Capítulo 6
  • 30. 30 Prevenção de Erros Para evitar que erros aconteçam, várias técnicas podem ser aplicadas:  Blindagem adequada de cabos para reduzir interferência;  Condicionamento de linha telefônica ou equalização;  Substituição de meios antigos e equipamentos com componentes novos, possivelmente digitais;  O uso adequado de repetidores digitais e amplificadores analógicos para aumentar intensidade do sinal, reduzindo, assim, a probabilidades de erros.  Observe as capacidades indicadas de cada meio.
  • 31. 31 Detecção de Erros  Apesar das melhores técnicas de prevenção, os erros ainda podem acontecer;  Para detectar um erro, algo extra tem de ser adicionado aos dados/sinal;  Este extra é um código de detecção de erro;  Duas técnicas básicas para a detecção de erros:  verificação de paridade, e soma de verificação de redundância cíclica (cyclic redundancy checksum).
  • 32. 32 Verificação de Paridade  Paridade Simples  Com paridade par, o 0 ou 1 adicionado à cadeia resulta em um número par de “1s” binários.  Com paridade ímpar, o 0 ou 1 adicionado à cadeia resulta em um número ímpar de “1s” binários.  Por exemplo, enviando 1101011 usando paridade par, seria igual 11010111. Agora, há um número par de (6) de “1s”.  Por exemplo, enviando 1101011 usando paridade ímpar, seria igual 11010110.
  • 33. 33 Verificação de Paridade (Continuação)  Paridade Simples  O que acontece se utilizando paridade par e fossem enviado caractere 11010111 e os dois primeiros 1s acidentalmente, fossem dois 0s? Assim, o carácter seguinte é recebido : 00010111 Será que vai haver um erro de paridade?  Problema: a paridade simples detecta apenas os números ímpares de bits em erro
  • 34. 34  Paridade longitudinal  Adiciona um bit de paridade para cada caractere, em seguida, adiciona uma linha de bits de paridade após um bloco de caracteres;  A linha de bits de paridade é realmente um bit de paridade para cada "coluna" de caracteres;  A fila de bits de paridade, mais os bits de paridade de coluna adicionar uma grande quantidade de redundância para um bloco de caracteres. Verificação de Paridade (Continuação)
  • 37. 37  Tanto a paridade simples e paridade longitudinal não pega todos os erros;  Paridade simples só pega os números ímpares de erros de bits;  Paridade longitudinal é melhor na captura de erros, mas requer bits de verificação de muitas adicionados a um bloco de dados;  Precisamos de um método melhor detecção de erros  E quanto a soma aritmética? Verificação de Paridade (Continuação)
  • 38. 38 Checksum aritmético  Usado em TCP e IP na Internet;  Caracteres a serem transmitidos são convertidos para a forma numérica e somados;  Soma é colocado em alguma forma, no final da transmissão.
  • 39. 39  Receptor executa a conversão mesmo e somando e compara com nova soma soma enviado;  TCP e IP processos um pouco mais complexo,mas idéia é a mesma;  Mas, mesmo soma aritmética pode deixar escapar por entre os erros.  Existe algo mais poderoso ainda? Checksum aritmético
  • 40. 40 Checksum de redundância cíclica  CRC método de detecção de erro trata o pacote de dados a serem transmitidos como um polinómio grande;  Transmissor leva o polinômio mensagem e usando a aritmética polinomial, divide-o por um polinômio gerador dado;  Quociente é descartada, mas o restante é "ligado" para o fim da mensagem.
  • 41. 41  A mensagem (com o restante) é transmitida para o receptor;  O receptor divide a mensagem eo resto pelo polinômio gerador mesmo;  Se um resto não é igual a zero resultados, houve um erro durante a transmissão;  Se um resto de zero resultados, não houve erro durante a transmissão. Checksum de redundância cíclica
  • 42. 43 Controle de erros  Uma vez detectado um erro no fluxo de dados recebido, o que o receptor deve fazer?  Não fazer nada(simplesmente enviar o frame ou pacote);  Retornar uma mensagem ao transmissor solicitando reenvio do pacote de dados com erro;  Corrigir o erro sem retransmissão.
  • 43. 44 Não Fazer Nada  Parece uma maneira estranha para controlar erros, mas alguns protocolos de camada inferior, como frame relay realizar esse tipo de controle de erro;  Por exemplo, se o frame relay detecta um erro, ele simplesmente descarta o frame;  Nenhuma mensagem é retornada;  Frame relay assume que outro protocolo (como TCP / IP) irá detectar erro no frame e pedir retransmissão
  • 44. 45 Retornar uma mensagem  Uma vez que é detectado um erro, uma mensagem de erro é retornado para o transmissor  Existem duas formas básicas:  Stop-and-wait error control  Sliding window error control (Janela Deslizante)
  • 45. 46 Stop-and-Wait Error Control  Stop-and-wait é o mais simples dos protocolos de controle de erro;  Um transmissor envia um frame, em seguida, para e espera por uma confirmação  Se uma confirmação positiva acknowledgment (ACK) e recebido, o próximo frame é enviado;  se um confirmação negativa acknowledgment (NAK) e recebida, o mesmo frame é transmitido novamente.
  • 47. 48 Controle de erros de janela deslizante  Estas técnicas assumir que vários quadros estão em transmissão de uma só vez;  Um protocolo de janela deslizante permite que o transmissor para enviar um certo número de pacotes de dados de uma só vez antes de receber quaisquer reconhecimentos;  Depende do tamanho da janela;  Quando um receptor não acusar a recepção, o ACK retornado contém o número do quadro esperado seguinte.
  • 48. 49 Controle de erros de janela deslizante
  • 49. 50  Mais velhos protocolos de janela deslizante numeradas cada quadro ou pacote que foi transmitido;  Mais moderno janela deslizante número protocolos cada byte dentro de um quadro;  Um exemplo em que os pacotes são numerados, seguido por um exemplo em que os bytes são numerados: Controle de erros de janela deslizante
  • 50. 51 Controle de erros de janela deslizante
  • 51. 52 Controle de erros de janela deslizante
  • 52. 53  Observe que um ACK não é sempre enviado após cada frame é recebido  É mais eficiente que esperar por alguns quadros recebidos antes de retornar um ACK  Quanto tempo você deve esperar até você voltar um ACK? Controle de erros de janela deslizante
  • 53. 54  Usando TCP/IP, existem algumas regras básicas sobre ACKs:  Regra 1: Se um receptor acabou de receber alguns dados e deseja enviar dados de volta ao emissor, o receptor deve incluir ACK com dados que está para enviar. Isso de chama piggybacking e poupa o receptor de enviar uma mensagem separada de ACK. (Figura 6-12);  Regra 2: Se um receptor não estiver com dados para retornar ao emissor e tiver acabado de confirmar o recebimento do pacote enviado anteriormente, o receptor aguarda 500 ms para que outro pacote chegue. Porém, se um segundo pacote chegue antes do final dos 500ms, o receptor deve enviar imediatamente um ACK;  Regra 3: Se um receptor estiver esperando a chegada de um segundo pacote e os 500ms acabem, ele encerra a espera por esse segundo pacote e emite imediatamente um ACK. Controle de erros de janela deslizante
  • 54. 55 Controle de erros de janela deslizante
  • 55. 56  O que acontece se o pacote for perdido?  Como mostrado no slide seguinte, se um frame é perdido, o quadro seguinte será "fora de sequência“  O receptor manterá a sequência de bytes em um buffer e pedir ao remetente para retransmitir o quadro faltando. Controle de erros de janela deslizante
  • 56. 57 Controle de erros de janela deslizante
  • 57. 58  O que acontece quando um ACK é perdido?  Como mostrado no slide seguinte, se um ACK é perdido, o remetente vai esperar o ACK chegar e, eventualmente, tempo limite.  Quando o tempo limite ocorre, o remetente reenvia o último quadro. Controle de erros de janela deslizante
  • 58. 59 Controle de erros de janela deslizante
  • 59. 60 Correção de Erros  Para um receptor corrigir erros sem ajuda, ainda mais a partir do transmissor, requer uma grande quantidade de informação redundante para acompanhar os dados originais;  Esta informação redundante permite que o receptor determine o erro e efetue as correções. Este tipo de controle de erro é muitas vezes chamado de correção antecipada de erro e envolve códigos chamados códigos de Hamming.
  • 60. 61 Correção de Erros (continuação)  Adicionar códigos de Hamming bits de verificação adicionais a um caractere.  Estes bits de verificação executar verificações de paridade em várias partes. Exemplo: Pode-se criar um código de Hamming no qual 4 bits de verificação são adicionados a um caractere de 8 bits.  Podemos enumerar os bits de verificação c8, c4, c2 and c1  Vamos numerar os bits de dados b12, b11, b10, b9, b7, b6, b5, and b3  Colocar os bits na seguinte ordem: b12, b11, b10, b9, c8, b7, b6, b5, c4, b3, c2, c1
  • 61. 62  Exemplo (continued):  c8 irá executar uma verificação de paridade em bits b12, b11, b10, and b9  c4 irá executar uma verificação de paridade em bits b12, b7, b6 and b5  c2 irá executar uma verificação de paridade em bits b11, b10, b7, b6 and b3  c1 irá executar uma verificação de paridade em bits b11, b9, b7, b5, and b3 Correção de Erros (continuação)
  • 62. 63 Correção de Erros (continuação)
  • 63. 64  O remetente levará o caractere de 8 bits e gerará os 4 bits de verificação, como descrito  Os 4 bits de verificação são então adicionados para os 8 bits de dados na sequência imediata e depois transmitida  O receptor irá executar as verificações de 4 paridade usando os 4 bits de verificação  Se nenhum bit foi alterado durante a transmissão, então não deve haver nenhum erro de paridade. O que acontece se um dos bits seja alterado durante a transmissão? Correção de Erros (continuação)
  • 64. 65  Por exemplo, se o bit b9 for corrompido?  O bit c8 checa os bits b12, b11, b10, b9 and c8 (01000)  Podemos perceber que houve um erro de paridade.  O bit c4 checa os bits b12, b7, b6, b5 and c4 (00101)  Isso não causaria um erro de paridade (mesmo número de 1s)  O bit c2 checa os bits b11, b10, b7, b6, b3 and c2 (100111)  Isso não causaria um erro de paridade. Correção de Erros (continuação)
  • 65. 66 Correção de Erros (continuação)  Por exemplo, se o bit b9 for corrompido?  O bit c1 checa os b11, b9, b7, b5, b3 and c1 (100011)  Isso não causaria um erro de paridade.  Escrever os erros de paridade em sequência nos dá 1001, que é o valor binário para 9.  Assim, o erro de bit ocorreu na posição 9.
  • 66. 67 Detecção de erro em ação  Asynchronous transfer mode (ATM) incorpora muitos tipos de detecção de erro e controle de erro;  ATM insere um CRC para o quadro de dados, que verifica apenas o cabeçalho e não os dados;  Este CRC também é poderoso o suficiente para realizar a correção de erros simples no cabeçalho  Uma segunda camada de ATM se aplica uma CRC para os dados, com graus variáveis ​​de controlo de erro.
  • 67. 68 Resumo  Ruído está sempre presente em redes de computadores, e se o nível de ruído é demasiado elevado, os erros serão introduzido durante a transmissão dos dados.  Entre as técnicas para reduzir o ruído são próprias da blindagem de cabos, o condicionamento de linha telefônica ou equalização, usando equipamentos digitais modernos, usando repetidores digitais e amplificadores analógicos, e observando as capacidades indicadas da mídia.
  • 68. 69 Resumo (continuação)  Três formas básicas de detecção de erro são paridade, checksum aritmética e soma de verificação de redundância cíclica;  Verificação de redundância cíclica é um esquema de detecção de erros superior com quase 100 por cento a capacidade de reconhecer os pacotes de dados corrompidos;  Uma vez que um erro foi detectado, há três opções possíveis: não fazer nada, retornar uma mensagem de erro e corrigir o erro
  • 69. 70  Stop-and-wait protocol permite que apenas um pacote para ser enviado em um tempo;  A técnica de janelamento é um protocolo que permite múltiplos pacotes para serem enviados de uma só vez;  Correção de erro é uma possibilidade, se os dados transmitidos contém informações suficientes redundante para que o receptor pode corretamente corrigir o erro sem pedir o transmissor para obter informações adicionais. Resumo (continuação)