DCN - Detección y corrección de errores
Hay muchas razones, como ruido, diafonía, etc., que pueden ayudar a que los datos se corrompan durante la transmisión. Las capas superiores funcionan con una vista generalizada de la arquitectura de red y no son conscientes del procesamiento de datos de hardware real, por lo que las capas superiores esperan una transmisión sin errores entre los sistemas. La mayoría de las aplicaciones no funcionarían de manera esperada si reciben datos erróneos. Es posible que las aplicaciones como voz y video no se vean tan afectadas y, con algunos errores, es posible que aún funcionen bien.
La capa de enlace de datos utiliza algún mecanismo de control de errores para garantizar que las tramas (flujos de bits de datos) se transmitan con cierto nivel de precisión. Pero para comprender cómo se controlan los errores, es fundamental saber qué tipos de errores pueden ocurrir.
Tipos de errores
Puede haber tres tipos de errores:
Single bit error
En un marco, solo hay un bit, en cualquier lugar, que está dañado.
Multiple bits error
La trama se recibe con más de un bit en estado corrupto.
Burst error
La trama contiene más de 1 bits consecutivos dañados.
El mecanismo de control de errores puede implicar dos formas posibles:
Detección de errores
Error de corrección
Detección de errores
Los errores en las tramas recibidas se detectan mediante Parity Check y Cyclic Redundancy Check (CRC). En ambos casos, se envían pocos bits adicionales junto con los datos reales para confirmar que los bits recibidos en el otro extremo son los mismos que se enviaron. Si la contracomprobación en el extremo del receptor falla, los bits se consideran corruptos.
Comprobación de paridad
Se envía un bit adicional junto con los bits originales para hacer que el número de unos sea par en caso de paridad par, o impar en caso de paridad impar.
El remitente mientras crea un marco cuenta el número de unos en él. Por ejemplo, si se usa paridad par y el número de unos es par, se agrega un bit con valor 0. De esta forma el número de 1s permanece par. Si el número de 1s es impar, para hacerlo par se suma un bit con el valor 1.
El receptor simplemente cuenta el número de unos en una trama. Si el recuento de unos es par y se usa paridad par, se considera que la trama no está dañada y se acepta. Si el recuento de unos es impar y se utiliza una paridad impar, la trama aún no está dañada.
Si un solo bit se voltea en tránsito, el receptor puede detectarlo contando el número de unos. Pero cuando más de un bit es erróneo, es muy difícil para el receptor detectar el error.
Verificación de redundancia cíclica (CRC)
CRC es un enfoque diferente para detectar si la trama recibida contiene datos válidos. Esta técnica implica la división binaria de los bits de datos que se envían. El divisor se genera mediante polinomios. El remitente realiza una operación de división en los bits que se envían y calcula el resto. Antes de enviar los bits reales, el remitente agrega el resto al final de los bits reales. Los bits de datos reales más el resto se denominan palabra de código. El remitente transmite bits de datos como palabras de código.
En el otro extremo, el receptor realiza una operación de división en palabras de código utilizando el mismo divisor CRC. Si el resto contiene todos los ceros, se aceptan los bits de datos; de lo contrario, se considera que se produjo algún daño en los datos en tránsito.
Error de corrección
En el mundo digital, la corrección de errores se puede realizar de dos formas:
Backward Error Correction Cuando el receptor detecta un error en los datos recibidos, solicita al remitente que retransmita la unidad de datos.
Forward Error Correction Cuando el receptor detecta algún error en los datos recibidos, ejecuta un código de corrección de errores, lo que le ayuda a recuperarse automáticamente y a corregir algunos tipos de errores.
El primero, Corrección de errores hacia atrás, es simple y solo se puede usar de manera eficiente cuando la retransmisión no es costosa. Por ejemplo, fibra óptica. Pero en el caso de una transmisión inalámbrica, la retransmisión puede costar demasiado. En el último caso, se utiliza la corrección de errores hacia adelante.
Para corregir el error en la trama de datos, el receptor debe saber exactamente qué bit de la trama está dañado. Para localizar el bit con error, los bits redundantes se utilizan como bits de paridad para la detección de errores.Por ejemplo, tomamos palabras ASCII (datos de 7 bits), luego podría haber 8 tipos de información que necesitamos: los primeros siete bits para decirnos qué bit es error y un bit más para indicar que no hay error.
Para m bits de datos, se utilizan r bits redundantes. r bits pueden proporcionar 2r combinaciones de información. En la palabra de código de m + r bits, existe la posibilidad de que los propios r bits se corrompan. Por lo tanto, el número de r bits utilizados debe informar sobre m + r ubicaciones de bits más información sin errores, es decir, m + r + 1.