T3. NIVEL DE ENLACE DE DATOS ÍNDICE Introducción • • • • Servicios proporcionados al nivel de red Entramado Control de errores Control de flujo Detección de errores • • • Paridad Suma de bloque CRC Casos de estudio: • • HDLC y familia ( PPP) Subnivel MAC. Estándar IEEE 802.X Puentes y conmutadores. Redes(4º) T3 Nivel Enlace de Datos 2 ÍNDICE Introducción Detección y corrección de errores. Control de flujo. Protocolo de ventana deslizante. Subnivel de acceso al medio. Casos de estudio: • • • Prot. derivados del HDLC Prot. PPP IEEE 802 Puentes y conmutadores Redes(4º) T3 Nivel Enlace de Datos 3 INTRODUCCIÓN Objetivo: suministrar un transporte “fiable” de bits al nivel de red. Sólo se ocupa de equipos directamente conectados. Los bits llegan al destino en el mismo orden Los circuitos de comunicación: • Cometen errores • Tasa de datos finita (Velocidad) • Retardo de propagación Redes(4º) T3 Nivel Enlace de Datos 4 FUNCIONES Proporcionar servicios al nivel de red Entramado de bits Control de errores Control de flujo • Sin acuse, sin conexión • Con acuse, sin conexión • Con acuse orientado a conexión • Contar caracteres • Caracteres de Inicio-Fin • Indicadores Inicio-Fin con relleno • Detección • Corrección • Parada y Espera • Ventana deslizante Redes(4º) T3 Nivel Enlace de Datos 5 Servicios para el nivel de red Redes(4º) T3 Nivel Enlace de Datos 6 Servicios para el nivel de red Sin acuse y sin conexión Con acuse y sin conexión • Envío de tramas sin acuse de recibo • Ausencia de conexión • Baja tasa de errores • Tiempo real (voz) • LAN • El receptor produce un acuse de recibo por trama(s) • Ausencia de conexión • Alta tasa de errores • Sistemas inalámbricos Redes(4º) T3 Nivel Enlace de Datos 7 Servicios para el nivel de red Con acuse orientado a conexión • Emisor y receptor establecen una conexión previa a la transferencia de datos • Tramas numeradas • Se garantiza la recepción de cada trama y el orden de transmisión • Confiable Redes(4º) T3 Nivel Enlace de Datos 8 Entramado de bits Se agrupa el flujo de bits en tramas y se añaden bits de control de errores. El destino comprueba si se ha producido error en la trama. Delimitación de trama: • Contar caracteres: • • - Un campo especifica el número de caracteres de la trama - Problema: la cuenta puede alterarse por error de transmisión Principio-fin. Bandera. Redes(4º) T3 Nivel Enlace de Datos 9 Delimitación: Contar caracteres Redes(4º) T3 Nivel Enlace de Datos 10 Delimitación: Caracteres de Inicio-Fin Comienzo de trama con DLE STX (ASCII) y fin de trama con DLE ETX (ASCII) Problema de la transparencia: “Que los indicadores aparezcan como parte de los datos” Solución: Inserción de carácter. Poner un DLE antes de cada DLE “accidental” de los datos. Desventaja: añade 8 (ó 7) bits (ASCII) Redes(4º) T3 Nivel Enlace de Datos 11 Delimitación: Bandera o flag Tramas con número arbitrario de bits Cada trama comienza y termina con un patrón de bits, 01111110, byte indicador, bandera, flag... Flag 011111110 Flag 011111110 Permite encadenamiento de tramas. flag Datos Trama Datos Trama flag Datos Trama flag Problema de la transparencia. Redes(4º) T3 Nivel Enlace de Datos 12 Delimitación: Bandera o flag Transparencia: Inserción de bit No se permite repetir el delimitador dentro de la trama Redes(4º) T3 Nivel Enlace de Datos 13 Control de errores Detección de errores y Corrección de errores “Siempre hay errores” Redes(4º) T3 Nivel Enlace de Datos 14 Control de errores Corrección de errores: mecanismo básico. ¿Cómo asegurar que las tramas son entregadas en orden al receptor y sin errores? • Realimentación del transmisor con acuse de recibo. • Añadir temporización (T0 >2 trecepción) - Transmitir la trama nuevamente, si se cumple el - tiempo T0. Duplicidad, introducir números de secuencia de tramas de datos y acuse de recibo. Redes(4º) T3 Nivel Enlace de Datos 15 Control de flujo Asegurar que el transmisor no sobrecarga al receptor. Realimentación del transmisor. Parada y espera (simplex) • El transmisor envía una trama y espera un acuse de recibo del receptor antes de enviar la siguiente trama • Problema: sólo una trama en transito; baja eficiencia Redes(4º) T3 Nivel Enlace de Datos 16 Parada y espera Redes(4º) T3 Nivel Enlace de Datos 17 Ventana deslizante Ventana deslizante (duplex) • • • • • • • • Dos estaciones A y B B reserva memoria temporal para n tramas A puede enviar n tramas sin confirmación Cada trama se etiqueta con un nº de secuencia, k bits B confirma una trama mediante un acuse de recibo que incluye el nº de secuencia de la siguiente trama que espera recibir. Es posible confirmar varias tramas simultáneamente, la actual y las anteriores A mantiene una lista (ventana de tramas) con los nº de secuencia que puede transmitir y B con los que espera recibir. Si en un tiempo prudencial (time-out) no se recibe el acuse de recibo, se reenvía la trama. n ≤ 2k − 1 Redes(4º) T3 Nivel Enlace de Datos 18 Ventana deslizante tprop α= tframe Redes(4º) T3 Nivel Enlace de Datos 19 Ventana deslizante Tramas ya transmitidas Número de secuencia de las tramas Última trama confirmada Tramas almacenadas temporalmente hasta que son confirmadas Ventana de tramas que se pueden transmitir Última trama transmitida La ventana se cierra por el límite inferior cuando se envían tramas La ventana se abre por el límite superior cuando se reciben tramas (a) Desde el punto de vista del transmisor Ventana de tramas que se pueden aceptar Tramas ya recibidas Última trama confirmada Última trama recibida La ventana se cierra por el límite inferior cuando se reciben tramas (b) Punto de vista del receptor Redes(4º) T3 Nivel Enlace de Datos La ventana se abre por el límite superior al enviar las ACKs 20 Ventana deslizante Redes(4º) T3 Nivel Enlace de Datos 21 Control de errores ¿Que es un error? • Nº de bits de una trama: n=m+r - m, bits de datos - r, bits de comprobación - n, palabra de código • Dadas dos palabras de código, es fácil determinar en cuantos bits difieren (XOR) Distancia de Hamming: nº de posiciones de bits en que difieren dos palabras de código Redes(4º) T3 Nivel Enlace de Datos 22 Control de errores La detección y corrección de errores de un código depende de su distancia de Hamming. • Detectar d errores requiere una distancia d+1 • Corregir d errores requiere una distancia 2d+1 Paridad: se considera un código en el que se agrega un solo bit de paridad a los datos. • El bit de paridad se escoge de forma que el nº total de • • unos de la palabra de código es par (o impar). Detecta errores individuales Sólo detecta 50% (nº impar bits de erróneos) Redes(4º) T3 Nivel Enlace de Datos 23 Suma de bloque A cada carácter (n bits) se le añade un bit de paridad (transversal o de fila) A cada posición de bit del bloque se le añade un bit de paridad (longitudinal o de columna) • Un carácter al final del bloque cuyos bits indican la paridad de cada columna del bloque. Corrige hasta n bits y detecta el 50% restante. Ejemplo: Para transmitir una información se utiliza paridad de suma de bloque (par). Si al receptor le llega el siguiente bloque de información (en hexadecimal): A3 2D FC 24 17 0D E4 B8. Decir si es correcto, y en caso contrario, corregirlo. Redes(4º) T3 Nivel Enlace de Datos 24 Solución al Ejemplo Redes(4º) T3 Nivel Enlace de Datos 25 Código de Redundancia Cíclica (CRC) Detecta 99’98% Dado mensaje de k bits, el transmisor genera una secuencia de n bits, denominada secuencia de comprobación de la trama (FCS), de forma que la trama resultante, con n+k bits, sea divisible por algún número predeterminado. El receptor divide la trama recibida por ese nº y, si no hay resto en la división, no hay errores. Tratamiento de las cadenas de bits como representaciones de polinomios con coeficientes de 0 y 1. • La cadena 110001 representa el polinomio x5+ x4+ x0 Redes(4º) T3 Nivel Enlace de Datos 26 Algoritmo (CRC) Definiciones: Objetivo: T/P tenga resto cero • T = trama de (k+n) bits a transmitir, con n<k • M = mensaje de k bits, los primeros k bits de T • F = n bits del FCS, los últimos n bits de T • P = patrón de n+1 bits; divisor elegido • T = 2nM + F • Dividimos 2nM entre P y el resto lo usamos como FCS. • T = 2nM + R Redes(4º) T3 Nivel Enlace de Datos 27 Algoritmo (CRC), Ejemplo Paso 1 Paso 2 Paso 3 • M = 1010001101 (10 bits) • P = 110101 (6 bits) • FCS=R= (5 bits) • 2nM = 25M = 101000110100000 • El resultado anterior se divide por P • R = 01110 Redes(4º) T3 Nivel Enlace de Datos 28 Algoritmo (CRC), Ejemplo Paso 4 Paso 5 Existen polinomios (P) estandarizados: • T = 2nM + R = 101000110101110 • Es lo que se transmite • Si no hay errores, el receptor recibe T • Resto T/P = 00000 • CRC-12 = x12 + x11 + x3 + x2 + x1 + 1 • CRC-16 = x16 + x15 + x2 + 1 • CRC-CCITT = x16 + x12 + x5 + 1 Redes(4º) T3 Nivel Enlace de Datos 29 Algoritmo (CRC), Ejemplo Redes(4º) T3 Nivel Enlace de Datos 30 Casos de estudio Estándares de Enlace de datos y Subnivel MAC Puentes Redes(4º) T3 Nivel Enlace de Datos 33 HDLC y familia FLAG = 0x7e Tramas encadenadas. CRC-16 ó CHKSM Redes(4º) T3 Nivel Enlace de Datos 34 HDLC y familia (a) Información: Tramas con información y validación. (b) Supervisión (c) No numerada. P/F comando/respuesta Redes(4º) T3 Nivel Enlace de Datos 35 HDLC y familia Tramas de supervisión: • RR (Receive Ready, tipo 0) Validación de anteriores a “Next”. (Espera la trama “Next”) • RNR (Receive Not Ready, tipo 1) Parada brusca. • REJ (Reject, tipo 2). Se reenvían “Next” y siguientes. • SREJ (Selective Reject, tipo 3). Se reenvía “Next”. Redes(4º) T3 Nivel Enlace de Datos 36 HDLC y familia Tramas No Numeradas. Gestión del enlace Distintas variantes en los protocolos de la familia... • SNRM, SARM y SABM. Petición de conexión normal, respuesta y balanceado. • DISC Disconnect. • DM Disconnect Mode. • UA Unnumbered Acknowledgment. • FRMR Respuesta de rechazo de trama. Etc. Redes(4º) T3 Nivel Enlace de Datos 37 HDLC y familia Redes(4º) T3 Nivel Enlace de Datos 38 HDLC y familia . Redes(4º) T3 Nivel Enlace de Datos 39 Formatos de trama Redes(4º) T3 Nivel Enlace de Datos 40 SLIP y PPP SLIP Serial IP (RFC 1055) • • • Encapsula paquetes IP con delimitador 0xC0. Transparencia por inserción de byte. No corrige errores, no detecta errores. Redes(4º) T3 Nivel Enlace de Datos 41 PPP Point to Point Protocol (RFC1661, etc.) • Formato de trama y detección de errores. • LCP (Link Control Prot.) Opciones del enlace, conex. • • y descon, long. NCP (Network Control Prot.) Encapsula varios protocolos, direcciones IP. (IPCP,...) Formato de trama. Redes(4º) T3 Nivel Enlace de Datos 42 PPP Conexión ( y desc.) PPP. • Módem Î LCP Î(PAP, CHAP)Î NCP(IPCP) Nivel 1 Redes(4º) T3 Nivel Enlace de Datos Nivel 2 43 PPP Tipos de códigos LCP. Redes(4º) T3 Nivel Enlace de Datos 44 PPP-IPCP Encapsulación IP sobre PPP Redes(4º) T3 Nivel Enlace de Datos 45 Redes de área local Estándares IEEE • IEEE 802.2 • IEEE 802.3 • IEEE 802.4 • IEEE 802.5 • IEEE 802.6 • IEEE 802.11 Redes(4º) T3 Nivel Enlace de Datos LLC CSMA/CD Token -bus Token-ring DQDB WLAN 46 LLC Logical Link Control IEEE 802.2 • Nivel 1 datagrama o • Nivel 2 confiable (~HDLC) Redes(4º) T3 Nivel Enlace de Datos 47 802.3 y Ethernet Flujo de bits en una Ethernet Redes(4º) T3 Nivel Enlace de Datos 48 802.3 Niveles 100BASET y 1000BASET (N1). Redes(4º) T3 Nivel Enlace de Datos 49 IEEE 802.3 y Ethernet Redes(4º) T3 Nivel Enlace de Datos 50