Portada » Informática » Funciones y Servicios de la Capa de Enlace en Redes de Comunicación
El objetivo es asegurar que todas las tramas lleguen a destino en el orden apropiado. Se consigue mediante retroalimentación con ACK y NACK por parte del receptor y temporizadores en el emisor para reenviar tramas. El tiempo del temporizador debe estar ajustado en un intervalo suficiente como para que la trama llegue al destino y regrese la confirmación. Se asignan números de secuencia a las tramas para que el receptor pueda distinguir las retransmisiones.
Se produce cuando el emisor envía tramas a mayor velocidad de lo que puede manejar el receptor. Métodos:
Se incluye suficiente información redundante en cada bloque para que el receptor pueda deducir lo que debió ser el carácter transmitido. Se utilizan en canales con muchos errores. Una palabra codificada de n bits tiene m bits de datos y r bits de verificación, por lo que n = m + r. Los 2m mensajes de datos posibles son legales, pero no se usan las 2n palabras codificadas posibles.
Número de bits que difieren dos palabras. Significa que si dos palabras codificadas están separadas una distancia de Hamming d, se requerirán d errores de un bit para convertir una en la otra. Para encontrar la distancia de Hamming de todo el código, construimos una lista completa de palabras codificadas legales y buscamos las dos palabras codificadas cuya distancia es mínima. Las propiedades de detección y corrección de errores de un código dependen de su distancia de Hamming. Para detectar d errores se necesita un código de distancia d + 1. Los códigos de Hamming solo pueden corregir errores individuales. Truco para que corrija en ráfaga.
Se dispone como matriz una secuencia de k palabras codificadas consecutivas, con una palabra codificada por fila. Los datos se transmiten de a columnas, comenzando por la del extremo izquierdo. Cuando la trama llega al receptor, la matriz se reconstruye. Si ocurre un error en ráfaga de longitud k, cuando mucho se habrá afectado 1 bit de cada una de las k palabras codificadas; sin embargo, el código de Hamming puede corregir un error por palabra codificada, así que puede restaurarse la totalidad del bloque. Para detectar hasta n errores d = n + 1, para corregir hasta n errores d = 2n + 1.
Se utilizan de manera amplia en los enlaces inalámbricos por ser más ruidosos y propensos a errores. Sin los códigos de corrección de errores sería difícil pasar cualquier cosa. Aunque en algunos casos puede utilizarse el método visto anteriormente (el de la matriz con código Hamming), en la práctica se usa uno muy definido: el código polinomial (también conocido como código de redundancia cíclica o código CRC). Se basa en el tratamiento de cadenas de bits como representaciones de polinomios con coeficientes de 0 y 1 solamente. Una trama de k bits se considera como la lista de coeficientes de un polinomio con k términos que van de xk-1 a x0. Tal polinomio es de grado k – 1. Ejemplo: 110001 tiene 6 bits, y por lo tanto, representa un polinomio de seis términos con coeficientes 1, 1, 0, 0, 0 y 1: x5 + x4 + x0.
Suponemos ahora una situación normal en la que un canal de comunicación comete errores. Las tramas pueden llegar dañadas o perderse por completo. Podría parecer que utilizar un temporizador funcionaría, pero podría pasar que el emisor envía una trama y llega corrupta, por lo que el receptor no envía confirmación. Cuando el temporizador expira, el emisor vuelve a enviar la trama, y así sucesivamente hasta que la trama llega bien y el receptor devuelve la trama de confirmación… aunque si la trama de confirmación no llega correctamente al emisor, el temporizador vuelve a expirar, y el emisor vuelve a enviar la trama. El receptor se encontrará con dos tramas iguales y correctas, por lo que deberá contar con algún mecanismo que impida pasar dos tramas iguales a la capa de red. Para ello se utiliza un número de secuencia en el encabezado de cada trama. Es deseable que este encabezado sea pequeño. Por lo tanto, el número de secuencia puede ser de 1 bit (1 o 0), y de esta manera, cualquier trama de entrada que contenga un número de secuencia equivocado se rechaza como duplicado.
Los protocolos en los que el emisor espera una confirmación de recepción positiva antes de avanzar al siguiente elemento de datos suelen llamarse PAR (Confirmación de Recepción Positiva con retransmisión) o ARQ (Solicitud Automática de Repetición). Tras transmitir una trama y arrancar el temporizador, hay 3 posibilidades: llega una trama de confirmación de recepción sin daño, llega una trama de confirmación de recepción incorrecta o expira el temporizador.
Cuando llega una trama válida al receptor, su número de secuencia se verifica para saber si es un duplicado. Si no lo es, se acepta, se pasa a la capa de red y se genera una confirmación de recepción. Los duplicados y las tramas dañadas no se pasan a la capa de red.
Se transmite en un mismo canal en ambas direcciones. En el campo tipo de una trama en el encabezado, el receptor puede saber si la trama es de datos o de confirmación de recepción. Se mejora la eficiencia si el receptor espera y anexa la confirmación de recepción a la trama de datos de salida, esto se llama superposición. Si no hay tramas de datos a las que anexar, tras unos ciertos milisegundos se envía una trama de confirmación de recepción independiente. Los números de secuencia en la ventana del emisor representan tramas que pueden ser enviadas o lo han sido pero no se han confirmado, y la receptora son las tramas que puede aceptar. Si una trama se fuera de la ventana se descarta sin comentarios. Tipos:
Todas las palabras presentan un número par de bits 1. Dmin = 2. Palabra código = 8 bits. Dos bits no se detectan. Detecta todos los errores de un número impar de bits. Su probabilidad de fallo es 1/2. Los errores no se detectan cuando la palabra código se convierte en otra palabra código válida.
Probabilidad de que el sistema falle en la detección de un error. Se usan 3 modelos para medirla:
Para canal de interés p < 1/2.
El control de flujo lo soluciona.