Resumen Capitulo 3 LA CAPA DE ENLACE DE DATOS Arquitectura de redes FACULTAD DE INGENIERÍA LICENCIATURA EN INGENIERÍA EN COMPUTACIÓN Profesor: Pedro Pallares Jiménez Alumno: José Francisco Valdés Ortega Semestre: 2023-A Grupo: CO03 Fecha de entrega: 23 de Febrero de 2023 RESUMEN CAPA 3 – LA CAPA DE ENLACE DE DATOS 3.1 Cuestiones de diseño de la capa de enlace de datos La capa de enlace de datos utiliza los servicios de la capa física para enviar y recibir bits a través de los canales de comunicación. Algunas de las funciones específicas: 1. Proporcionar a la capa de red una interfaz de servicio bien definida. 2. Manejar los errores de transmisión. 3. Regular el flujo de datos para que los emisores rápidos no saturen a los receptores lentos La capa de enlace de datos toma los paquetes que obtiene de la capa de red y los encapsula en tramas para transmitirlos. Cada trama contiene un encabezado, un campo de carga útil para almacenar el paquete y un terminador. El manejo de las tramas es la tarea más importante de la capa de enlace de datos. 3.1.1 Servicios proporcionados a la capa de red La función de la capa de enlace de datos es proveer servicios a la capa de red. El servicio principal es la transferencia de datos de la capa de red en la máquina de origen, a la capa de red en la máquina de destino. La tarea de la capa de enlace de datos es transmitir los bits a la máquina de destino, de modo que se puedan entregar a la capa de red de esa máquina. La capa de enlace de datos puede diseñarse para ofrecer varios servicios. Los servicios reales ofrecidos varían de un protocolo a otro. Tres posibilidades razonables que normalmente se proporcionan son: 1. Servicio sin conexión ni confirmación de recepción 2. Servicio sin conexión con confirmación de recepción 3. Servicio orientado a conexión con confirmación de recepción El servicio sin conexión ni confirmación de recepción consiste en hacer que la máquina de origen envíe tramas independientes a la máquina de destino sin que ésta confirme la recepción. No se establece una conexión lógica de antemano ni se libera después. Si se pierde una trama debido ruido en la línea, en la capa de datos no se realiza ningún intento por detectar la pérdida o recuperarse de ella. Esta clase de servicio es apropiada cuando a las tasas de error es muy baja. 3.1.2 Entramado Para proveer servicio a la capa de red, la capa de enlace de datos debe usar el servicio que la capa física le proporciona. Lo que hace la capa física es aceptar un flujo de bits puros y tratar de entregarlo al destino. Si el canal presenta ruido, como en la mayoría de los enlaces inalámbricos y en algunos alámbricos, la capa física agregará cierta redundancia a sus señales para reducir la tasa de error de bits a un nivel tolerable. La capa de enlace de datos es responsable de detectar y corregir errores. El método común es que la capa de enlace de datos divida el flujo de bits en tramas discretas, pero es más difícil de lo que parece. Un buen diseño debe facilitar un receptor el proceso de encontrar el inicio de las nuevas tramas al tiempo que utiliza una pequeña parte del ancho de banda del canal Otros métodos a usar: 1. 2. 3. 4. Conteo de bytes. Bytes bandera con relleno de bytes. Bits bandera con relleno de bits. Violaciones de codificación de la capa física. 3.1.3 Control de errores La manera normal de asegurar la entrega confiable de datos es proporcionar retroalimentación al emisor sobre lo que está ocurriendo en el otro lado de la linea. Por lo general, el protocolo exige que el receptor devuelva tramas de control especiales que contengan confirmaciones de recepción positiva de una trama, sabe que la trama llego de manera correcta. Por otra parte, una confirmación de recepción negativa significa que algo falló y que debe transmitir la trama otra vez. Una complicación adicional, surge de la posibilidad de que los problemas de hardware causen la desaparición de una trama completa. 3.1.4 Control de flujo Es importante el qué hacer con un emisor que quiere transferir tramas de manera sistemática y a mayor velocidad que aquella con que puede aceptarlos el receptor. Esta situación puede ocurrir cuando el emisor opera en una computadora rápida y el receptor trabaja en una maquina lenta. Una situación común es cuando un teléfono inteligente solicita una página web de un servidor mucho más poderoso, que a su vez enciende y envía muchos datos ocasionando una saturación. Aunque la transmisión esté libre de errores, en cierto punto el receptor simplemente no será capaz de manejar las tramas conforme lleguen y comenzará a perder algunas. Para evitar esta situación, se utilizan dos métodos. En el primero, el control de flujo basado en retroalimentación, el receptor regresa información al emisor para autorizarle que envíe datos o por lo menos indicarle su estado. El segundo, el control de flujo basado en tasa, el protocolo tiene un mecanismo integrado que limita la tasa a la que el emisor puede transmitir los datos, sin recurrir a la retroalimentación por parte del proveedor. 3.2 Detección y corrección de errores Los canales de comunicación tienen una variedad de características; algunos de ellos, como la fibra óptica en las redes de telecomunicaciones, tienen tasas de error pequeñas de modo que los errores de transmisión son una rara ocurrencia. Pero en otros canales, en especial los enlaces inalámbricos y los viejos lazos locales, tienen tasas de error más grandes. Para estos enlaces, los errores de transmisión son la norma. No se pueden evitar a un costo razonable en términos de rendimiento. Existen dos estrategias básicas para manejar los errores: - Códigos de corrección de errores (FEC) Es influir suficiente información redundante para que el receptor pueda deducir cuales debieron ser los datos transmitidos. 3.2.1 Códigos de corrección de errores. Cuatro códigos de corrección de errores: 1. Códigos de Haming. 2. Códigos convolucionales binarios. 3. Códigos de Reed-Solomon. 4. Códigos de verificación de paridad de baja densidad. Todos estos códigos agregan redundancia a la información que se envía. Una trama consiste en m bits de datos (mensaje) y r bits redundantes (verificación). En un código de bloque, los r bits de verificación se calculan únicamente en función de los m bits de datos con los que se asocian, como si los m bits se buscaran en una gran tabla para encontrar sus correspondientes r bits de verificación. En un código sistemático, los m bits de datos se envían directamente, junto con los bits de verificación, en vez de que se codifiquen por sí mismos antes de enviarlos. En un código lineal, los r bits de verificación se calculan como una función lineal de los m bits de datos. 3.2.2 Códigos de detección de errores Los códigos de corrección de errores se utilizan de manera amplia en los enlaces inalámbricos, que son notoriamente más ruidosos y propensos a errores si se les compara con la fibra óptica. Sin los códigos de corrección de errores sería difícil hacer pasar cualquier cosa. Sin embargo, a través de la fibra óptica o del cable de cobre de alta calidad, la tasa de error es mucho más baja, por lo que la detección de errores y la retransmisión por lo general son más eficientes para manejar un error ocasional. Todos son códigos de bloques sistemáticos lineales: 1. Paridad. 2. Sumas de verificación. 3. Pruebas de Redundancia Cíclica (CRC). 3.3 Protocolos elementales de enlace de datos La capa física, de enlace de datos y de red, son procesos independientes que se comunican pasando mensajes de un lado a otro. El proceso de la capa física y una parte del proceso de la capa de enlace de datos se ejecutan en hardware dedicado, conocido como NIC (Tarjeta de Interfaz de Red). El resto del proceso de la capa de enlace y el proceso de la capa de red se ejecutan en la CPU principal como parte del sistema operativo, en donde el software para el proceso de la capa de enlace a menudo toma la forma de un controlador de dispositivo. Sin embargo, también puede haber otras implementaciones. Realmente, la implementación preferida cambia de una década a otra con las concesiones tecnológicas. En cualquier caso, el hecho de tratar las tres capas como procesos independientes, hace más nítido el análisis en el terreno conceptual y también sirve para enfatizar la independencia de las capas. 3.3.1 Un protocolo simplex utópico Los datos son transmitidos en una sola dirección; las capas de red tanto del emisor como del receptor siempre están listas. Podemos no prestar atención al tiempo de procesamiento, por lo que hay un infinito espacio en el buffer disponible; asi como el canal de comunicación entre las capas de enlace de datos nunca se daña ni se puede las tramas. Por lo que este protocolo es completamente irreal, al que se le puede llamar utopía, por lo que simplemente es para mostrar la estructura básica en la que nos basaremos. El protocolo consiste en dos procedimientos diferentes, un emisor y un receptor. El emisor se ejecuta en la capa de enlace de datos de la máquina de origen y el receptor se ejecuta en la capa de enlace de datos de la máquina de destino. No se usan número de secuencia ni confirmaciones de recepción, por lo que no se necesita MAX_SEQ. El único tipo de evento posible es frame_arrival (es decir, la llegada de una trama sin daños). 3.2.2 Protocolo simplex de parada y espera para un canal libre de errores El problema principal de evitar que el emisor sature al receptor enviando tramas a una mayor velocidad de la que este último puede procesarlas. Esta situación puede ocurrir con facilidad en la práctica, por lo que es de extrema importancia evitarla. Sin embargo, aún existe el supuesto de que el canal está libre de errores y el tráfico de datos sigue siendo simplex. Una solución es construir un receptor lo suficientemente poderoso como para procesar un flujo continuo de tramas, una tras otra sin interrupción (lo equivalente sería definir la capa de enlace de modo que fuera lo bastante lenta como para que el receptor pudiera mantenerse a la par). Debe tener suficiente capacidad en el búfer y de procesamiento como para operar a la tasa de transmisión de la línea; asimismo debe ser capaz de pasar las tramas que se reciben en la capa de red con la rapidez suficiente. Sin embargo, ésta es una solución para el peor de los casos. Requiere hardware dedicado y se pueden desperdiciar recursos si el enlace se usa poco. Además, sólo cambia el problema de tratar con un emisor demasiado rápido a otra parte; en este caso, a la capa de red. Una solución más general para este dilema es hacer que el receptor proporcione retroalimentación al emisor. Tras haber pasado un paquete a su capa de red, el receptor regresa al emisor una pequeña trama ficticia que, de hecho, autoriza al emisor para que transmita la siguiente trama. Después de enviar trama, el protocolo exige que el emisor espere hasta que llegue la pequeña trama ficticia (es decir, la confirmación de recepción). Este retraso es un ejemplo simple de un protocolo de control de flujo. Los protocolos en los que el emisor envía una trama y luego espera una confirmación de recepción antes de continuar se denominan de parada y espera. 3.4 Protocolos de ventana deslizante Las tramas de datos se transmitían en una sola dirección. En la mayoría de las situaciones prácticas existe la necesidad de transmitir datos en ambas direcciones. Una manera de lograr una transmisión de datos full-dúplex es tener dos instancias de uno de los protocolos anteriores, cada uno de los cuales debe usar un enlace separado para el tráfico de datos simplex (en distintas direcciones). A su vez, cada enlace se compone de un canal de “ida” (para los datos) y de un canal de “retorno” (para las confirmaciones de recepción). En ambos casos se desperdicia la capacidad del canal de retorno casi por completo. La técnica de retardar temporalmente las confirmaciones de recepción salientes para que puedan viajar en la siguiente trama de datos de salida se conoce como superposición (piggybacking). La principal ventaja de usar la superposición en lugar de tener tramas de confirmación de recepción independientes, es un mejor aprovechamiento del ancho de banda disponible del canal. Los protocolos de ventana deslizante son bidireccionales, mismos que difieren de eficiencia, complejidad y requerimientos de búfer. La diferencia de los protocolos de ventana deslizante es que, en cualquier instante, el emisor mantiene un conjunto de números de secuencia que corresponde a las tramas que tiene permitido enviar. Estas tramas caen dentro de la ventana emisora. 3.5 Ejemplos de protocolos de enlace de datos En el interior de un solo edificio las redes LAN se utilizan mucho para interconectar computadoras, pero la mayoría de la infraestructura de redes de área amplia se basa en las líneas de punto a punto. En esta sección examinaremos los protocolos de enlace de datos que se encuentran en las líneas de punto a punto en Internet, en dos situaciones comunes. La primera situación es cuando los paquetes se envían a través de enlaces de fibra óptica SONET en redes de área amplia. Estos enlaces se utilizan mucho, por ejemplo, para conectar enrutadores en las distintas ubicaciones de la red de un ISP. La segunda situación para los enlaces de ADSL que operan en el lazo local de la red telefónica, en un extremo de Internet. Estos enlaces conectan a millones de individuos y negocios a Internet. Internet necesita enlaces de punto a punto para estos usos, así como módems de marcación telefónica, líneas rentadas y módems de cable, etc. Un protocolo estándar llamado PPP (Protocolo Punto a Punto) se utiliza para enviar paquetes a través de estos enlaces. PPP se define en el RFC 1661 y se ha desarrollado más en RFC 1662 y otros RFC (Simpson, 1994a, 1994b). Los enlaces SONET y ADSL aplican PPP, sólo que en distintas formas.