informe - control de errores

20
UNIVERSIDAD AUTONOMA DE LOS ANDES “UNIANDES” 1. INTRODUCCION Objetivo: Conocer cómo detectar, corregir y los diferentes tipos de errores que se encuentran en la capa de enlace. 1.1 TEMA CONTROL DE ERRORES, ORIGEN DE ERRORES, DETECCION DE ERRORES Y CORRECCION DE ERRORES 1.2 CONCEPTOS 1.2.1 Control de errores Los circuitos de comunicación a larga distancia suelen tener una tasa de errores comparativamente alta frente a otros medios como las redes locales. En el caso de las redes locales, dada la baja tasa de errores, la capa de enlace solo realiza la detección de errores dejando los algoritmos o mecanismos de corrección de los mismos a las capas superiores. Los errores pueden producirse en los nodos terminales o de conmutación de la red. En las interfaces que los conectan a las líneas de transmisión. La aceptabilidad de los errores en comunicación depende del contenido de los datos. Función Principal Asegurar que todas las tramas sean entregadas sin error a la capa de red del extremo del receptor y en el orden correcto. Los errores de los datos pueden deberse a: - Número de bits recibidos > = < número de bits que se transmitieron - Los bits recibidos pueden estar errados 1

Upload: alexis-diaz

Post on 24-Jul-2015

30 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Informe - Control de Errores

UNIVERSIDAD AUTONOMA DE LOS ANDES “UNIANDES”

1. INTRODUCCION

Objetivo: Conocer cómo detectar, corregir y los diferentes tipos de errores que se encuentran en la capa de enlace.

1.1 TEMA

CONTROL DE ERRORES, ORIGEN DE ERRORES, DETECCION DE ERRORES Y CORRECCION DE ERRORES

1.2 CONCEPTOS

1.2.1 Control de errores

Los circuitos de comunicación a larga distancia suelen tener una tasa de errores comparativamente alta frente a otros medios como las redes locales. En el caso de las redes locales, dada la baja tasa de errores, la capa de enlace solo realiza la detección de errores dejando los algoritmos o mecanismos de corrección de los mismos a las capas superiores.

Los errores pueden producirse en los nodos terminales o de conmutación de la red. En las interfaces que los conectan a las líneas de transmisión.

La aceptabilidad de los errores en comunicación depende del contenido de los datos.

Función Principal

Asegurar que todas las tramas sean entregadas sin error a la capa de red del extremo del receptor y en el orden correcto.

Los errores de los datos pueden deberse a:

- Número de bits recibidos > = < número de bits que se transmitieron

- Los bits recibidos pueden estar errados

Control de errores:

1

Page 2: Informe - Control de Errores

UNIVERSIDAD AUTONOMA DE LOS ANDES “UNIANDES”

El RX debe poder determinar si la trama recibida esta correcta o posee errores de transmisión.

Códigos de Detección Incluye información adicional en la tramaSolo indica si ha ocurrido un error.

Códigos de CorrecciónIncluye mayor información adicional en la tramaIndica donde se encuentra los errores.

1.2.2 Códigos de Errores

Los códigos en función de la distancia de Hamming (d) pueden ser:

Detectores: sólo permiten detectar “d-1” errores, p. ej. CRC (Cyclic Redundancy Check). Este tipo de códigos se llaman BEC Backward Error Correction, de forma que tienen que solicitar al emisor, hacia atrás (back) el reenvío.

Correctores: permite corregir “(d-1)/2” errores. Este tipo de códigos también se llaman FEC del inglés Forward Error Correction. p. ej. RS (Reed-Solomon).

Los códigos detectores tienen menos overhead, pues necesitan incorporar menos redundancia.

Los códigos correctores se utilizan bien en conexiones simplex, bien en multicast o bien en tiempo real.

1.2.3 Tipos de Errores

Los tres tipos de errores más importantes que se pueden producir son los siguientes:

Tramas de datos que llegan con información errónea, es decir, algunos de sus dígitos binarios han cambiado de valor.

