viernes, 14 de junio de 2013

Enlace de datos

Capa de enlace de datos

El nivel de enlace de datos (en inglés data link level) o capa de enlace de datos es la segunda capa del modelo OSI, el cual es responsable de la transferencia fiable de información a través de un circuito de transmisión de datos. Recibe peticiones de la capa de red y utiliza los servicios de la capa física.
El objetivo de la capa 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 esta capa), dotarles de una dirección de capa de enlace (Dirección MAC), 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 la subcapa de control de acceso al medio.

Tramas.


La capa de enlace agrupa los bits en paquetes discretos denominados tramas (frames) que son los que envía por la línea. A veces, como en el caso de SDH, el medio físico crea también sus propias tramas, que no tienen por qué coincidir con las del nivel de enlace. Según el tipo de red la trama puede oscilar entre unos pocos y unos miles de bytes[1]. La utilización de tramas simplifica el proceso de detección y eventual corrección de errores. Una buena parte de las tareas de la capa de enlace tiene que ver con la construcción e identificación de las tramas.

Para identificar el principio y final de una trama la capa de enlace puede usar varias técnicas; las mas normales son:

  • Contador de caracteres
  • Caracteres indicadores de inicio y final con caracteres de relleno
  • Bits indicadores de inicio y final, con bits de relleno
  • Violaciones de código a nivel físico

  Control de flujo


Cuando dos ordenadores se comunican generalmente han de adoptarse medidas para asegurar que el emisor no satura al receptor. Si la línea entre ellos es de baja capacidad probablemente el factor limitante será la conexión, pero si es un canal rápido (por ejemplo una red local) es posible que el emisor, si es un ordenador más rápido o está menos cargado que el receptor, envíe datos a un ritmo superior al que es capaz de asimilar éste. En este caso el nivel de enlace en el receptor utilizará los buffers que tenga disponibles para intentar no perder datos, pero si el ritmo acelerado sigue durante un tiempo suficiente se producirá antes o después una pérdida de tramas por desbordamiento. En estos casos es preciso habilitar mecanismos que permitan al receptor frenar al emisor, es decir ejercer control de flujo sobre él. 
El control de flujo puede implementarse en el nivel de enlace o en niveles superiores (por ejemplo el nivel de transporte). Es importante que el control de flujo se ejerza de forma que no produzca ineficiencias en la comunicación; por ejemplo en enlaces de área extensa, donde la capacidad es un bien muy costoso, es importante mantener el nivel de ocupación del enlace tan alto como sea posible sin incurrir por ello en pérdida de tramas.

      Control de errores.

Por desgracia el medio de transmisión utilizado en redes de ordenadores introduce errores. La tasa de errores es función de múltiples factores, pero principalmente del medio de transmisión utilizado. La fibra óptica y las redes locales suelen tener las tasas más bajas[1], mientras que las transmisiones inalámbricas con equipos móviles (GSM o LANs inalámbricas) o sobre telefonía analógica suelen tener las más altas.


Iniciación, terminación e identificació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 quién envía la trama. Se lleva a cabo mediante la dirección de la capa de enlace.

Control de errores. 

Proporciona detección y corrección de errores en el envío de tramas entre computadores, y provee el control de la capa física. Sus funciones, en general, son:

Identificar Trama de datos.

Códigos detectores y correctores de error.

Control de flujo.

Gestión y coordinación de la comunicación.

Correctores de error: Es opcional en esta capa, la encargada de realizar esta función es la capa de transporte , en una WAN es muy probable que la verificación, la realiza la capa de enlace


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 en la capa de transporte, también a veces en la capa 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.

Delimitación de trama

La capa de enlace debe ocuparse de la delimitación y sincronización de la trama. Para la sincronización se puede usar 3 métodos:

El primero de ellos es "Principio y fin" (caracteres específicos 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 "Guion" (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: Considere la trama 0101111110, al aplicar la transparencia pasa a ser 01011111010.


Recuperación de 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.


Gestión y coordinación de la comunicación


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.


No hay comentarios:

Publicar un comentario