Interfaces e transmissão de dados
3 Camada de ligação de dados
Camada de ligação de dados. Sincronismo e detecção de erros
3 – Camada de ligação de dados
Responsável:
Rui Silva
Data:
1ª Ano 2º Semestre 2010 / 2011
Versão
Pág.:
2.2
1/19
Interfaces e transmissão de dados
Camada de ligação de dados. Sincronismo e detecção de erros
3.1.2 Detecção e correcção de erros
3.1.2 – Detecção e correcção de erros
Responsável:
Rui Silva
Data:
1ª Ano 2º Semestre 2010 / 2011
Versão
Pág.:
2.2
2/19
Interfaces e transmissão de dados
3.1.2.2 FEC
Camada de ligação de dados. Sincronismo e detecção de erros
3.1.2.2 – FEC – Forward Error Correction
Responsável:
Rui Silva
Data:
1ª Ano 2º Semestre 2010 / 2011
Versão
Pág.:
2.2
3/19
Interfaces e transmissão de dados
Introdução
Camada de ligação de dados. Sincronismo e detecção de erros
Detecção e correcção de erros
Forward error correction (FEC)
•Recorre aos códigos correctores de erros (Hamming, Convolucional, Reed Solomon, etc...)
•Tal como anteriormente, é transmitida informação redundante (adicional), aos bits de
informação, que formam uma palavra de código (codeword)
•O receptor corrige os erros através da procura da palavra de código mais próxima da
mensagem recebida (mais próxima = maior probabilidade)
Responsável:
Rui Silva
Data:
1ª Ano 2º Semestre 2010 / 2011
Versão
Pág.:
2.2
4/19
Interfaces e transmissão de dados
Camada de ligação de dados. Sincronismo e detecção de erros
Detecção e correcção de erros
Forward error correction (FEC)
•Análise de Hamming (1950)
•Hamming estabeleceu as principais bases teóricas para detecção e correcção de erros
Definições:
•Palavra de código (codeword): é o conjunto formado pelos bits de informação e os bits redundantes:
m são o número de bits de informação ou de dados
r são o número de bits redundantes ou de código
l são o número de bits que compõem a palavra de código, em que: l = m + r
•Distância de Hamming (d): é o número mínimo de bits que duas palavras de código diferem entre si
A distância de Hamming é calculada pela operação XOR das duas palavras de código
Ex: Considere as palavras de código:10001001 e 10110001
10001001
⊕10110001
00111000 =>Diferem entre si de três posições de bit (onde o resultado foi 1)
São necessários 3 bits = d, para transformar uma palavra de código noutra.
Responsável:
Rui Silva
Data:
1ª Ano 2º Semestre 2010 / 2011
Versão
Pág.:
2.2
5/19
Interfaces e transmissão de dados
Camada de ligação de dados. Sincronismo e detecção de erros
Detecção e correcção de erros
Forward error correction (FEC)
•Análise de Hamming (1950)
•Duas palavras de código com d = n, requerem n erros de bit simples para converter uma na outra
•Todas as combinações de bits de dados são possíveis: 2 m bits de dados ( m = nº de bits de dados)
l
m
r
m+r
•Nem sempre todas as combinações de bits redundantes 2 = 2 .2 = 2
são possíveis
(Depende da forma como são calculados os bits redundantes)
•Dado o algoritmo para cálculo dos bits redundantes, é possível construir a lista completa das
palavras de código possíveis e desta achar duas, cuja distância de Hamming seja mínima. Esta
distância é chamada distância de Hamming do código completo.
Responsável:
Rui Silva
Data:
1ª Ano 2º Semestre 2010 / 2011
Versão
Pág.:
2.2
6/19
Interfaces e transmissão de dados
Camada de ligação de dados. Sincronismo e detecção de erros
Detecção e correcção de erros
Forward error correction (FEC)
•Análise de Hamming (1950)
•Propriedades da detecção e correcção de erros
•Para detectar n erros, é necessário um código com uma distância de Hamming:
d = n + 1 bits (4.9)
•Prova: A ocorrência de n erros simples não conseguem transformar uma palavra de código válida
noutra palavra de código válida. (Seriam necessários n=d como verificado no slide 55). No entanto
poderão existir duas palavras de código válidas à mesma distância não sendo por isso possível
saber em todos os casos qual a correcta. (Detecta erros em todos estes casos e corrige-os apenas
em alguns)
•Para corrigir n erros, é necessário um código com uma distância de Hamming: d = 2 n + 1 bits (4.10)
d −1
Ou corrige n =
erros com n arredondado para baixo
2
•Prova: As palavras de código válidas estarão tão longe, que mesmo com n erros simples, a
palavra de código original está mais próxima que qualquer outra palavra de código, podendo ser
determinada de forma unívoca.
Responsável:
Rui Silva
Data:
1ª Ano 2º Semestre 2010 / 2011
Versão
Pág.:
2.2
7/19
Interfaces e transmissão de dados
Camada de ligação de dados. Sincronismo e detecção de erros
Detecção e correcção de erros
Forward error correction (FEC)
•Análise de Hamming (1950)
•Exemplo de aplicação distância de Hamming
•Considere um alfabeto de código com apenas 4 palavras de código válidas:
A=0000000000
B=0000011111
C=1111100000
D=1111111111
Distância de Hamming: d = 5
Detecta n = d − 1 = 4 . Todos os erros de 4 bits
Corrige n =
d −1
= 2 . Todos os erros de 2 bits
2
•Considere que se recebe a palavra de código 0011011111
•Tem a probabilidade Pe 7 (1 − Pe ) 3 de ser A
•Tem a probabilidade Pe 2 (1 − Pe ) 8 de ser B
Seria corrigida para a palavra B, pois é a que
se encontra mais “próxima” ou provável da
palavra recebida.
•Tem a probabilidade Pe 8 (1 − Pe ) 2 de ser C
•Tem a probabilidade Pe 3 (1 − Pe ) 7 de ser D
Responsável:
Rui Silva
Data:
1ª Ano 2º Semestre 2010 / 2011
Versão
Pág.:
2.2
8/19
Interfaces e transmissão de dados
Código de Hamming
Camada de ligação de dados. Sincronismo e detecção de erros
Detecção e correcção de erros
Forward error correction (FEC)
•Código de Hamming : Contrução das palavras de código para:
•Distância de Hamming d= 3.
•Corrige todos os erros de
n=
d −1
=1
2
bit em cada palavra de código (codeword)
•Numerar os bits da direita para a esquerda começando em 1
0
1
2
k
•Posições dos bits correctores são todas as posições que são potências de 2: 2 , 2 , 2 ...(2 = m )
com k inteiro ≥ 0 (2k = m. Representa o nº de bits de informação [sem bits redundantes])
Para o caso de dados com m= 8 bits, as posições dos bits correctores serão: 20, 21 , 22 e 23
•Todas as outras posições são bits de dados.
•Conteúdo dos bits correctores: soma (XOR) do valor da posição de cada bit da palavra de
código que se encontrar a 1 (Paridade)
Responsável:
Rui Silva
Data:
1ª Ano 2º Semestre 2010 / 2011
Versão
Pág.:
2.2
9/19
Interfaces e transmissão de dados
Camada de ligação de dados. Sincronismo e detecção de erros
Algoritmo de construção do código de Hamming
Detecção e correcção de erros
Forward error correction (FEC)
•Código de Hamming - Exemplo
•Mensagem a transmitir:
10001101 (8 bits)
1 – Colocação dos bits correctores nas posições que são potências de 2
•Como temos 8 bits, as potências de 2 são: 2 0 , 21 , 2 2 e 2 3
Posição do bit
Valor
12
11
10
9
23 = 8 7
6
5
22 = 4 3
X
X
21 = 22 0 = 1
X
X
•Nota: Verifica-se que a palavra de código irá conter 12 bits ( 4 redundantes)
2 – Colocação da mensagem a transmitir nas posições em falta:
12
11
10
9
1
0
0
0
23 = 8 7
X
1
6
5
1
0
X
Responsável:
Data:
Rui Silva
22 = 4 3
1
21 = 22 0 = 1
X
1ª Ano 2º Semestre 2010 / 2011
X
Versão
Pág.:
2.2
10/19
Interfaces e transmissão de dados
Camada de ligação de dados. Sincronismo e detecção de erros
Detecção e correcção de erros
Forward error control (FEC) – detecção e correcção de erros
•Código de Hamming - Exemplo
3 – Cálculo dos valores dos bits redundantes:
•É a soma (XOR) do valor da posição de cada bit da palavra de código que se encontrar a 1
Posição do bit
Valor
12
11
10
9
1
0
0
0
23 = 8 7
X
1
6
5
1
0
22 = 4 3
X
21 = 22 0 = 1
1
X
X
1100 (12 ) ⊕ 0111 ( 7 ) ⊕ 0110 ( 6 ) ⊕ 0011 (3) = 1110
4 – Substituir o X pelo valor calculado:
•Palavra de código a transmitir: 100011101110
Responsável:
Rui Silva
Data:
1ª Ano 2º Semestre 2010 / 2011
Versão
Pág.:
2.2
11/19
Interfaces e transmissão de dados
Camada de ligação de dados. Sincronismo e detecção de erros
Algoritmo de detecção e correcção de erros do código de Hamming
Detecção e correcção de erros
Forward error correction (FEC)
•Código de Hamming – Recepção
•À recepção é efectuada a soma (XOR) do valor da posição de cada bit da palavra de
código que se encontrar a 1
•Caso o resultado seja igual a 0 -> Indica que não houve erros
•Caso o resultado seja diferente de 0 -> Indica a posição onde houve o erro.
Responsável:
Rui Silva
Data:
1ª Ano 2º Semestre 2010 / 2011
Versão
Pág.:
2.2
12/19
Interfaces e transmissão de dados
Camada de ligação de dados. Sincronismo e detecção de erros
Detecção e correcção de erros
Forward error correction (FEC)
•Código de Hamming – Recepção sem erros
•Palavra de código transmitida: 100011101110
•Palavra de código recebida: 100011101110
1100 (12 ) ⊕ 1000 (8) ⊕ 0111 ( 7 ) ⊕ 0110 ( 6 ) ⊕ 0100 ( 4 ) ⊕ 0011 (3) ⊕ 0010 ( 2 ) = 0000
•Código de Hamming – Recepção com erros
•Palavra de código transmitida: 100011101110
•Palavra de código recebida: 100011001110
1100 (12 ) ⊕ 1000 (8) ⊕ 0111 ( 7 ) ⊕ 0100 ( 4 ) ⊕ 0011 (3) ⊕ 0010 ( 2 ) = 0110 ( 6 )
•Ocorreu um erro de bit na posição 6. O receptor só tem de o inverter.
Responsável:
Rui Silva
Data:
1ª Ano 2º Semestre 2010 / 2011
Versão
Pág.:
2.2
13/19
Interfaces e transmissão de dados
Características
Camada de ligação de dados. Sincronismo e detecção de erros
Detecção e correcção de erros
Forward error correction (FEC)
•Código de Hamming - Características
•Corrige todos os erros simples de bit na palavra de código
•Pouco eficiente para erros em rajada.
•Nº de bits necessários para uma codificação Hamming de m bits de dados
- m + r bits redundantes de verificação
-Com r bits de verificação é possível representar valores entre 0 (não usado) e 2 r − 1
- r é o menor inteiro que verifica a condição:
2 r −1 ≥ m + r
(4.10)
- Note-se que o comprimento total da palavra de código: l = m + r
Responsável:
Rui Silva
Data:
1ª Ano 2º Semestre 2010 / 2011
Versão
Pág.:
2.2
14/19
Interfaces e transmissão de dados
Eficiência e famílias do Código
Camada de ligação de dados. Sincronismo e detecção de erros
Detecção e correcção de erros
Forward error correction (FEC)
•Código de Hamming – Outras famílias de código e eficiência
m
l
4
7
m
l
0.57
11
15
0.73
26
31
0.84
57
63
0.91
120
127
0.94
247
255
0.968
502
511
0.982
η=
•A eficiência aumenta à medida que o
tamanho do bloco aumenta
•No entanto, à medida que o tamanho
do bloco aumenta, surgem
dificuldades:
•Complexidade do codificador
aumenta
•É preciso juntar muitos bits
antes de transmitir, o que pode
criar atrasos intoleráveis
Responsável:
Rui Silva
Data:
1ª Ano 2º Semestre 2010 / 2011
Versão
Pág.:
2.2
15/19
Interfaces e transmissão de dados
Exercicios de aplicação
Camada de ligação de dados. Sincronismo e detecção de erros
Forward error correction (codificação de Hamming). Exercicios de aplicação
1 - Considere um alfabeto constituído pelas duas palavras de código:
A: 1110 1100
B: 1010 0011
a) Qual a distância de Hamming ?
b) Quantos erros de bit é este código capaz de detectar?
c) Quantos erros de bit é este código capaz de corrigir ?
d) Ao receptor chega a seguinte palavra 1111 1000. Qual a palavra que o receptor escolheria ?
2 - Considere a seguinte mensagem de 8 bits a transmitir: 1000 0001
a)
Codifique-a em Hamming
b)
Suponha que ocorre um erro no 6º bit da mensagem codificada (contando da direita para a
esquerda). Indique as operações matemáticas realizadas pelo receptor para detectar e corrigir
o erro.
c)
Calcule a eficiência do código para o caso considerado (mensagens de 8 bits).
Responsável:
Rui Silva
Data:
1ª Ano 2º Semestre 2010 / 2011
Versão
Pág.:
2.2
16/19
Interfaces e transmissão de dados
Resumo
Camada de ligação de dados. Sincronismo e detecção de erros
Resumo
Capítulo 3 – Camada de ligação de dados
•3.1.2.2 FEC (Forward Error Correction)
•Introdução
•Análise de Hamming
•Códigos de Hamming
•Exemplos de correcção de erros
•Eficiência e famílias de código de Hamming
Responsável:
Rui Silva
Data:
1ª Ano 2º Semestre 2010 / 2011
Versão
Pág.:
2.2
17/19
Interfaces e transmissão de dados
Camada de ligação de dados. Sincronismo e detecção de erros
Referências
Stallings – Data and Computer communications Cap. VI (Transmissão de dados e correcção de erros)
Ahmad –Data Communications Principles for fixed and mobile networks Cap. V (Camada ligação dados )
Leon Garcia – Communication Networks, Cap. III (Detecção e correcção de erros)
Halsall –Data Communications, Computer Networks and Open Systems 4th Edition Cap. III (Transmissão de dados)
Tanembaum –Computer Networks 4th Edition Cap. II (data link layer)
Glover & Grant –Digital Communications Cap. X (Transmissão de dados)
Purser – Introduction to error correction codes Cap. I (Introduction)
Gilbert Held –Data Communications Networking devices Cap I (Error Detection and Correction)
Responsável:
Rui Silva
Data:
1ª Ano 2º Semestre 2010 / 2011
Versão
Pág.:
2.2
18/19
Interfaces e transmissão de dados
Camada de ligação de dados. Sincronismo e detecção de erros
FIM
Responsável:
Rui Silva
Data:
1ª Ano 2º Semestre 2010 / 2011
Versão
Pág.:
2.2
19/19
Download

3.a3-Camada de Ligacao de dados. Codigos correctores de erros