Durante el viaje de una trama por el medio, los dígitos binarios que la componen pueden alterar su valor, bien por defectos en la línea o por ruido procedente del exterior. La técnica más utilizada para que el receptor pueda detectar si existen dígitos de información erróneos es utilizar información de control redundante, algo así como “repetir" los dígitos enviados por trama. El receptor sólo tendrá que comparar esa información recibida para detectar los errores.

Tramas que llegan incompletas, algunos dígitos binarios se han perdido.

Otra posibilidad es que una enorme cantidad de ruido haga que se pierda gran parte de la trama y el receptor sólo pueda recuperar una parte de ella. En esas situaciones, es necesario

2

Page 3: Informe - Control de Errores

UNIVERSIDAD AUTONOMA DE LOS ANDES “UNIANDES”

que exista algún método que permita distinguir unas tramas de otras, para que el receptor pueda saber si falta alguna parte o para impedir que puedan mezclarse. Las técnicas utilizadas tienen que ver con la delimitación de tramas y se exponen en el punto siguiente.

Tramas que no llegan, se han perdido completamente.

Una complicación adicional es que existe la posibilidad de que una trama se pierda completamente por problemas en el hardware (por ejemplo, una ráfaga de ruido o la rotura de un enlace en la red). En este caso, el receptor no podrá reaccionar ya que no tendrá motivo para hacerlo. Debe quedar claro que en un protocolo en que el emisor transmite la trama y entonces espera por el reconocimiento positivo o negativo podría bloquearse si la trama se pierde completamente.

1.2.4 Tasa de Errores

Tasa de errores (BER)La tasa de errores de un medio de transmisión se mide por la BER (Bit Error Rate) que se define como: BER = bits erróneos / bits transmitidos

1.2.5 Origen de errores

Se producen por dos tipos de fallos diferentes en su naturaleza:

1.2.5.1 Sucesos Estáticos:

Resultan más sencillos de manejar, porque sus efectos son predecibles de antemano. Así, se compensa la atenuación de altas frecuencias con amplificadores ecualizadores, las distorsiones se corrigen con cables de baja capacidad o baja inductancia, el apantallamiento de los conductores disminuye las interferencias de la radio.

1.2.5.2 Sucesos Transitorias

3

Page 4: Informe - Control de Errores

UNIVERSIDAD AUTONOMA DE LOS ANDES “UNIANDES”

La mayoría de errores transitorios están producidos por interferencias eléctricas y electromagnéticas en la línea de comunicaciones. Estas interferencias se derivan de meteoros atmosféricos (rayos), de la presencia de otros dispositivos emisores de ondas electromagnéticas, encendido o apagado de motores.

En general, la mayoría de los casos de errores se deben a interferencias electromagnéticas, lo que implica que los errores no se suelen presentar en forma de bits individuales, sino en forma de ráfagas de bits erróneos.

1.2.6 Técnicas para corregir errores

Se trata en este caso de detectar y corregir errores aparecidos en las transmisiones. Puede haber dos tipos de errores:

Tramas pérdidas: Cuando una trama enviada no llega a su destino. Tramas dañadas: Cuando llega una trama con algunos bits erróneos.

Hay varias técnicas para corregir estos errores:

1. Detección de errores: Discutida antes.2. Confirmaciones positivas: El receptor devuelve una confirmación por cada trama

recibida correctamente.3. Retransmisión después de la expiración de un intervalo de tiempo: Cuando ha pasado

un cierto tiempo, si el emisor no recibe confirmación del receptor, reenvía otra vez la trama.

4. Confirmación negativa y retransmisión: El receptor devuelve una confirmación negativa al detectar errores en las tramas recibidas, y el emisor las reenvía.

1.2.7 ARQ (Solicitud de repetición automática)

1.2.7.1 ARQ CON PARADA Y ESPERA

El emisor espera un tiempo a la confirmación de la recepción de cada trama. Si se supera el tiempo, se reenvía la trama. Si la confirmación de pierde, el receptor reenviará la misma trama.

Es necesario numerar las tramas (para evitar que el reenvío de la misma trama sea tomado como dos tramas en el receptor) y las confirmaciones.

ACK0 confirma recepción de la trama 1 y en espera de recibir una trama 0.

4

Page 5: Informe - Control de Errores

