1 CONTROL DE ERRORES DETECCIÓN DE ERRORES

Anuncio
CONTROL DE ERRORES
DETECCIÓN DE ERRORES
• Ejecutada por el receptor y consiste en tener
mecanismos para saber si lo que ha llegado está
correcto o no.
• Si está correcto debe ser procesada y enviada al nivel
inmediatamento superior.
• Si está mala, debe ignorarlo o tratarlo de corregir.
• Se utilizan códigos detectores de errores
• Algunas técnicas para la detección de errores son:
– Duplicidad
– Paridad
– Códigos de Redundancia Cíclica
Fundamentos de Protocolos
Edwin Montoya
1
PARIDAD
• Puede ser “par” o “impar”
• Se adiciona un bit a cada caracter, y este bit completará
un número “par” de 1´s o un número “impar” de 1´s.
– Ej: Paridad “par”: 01011010[0], 11000100[1]
– Ej: Paridad “impar”: 11011001[1], 10101101[0]
• Su eficiencia es del 50%
• Puede combinarse paridad horizontal o vertical
Fundamentos de Protocolos
Edwin Montoya
CÓDIGO DE REDUNDANCIA CICLICA - CRC
• Los mensajes en la red se tratan como POLINOMIOS con
coeficientes 0 y 1.
• Un mensaje de k bits, se considera un polinomio x^(k-1) a
x^0.
• Tanto transmisor como receptor deben tener un acuerdo
respecto al POLINOMIO GENERADOR G(x)
• Definamos M(x) el polinomio del mensaje original de
longitud m bits y de grado m-1.
• El grado de M(x) debe ser mayor que el de G(x).
• El algoritmo para calcular la Suma de Comprobación es:
• Sea r el grado de G(x), agrege r bits en 0 al final del
mensaje, quedando x^rM(x)
Fundamentos de Protocolos
Edwin Montoya
2
CRC (cont.)
• Divida x^rM(x) entre G(x) usando división módulo 2.
• Reste el residuo a x^rM(x) usando resta modulo 2
• Este resultado llamado T(x) es el que se transmite por la
red
• En el lado del receptor al realizar la operación T(x) / G(x)
el residuo debe ser 0, de lo contrario hubo un error
Fundamentos de Protocolos
Edwin Montoya
CORRECCIÓN DE 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 al
ORIGEN 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
Fundamentos de Protocolos
Edwin Montoya
3
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ódido = 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.
Fundamentos de Protocolos
Edwin Montoya
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 dobles
Fundamentos de Protocolos
Edwin Montoya
4
CORRECCIÓN DE ERRORES MEDIANTE
RETRANSMISIÓN
• Las técnicas de corrección mediante Retransmisión,
consiste en que el receptor informa al transmisión por el
éxito o fracaso de la transmisión.
• Los protocolos en los cuales el receptor envia un
reconocimiento POSITIVO, suele llamarse PAR (positive
acknowledgment with retransmission) o ARQ (automatic
repeat request)
• El transmisor debe activar temporizadores de espera de
ACKs o NAKs, si expira este timer, se procede a la
retransmisión.
• Para evitar Duplicados se deben numerar los mensajes.
Fundamentos de Protocolos
Edwin Montoya
RETRANSMISIÓN (cont.)
• Los temporizadores deben elegirse con suficiente
tiempo para enviar datos y recibir el ACK.
• Se pueden distinguir 3 protocolos de ventana
deslizante.
– Parada y espera: Tamaño de ventana transmisora = 1
– Repetición no selectiva o Regresar a n (GoBackN): Tamaño de
ventana receptora = 1
– Repetición Selectiva: Tamaño de ventana receptora > 1.
Fundamentos de Protocolos
Edwin Montoya
5
PROTOCOLO SIMPLE DE PARADA Y ESPERA
• Efecto del timeout corto
Fundamentos de Protocolos
Edwin Montoya
Stop and Wait (cont)
• En el protocolo anterior podemos distinguir las
siguientes caracteristica:
– El protocolo esta diseñado principalmente para canales simplex o
cuando se utiliza en canales full-duplex, siempre los receptores
deben enviar los ACKs respectivos, esto claramente congestion más
la red.
– Dependiendo del tiempo de ida (datos) y vuelta (ack), un transmisor
pasará la mayor parte del tiempo esperando y por lo tanto la
eficiencia del ancho de banda será muyt bajo (ejemplo: canal
satelite).
Fundamentos de Protocolos
Edwin Montoya
6
Stop and Wait (cont)
• Una primera mejora al protocolo, es aprovechar los canales fullduplex, es que cuando un receptor recibe los datos, no transmite
un mensaje inmediatamente de ACK, sino que espera que el nivel
superior le envie datos para a la vez que se envian estos al
transmisor original (que ahora se convertirá en un receptor) se
agregue un campo de control donde se indique el estado de la
recepción pasada. Esto se conoce como Incorporación
(piggybacking).
• Con la técnica de incorporación, debemos manejar TIMERs para
determinar el envio independiente de un ACK al no obtener un
mensaje del nivel superior.
• Respecto a la ineficiencia del uso del ancho de banda por parte del
transmisor, se soluciona con la premisa que el transmisor podría
enviar varios mensajes sin espera que lleguen los acks.
Fundamentos de Protocolos
Edwin Montoya
FUNDAMENTOS DE VENTANAS DESLIZANTES
• Cada marco debe ser numerado o secuenciado con un
valor entre 0 y un máximo (2^n -1).
• Se utiliza un campo de número de secuencia de n bits
• Se tiene Ventana del Transmisor y Ventana del
Receptor.
• La Ventana del Transmisor, son todos los mensajes que
puede ENVIAR sin esperar ACK. Los números de
secuencia en la ventana del transmisor, son todos los
mensajes que se han enviado y que no han sido
reconocidos.
• La Ventana del Receptor, son todos los mensajes que
puede ACEPTAR
Fundamentos de Protocolos
Edwin Montoya
7
FUNDAMENTOS DE VENTANAS DESLIZANTES (cont.)
• Ambas ventanas no tienen que tener el mismo tamaño
ni rango.
• En algunos protocolos los tamaños de las ventanas son
fijos y en otras variable.
• El transmisor debe mantener todos los mansajes no
reconocidos en buffers.
• En todos los mensajes debemos incorporar un campo
para número de secuencia (seq) y un campo para
número de acuse de recibo (ack)
Fundamentos de Protocolos
Edwin Montoya
FUNDAMENTOS DE VENTANAS DESLIZANTES (cont.)
Fundamentos de Protocolos
Edwin Montoya
8
VENTANA DESLIZANTE DE PARADA Y ESPERA
• Tamaño de ventana del transmisor de 1, n = 1.
• Caso particular del protocolo de parada y espera
REPETICIÓN NO SELECTIVA ó GOBACK-N
• El protocolo anterior no tiene mayor problema, siempre
que el tiempo de propagación sea bajo, pero esta es una
situación no muy real, sobre todo en la parte MAN o
WAN.
• Por ejemplo un canal satelite a 50 Kbps, con un tiempo
de ida y vuelta de 500 ms, si enviamos un mensaje de
1000 bits
Fundamentos de Protocolos
Edwin Montoya
REPETICIÓN NO SELECTIVA ó GOBACK-N (cont.)
• El tiempo de transmisión es 20 ms y solo despues de
520 ms estaremos recibiendo el ACK. Segun esto la
eficiencia del canal es 20/520, aprox. 4 %.
• La solución esta en permitir enviar w mensajes antes de
bloquearse, en lugar de uno solo.
• La idea es transmitir varios mensajes durante el tiempo
de ida y vuelta.
• El tamaño de la ventana del transmisor debe ser de (2^n
-1 ), no como podria esperarse de un tamaño 2^n,
porque?, porque con un tamaño de ventana de 2^n
puede duplicarse totalmente los mensajes de una
ventana.
Fundamentos de Protocolos
Edwin Montoya
9
REPETICIÓN NO SELECTIVA ó GOBACK-N (cont.)
• Lógicamente antes que el transmisor pueda enterarse que sucedio
con los paquetes enviados, pueden haber llegado muchos malos,
es claro que los malos seran eliminados, pero que debe hacer un
receptor con los mensajes que si han llegado buenos, pero que aún
no se pueden enviar al nivel superior? hay dos soluciones, una
planteada para el caso de GoBackN, en el cual, los mensajes
buenos pero en desorden SON DESCARTADOS. El otro enfoque
será el de la repetición selectiva en el cual el receptor no elimina
los mensajes que llegan buenos despues de uno malo y además el
transmisor solo retransmite los mensajes malos (aunque puede
tardar algún tiempo para saber cuales son malos) y el receptor
posee reconocimientos acumulativos.
• Estos dos enfoques poseen un compromiso entre ancho de banda
y buffers.
Fundamentos de Protocolos
Edwin Montoya
REPETICIÓN SELECTIVA
• Este esquema posee un mejor aprovechamiento del ancho de
banda.
• En este esquema se permite que el receptor almacene mensajes en
desorden, siempre y cuando caigan en el rango de la ventana del
receptor, pero a diferencia del anterior caso se presenta un
problema que puede duplicar mensajes, esto se puede dar por el
solape de dos ventanas de recepción consecutivas que pueden
tener los mismos números de secuencia.
• La solución a esto es tener tamaños de ventana del receptor no
mayor a la mitad de la capacidad de secuenciamiento e igualmente
este debe ser el número de buffers.
• Cuando se detectan mensajes malos, podría reclamarse la
retransmisión unicamente de un mensaje especificado, esto realiza
mediante el envio de reconocimientos negativos (NAK)
especificando que mensaje quiere que se le retransmita.
Fundamentos de Protocolos
Edwin Montoya
10
Descargar