Redes informáticas/Modelo OSI de ISO/Nivel de enlace de datos
El nivel de enlace de datos, como el resto de los niveles intermedios, funciona en dos sentidos, vinculando el nivel de red con el nivel físico. La capa de enlace de datos es responsable de la transferencia fiable de información a través de un circuito de transmisión de datos.
El nivel de enlace (del inglés data link level) es el segundo nivel del modelo OSI. Recibe peticiones del nivel de red y utiliza los servicios del nivel físico.
- Objetivo
El objetivo del nivel de enlace es conseguir que la información fluya, libre de errores, entre dos máquinas que estén conectadas directamente (servicio orientado a conexión).
Para lograr este objetivo tiene que montar bloques de información (llamados tramas en este nivel), dotarles de una dirección de nivel de enlace, gestionar la detección o corrección de errores, y ocuparse del control de flujo entre equipos (para evitar que un equipo más rápido desborde a uno más lento).
Cuando el medio de comunicación está compartido entre más de dos equipos es necesario arbitrar el uso del mismo. Esta tarea se realiza en el subnivel de acceso al medio.
- Ubicación dentro de las normas IEEE 802
Dentro del grupo de normas IEEE 802, el subnivel de enlace lógico se recoge en la norma IEEE 802.2 y es común para todos los demás tipos de redes (Ethernet o IEEE 802.3, IEEE 802.11 o Wi-Fi, IEEE 802.16 o WiMAX, etc.); todas ellas especifican un subnivel de acceso al medio así como un nivel físico distintos.
En la práctica el subnivel de acceso al medio suele formar parte de la propia tarjeta de comunicaciones, mientras que el subnivel de enlace lógico estaría en el programa adaptador de la tarjeta (driver en inglés). En la capa de enlace, los datos se organizan en unidades llamadas tramas. Cada trama tiene una cabecera que incluye una dirección e información de control y una cola que se usa para la detección de errores. Otro tipo de protocolos de nivel de enlace serían PPP (Point to point protocol o protocolo punto a punto), HDLC (High level data link control o protocolo de enlace de alto nivel), por citar dos.
La cabecera de una trama de red de área local (LAN) contiene las direcciones físicas del origen y el destino de la LAN. La cabecera de una trama que se transmite por una red de área extensa (WAN) contiene un identificador de circuito en su campo de dirección.
Recuerde que un enlace es una red de área local, una línea punto a punto o alguna otra facilidad de área extensa por la que se pueden comunicar los sistemas mediante un protocolo de la capa de enlace de datos.
- Funciones de la capa de enlace
La capa de enlace de datos es responsable de la transferencia fiable de información a través de un Circuito eléctrico de transmisión de datos. La transmisión de datos lo realiza mediante tramas que son las unidades de información con sentido lógico para el intercambio de datos en la capa de enlace. También hay que tener en cuenta que en el modelo TCP/IP se corresponde a la segunda capa
Sus principales funciones son:
- Iniciación, terminación e identificación.
- Segmentación y bloqueo.
- Sincronización de octeto y carácter.
- Delimitación de trama y transparencia.
- Control de errores.
- Control de flujo.
- Recuperación de fallos.
- Gestión y coordinación de la comunicación.
La función de iniciación comprende los procesos necesarios para activar el enlace e implica el intercambio de tramas de control con el fin de establecer la disponibilidad de las estaciones para transmitir y recibir información.
Las funciones de terminación son de liberar los recursos ocupados hasta la recepción/envío de la última trama. También de usar tramas de control. La identificación es para saber a que terminal se debe de enviar una trama o para conocer quien envía la trama. Se lleva a cabo mediante la dirección del nivel de enlace.
- Segmentación
La segmentación surge por la longitud de las tramas ya que si es muy extensa, se debe de realizar tramas más pequeñas con la información de esa trama excesivamente larga.
Si estas tramas son excesivamente cortas, se ha de implementar unas técnicas de bloque que mejoran la eficiencia y que consiste en concatenar varios mensajes cortos de nivel superior en una única trama de nivel de enlace más larga.
En las transferencias de información en el nivel de enlace es necesario identificar los bits y saber que posición les corresponde en cada carácter u octeto dentro de una serie de bits recibidos.
- Función de sincronización
Esta función de sincronización comprende los procesos necesarios para adquirir, mantener y recuperar la sincronización de carácter u octeto. Es decir, poner en fase los mecanismos de codificación del emisor con los mecanismos de decodificación del receptor.
La capa de enlace debe ocuparse de la delimitación y sincronización de la trama. Para la sincronización puede usar 3 métodos:
- El primero de ellos es "Principio y fin" (carácteres especificos para identificar el principio o el fin de cada trama).
- También puede usar "Principio y cuenta" (Utiliza un carácter para indicar comienzo y seguido por un contador que indica su longitud).
- Por último puede usar el "Guión" (se emplea una agrupación especifica de bits para identificar el principio y fin mediante banderas/flags).
La transparencia se realiza mediante la inserción de bits. Consta de ir contando los unos consecutivos y cuando se encuentra con 5 unos seguidos y consecutivos introduce el bit 0 después del quinto uno. Ejemplo: Las banderas/flag suelen ser 01111110, y al aplicar la transparencia pasa a ser 011111010.
Es opcional en esta capa, la encargada de realizar esta funcion es la capa de transporte , en una WAN es muy problable que la verificacion, la realiza la capa de enlace
- Identificación de las tramas y detección de errores
Para la Identificación de tramas puede usar distintas técnicas como:
- Contador de caracteres
- Caracteres de inicio y final con caracteres de relleno
- Secuencia de bits indicadora de inicio y final, con bits de relleno
El control de flujo es necesario para no 'agobiar' al receptor. Se realiza normalmente a nivel de transporte, también a veces a nivel de enlace. Utiliza mecanismos de retroalimentación. Suele ir unido a la corrección de errores y no debe limitar la eficiencia del canal.
Los métodos de control de errores son básicamente 2:
- FEC o corrección de errores por anticipado y no tiene control de flujo.
- ARQ: Posee control de flujo mediante parada y espera, o/y ventana deslizante.
Las posibles implementaciones son:
- Parada y espera simple: Emisor envía trama y espera una señal del receptor para enviar la siguiente o la que acaba de enviar en caso de error.
- Envío continuo y rechazo simple: Emisor envía continuamente tramas y el receptor las va validando. Si encuentra una errónea, elimina todas las posteriores y pide al emisor que envíe a partir de la trama errónea.
- Envío continuo y rechazo selectivo: transmisión continua salvo que sólo retransmite la trama defectuosa.
La detección de errores la realiza mediante diversos tipos de códigos del que hay que resaltar:
- CRC (control de redundancia cíclica)
- Simple paridad
- Paridad cruzada (Paridad horizontal y vertical)
- Suma de verificación
La corrección de errores están basados en Código Hamming, por repetición, verificación de paridad cruzada, Reed-Solomon y de goyle.
También cabe destacar los protocolos HDLC que es un control de enlace de datos a alto nivel, orientado a bit y obedece a una ARQ de ventana deslizante o continuo. También existen protocolos orientados a carácter. El control de flujo es necesario para no 'agobiar' al receptor. Se realiza normalmente a nivel de transporte, también a veces a nivel de enlace. Utiliza mecanismos de retroalimentación. Suele ir unido a la corrección de errores y no debe limitar la eficiencia del canal. El control de flujo conlleva dos acciones importantísimas que son la detección de errores y la corrección de errores.
La detección de errores se utiliza para detectar errores a la hora de enviar tramas al receptor e intentar solucionarlos. Se realiza mediante diversos tipos de códigos del que hay que resaltar el CRC (códigos de redundancia cíclica), simple paridad (puede ser par, números de 1´s par, o impar) paridad cruzada (Paridad horizontal y vertical) y Suma de verificación
La corrección de errores surge a partir de la detección para corregir errores detectados y necesitan añadir a la información útil un número de bits redundantes bastante superior al necesario para detectar y retransmitir. Sus técnicas son variadas. El Código Hamming, Repetición, que cada bit se repite 3 veces y en caso de fallo se toma el bit que más se repite; También puede hacerse mediante verificación de paridad cruzada, Reed-Solomon y de goyle.
También cabe destacar los protocolos HDLC que es un control de enlace de datos a alto nivel, orientado a bit y obedece a una ARQ de ventana deslizante o continuo. También existen protocolos orientados a carácter.
- Recuperación ante fallos
Se refiere a los procedimientos para detectar situaciones y recuperar al nivel de situaciones anómalas como la ausencia de respuesta, recepción de tramas inválidas, etc. Las situaciones más típicas son la pérdida de tramas, aparición de tramas duplicadas y llegada de tramas fuera de secuencia.
Si no se tratasen correctamente estos eventos se perderá información y se aceptarán datos erróneos como si fuesen correctos. Generalmente se suelen utilizar contadores para limitar el número de errores o reintentos de los procesos y procedimientos. También se pueden usar temporizadores para establecer plazos de espera (timeout) de los sucesos. La gestión atiende a 2 tipos:
- El primero de ellos es un sistema centralizado donde existe una máquina maestra y varias esclavas. Estas conexiones se pueden realizar punto a punto o multipunto.
- El segundo de ellos es el distribuido, donde no existe máquina maestra y todas compiten por el control del sistema de comunicación.
La coordinación se puede realizar mediante selección o contienda:
- La selección se puede implementar mediante sondeo/selección, donde el maestro recoge un mensaje de una secundaria y se la entrega a quien seleccione. También es posible asignando un testigo a una máquina que es la que puede emitir mensajes/tramas. Son típicas las configuraciones Token Ring y Token Bus.
- La contienda se basa en que cada ordenador emite su trama/mensaje cuando le apetece. Todos los componentes de la red son tanto emisores como receptores. Son típicos los sistemas ALOHA y CSMA/CD. Hay que tener cuidado con las colisiones.