UNIVERSIDAD AUTONOMA DE LOS ANDES “UNIANDES”

1.2.7.2 ARQ CON ADELANTE ATRÁS –N

5

Page 6: Informe - Control de Errores

UNIVERSIDAD AUTONOMA DE LOS ANDES “UNIANDES”

1.2.7.3 ARQ CON RECHAZO SELECTIVO

1.3 Detección de errores

La comunicación entre varias computadoras produce continuamente un movimiento de datos, generalmente por canales no diseñados para este propósito (línea telefónica), y que introducen un ruido externo que produce errores en la transmisión.

Por lo tanto, debemos asegurarnos que si dicho movimiento causa errores, éstos puedan ser detectados. El método para detectar y corregir errores es incluir en los bloques de datos transmitidos bits adicionales denominados redundancia.

Se han desarrollado dos estrategias básicas para manejar los errores:

Incluir suficiente información redundante en cada bloque de datos para que se puedan detectar y corregir los bits erróneos. Se utilizan códigos de corrección de errores.

Incluir sólo la información redundante necesaria en cada bloque de datos para detectar los errores. En este caso el número de bits de redundancia es menor. Se utilizan códigos de detección de errores.

Si consideramos un bloque de datos formado por m bits de datos y r de redundancia, la longitud final del bloque será n, donde n = m + r.

6

Page 7: Informe - Control de Errores

UNIVERSIDAD AUTONOMA DE LOS ANDES “UNIANDES”

1.3.1 Tipo de códigos detectores

Paridad simple

Consiste en añadir un bit de más a la cadena que queremos enviar, y que nos indicará si el número de unos (bits puestos a 1) es par o es impar. Si es par incluiremos este bit con el valor = 0, y si no es así, lo incluiremos con valor = 1.

Ejemplo de generación de un bit de paridad simple:

Queremos enviar la cadena “1110100”:1º Contamos la cantidad de unos que hay: 4 unos2º El número de unos es par por tanto añadimos un bit con valor = 03º La cadena enviada es 11101000

El receptor ahora, repite la operación de contar la cantidad de “unos” que hay (menos el último bit) y si coincide, es que no ha habido error.

Problemas de este método:

Hay una alta probabilidad de que se cuelen casos en los que ha habido error, y que el error no sea detectado, como ocurre si se cambian dos números en la transmisión en vez de uno.

1.3.2 Códigos de redundancia cíclica también llamados CRC

Intentando mejorar los códigos que sólo controlan la paridad de bit, aparecen los códigos cíclicos. Estos códigos utilizan la aritmética modular para detectar una mayor cantidad de errores, se usan operaciones en módulo 2 y las sumas y restas se realizan sin acarreo (convirtiéndose en operaciones de tipo Or-Exclusivo o XOR). Además, para facilitar los cálculos se trabaja, aunque sólo teóricamente, con polinomios.

La finalidad de este método es crear una parte de redundancia la cual se añade al final del código a transmitir (como en los métodos de paridad) que siendo la más pequeña posible, detecte el mayor número de errores que sea posible.

Pero además de esto, debe ser un método sistemático, es decir, que con un mismo código a transmitir (y un mismo polinomio generador) se genere siempre el mismo código final.

El polinomio generador: es un polinomio elegido previamente y que tiene como propiedad minimizar la redundancia. Suele tener una longitud de 16 bits, para mensajes de 128 bytes, lo que indica que la eficiencia es buena. Ya que sólo incrementa la longitud en un aproximado 1,6%:

7

Page 8: Informe - Control de Errores

UNIVERSIDAD AUTONOMA DE LOS ANDES “UNIANDES”

Un ejemplo de polinomio generador usado normalmente en las

redes WAN es:

Los cálculos que realiza el equipo transmisor para calcular su CRC son:

1. Añade tantos ceros por la derecha al mensaje original como el grado del polinomio generador

2. Divide el mensaje con los ceros incluidos entre el polinomio generador3. El resto que se obtiene de la división se suma al mensaje con los ceros incluidos4. Se envía el resultado obtenido

Estas operaciones generalmente son incorporadas en el hardware para que pueda ser calculado con mayor rapidez, pero en la teoría se utilizan los polinomios para facilitar los cálculos.

