En telecomunicaciones, una verificación de redundancia longitudinal (LRC), o verificación de redundancia horizontal , es una forma de verificación de redundancia que se aplica de forma independiente a cada uno de un grupo paralelo de flujos de bits. Los datos deben dividirse en bloques de transmisión , a los que se agregan los datos de verificación adicionales.
El término generalmente se aplica a un solo bit de paridad por flujo de bits, calculado independientemente de todos los demás flujos de bits ( BIP-8 ), [1] [2] aunque también podría usarse para referirse a un código Hamming más grande . [ cita requerida ]
Esta palabra LRC "adicional" al final de un bloque de datos es muy similar a la suma de comprobación y la verificación de redundancia cíclica (CRC).
Código rectangular óptimo
Si bien la paridad longitudinal simple solo puede detectar errores, se puede combinar con codificación de control de errores adicional, como una verificación de redundancia transversal (TRC), para corregir errores. La verificación de redundancia transversal se almacena en una "pista de paridad" dedicada.
Siempre que ocurra un error de un solo bit en un bloque de transmisión de datos, tal verificación de paridad bidimensional, o "verificación de paridad de dos coordenadas", [3] permite al receptor usar el TRC para detectar en qué byte ocurrió el error, y el LRC para detectar exactamente en qué pista ocurrió el error, para descubrir exactamente qué bit tiene el error y luego corregir ese bit volteándolo. [4] [5] [6]
Pseudocódigo
La norma internacional ISO 1155 [7] establece que una verificación de redundancia longitudinal para una secuencia de bytes puede calcularse en software mediante el siguiente algoritmo:
lrc : = 0 para cada byte b en el búfer do lrc : = ( lrc + b ) y 0xFF lrc : = ((( lrc XOR 0xFF) + 1) y 0xFF)
que se puede expresar como "el valor de complemento a dos de 8 bits de la suma de todos los bytes módulo 2 8 " ( x AND 0xFF
es equivalente a ).x MOD 28
Otras formas
Muchos protocolos usan un byte de verificación de redundancia longitudinal basado en XOR (a menudo llamado carácter de verificación de bloque o BCC), incluido el protocolo de Internet de línea serie (SLIP), [8] el estándar IEC 62056-21 para lectura de medidores eléctricos, tarjetas inteligentes como se define en ISO / IEC 7816 y el protocolo ACCESS.bus .
Un LRC de 8 bits como este es equivalente a una verificación de redundancia cíclica usando el polinomio x 8 + 1, pero la independencia de los flujos de bits es menos clara cuando se mira de esa manera.
Referencias
- ^ RFC 935 : "Protocolos de capa de enlace confiables".
- ^ "Errores, detección de errores y control de errores: comunicaciones de datos y redes informáticas: el enfoque de un usuario empresarial" .
- ^ [1] .
- ^ Gary H. Kemmetmueller. "Corrección de errores de RAM mediante comprobación de paridad bidimensional" .
- ^ Oosterbaan. "Paridad longitudinal" .
- ^ "Errores, detección de errores y control de errores" .
- ^ Procesamiento de información ISO 1155: 1978 - Uso de paridad longitudinal para detectar errores en mensajes de información .
- ^ RFC 914 . "Un protocolo Thinwire para conectar ordenadores personales a INTERNET". Apéndice D: "Protocolo de interfaz de línea serie (SLIP)".
- Este artículo incorpora material de dominio público del documento de la Administración de Servicios Generales : "Norma Federal 1037C" .(en apoyo de MIL-STD-188 )