La Capa de Enlace de Datos: Diseño y Funciones

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. Pero por otro lado, tiene varias funciones específicas, entre las que se incluyen:
• Proporcionar a la capa de red una interfaz de servicio bien definida.
• Manejar los errores de transmisión.
• Regular el flujo de datos para que los emisores rápidos no saturen a los receptores lentos.
Para cumplir con estas funciones, 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. A continuación, vamos a definir cada una de estas funciones.


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 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:
• Servicio sin conexión ni confirmación de recepción.
• Servicio sin conexión con confirmación de recepción.
• Servicio orientado a conexión con confirmación de recepción.

a) Servicio de la capa de enlace sin conexión ni confirmación de recepción

Características:
• Recepción: la máquina destino no confirma la recepción.
• Conexión: no se establece conexión lógica.
• Reacción: si se pierde una trama debido a ruido en la línea, no se intenta detectar pérdida o recuperación.
• Utilidad: es apropiada cuando la tasa de error es muy baja o en casos de tráfico en tiempo real, donde el retraso importa más que el error.
• Ejemplo: Ethernet.

b) Servicio de la capa de enlace sin conexión con confirmación de recepción

Características:
• Recepción: se confirma de manera individual la recepción de cada trama enviada. El emisor sabe si la trama llegó bien o se perdió.
• Conexión: no se utilizan conexiones lógicas.
• Reacción: si no ha llegado en un intervalo especificado, se puede enviar de nuevo.
• Utilidad: canales no confiables.
• Ejemplo: 802.11 (WiFi).

c) Servicio de la capa de enlace orientado a conexión

Características:
• Recepción: se garantiza que cada trama llegará a su destino y se recibirá una vez y en un orden correcto.
• Conexión: se establece una conexión antes de transferir datos.
• Reacción: primero se establece la conexión, luego se transmite una o más tramas y por último se libera la conexión (fases).
• Utilidad: enlaces largos y no confiables.
• Ejemplo: canal de satélite o un circuito telefónico de larga distancia.

Nota: las confirmaciones de recepción en la capa de enlace de datos son tan sólo una optimización, nunca un requerimiento. La capa de red siempre puede enviar un paquete y esperar a que su igual en la máquina remota confirme su recepción. Si la confirmación no llega antes de que expire el temporizador, el emisor puede volver a enviar el mensaje completo. El problema con esta estrategia es que puede ser ineficiente, dado que la capa de red no conoce la longitud máxima de cada trama. Esto quiere decir que un paquete puede dividirse en n tramas, con lo cual cada trama puede sufrir pérdidas o retardos. Por eso es mejor confirmar y retransmitir de manera individual cada trama.

2) Capa de Enlace de Datos: Entramado

Para resolver el problema de marcar el inicio y final de la trama, existen básicamente 4 métodos de entramado que lleva a cabo la capa de enlace de datos, los cuales son:
• Conteo de bytes: agrega un campo en el encabezado para especificar el número de bytes en la trama, lo que permite a la capa de enlace de datos del destino saber cuántos bytes siguen (es decir, el comienzo y final de la trama). El problema es que si se produce un error de transmisión que altera dicho campo, se pierde totalmente la sincronía.
• Bytes bandera con relleno de bytes: se utiliza un byte bandera para indicar el inicio y otro para el final de la trama. Si el byte cae por accidente en los datos, se inserta un byte de escape (ESC) justo antes de cada byte bandera accidental. Cuando la capa de enlace de datos del receptor lee el entramado, quita dicho caracter de escape antes de entregarlo a la capa de red. También se inserta un byte de escape si aparece otro byte de escape en medio de los datos. Se utiliza en PPP (Protocolo Punto a Punto).
• Bits bandera con relleno de bits: posee una ventaja respecto al anterior método dado que no está condicionado a bytes, que son de 8 bits, sino que al entramar a nivel de bits puede contener cualquier tamaño. Este método se desarrolló para el protocolo HDLC (Control de Enlace de Datos de Alto Nivel). Cada trama empieza y termina con un patrón de bits especial, 01111110 o 0x7E en hexadecimal. Cada vez que la capa de enlace de datos del emisor encuentra cinco bits 1 consecutivos en los datos, inserta automáticamente un 0 como relleno en el flujo de bits de salida. Cuando el receptor ve cinco bits 1 de entrada consecutivos, seguidos de un bit 0, extrae (es decir, borra) de manera automática el bit 0 de relleno.
• Violaciones de codificación de la capa física: consiste en utilizar un atajo desde la capa física.


3) Control de Errores de la Capa de Enlace de Datos

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 línea. Por lo general, el protocolo exige que el receptor devuelva tramas de control especiales que contengan confirmaciones de recepción positiva o negativa de las tramas que llegan. Si el emisor recibe una confirmación de recepción positiva de una trama, sabe que la trama llegó de manera correcta. Por otra parte, una confirmación de recepción negativa significa que algo falló y que se debe transmitir la trama otra vez. Pero puede pasar que, por alguna complicación en la transmisión, la trama completa desaparezca y nunca llegue al receptor, por lo que el emisor quedaría esperando eternamente la respuesta. Es por ello que se introducen temporizadores en la capa de enlaces de datos, el cual se inicia al enviar una trama y expira dado un intervalo de tiempo suficiente en el que debería llegar la respuesta, o bien se cancela si la misma llega antes.
Si el temporizador expira, la trama se envía nuevamente. El problema que surge con esto es que puede pasar que la trama haya llegado ya al receptor (aunque no haya llegado la respuesta al emisor), y al repetirse la trama, se entregaría más de una vez a la capa de red. Para evitar esto, generalmente se asignan números de secuencia a las tramas de salida, para permitir al receptor determinar si es una trama original o una retransmisión.

4) Control de flujo

Un problema que se presenta en la transmisión de tramas es cuando el emisor envía a mayor velocidad de la que el receptor puede aceptar recibir, es decir, de una máquina rápida a una lenta. Es por ello que, la capa de enlace de datos introduce dos métodos básicamente para su solución:
Control de flujo basado en retroalimentación, donde el receptor avisa al emisor que puede transmitir datos o al menos para indicarle su estado.
Control de flujo basado en tasa, que consiste en 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 receptor.


Bibliografía:
• Redes de Computadoras - Tanenbaum, 5ta Edición.
• Resúmenes universitarios propios de las clases.

Entradas más populares de este blog

Capa de Enlace de Datos: Detección y Corrección de Errores

Protocolo de Ventana Deslizante - Capa de Enlace