Ejemplo de obtención del CRC:

Datos:Mensaje codificado en binario: 1101001Polinomio generador:

Operaciones:

1º Obtener el polinomio equivalente al mensaje:

2º Multiplicar el mensaje por (añadir 4 ceros por la derecha):

3º Dividir en binario el mensaje por el polinomio generador y sacar el resto:

4º Concatenar el mensaje con el resto (en módulo 2 también):

5º Transmitir el mensaje

El equipo receptor debe comprobar el código CRC para detectar si se han producido o no errores.

8

Page 9: Informe - Control de Errores

UNIVERSIDAD AUTONOMA DE LOS ANDES “UNIANDES”

Ejemplo de los cálculos del receptor:

1º Mediante el protocolo correspondiente acuerdan el polinomio generador2º Divide el código recibido entre el polinomio generador3º Comprueba el resto de dicha operación

3.1 Si el resto es cero, no se han producido errores 3.2 Procesar el mensaje

3.1 Si el resto es distinto de cero, significa que se han producido errores 3.2 Reenviar el mensaje

3.2 Intentar corregir los errores mediante los códigos correctores

En resumen, este método requiere de un polinomio generador que, elegido correctamente, puede llegar a detectar gran cantidad de errores:

Errores simples: todos Errores dobles: todos Errores en las posiciones impares de los bits: todos Errores en ráfagas con una longitud menor que el grado del polinomio generador:

todos Otras ráfagas: un porcentaje elevado y cercano al 100%

1.4 Corrección de Errores

Objetivos

Conocer cómo pueden detectarse y prevenirse errores que puedan aparecer en los distintos intercambios de información que realiza el ordenador.

Aplicar distintos métodos de detección y corrección de errores.

Corrección de errores: El método más sencillo y utilizado de corrección de errores es la detención de los mismos por alguno de los mecanismos señalados anteriormente y la retransmisión de la trama que contiene los errores.

• Estas acciones se toman cuando la unidad de datos esta mala.• Una de las técnicas más utilizadas es la de RETROALIMENTACIÓN, que consiste en avisarle alORIGEN del éxito o fracaso de la transmisión.• La otra forma de corregir es en el mismo destino, generalmente se conocen como técnicas de Corrección de Errores Adelante (Forward Error Correction – FEC), se utilizan técnicas de códigos correctores de errores como el de Hamming y técnicas de Entrelazado

9

Page 10: Informe - Control de Errores

UNIVERSIDAD AUTONOMA DE LOS ANDES “UNIANDES”

Sin embargo en algunos casos se puede incluir información redundante en la trama de manera que los errores los pueda corregir el propio receptor. La cantidad de código que se añade a la trama suele estar en torno al 50% de su longitud original.

Además de su coste en tiempo de computación, es difícil diseñar algoritmos que permitan corregir tantos errores de bits dispersos como grandes ráfagas de errores y su eficacia es inferior a la detención (por término medio, uno de cada mil errores no se puede corregir). Por lo tanto solo son rentables en enlaces con tasas de error muy altas o que tienen grandes retardos, donde la petición de retransmisión de una trama supone una pérdida de tiempo muy importante. Este es el caso de algunas comunicaciones con satélites que se encuentran muy alejados de la tierra, a los que una trama pueda tardar en llegar muchos segundos o incluso minutos

1.4.1 Código correctores de errores - HAMMING

Se tiene unidades de datos de m bits, adicionamos r bits redundantes, entonces la longitud total es: n = m + r.• Palabra código = datos + bits redundantes.• La cantidad de bits en los que difieren DOS palabras código, se le conoce como DISTANCIA HAMMING d.• Si dos palabras código están tienen una distancia d, se requieren d errores de bit para convertir una en la otra• Normalmente todas las combinaciones de 2^m son posibles, pero dependiendo de la forma en como se calculan los bits redundantes, no será posible que se de todas las 2^n combinaciones.HAMMING (cont.)La propiedad de detección y corrección dependen de su distancia:• PARA DETECTAR d ERRORES se necesita un código con distancia d+1• PARA CORREGIR d ERRORES se necesita un código con distancia 2d+1• Por ejemplo con PARIDAD par o impar, que es un código de un bit, tiene una distancia 2.• Ejemplo de corrección: código con 4 palabras válidas:00000000, 11110000, 00001111, 11111111.• El código tiene una distancia d =5, lo que significa que puede corregir errores doblesControl de transmisión y del flujo de datos

