domingo, 4 de agosto de 2013

Algoritmos para verificação em redes de computadores - Parte I

Estou estudando sobre a operação de redes de computadores e me deparei com alguns algoritmos bastante interessantes que são utilizados pelos protocolos de comunicação para garantir que durante a transmissão de dados sejamos capazes de detectar erros de transmissão e até mesmo de corrigi-los.

Neste post vou descrever dois deles:
  • O CRC (Cyclic redundancy check) que permite detectar erros de transmissão e que já vamos achar pronto sua implementação em Java, basta saber chamar as classes corretamente.
  • O Código de Hamming que permite detectar e corrigir erros nos bits transmitidos
O CRC (verificação de redundância cíclica) é um código capaz de detectar erros. Utiliza uma técnica polinomial que gera um valor (com poucos bits de tamanho se comparado com bloco de dados que queremos verificar). Este valor é utilizado para verificar se houve erro na transmissão de dados. A fórmula indicada abaixo é complicada, mas por incrível que pareça pode ser implementada em hardware com componentes comuns.

CRC_{32}(x) = x^{32} + x^{26} + x^{23} + x^{22} + x^{16} + x^{12} + x^{11} + x^{10} + x^{8} + x^{7} + x^{5} + x^{4} + x^{2} + x^{1} + x^{0}


Além disto o CRC apresenta boa eficiência em detectar erros causados por ruído em canais de transmissão. Vamos ver como implementá-lo em Java.


Nenhum comentário:

Postar um comentário