Subido por ROSA ESTHER YUPANQUI GALLEGOS

2.2- Deteccion de errores

Anuncio
Detección y corrección de errores
Protección de los Datos.- Los datos, cuya utilidad radica en su integridad
y en su confidencialidad, están sujetos a dos tipos de amenaza
a) Errores.- Las causas por las que la señal eléctrica se deteriora al viajar
por el canal de comunicación son:
•
Distorsión, Atenuación, Limitación del ancho de banda, Ruido,
Interferencia, Diafonía.
Esta degradación de la señal puede hacer que recibamos en el receptor un
carácter distinto al que fue emitido por el extremo transmisor, diremos
entonces que se ha producido un error.
Si bien es imposible evitar que ocurran errores, un buen diseño los
minimizará.
Primero tenemos que determinar la presencia de los errores, aquí es
donde aparecen las técnicas de detección de errores, y luego tratar de
corregirlos, lo que da lugar a la corrección de errores, la denominación
genérica de estas técnicas es Control de Errores.
Detección y corrección de errores
b) Acciones no autorizadas.- Sobre el valor de la información, se tiene
que asegurar que esta información:
•
No sea vista o copiada por personas no autorizadas ó no calificadas para
ello
•
No sea alterada en ningún sentido(modificada, destruida, alterados los
equipos donde reposa)por personas ó máquinas no autorizadas
•
No sea creada y/o difundida engañosamente simulando fuentes reales ó
inexistentes.
Esto de vital importancia dado el auge de Internet y de las conexiones en
red y entre redes. De ello se ocupa la Seguridad en Red
Detección y corrección de errores
Las redes deben ser capaces de transferir datos de un dispositivo a otro con
total exactitud, si los datos recibidos no son idénticos a los emitidos, el
sistema de comunicación es inútil.
Sin embargo, siempre que se transmiten de un origen a un destino, se
pueden corromper por el camino.
Los sistemas de comunicación deben tener mecanismos para detectar y
corregir errores que alteren los datos recibidos debido a múltiples factores
de la transmisión.
La detección y corrección de errores se implementa bien en el nivel de
enlace de datos o bien en el nivel de transporte del modelo OSI
Tipos de errores.-Interferencias, calor, magnetismo, etc, influyen en una
señal electromagnética, esos factores pueden alterar la forma o
temporalidad de una señal.
Si la señal transporta datos digitales, los cambios pueden modificar el
significado de los datos. Los errores posibles son:
Detección y corrección de errores
Error de bit .- Únicamente un bit de una unidad de datos determinada
cambia de 1 a 0 o viceversa.
Un error de bit altera el significado del dato. Son el tipo de error menos
probable en una transmisión de datos serie, puesto que el intervalo de bit
es muy breve (1/frecuencia) el ruido tiene que tener una duración muy
breve.
Sin embargo si puede ocurrir en una transmisión paralela, en que un cable
puede sufrir una perturbación y alterar un bit de cada byte.
Detección y corrección de errores
Error de ráfaga.-El error de ráfaga significa que dos o más bits de la unidad
de datos han cambiado.
Los errores de ráfaga no significa necesariamente que los errores se
produzcan en bits consecutivos.
La longitud de la ráfaga se mide desde el primero hasta el último bit
correcto, algunos bits intermedios pueden estar bien
Los errores de ráfaga es más probable en transmisiones serie, donde la
duración del ruido es normalmente mayor que la duración de un bit, por lo
que afectara a un conjunto de bits. El número de bits afectados depende
de la tasa de datos y de la duración del ruido
Detección De Errores
La detección de errores consiste en monitorear la información recibida y a
través de técnicas implementadas en el Codificador de Canal , determinar si un
carácter, caso asincrónico, ó un grupo de datos, caso sincrónico, presentan
algún ó algunos errores.
Las técnicas más comunes son:
• Redundancia.
• Codificación de cuenta exacta (ARQ).
• Chequeo de paridad vertical (VRC).
• Chequeo de paridad horizontal (LRC).
• Chequeo de paridad bidimensional (VRC/LRC).
• Checksum
• Chequeo de redundancia cíclica (CRC).
Detección de Errores
Redundancia.-La redundancia significa transmitir cada carácter
dos o tres veces, o si se emplea a nivel de mensaje repetir el
mensaje dos o tres veces, en caso que las versiones difieran
habrá error ó errores. La eficiencia con este método se reduce
a ½ ó 1/3 según corresponda
Codificación de cuenta exacta (ARQ).-En esta técnica de
codificación de cuenta exacta, lo que se hace es configurar el
código de manera que cada carácter esté representado por una
secuencia de unos y ceros que contiene un número fijo de
unos.
Tal es el caso del Código de cuenta exacta ARQ que se muestra,
en caso de recibirse un carácter cuyo número de unos no sea
tres, se tratará de un error.
Es claro que este método, al igual que los demás, tiene
limitaciones:
cuando se recibe un 0 en vez de un 1 y un 1 en vez de un 0
dentro del mismo carácter los errores no serán detectados.
Detección de Errores
Chequeo de paridad vertical ó paridad de carácter (VRC). Este método, como
todos los que siguen, hace uso del agregado de bits de control.
Se trata de la técnica más simple usada en los sistemas de comunicación digitales
(Redes Digitales, Comunicaciones de Datos) y es aplicable a nivel de byte ya que
su uso está directamente relacionado con el código ASCII.
Como se recordará, el código ASCII utiliza 7 bits para representar los datos, lo que
da lugar a 128 combinaciones distintas.
Si definimos un carácter con 8 bits (un byte) quedará un bit libre para control, ese
bit se denomina bit de paridad y se puede escoger de dos formas:
• Paridad par
• Paridad impar
según que el número total de unos en esos 8 bits, incluyendo el octavo bit (el de
paridad), sea par ó impar, tal como se muestra.
Por sus características la técnica se denomina también paridad de carácter
El uso de un bit adicional para paridad disminuye la eficiencia, y por lo tanto la
velocidad en el canal, el cálculo es sencillo pasamos de 7 bits de datos a 7+1
Detección de Errores
En el extremo de transmisión el Codificador de Canal calcula el bit de paridad
y lo adosa a los 7 bits de datos.
El Decodificador de Canal recibe los 8 bits de datos calcula la paridad y la
compara con el criterio utilizado
Este método tampoco asegura inmunidad a errores, basta con que dos bits
cambien su valor simultáneamente para que el error no sea detectado pues la
paridad será correcta y el dato no.
Detección de Errores
Chequeo de paridad horizontal(LRC),longitudinal ó de
columna.- Este chequeo de paridad horizontal ó longitudinal
(HRC ó LRC) en vez de estar orientado al carácter lo está al
mensaje, y consiste en que cada posición de bit de un mensaje
tiene bit de paridad.
La paridad horizontal y vertical es utilizada en
algunos códigos de bloque para una combinación de chequeo
de (LRC / VRC) para detectar errores.
El LRC: Longitudinal Redundancy Checking ("Chequeo de
Redundancia Horizontal") y el VRC: Vertical Redundancy
Checking ("Chequeo de Redundancia Vertical").
Detección de Errores
El proceso para calcular la paridad de bloque es el siguiente :
•
Los caracteres a transmitir se agrupan en bloques de m filas y
n columnas
•
Se calcula el bit de paridad de cada fila y se añade al principio
(o al final, según convenio) de la fila
•
Se calcula el bit de paridad de cada columna y se añade al
principio (o al final, según convenio) de la columna
•
El bloque final a transmitir tendrá por tanto una fila y una
columna más que el original
•
El nueva columna estará formada por los bits de paridad
horizontal de todas las filas
•
La nueva fila estará formada por los bits de paridad vertical
de todas las columnas
•
Adicionalmente se emplea un bit de paridad cruzada que se
calcula a partir de los bits de paridad de filas y columnas
Los chequeos de paridad horizontal y vertical se usan para
detectar y corregir los posibles errores que se puedan producir
durante la transmisión de datos.
A continuación se muestra un ejemplo en el que se chequea la
paridad de un bloque de 48 bits, distribuido en 6 filas de 8 bits
cada una. Se usa paridad par
Detección de Errores
Chequeo de paridad bidimensional (VRC/LRC). La combinación de los dos
métodos precedentes proporciona mayor protección y no supone gran consumo
de recursos y, aunque tiene la misma sencillez conceptual de los métodos de
paridad lineal, es más complicado y por ello menos popular
El uso simultáneo de VRC y LRC hace que pasen indetectados errores en un
número par de bits que ocupan iguales posiciones en un número par de
caracteres, circunstancia muy poco probable.
en caso que se trate de un solo error el uso simultáneo de VRC y LRC permite
determinar con precisión cual es el bit erróneo y por lo tanto corregirlo. Otras
combinaciones de errores pueden ser detectadas y algunas además corregidas.
Las Figuras siguiente ilustran algunas circunstancias del chequeo bidimensional
Detección de Errores
Checksums.- Es otro método simple orientado al mensaje, en él los valores
(por ejemplo decimales) que corresponden a cada carácter en el código
ASCII son sumados y la suma es enviada al final del mensaje.
En el extremo receptor se repite el procedimiento de sumar los valores de
los caracteres y se compara el resultado obtenido con el recibido al final del
mensaje
Detección de Errores
Código de redundancia cíclica.- Los métodos basados en el uso de paridad
son sencillos de comprender y de implementar, suministran cierto grado de
protección contra los errores pero son limitados y su efectividad es
cuestionable en determinadas aplicaciones.
Por ello se utilizan solamente cuando resulta muy complicado ó muy costoso
implementar otros métodos.
Además, el de paridad vertical requiere que cada carácter lleve su
protección contra errores, lo que lo hace adecuado en entornos asíncronos,
en entornos síncronos el uso de tantos bits de detección de errores consume
un porcentaje importante de la capacidad del canal y resulta oneroso.
Por ello es necesario, en entornos síncronos, emplear métodos que tengan
en cuenta dos factores importantes:
1. Detección más segura de los errores. Dado que los datos se envían en
bloques un solo error corrompe toda la información contenida en él, que es
considerable, además muchas veces los errores se presentan en “ráfagas”,
por ello se requieren esquemas más poderosos
2. Eficiencia. No se deben consumir demasiados recursos dejando libre la
mayor parte del canal para datos.
Detección de Errores
Un grupo de métodos que cumplen con dichos requisitos son los llamados
códigos de redundancia cíclica, que se basan en propiedades matemáticas
de los códigos empleados para la transmisión de datos,
Deseamos transmitir al extremo receptor, mediante
comunicación muy vulnerable a errores, un número.
un
canal
de
Dadas las circunstancias es muy posible que si enviamos, digamos el número
23, llegue al extremo receptor un número distinto, una solución es elegir un
número clave, por ejemplo el 5. Ahora dividimos el número a transmitir
entre la clave y calculamos el resto: 23/5 = 4 resto 3 y enviamos
conjuntamente con el 23 el resto, o sea, transmitimos 233. En el extremo
receptor se efectúa el proceso inverso, supongamos que hemos recibido 253
al dividir 25/5 el resto es 0 y 0 es distinto de 3 lo que indica error
Detección de Errores
se considera la cadena de bits a transmitir como el conjunto de coeficientes
de un polinomio, por ejemplo si enviamos 1100100110, el polinomio
equivalente P(x) es:
Debemos ahora especificar la clave para efectuar la división. La selección
de esta clave es esencial para la capacidad de respuesta del código frente a
los diversos tipos de errores.
El CCITT especifica algunas claves, que como se van a emplear para dividir
un polinomio serán también polinomios, denominados polinomio generador.
En el CRC denominado CRC-16 correspondiente a la norma CCITT V.41, se
utiliza el siguiente polinomio generador:
Detección de Errores
Transmisor:
•
Para un bloque de k bits, el transmisor genera una trama de chequeo de
secuencia de (n -k) bits
•
La trama resultante de n bits es exactamente divisible por un numero
predeterminado
Receptor:
•
Divide la trama que recibió por un numero predeterminado
•
Si el resto es 0, asume que no hubo errores.
También se los conoce como códigos poligonales
Detección de Errores
Detección de Errores
versiones ampliamente utilizadas de polinomio generador
Corrección de Errores
Para el caso de corrección de errores se tiene:
• Requerimiento automático de repetición: (ARQ) (Automatic Request for
Repeat).
• Corrección de errores hacia adelante: FEC (Forward Error Correction).
1.- ARQ, Requerimiento automático de repetición.- Solicitud de repetición
automática (ARQ) es un protocolo de comunicación en la que el dispositivo
receptor detecta errores y pide las retransmisiones.
Cuando el receptor detecta un error en un paquete, pide automáticamente
el transmisor para reenviar el paquete
Debe observarse que esto requiere dar al sistema de comunicación algún
medio para facilitar el diálogo entre la estación emisora y la estación
receptora, de donde se deduce que el extremo receptor abandona el papel
pasivo en la comunicación para participar en forma activa en el proceso.
Tipos de ARQ
Corrección de Errores
ARQ
ARQ con parada y espera .- El método de Parada y
espera
(Stop-and-wait)
es
un
tipo
de
protocolo ARQ para el control de errores en la
comunicación entre dos hosts basado en el envío de
tramas o paquetes, de modo que una vez se envía un
paquete no se envía el siguiente paquete hasta que
no se recibe el correspondiente ACK (confirmación
de la recepción) y en caso de recibir
un NACK (rechazo de la recepción) se reenvía el
paquete anterior
Corrección de Errores
ARQ
ARQ con vuelta atrás N .- Es casi igual al método
anterior solo que esta técnica cuenta con ventana
deslizante. Las tramas recibidas (bien con RRnº de
la siguiente trama, bien con piggy-backing).
Si el receptor detecta error, ahora puede avisar al
emisor mediante un mensaje (REJect) de
confirmación negativa.
Nota: es una técnica de transmisión de datos
bidireccional en la capa de enlace de datos (Modelo
OSI). Con esta técnica, en vez de enviar ACK en
un paquete individual, éste es incluido dentro del
próximo paquete a enviar
Corrección de Errores
ARQ
ARQ con rechazo selectivo
.- Evita la
retransmisión de tramas correctamente recibidas
cuando ha habido algún error en las precedentes.
Ahora cuando el receptor detecta un error en la
trama recibida, en vez de enviar REJ, transmite la
trama SREJ (Selective REJect) que ordena su
retransmisión.
El emisor obedece, pero continúa la comunicación a
partir de donde la dejó, sin suponer que el resto de
tramas enviadas y aún pendientes de confirmación
hayan sido también erróneas.
Corrección de Errores
FEC
Corrección de errores hacia adelante: Conocido también como Forward Error Correction (FEC).-Es una técnica de corrección de errores para detectar y corregir
un número limitado de errores en los datos transmitidos sin la necesidad de
retransmisión.
En este método, el remitente envía un código redundante de corrección de
errores junto con el marco de datos.
El receptor realiza las comprobaciones necesarias en función de los bits
redundantes adicionales. Si descubre que los datos están libres de errores,
ejecuta un código de corrección de errores que genera el marco real. Luego
elimina los bits redundantes antes de pasar el mensaje a las capas superiores.
Ventajas y desventajas
•
Debido a que FEC no requiere un intercambio de manos entre la fuente y el
destino, puede usarse para transmitir datos a muchos destinos
simultáneamente desde una sola fuente.
•
Otra ventaja es que FEC ahorra el ancho de banda requerido para la
retransmisión. Por lo tanto, se usa en sistemas de tiempo real.
•
Su principal limitación es que si hay demasiados errores, las tramas deben
retransmitirse
Corrección de Errores
FEC
Los códigos de corrección de errores para las correcciones de errores de reenvío
se pueden clasificar en dos tipos:
Códigos de bloque : el mensaje se divide en bloques de bits de tamaño fijo a los
que se agregan bits redundantes para la corrección de errores.
Códigos convolucionales : el mensaje se compone de flujos de datos de longitud
arbitraria y los símbolos de paridad se generan mediante la aplicación deslizante
de una función booleana al flujo de datos.
Hay cuatro códigos de corrección de errores utilizados popularmente
Descargar