2. Detección de errores

En electrónica digital se pueden añadir datos extra a la información enviada por un canal con ruido, para detectar si la transmisión de información ha sido correcta o si se ha producido algún error.

La detección de errores añade una pequeña sobrecarga de información con bits extra denominados redundancia.

En la transmisión de datos por internet o en la red de datos móviles, si se produce un error y se detecta, el ordenador volverá a pedir que se reenvíe la información, hasta que llegue la versión correcta sin errores.

Bits de paridad

El sistema más sencillo de añadir redundancia para detectar errores es el bit de paridad. Este bit tiene un valor que hace que el número de bits a uno totales sea siempre par.

Por ejemplo, si los datos enviados tienen 3 bits a uno, el bit de paridad también valdrá uno para que el número total de bits a uno sea 4 (número par).

En la siguiente figura se pueden ver varios ejemplos de bits de paridad correctos, enviados junto con su byte de información.

Bit de paridad para varios bytes de datos.

Bit de paridad para varios bytes de datos.

Si la paridad final es impar, eso significa que alguno de los bits de información ha cambiado durante su transmisión y por lo tanto se ha producido un error.

Este sistema reconoce el cambio de un solo bit de información. Si se producen cambios en dos bit a la vez, el sistema de control de paridad no será capaz de reconocer el error.

Suma de verificación

La suma de verificación, también llamada checksum, es un dato añadido a los datos de información que tiene como objetivo detectar errores de transmisión con mayor exactitud que un simple bit de paridad.

Existen varias versiones:

  1. Sumar el valor de todos los bytes de información transmitidos. Es la versión más simple de realizar y la menos capaz de detectar errores.
  2. Códigos de redundancia cíclica o CRC. Son códigos que suelen tener una longitud de 16 ó 32 bits y que son capaces de detectar más errores que una simple suma. Como contrapartida, su cálculo es más complejo.
  3. Funciones hash avanzadas, como la SHA. Son códigos que suelen tener una longitud de más de 128 bits (16 bytes) y muy costosos de calcular. Por otro lado son los más potentes y sirven para detectar errores aleatorios y también errores introducidos a propósito por un ciberdelincuente.

Estas sumas de verificación son muy utilizadas en líneas de comunicación a distancia y en soportes digitales tales como el CD-ROM o las memorias USB.

Ejercicios

  1. ¿Para qué sirve la detección de errores?

  2. ¿Cómo se denomina la información extra añadida para detectar errores de transmisión de datos?

  3. De los siguientes datos recibidos ¿cuáles tienen errores y por qué?

    Datos con bits de paridad y con errores.
  4. Escribe el bit de paridad correspondiente a los siguientes números binarios:

    0 1 0 1 0 1 0 1
    
    1 1 1 1 0 0 0 1
    
    1 0 0 1 0 0 0 1
    
    0 0 0 1 1 0 0 0
    
  5. ¿Qué es un código checksum?

    Enumera tres tipos de checksum distintos.

    Escribe dos ejemplos de sistemas que utilicen el código checksum.