490 likes | 847 Views
Nivel de enlace de datos. Andrés Marín L. Nivel de Enlace de datos. Son los algoritmos para lograr una comunicación confiable y eficiente entre dos máquinas adyacentes en la capa de enlace de datos
E N D
Nivel de enlace de datos Andrés Marín L.
Nivel de Enlace de datos • Son los algoritmos para lograr una comunicación confiable y eficiente entre dos máquinas adyacentes en la capa de enlace de datos • Adyacentes: las máquinas están conectadas físicamente por un canal de comunicaciones que actúa conceptualmente como un alambre.
Nivel de Enlace de datos • Dificultades: • Los circuitos de comunicación cometen errores ocasionales • Tienen una tasa de datos finita • Hay retardo en la propagación. • Se deben contar con técnicas de detección y corrección de errores, además de control de flujo.
Diseño del Nivel de Enlace de datos • Funciones: • Proporcionar una interfaz de servicio bien definida, con el nivel de red • Determinar la manera en que los bits de la capa física se agrupan en tramas • Manejar los errores de transmisión y regular el flujo de tramas para que receptores lentos no se saturen con transmisores rápidos
Diseño del Nivel de Enlace de datos • Servicios proporcionados al nivel de red: • Transferencia de datos del nivel de red de la máquina origen al nivel de red de la máquina destino. • Servicio sin acuse sin conexión • Servicio con acuse sin conexión • Servicio con acuse orientado a la conexión
Servicio sin acuse sin conexión • La máquina origen envía tramas independientes a la máquina destino sin pedir que esta las reconozca o acuse su recibo. • No se establece conexión de antemano ni se libera después • Si se pierde una trama en la línea debido a ruido, no intenta recuperarla en la capa de enlace de datos. • Se proporciona cuando la tasa de errores es muy baja • Cuando el tráfico es en tiempo real • Lo usan la mayoría de las LAN
Servicio con acuse sin conexión • Aun no se usan conexiones • Cada trama enviada es reconocida individualmente, de esta manera el transmisor sabe si la trama ha llegado bien o no, si no ha llegado en un tiempo especificado puede enviarse nuevamente. • Útil en canales inestables como los inalámbricos.
Servicio con acuse orientado a la conexión • Las máquinas origen y destino establecen una conexión antes de transferir los datos. • Cada trama enviada está enumerada y el nivel de enlace de datos garantizará que cada trama enviada llegará a su destino.
Conformación de tramas • El nivel físico acepta un flujo de bits en bruto y los entrega al destino. No se garantiza que el flujo de bits esté libre de errores • El nivel de enlace divide el flujo de bits en tramas discretas. • Calcula la suma de comprobación para cada trama.
Método de entramado de datos • Conteo de caracteres • Caracteres de inicio y fin, con relleno de carácter • Indicadores de Inicio y Fin , con relleno de bits.
Conteo de caracteres • En un campo de encabezado se especifica el número de caracteres en la trama • La capa de enlace de destino ve la cuenta de caracteres sabe cuantos siguen y por tanto donde está el final de la trama • La cuenta puede alterarse por un error de transmisión • Se pierde la sincronización y no se puede localizar el inicio de la siguiente trama
Conteo de caracteres Cuenta de caracteres 5 1 2 3 4 5 6 7 8 9 8 0 1 2 3 4 5 6 8 7 8 9 0 1 2 3 Trama 1 5 caracteres Trama 2 5 caracteres Trama 3 8 caracteres Trama 4 8 caracteres Error 5 1 2 3 4 7 6 7 8 9 8 0 1 2 3 4 5 6 8 7 8 9 0 1 2 3 Ahora es una cuenta de caracter Trama 1 Trama 2 (errónea)
Caracter de Inicio y Fin con relleno de caracter • Supera el problema de resincronización al hacer que cada trama comience con una secuencia de caracteres ASCCII, DLE, STX y termine con una secuencia DLE EXT • Está fuertemente atada a caracteres de 8 bits y al código ASCCII. • Cuando se transmiten datos binarios, como programas objeto o números de punto flotante, puede ocurrir que los caracteres correspondientes a DLE STX o a DLE ETX ocurran en los datos.
Caracter de Inicio y Fin con relleno de caracter DLE STX A DLE B DLE ETX Datos enviados por la capa de red DLE de relleno DLE STX A DLE DLE B DLE ETX Datos después del relleno de caracteres por el nivel de enlace de datos DLE STX A DLE B DLE ETX Datos pasadoa al nivel de red en el lado receptor
Protocolos orientados a caracter • Basados en juegos de caracteres (alfabetos) • Dos tipos de caracteres: información y control • Anteriores a las arquitecturas de Comunicación Generales • Limitaciones • Limitados a un alfabeto (IA5, EBCDIC...) • Tramas multiformato • Detección de errores rudimentarios (paridades) • Mecanismos de gestión de transparencia ineficientes • Típicamente usan parada y espera • Poco flexibles
Protocolo Binary Synchronous Control (BSC)IBM años 60Dos Tipos de tramasPAD: Paquet Asembler DesasemblerSYN: SynchronousDLE: Data Link EscapeSTX: Start of TextETX: End Of TextSOH: Start Of Header SOH PAD PAD SYN SYN STX ETB BCC ETX BCC PAD STX Cabecera Datos no transparentes Datos no transparentes PAD PAD SYN SYN ETX BCC PAD Datos no transparentes Tranparencia usando el caracter de escape: DLE DLE DLE Cabecera Transparente PAD PAD SYN SYN DLE DLE DLE SOH STX ETX BCC Datos transparentes PAD
Protocolos orientado a Bit • Respuesta a las limitaciones de los protocolos orientados a caracter • Objetivos • Independencia del alfabeto • Flexibilidad en configuraciones, aplicaciones y grado de sofisticación • Detección de errores sofisticada (códigos cíclicos) • Alto rendimiento
Indicadores de Inicio y Fin, con relleno de Bits • Los datos tienen un número arbitrario de bits y admite códigos de caracteres con un número arbitrario de bits por carácter. • Una trama comienza con un número especial de Bits • 01111110 llamado bandera • Cada vez que la capa de enlace de datos del transmisor encuentra 5 unos conscutivos en los datos, autómáticamente inserta un bit 0 en la cadena de bits, bits de relleno • Cuando el receptor ve cinco bits 1 de entrada consecutivos seguidos de un bit 0, automáticamente borra el bit 0 de relleno
Indicadores de Inicio y Fin, con relleno de Bits 011011111111111111110010 Datos originales 011011111011111011111010010 Bits de relleno Datos con relleno de bits 011011111111111111110010 Datos como se guardan en la memoria del receeptor después de remover el relleno
Indicadores de Inicio y Fin, con relleno de Bits • Con el relleno de bits , el límite entre las tramas puede reconocerse sin ambigüedad mediante la bandera. • Si el receptor pierde la pista de donde está debe explorar la entrada en busca de banderas pues estas están presentes en los límites de las tramas no en los datos. • Si lo datos de usuario contienen el patrón indicador 01111110 se transmite como 011111010 pero se almacena en la memoria del receptor como: 01111110
Control de errores • Existen dos estrategias básicas para manejar los erreores: • Códigos de corrección de errores: Incluir suficiente información redundante en cada bloque de datos transmitidos para que el receptor pueda deducir lo que debió ser el carácter transmitido. • Códigos de detección de errores: Incluir suficiente redundancia para que el receptor sepa que ha ocurrido un error, (pero no qué error) y entonces solicite una retransmisión
Control de errores • El receptor debe tener realimentación sobre lo que está ocurriendo al otro lado de la línea • El protocolo exíge que el receptor envíe tramas de control especiales de regreso que contengan acuse positivo o negativo de las tramas de entrada. • Si el transmisor recibe un acuse negativo significa que algo falló y que la trama debe transmitirse otra vez.
Control de errores TRANSMISOR RECEPTOR Datos Buffer de transmisión La información que se retiene: Buffer de retransmisión Buffer de recepción Hacia el nivel 3
Control de errores • Si por problemas de hardware se desaparece una trama completa y si el protocolo espera un acuse positivo o negativo de la recepción de la trama, la capa del nivel de enlace de datos debe colocar temporizadores. • Si la trama y el acuse se pierden, el temporizador terminará alertando al transmisor sobre un problema potencial. La solución es retransmitir la trama. • Si las tramas se repiten muchas veces, se corre el peligro de que en transmisor acepte más de dos veces la trama y la pase a la capa de red, para evitar esto es necesario asignar números de secuencia a las tramas de salida.
Corrección de errores • Una trama tiene m bits de datos • Una trama tiene r bits redundantes o de comprobación. • La longitud total de la trama es n • A la unida n que contiene datos más comprobación se le denomina Palabra de código de n bits. n=m + r
Corrección de errores • Dadas dos palabras código 10001001 y 10110001, es posible determinar cuántos bits correspondientes difieren aplicando una OR EXCLUSIVO a las dos palabras código y contar la cantidad de bits 1 en el resultado. 10001001 10110001 00111000 Distancia Hamming d=3
Corrección de errores • La cantidad de posiciones de bit en la que difieren dos palabras código se llama distancia Hamming. • Si dos palabras código están separadas una distancia Hamming d, se requeriran d bits para corregir los errores y convertir una en otra.
Corrección de errores • En la mayoría de las aplicaciones de transmisión de datos , tidos los 2m mensajes de datos posibles son legales, pero debido a la forma en que se comprueban los bits de comprobación no se usan las 2n palabras código posibles. • Dado el algoritmo de cálculo de los bits de comprobación, se construe una lista completa depalabras código legales y se encuenra las dos palabras código cuya distancia Hamming sea mínima. Esta distancia es la distancia Hamming de todo el código.
Corrección de errores • Para detectar d errores se necesita un código con distancia d+1 con esta distancia no hay manera de que d errores de un bit puedan cambiar una palabra código válida en otra. • Para corregir d errores se necesita un código de distancia 2d+1, las palabras código legales están tan separedas, que, aun con d cambios la palabra código original sigue estando más cercana que cualquier otra palabra código, por lo que puede determinarse de manera única.
Ejemplo de detección de errores • Código al que se le agrega un bit de paridad. • El bit de paridad se escige de tal manera, que la cantidad de bits en la palabra código sea par. • 10110101 por paridad par se vuelve 101101011 • 10110001 por paridad par se vuelve 101100010. • Un solo código con un solo bit de paridad tiene una distancia de 2 , pues cualquier error de un bit produce una palabra código con la paridad equivocada.
Ejemplo de corrección de errores • Un código con 4 palabras código claves: • 0000000000,0000011111,1111100000, 1111111111 • Este código tiene una distancia de 5. Si llega una palabra código 0000000111, el receptor sabe que debió ser 0000011111.
Códigos de detección de errores • El código más difundido es el código polinómico (Código de Redundancia Cíclica CRC). • Los códigos polinómicos se basan 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 que van de xk-1 a x0
Código de Redundancia Cíclica • Cuando se emplea el método de código polinómico el transmisor y el receptor deben acordar un polinomio Generador G(x), por adelantado. • Tato los bits mayor como menor del generador deben ser 1. • Para calculr la suma de comprobación para una trama con m bits, correspondiente al polinomio M(x), la trama deberá ser más larga que el polinomio generador.
Código de Redundancia Cíclica • La idea es anexar una suma de comprobación al final de la trama de tal manera que el polinomio representado por la trama más la suma de comprobación sea divisible entre G(x). • Cuando el receptor recibe la trama con suma de comprobación, intenta dividirlo entre G(x). Si hay un residuo, ha habido un error en la transmisión.
Protocolo CRC • Sea r el grado de G(x). Anexe r bits cero al final de la trama, para que ahora tenga m+r bits y corresponda al polinomio xrM(x). • Divida la cadena de bits correspondiente a xrM(x) entre la correspondiente a G(x) usando división en módulo 2. • Reste el residuo (que siempre es de r o menos bits) a la cadena de bits correspondiente a xrM(x) usando una resta en módulo 2. El resultado es la trama con suma de comprobación a transmitirse. Polinomio T(x)
Código de Redundancia Cíclica • La idea es anexar una suma de comprobación al final de la trama de tal manera que el polinomio representado por la trama más la suma de comprobación sea divisible entre G(x). • Cuando el receptor recibe la trama con suma de comprobación, intenta dividirlo entre G(x). Si hay un residuo, ha habido un error en la transmisión.
Protocolo CRC • Sea r el grado de G(x). Anexe r bits cero al final de la trama, para que ahora tenga m+r bits y corresponda al polinomio xrM(x). • Divida la cadena de bits correspondiente a xrM(x) entre la correspondiente a G(x) usando división en módulo 2. • Reste el residuo (que siempre es de r o menos bits) a la cadena de bits correspondiente a xrM(x) usando una resta en módulo 2. El resultado es la trama con suma de comprobación a transmitirse. Polinomio T(x)
Protocolo CRC • Al recibir la trama con suma de comprobación, el receptor lo divide entre G(x). Es decir, calcula:
Ejemplos de CRC CRC 16 CRC CCITT CRC 32 ETHERNET
PPP (Point to Point Protocol) • El protocolo de enlace ’característico’ de Internet es el PPP, que se utiliza en: • Líneas dedicadas punto a punto • Conexiones RTC analógicas o digitales (RDSI) • Conexiones de alta velocidad sobre enlaces SONET/SDH • Puede funcionar de forma síncrona o asíncrona (puerto COM de un PC) • Es multiprotocolo, una comunicación soporta simultáneamente varios protocolos a nivel de red.
Formato de trama PPP Bytes 1 1 1 Variable 2 ó 4 1 1 ó 2 • La trama siempre tiene un número entero de bytes • El campo dirección no se utiliza, siempre vale 11111111 • El campo control casi siempre vale 00000011, que especifica trama no numerada (funcionamiento sin ACK). • Generalmente en el inicio se negocia omitir los campos dirección y control (compresión de cabeceras)
Componentes de PPP • LCP (Link Control Protocol): negocia parámetros del nivel de enlace en el inicio de la conexión, Ej.: • Supresión de campos dirección y control • Uso de protocolos fiables (con ACK) • NCP (Network Control Protocol): negocia parámetros del nivel de red: • Protocolos soportados • Asignación dinámica de dirección IP. • CHAP (Challenge Handshake Authentication Protocol): realiza tarea de autentificación de usuario.
Funcionamiento de CHAP (Challenge Handshake Protocol) CLIENTE SERVIDOR Soy Pedro Ruiz Enviar identificador (userid) Enviar cadena de caracteres aleatoria (reto). a#$frhg&&&% Usar password, calcular respuesta MD5 y enviar Q324$*& Usar password , calcular respuesta MD5. Comprobar y responder OK Conexión establecida Pw: saturno Pw: saturno