Los errores vienen generalmente provocados por algún fallo en el medio físico que da lugar a situaciones que el protocolo ha de prever como detectar y resolver. Las situaciones anómalas que ha de tener en cuenta el protocolo son básicamente:

1) La pérdida de una trama

2) La aparición de tramas duplicada

3) La llegada de tramas fuera de secuencia

Si no se tratan adecuadamente estas situaciones, la primera dará lugar a la perdida de información en la comunicación, la segunda a la aceptación de datos erróneos como si fueran

10

Page 11: Informe - Control de Errores

UNIVERSIDAD AUTONOMA DE LOS ANDES “UNIANDES”

válidos y la tercera puede provocar tanto la perdida de datos como la aceptación de datos erróneos como válidos.

1.4.2 Protocolo simple de enlace de datos

Se supone que se trabaja con un protocolo de enlace que solo envía tramas con información, sin establecer ni liberar conexiones. Si ninguna de las situaciones anómalas planteadas anteriormente se pudiera dar, el protocolo podría ser muy simple. Únicamente para evitar desbordar al receptor, el emisor enviaría una trama y esperaría un acuse de recibo antes de enviar la siguiente.

Pero si por una razón una de las tramas no llega, llega incorrecta o un ACK no llega a su destino la comunicación se quedara bloqueada y el emisor ya no enviara mas tramas

Es fácil subsanar este problema si el emisor es capaz de decidir el reenvió de la última trama si no ha recibido el ACK en un tiempo razonable. A este tiempo se le denomina tiempo de espera o timeout y su duración optima se estima entre una y dos veces el tiempo de retardo medio necesario para él envió, procesado y respuesta a una trama

11

Page 12: Informe - Control de Errores

UNIVERSIDAD AUTONOMA DE LOS ANDES “UNIANDES”

A pesar de la mejora, en el caso de que la trama perdida sea un ACK el receptor puede aceptar una retransmitida por el emisor tras el timeout como si fuese una nueva trama.

De nuevo la solución es simple, se pueden numerar las tramas para que el receptor no las confunda. Supóngase que las tramas se numeran con un único bit, es decir se envía una trama con el número 0, luego con el número 1, la siguiente tendrá de nuevo el número 0, los números de secuencia de trama, generalmente tienen un rango más amplio, pero se ha elegido de esta forma para facilitar la comprensión de los siguientes ejemplos

12

Page 13: Informe - Control de Errores

UNIVERSIDAD AUTONOMA DE LOS ANDES “UNIANDES”

Este protocolo también falla produciendo perdidas de datos si por alguna razón se produce un timeout antes de la llegada de un ACK correspondiente a la retransmisión de la primera trama puede engañar al emisor (el receptor descarta la trama recibida pero tiene que volver a enviar un ACK), haciéndole creer que la segunda trama (que se ha perdido) ha llegado con éxito al receptor. Al haberse completado el ciclo de los números de secuencia al receptor llega por tercera vez una trama con numero de secuencia (0), por lo que es descartada. La siguiente trama en ser recibida es la cuarta, que lleva el siguiente número de secuencia que espera el receptor, el (1). El receptor cree haber recibido todas las tramas cuando en realidad le faltan dos.

13

Page 14: Informe - Control de Errores

UNIVERSIDAD AUTONOMA DE LOS ANDES “UNIANDES”

Obviamente, utilizando un rango de números de secuencia más amplio es más difícil que se produzca la situación anterior. En lugar de numerar las tramas en módulos 2 ( 0 y 1) se puede numerar en módulo 8 ( del 0 al 7), en módulo 128 ( del 0 al 127), etc. Pero el riesgo siempre existe si no se mejora el protocolo y hay que tener en cuenta que en algunos enlaces los retardos pueden ser mucho mayores de lo esperado en determinadas circunstancias.

