1º Bit de Paridade
Este é um dos métodos mais utilizados para a deteção de erros. O bit de paridade indica o número de bits 1 presentes num carácter (Byte). Assim, diz-se que a paridade é par se tiver um número par de 1's e ímpar caso tenha número ímpar de 1's. Assim, este assume o bit 0 quando temos paridade par e 1 quando temos paridade ímpar.
Exemplos:
1100110 - a mensagem está correta.
Porquê? Porque o último bit é zero indicando que o número de 1's que o precede é par (4 uns).
10101011 - a mensagem está errada.
Porquê? Porque o byte teria assim de ser retransmitido visto o bit de paridade dizer que o número de 1's é ímpar e no entanto é par (4 uns).
2º CheckSum
São técnicas utilizadas para detectar erros principalmente na internet e denominam-se somas de verificação. Se a soma de checksums (normal e complemento de para 1) resultarem apenas 1's, podemos inferir que "não" houve erros na transmissão, caso contrário, existiu erro na transmissão.
Exemplos:
1º Passo - Fazer a respetiva soma de binários
00111101
+00001101
01001010
2º Passo - como a soma tem de ser em complemento para um terá de inverter a sequência resultante da soma normal (zeros passam a 1's e vice-versa)
Checksum invertido: 10110101
Os dados enviados serão então: 00111101 00001101 10110101, ou seja, os dois bytes iniciais mais a sequência de checksum invertido.
3º Passo - para verificar se ocorreram erros durante a transmissão, no receptor, teremos de voltar a somar os 2 bytes de dados enviados e somar ao checksum invertido.
10110101 (checksum invertido)
01001010 (checksum do receptor)
+
11111111
Como a soma resultou em 1's concluímos que não houve erro na transmissão
3º CRC ( Cycle Redudancy Check )
Está é a técnica mais eficiente que as anteriores. Muitas vezes, é também denominada por método de detecção polimonimal. O método consiste em adicionar um conjunto de bits (FCS- Frame Check Sequence) à mensagem original a transmitir. Os bits FCS são calculados através da seguinte expressão:
FCS(x)=resto M(x)*xm / G(x)
FCS(x) é igual ao resto da divisão inteira entre duas funções polimoniais M(x) e G(x) onde M(x) é a nossa mensagem original sem código.de erros e G(x) o polinómio gerado pré-definido(chave da nossa codificação). Para facilitar a compreensão deste tema resolve se de seguida um exercício.
M(x)=x6+x5+x3+x+1
M(x)=1101011
G(x)=x1+x3+1
G(x)=11001
M(x)binXnbin=11010110000
1101011 = M(x)
0000=Xn
A | B | A XOR |
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 0 |
M(x)*Xn
11010110000 |11001 G(x)bin
11001 1001010
000111
00000
001111
00000
011110
11001
001110
00000
011100
11001
001010
00000
01010
M(x)bin+FCS(x)bin=11010111010
1101011 M(x)bin
1010 FCS(x)bin
Mas como é que o receptor verifica se houve erro na transmissão ou não?
Faz a divisão do M(x) e o FCS
Se o resto for zero, diz-se que não houve erro e o contrário se o resto for diferente de zero.
Correção de erros
O bit de paridade: indica o número de bits 1 presentes num caracter. Paridade é par se tiver um número par de 1’s Paridade é ímpar se tiver um número impar de 1’s 11001100 – Mensagem correta, ou seja, o último bit é 0 indicando que o número de 1’s que o precede é par 10101011 – Mensagem errada, e assim, o byte teria de ser retransmitido visto o bit de paridade dizer que o número de 1’s é ímpar e no entanto é par . E a correção de erros é um dos métodos mais utilizados para a deteção de erros.
Verificação de Paridade: Esta técnica consiste em acrescentar um bit extra ao carácter, isto é, emprega a técnica de paridade que pode ser paridade par ou paridade ímpar, ou seja, a soma dos bits ligados (1) de um caracteres deve ser igual a um valor ímpar ou par.
Além dos oito bits de carácter que são gerados, a estação transmissora adiciona um bit de paridade para cada carácter e a soma desses nove bits deverá manter-se sempre ímpar ou par, dependendo da técnica de paridade empregada. Não há restrição ao uso da técnica de paridade em relação ao código utilizado pelo equipamento (Baudot, ASCII, EBCDIC, etc.)
Paridade Par:
Paridade Ímpar:
Checksums:Os checksums são técnicas utilizadas para detectar erros principalmente na Internet e denominam-se somas de verificação, ou seja, a verificção é usada ao nivel de transporte e é colocado na trama, no lado do emisso, e o recetor soma novamente o segmento,ou seja, se a soma de checksums, resultarem apenas 1’s, pode-se referir que não houve erro de transmissão.
Exemplos 1:
´2 bytes com valores 00111101 e 00001101
00111101
00001101
--------------------
+ 01001010
01001010 -> 10110101
Exemplo 2:
Agora deixo aqui uns pequenos exercícios para ver se vocês já percebam o que leram:
Exercício: Das sequências de bits que se seguem, indique em quais ocorreram erro, sabendo que o último bit é um bit de paridade 11100111110101011 10101011110001001 10101000000000100