Baixe Métodos de Detecção de Erros em Transmissão de Dados e outras Notas de estudo em PDF para Redes de Computadores, somente na Docsity!
REDES DE
COMPUTADORES
Prof. Ivan Nunes da Silva
UNIDADE 6 – Métodos de Detecção de Erros
(Aula 09 – Técnicas Convencionais e CRC)
2
1. Métodos de Detecção de Erros
1.1 Erros na Transmissão de Dados
z Na conexão inter-redes, a transmissão de dados estão sujeitas a erros. z Raios, surtos de energia e outras interferência eletromagnéticas podem introduzir correntes elétricas indesejadas nos componentes ou fios usados para comunicação. z A interferência que é séria (especialmente raio) pode causar danos permanentes ao equipamento de rede. z Uma pequena mudança no sinal elétrico pode fazer com que o receptor interprete mal um ou mais bits de dados. z A interferência pode destruir completamente um sinal, significando que, embora o remetente transmita, o receptor não detecta a chegada de quaisquer dados. z A interferência em um circuito de transmissão completamente inativo pode criar o efeito oposto, embora o remetente não transmita qualquer coisa, um receptor poderia interpretar a interferência lida como uma sequência válida de bits ou caracteres.
3
1.2 Bits de Paridade e Verificação de Paridade
z Processo de Verificação de Paridade
- Mecanismo faz com que o remetente compute um bit adicional, denominado de bit de paridade ( parity bit ), e anexe-o a cada caractere antes do envio.
- Após todos os bits de um caractere serem recebidos, o receptor remove o bit de paridade.
- Receptor executa a mesma computação que o remetente e verifica se o resultado está de acordo com o valor de bit de paridade.
- A computação de paridade é escolhida de forma que se um dos bits do caractere é danificado em trânsito, a computação do receptor não concordará com o bit de paridade e o receptor indicará que aconteceu um erro.
- Existem duas formas de paridade, ou seja, par e ímpar.
- Ambos remetente e receptor devem concordar em qual forma será utilizada.
4
1. Métodos de Detecção de Erros
1.2 Bits de Paridade e Verificação de Paridade
z Processo de Computação da Paridade
- Paridade Par Î remetente fixa o bit de paridade para 0
ou 1 de forma que faça o número total de bits 1 (inclusive
o bit de paridade) um número par. Exemplos:
- 01001010 Æ Bit de Paridade = 1 (Caractere contem um número ímpar de bits 1.
- 01011010 Æ Bit de Paridade = 0 (Caractere já contem um número par de bits 1.
- Paridade Ímpar Î remetente fixa o bit de paridade para 0
ou 1 de forma que faça o número total de bits 1 (inclusive
o bit de paridade) um número ímpar. Exemplos:
- 11011010 Æ Bit de Paridade = 0 (Caractere já contem um número ímpar de bits 1.
- 01110001 Æ Bit de Paridade = 1 (Caractere contem um número par de bits 1.
- A Paridade não detecta erros de transmissão que
mudam um número par de bits.
7
1.3 Detectando Erros comCheckSum
z Desvantagens da Detecção de Erro com CheckSum
- Tem a desvantagem de não detectar todos os erros comuns.
- Por exemplo, a tabela abaixo mostra que um CheckSum não é suficiente para detectar erros de transmissão que inverte o segundo bit em cada um dos quatro bits enviados.
- Para estender o exemplo para um pacote inteiro, imagine que os quatro itens modificados acontecem no meio de vários outros.
8
1. Métodos de Detecção de Erros
1.4 Detectando Erros com CRC z Características da Técnica:
- Mecanismo baseado em códigos de Verificação de Redundância Cíclica ( Cyclic Redundancy Checks ).
- Técnica que permite detectar erros em múltiplos bits (erros por rajada).
- É provado matematicamente que a CRC consegue detectar mais erros que um CheckSum.
- Dada uma mensagem de n bits, em lugar de se acrescentar 1 bit de paridade será adicionada uma sequência de k bits denominada FCS ( Frame Check Sequence ).
- O FCS é determinado por um polinômio gerador P(x) tal que os n+k bits transmitidos sejam divisíveis por P(x).
9
1.4 Detectando Erros com CRC
z Passos do Mecanismo CRC (Parte I):
- O transmissor acrescenta o FCS e o receptor verifica se a
Mensagem acrescida do FCS é divisível por P(x) com
resto zero. Caso não seja, ocorreu erro de transmissão.
- Sendo M a mensagem de n bits a ser transmitida, esta
mensagem pode ser considerada como um polinômio
M(x) de grau n-1 que possui o termo x i^ se o i-ésimo bit de
M é 1.
Se M = 1010001101
Então n = 10 e M(x) = x^9 + x^7 + x^3 + x^2 + 1
10
1. Métodos de Detecção de Erros
1.4 Detectando Erros com CRC
z Passos do Mecanismo CRC (Parte II):
- Considera-se uma sequência de k bits correspondente
a um Polinômio Gerador P(x) de grau k-1 como o
seguinte:
Se P = 110101
Então k = 6 e P(x) = x^5 + x^4 + x^2 + 1
- O Polinômio Gerador P(X) de grau r=k-1 deve ser
conhecido tanto pelo transmissor como pelo
receptor.
- Deve-se calcular F(x) tal que o quadro T(x) a ser
transmitido:
T(x) = x r.M(x) + F(x), seja então divisível por P(x).
- F(x) pode ser obtido como o resto da divisão de x r.M(x)
por P(x).
13
1.4 Detectando Erros com CRC (Exemplo)
z Exemplo Completo:
- Transmissão da cadeia M = 1010001101 (n=10), tendo como Polinômio Gerador P(x) = x^5 +x^4 +x^2 +1 (r = 5).
- P(x) em termos de seus coeficientes, torna-se: P = 110101.
z Obtendo o Polinômio M(x)
- M = 1010001101 Æ M(x) = x^9 +x^7 +x^3 +x^2 +1, onde ordem Æ n-1.
z Obtendo o termo x r.M(x), com r = 5
- xr.M(x) = x^5 .(x^9 +x^7 +x^3 +x^2 +1) Æ x^14 +x^12 +x^8 +x^7 +x^5
- xr.M(x) em termos dos Coeficientes Æ 101000110100000
z Obtendo o FCS representado pelo termo F(x)
- F(x) é dado pelo resto da divisão de x r.M(x) por P(x), usando aritmética de módulo 2 (OU-Exclusivo sem Carry).
- Por facilidade de cálculo, trabalha-se apenas com os polinômios em termos de seus coeficientes.
14
1. Métodos de Detecção de Erros
1.4 Detectando Erros com CRC (Exemplo)
z Obtendo o FCS representado pelo termo F(x)
- xr.M(x) em termos dos Coeficientes (r = 5) Æ 101000110100000
- P(x) em termos de seus Coeficientes Æ P = 110101.
- Lembrar que se está dividindo polinômios, sendo que cada numerador tem que ter no mínimo o mesmo grau do denominador.
FCS = 01110 (deve conter r bits Æ r = 5)
F(x) = x 3 +x^2 +x
15
1.4 Detectando Erros com CRC (Exemplo)
z Obtendo o quadro completo T(x) a ser transmitido:
- T(x) = x r.M(x) + F(x)
- xr.M(x) = x^14 +x^12 +x^8 +x^7 +x^5
- F(x) = x^3 +x^2 +x
- T(x) = x 14 +x 12 +x 8 +x 7 +x 5 +x 3 +x 2 +x
- Em termos de seus coeficientes, tem-se a cadeia T a ser
transmitida Æ T = 101000110101110
- A obtenção da cadeia T acima é semelhante a subtrair
(em módulo 2) o valor F = 01110 de 101000110100000
- A cadeia T é então divisível por P.
- Transmite-se então a cadeia T com FCS de 5 bits.
16
1. Métodos de Detecção de Erros
1.4 Detectando Erros com CRC (Exemplo)
z Quando a cadeia T chega ao receptor, o mesmo deve
checar se a cadeia chega sem erro.
z Para checar a integridade, o resto da divisão de T por P
deve ser ZERO.
- Checando se T = 101000110101110 dividido por
P = 110101 produz resto zero:
Resto = 0 (Mensagem está OK!)
Basta recuperar agora a Cadeia original M, retirando-se os cinco últimos bits de T, ou seja, M = 1010001101
19
1.4 Detectando Erros com CRC
z A maioria dos compactadores de arquivos também utilizam
o CRC-32:
20
Fim da Apresentação