Erros e Protocolos de Recuperação
Códigos detectores e correctores de erros.
Instituto Superior de Engenharia de Lisboa
Departamento de Engenharia, Electrónica, Telecomunicações e
Computadores
Redes de Computadores
Características do canal
• BER (Bit Error Rate)
• Probabilidade de ter 1 bit errado num intervalo de tempo
• (Influencia o tamanho máximo das tramas)
• PErrorFrame
n
Perroframe = ∑
i =1
( )(1 − p )
n
i
n −i
p i = 1 − (1 − p )
n
p = probabilidade de um bit ser corrompido = BER
1-p = probabilidade de um bit não ser corrompido
n = número de bits de uma trama
2007-02-26
Erros e Tecnicas de Detecção e Correcção
2
Tipo de erros no canal de transmissão
• Erros isolados (Single bit error)
• Erros seguidos (Burst errors ou erros em rajada)
– Burst: conjunto de B bits, que começa e acaba com um bit errado e que
dista do próximo burst, B ou mais bits
2007-02-26
Erros e Tecnicas de Detecção e Correcção
3
Erros de transmissão: soluções
• Métodos detectores de erros
–
–
–
–
Feedback (backward) error control
Redundância
Algoritmo de detecção
Retransmissão
• Métodos correctores de erros
– Forward Error Control (FEC)
– Exigem uma maior redundância
– Algoritmo de correcção
2007-02-26
Erros e Tecnicas de Detecção e Correcção
4
Métodos detectores de erros
• Bit de paridade
• Detecta todos os erros em número ímpar de bits
• Ao nível do caracter
• Paridade de coluna (com bit de paridade)
•
•
•
•
Ao nível da trama
Detecta todos os erros em número ímpar de bits
Detecta todos os erros em número par de bits em número ímpar de linhas
Detecta alguns erros em número par de bits em número par de linhas
• Checksum (com bit de paridade)
• Ao nível da trama
• Detecta mais erros que a paridade de coluna
2007-02-26
Erros e Tecnicas de Detecção e Correcção
5
Métodos detectores de erros
Bit de paridade
2007-02-26
Erros e Tecnicas de Detecção e Correcção
6
Métodos detectores de erros
Paridade de coluna
2007-02-26
Erros e Tecnicas de Detecção e Correcção
7
Métodos detectores de erros
Cyclic Redundancy Check (CRC)
CRC - Cyclic Redundancy Check
ou FCS (Frame Check Sequence) ou códigos polinomiais
Resto da divisão de módulo 2 da mensagem por um gerador, adicionando à mensagem.
Detecta:
•
•
•
•
todos os erros em 2 bits
todos os erros em número ímpar de bits
todos os erros em burst menor que 16 bits
quase todos (99.99%) os erros em burst maior ou igual que 16 bits
2007-02-26
Erros e Tecnicas de Detecção e Correcção
8
Cyclic Redundancy Check
• M(x) é a mensagem a transmitir.
• G(x) é o polinómio gerador de grau n
(com n+1 bits).
• A trama a transmitir será:
M(x) x 2n
.....
......
....
G(x)
Q(x)
R(x)
– M(x) x 2n + R(x)
• G(x) é conhecido pelo receptor e pelo
transmissor.
• A escolha de G(x) determina quais os
tipos de erros que são detectados.
2007-02-26
Erros e Tecnicas de Detecção e Correcção
Mensagem
n bits
M(x)
R(x)
Trama transmitida
9
Cyclic Redundancy Check
Teoria de códigos polinomiais
Exemplos de
códigos geradores
2007-02-26
Erros e Tecnicas de Detecção e Correcção
10
CRC – Cálculo do código no transmissor
• M(x)=11100110 G(x)=11001
11100110 0000 | 11001
0010111
10110110
011100
00101 00
011 010
00 0110
• Mensagem enviada: 11100110 0110
2007-02-26
Erros e Tecnicas de Detecção e Correcção
11
CRC – Verificação da trama no receptor (sem erros)
• Mensagem recebida: 11100110 0110
• M(x)=11100110 G(x)=11001
11100110 0110 |11001
0010111
10110110
011100
00101 01
011 001
00 0000
2007-02-26
Erros e Tecnicas de Detecção e Correcção
12
CRC – Verificação da trama no receptor (com erros)
• Mensagem recebida: 11110010 0110
• M(x)=11100110 G(x)=11001
11110010 0110 | 11001
0011101
10101111
001000 0
00100 11
010 101
01 1000
0 0001
• Detectou erro porque a divisão não deu resto zero.
2007-02-26
Erros e Tecnicas de Detecção e Correcção
13
CRC – Exemplo com erro no código CRC
2007-02-26
Erros e Tecnicas de Detecção e Correcção
14
Implementação hardware do algoritmo de CRC
Transmissor
G(x)=x3+1
2007-02-26
Erros e Tecnicas de Detecção e Correcção
15
Implementação hardware do algoritmo de CRC
Receptor
2007-02-26
Erros e Tecnicas de Detecção e Correcção
16
Métodos correctores de erros
• Códigos de Hamming
–
–
–
–
Corrige erros de bit
Não aplicável em situações de erros de rajada
Pouco utilizado em comunicações de dados
Utilizável em sistemas de memórias semicondutores
• Códigos convolucionais
–
–
–
–
Mais indicado para comunicações de dados
A informação a ser transmitida sofre uma convolução
Cada bit transmitido vai depender dos bits anteriores
Exemplos de códigos correctores: Hamming, convolucional, outros (Reed Solomon)
2007-02-26
Erros e Tecnicas de Detecção e Correcção
17
Códigos correctores – terminologia
• Codeword é o conjunto formado pelos bits de informação e os bits de
protecção.
• Distância de Hamming (d) é o número mínimo de bits que diferem entre si
quaisquer duas palavras do código.
– detecta todos os n bits errados (pode detectar mais mas não exaustivamente) d=n+1
– corrige todos os n bits errados d=2n+1
– ex: código com bit de paridade d=2
2007-02-26
Erros e Tecnicas de Detecção e Correcção
18
Sumário e bibliografia
• Sumário:
– Códigos detectores de erro
• Bit de paridade
• Soma de bloco
• CRC
– Códigos correctores de erro
• Códigos de Hamming
• Bibliografia
– “Data Communications, Computer Networks and Open Systems”, Fred Halsall,
Cap 2;
2007-02-26
Erros e Tecnicas de Detecção e Correcção
19
Download

3.2 Detecção e correcção de erros