LA solución más simple es que los ACK se numeren también con el número de secuencia de la trama a la que dan el acuse de recibo. Con eso tenemos ya un protocolo completo que funcionara bajo cualquier situación anómala de la indicadas en los puntos a) y b) mencionados anteriormente, garantizando en envío secuencial de tramas sin perdidas ni duplicados.

Aún se puede presentar problemas si se producen situaciones como la mencionada en el punto c), la llegada de tramas fuera de secuencia, en el caso de que el rango de los números de secuencia no sea suficiente para asumir los retardos que se pueden producir en la transmisión, Esta situación se puede observar en la última figura.

Las mejoras en el protocolo que se describen a continuación, no mejoran la robustez del protocolo, si no sus presentaciones en cuanto al aprovechamiento de la velocidad del enlace.

1.4.3 Pipelining

Esta técnica consiste en enviar más de una trama antes de recibir un cause de recibo. Si las tramas se numeran en modulo N se podrán enviar teóricamente N-1 tramas antes de recibir un acuse de recibo. Aunque lo que en realidad limita su número es el tamaño del buffer del emisor, ya que ha de mantener ahí las tramas para su posible retrasmisión, y del receptor, que ha de tener suficiente espacio para almacenarlas por si no tiene tiempo de ir procesándolas a medida que van llegando.

Al no tener que esperar innecesariamente por cada acuse de recibo se aprovecha mejor la capacidad del enlace, más aún, si un ACK puede servir para confirmar la recepción de más de una trama.

1.4.4 Acuse de Recibo Negativo (NAK)

Si una trama llega al receptor con errores, este puede advertir al emisor del error enviándole una NAK sin que este tenga que esperar a la finalización del timeout. Se aumenta asi la velocidad de la comunicación. El NAK puede indicar también la causa del rechazo de la trama al emisor con el objeto de realizar estadísticas de los errores que se producen. Ante la recepción de un NAK el protocolo puede responder con dos mecanismos diferentes.

Vuelta atrás

Conocido como pullback NAK. Si se han recibido las tramas con los números de secuencia 4, 5, 6 y 7, y se recibe un NAK para las tramas 5, el emisor retransmite de nuevo las tramas 5, 6 y 7, aunque esta ultima hubiera llegado correctamente al receptor.

14

Page 15: Informe - Control de Errores

UNIVERSIDAD AUTONOMA DE LOS ANDES “UNIANDES”

Repeticion selectiva

Conocido como selctive repeat. Dada la situación indicada en el párrafo anterior, el emisor solo transmitirá la trama 5. Aunque esto representa un noble ahorro en la capacidad del enlace, su complejidad no se justifica sino se trata de un enlace con una tasa de errores elevada.

1.4.5 Piggyback Acknowledgement

En comunicaciones donde la información fluye en ambos sentidos, sobre todo di es en modo full-duplex, se consigue un notable aumento de la capacidad del enlace si a las tramas que envían son información se les incorpora el acuse de recibido de las que se han recibido. En el caso de que no haya información que enviar se envía una trama solo con el ACK.

La trama llevara entonces dos números de secuencia: el que corresponde a la trama que se envía y el correspondiente al acuse de recibido de la última trama recibida correctamente.

CONCLUSIONES:

Identificamos diferentes tipos de errores que se encuentran en la capa de enlace. Con los ejemplos analizamos como detectar errores, así también a corregirlos.

BIBLIOGRAFIA:

http://www.uhu.es/diego.lopez/redes0607/Transparencias%20Redes%20tema3%2006-07.pdf

http://www.slideshare.net/darkkamui/capa-de-enlace-deteccin-y-correccin-de-errores-presentation

http://informatica.uv.es/it3guia/FT/cap3-enlace-ft.pdf http://isa.uniovi.es/docencia/redes/capaenlace2.pdf http://it.aut.uah.es/danihc/DHC_files/menus_data/SCTR/ToleranciaFiabilidad.pdf http://www.isa.uniovi.es/docencia/redes/Apuntes/tema3.pdf

RECOMENDACIONES:

Guiarnos en los diferentes ejercicios que se encuentren en cada tema, ya que son pocos entendibles.

15