Detección y Corrección de Errores Recordar: Los errores de transmisión ocurren debido a las limitaciones del medio físico, interferencias y ruido Como resultado de los procesos físicos que los generan, los errores en algunos medios de transmisión se producen en ráfagas (burst) en lugar ocurrir aleatoriamente en bits aislados. Esto tiene ventajas y desventajas ¿puede nombrarlas? Existen dos estrategias principales para la detección y corrección de errores: Control de errores hacia adelante (Forward Error Correction, FEC) Control de errores por retroalimentación o retrospectivo Luis Tarazona, DIP UNEXPO Barquisimeto ELT-51123 - Redes de Computadores 2001 1 Control de Errores hacia adelante (FEC) Cada caracter o trama transmitida contiene información adicional (redundancia) que permite detectar y determinar la posición del error. El bloque se corrige invirtiendo los símbolos en las posiciones erróneas. El número de bits requerido para lograr un control de errores confiable aumenta conforme al número de bits de información. La complejidad del sistema aumenta con la capcidad de corrección del sistema. Luis Tarazona, DIP UNEXPO Barquisimeto ELT-51123 - Redes de Computadores 2001 2 Control de Errores hacia adelante (FEC) codificador Información Información redundancia decodificador Información Errores o ruido durante la transmisión Métodos típicos de FEC: Códigos de bloque (Ej. Hamming, BCH, Reed-Solomon) •El procesamiento de datos se realiza por bloques, uno a la vez •Usado principalmente en la corrección de errores en ráfagas Códigos convolucionales (Ej. Viterbi) •Usado para corregir errores aleatorios Luis Tarazona, DIP UNEXPO Barquisimeto ELT-51123 - Redes de Computadores 2001 3 Control de Errores por realimentación Cada caracter o trama transmitida contiene sólo la información adicional que permite detectar la presencia de errores. Se emplea un esquema de control de retransmisiones para solicitar el envio de otra copia de la información. Consiste de dos partes: Las técnicas uitlizadas para lograr una detección confiable. Paridad, suma de chequeo, verificación de redundancia cíclica (CRC) Los algoritmos de control para los esquemas de retransmisión asociados. Luis Tarazona, DIP UNEXPO Barquisimeto ELT-51123 - Redes de Computadores 2001 4 Distancia Hamming y capacidad de detección y corrección de errores Distancia Hamming: Número de posiciones de bits en las cuales dos palabras del mismo código difieren. Distancia Hamming mínima: La mínima de todas las distancias Hamming entre palabras de un mismo código. Para detectar d errores se requiere un código de distancia mínima d +1 Para corregir d errores se necesita de un código con distancia mínima de 2d + 1 Luis Tarazona, DIP UNEXPO Barquisimeto ELT-51123 - Redes de Computadores 2001 5 Detección de errores por paridad Se agrega un bit a cada palabra para que el número de unos en la palabra sea par (o impar) Esto hace que la distancia mínima sea 2 Luis Tarazona, DIP UNEXPO Barquisimeto ELT-51123 - Redes de Computadores 2001 6 Suma de Verificación (Checksum) Se utiliza cuando se transmiten bloques de caracteres. Se agrega un caracter al final del bloque (checksum)que consiste en el complemento a dos de la suma modulo 256 de todos los caracteres del bloque. La verificación la realiza el receptor sumando todos los caracteres recibidos incluyendo el checksum: Si el resultado es cero, no hay errores Ejemplo: Transmisión de un registro HEX- Intel: 03 00 00 00 02 07 50 A4 (03+00+00+00+02+07+50)mod 100 = 5C NOT(5C)+1= A4 (complemento a 2)= checksum (A4 + 5C)mod 100 = 00 Luis Tarazona, DIP UNEXPO Barquisimeto ELT-51123 - Redes de Computadores 2001 7 Verificación de redundancia cíclica (Cyclic Redundancy Check, CRC) Más adecuado cuando se presentan ráfagas de errores Basado en códigos polinomiales: Las cadenas de bits se tratan como los coeficientes de un polinomio Una cadena de k bits se representa como un polinomio de grado k-1. Ej: 1101101 se representa como: x6 + x5 + x3 + x2 + 1 El emisor y receptor utilizan el mismo polinomio generador G(x) Estos polinomios son estandarizados. El emisor calcula un checksum a partir de la información a transmitir y el polinomio generador, que se agrega a los datos a enviar. Luis Tarazona, DIP UNEXPO Barquisimeto ELT-51123 - Redes de Computadores 2001 8 Verificación de redundancia cíclica (Cyclic Redundancy Check, CRC) Algoritmo: 1. Sea r el grado de G(x). Agregar r bits cero a las posiciones menos significativas de la trama. 2. Dividir el polinomio que representa la trama extendida por los ceros por G(x) usando aritmética módulo 2. 3. El residuo es el checksum que se añade al final de la trama original antes de transmitirla. En el receptor, la verificación se realiza dividiendo el polinomio que representa a los bits recibidos por G(x). Si el residuo es cero, no ocurrieron errores Luis Tarazona, DIP UNEXPO Barquisimeto ELT-51123 - Redes de Computadores 2001 9 Polinomios CRC estandarizados CRC-12: x12 + x11 + x3 + x2 + x + 1 CRC-16: x16 + x15 + x2 + 1 CRC-CCITT: x16 + x12 + x5 + 1 Luis Tarazona, DIP UNEXPO Barquisimeto ELT-51123 - Redes de Computadores 2001 10 Verificación de redundancia cíclica Ejemplo (T:pp189) residuo Luis Tarazona, DIP UNEXPO Barquisimeto ELT-51123 - Redes de Computadores 2001 11 Protocolos elementales de enlace Recordar: ¿Qué es un protocolo? Reglas para intercambiar información. Criterios de Calidad: Producitividad (Throughput) ¿Cuanta información realmente se está transmitiendo? Tasa de errores Retardo 90% de complejidad para cubrir el 1% de las situaciones reales. Luis Tarazona, DIP UNEXPO Barquisimeto ELT-51123 - Redes de Computadores 2001 12 Protocolos elementales de enlace Recordar: Primitivas de servicio Primitivas de “saludo” (handshake) Primitiva Significado Petición Una entidad requiere que el servicio ejecute una tarea Indicación Una entidad es informada acerca de un evento Respuesta Una entidad desea responder a un evento Confirmación La respuesta a una petición anterior ha llegado Luis Tarazona, DIP UNEXPO Barquisimeto ELT-51123 - Redes de Computadores 2001 13 Primitivas de servicio Petición Tiempo Indicación Primario Secundario Respuesta Confirmación Luis Tarazona, DIP UNEXPO Barquisimeto ELT-51123 - Redes de Computadores 2001 14 Protocolo Simplex sin restricción Los datos se transmiten en una sola dirección Las capas de red del emisor y el receptor siempre están listas Se ignora el tiempo de procesamiento Hay un espacio de memoria (buffer) infinito EL canal nunca daña los datos ni pierde tramas El primario simplemente envía datos a la máxima velocidad El secundario simplemente espera por un evento (llegada de una trama sin errores) Al llegar, la toma de la capa física y entrega la parte de datos a la capa de red. Repite el ciclo de esperar por evento Luis Tarazona, DIP UNEXPO Barquisimeto ELT-51123 - Redes de Computadores 2001 15 Protocolo Simplex sin restricción typedef enum {frame_arrival} event_type; #include "protocol.h" void sender1(void) { frame s; packet buffer; /* buffer for an outbound frame */ /* buffer for an outbound packet */ while (true) { from_network_layer(&buffer); /* go get something to send */ s.info = buffer;/* copy it into s for transmission */ to_physical_layer(&s); /* send it on its way */ } } Luis Tarazona, DIP UNEXPO Barquisimeto ELT-51123 - Redes de Computadores 2001 16 Protocolo Simplex sin restricción void receiver1(void) { frame r; event_type event; /* filled in by wait, but not used here */ while (true) { wait_for_event(&event); /* only possibility is frame_arrival */ from_physical_layer(&r);/* go get the inbound frame */ to_network_layer(&r.info); /* pass the data to the network layer */ } } Luis Tarazona, DIP UNEXPO Barquisimeto ELT-51123 - Redes de Computadores 2001 17 Protocolo Simplex parar-y-esperar Los datos se transmiten en una sola dirección EL canal nunca daña los datos ni pierde tramas El primario envía una trama y espera por la confirmación (ACK) El secundario simplemente espera por un evento (llegada de una trama sin errores) Al llegar, la toma de la capa física y entrega la parte de datos a la capa de red. Envía un ACK al primario Repite el ciclo de esperar por evento La comunicación es alterna en ambas direcciones Half-duplex Luis Tarazona, DIP UNEXPO Barquisimeto ELT-51123 - Redes de Computadores 2001 18 ¿Qué sucede si el canal no es ideal? Petición información Tiempo Indicación ACK Respuesta P S Tiempo máximo (timeout) Petición Error información Duplicado! Luis Tarazona, DIP UNEXPO Barquisimeto ELT-51123 - Redes de Computadores 2001 19 Protocolo de RQ inactiva Se utilizan los números de secuencia: para evitar duplicados y tramas perdidas Sirven como mecanismo para el control del flujo Los números de secuencia son enteros con un rango limitado Se asignan a las tramas-I Existen el el receptor y en el transmisor (diferentes) Similar al protocolo simplex parar-y-esperar P pone en marcha un temporizador cada vez que envia una trama-I Si se supera el tiempo máximo sin recibir ACK P retransmite la trama Las tramas con errores o duplicada se desechan Luis Tarazona, DIP UNEXPO Barquisimeto ELT-51123 - Redes de Computadores 2001 20