Planificación y Administración de Redes/Tema 6/Conceptos generales

La capa de enlace de datos se sitúa en el nivel 2 del modelo OSI. La misión de la capa de enlace es establecer una línea de comunicación libre de errores que pueda ser utilizada por la capa inmediatamente superior: la capa de red.

Como el nivel físico opera con bits, la capa de enlace 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).

En redes Ethernet esta capa se subdivide en dos subcapas:

  • Subcapa de enlace lógico (LLC – Logical Link Control)
  • Subcapa de acceso al medio (MAC - Medium Access Control)



La subcapa 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 subcapa de acceso al medio así como una capa física distinta.

La subcapa de control de acceso al medio es la encargada de arbitrar el uso del medio de comunicación cuando este está compartido entre más de dos equipos como suele ser habitual en muchas LAN.


En la práctica la subcapa de acceso al medio suele formar parte de la propia tarjeta de comunicaciones, mientras que la subcapa de enlace lógico estaría en el programa adaptador de la tarjeta (driver en inglés).

Además de la formación de tramas, el nivel de enlace se ocupará del tratamiento de los errores que se produzcan en la recepción de las tramas, de eliminar tramas erróneas, solicitar retransmisiones, descartar tramas duplicadas, adecuar el flujo de datos entre emisores rápidos y receptores lentos, etc


Algunos protocolos y estándares que regulan aspectos de la capa de enlace

  • Parte de la especificación de los protocolos Ethernet y del estándar IEEE 802.3.
  • Parte de la especificación de la familia de estándares IEEE 802.11, para redes sin hilos.
  • Point to point protocol (PPP).
  • Parte de la especificación de tecnologías de enlace para WAN como HDLC, X.25, ATM, Frame Relay o xDSL.


Protocolo Denominación Usado en
HDLC High--level Data Link Control ISO
SDLC Synchronous Data Link Control IBM SNA
LAPB Link Access Procedure – Balanced X.25
LAPD Link Access Procedure – D-channel RDSI
LAPF Link Access Procedure for Frame-mode Frame Relay
LLC Logical Link Control IEEE 802
SLIP Serial Line Internet Protocol
PPP Point-to-Point Protocol
ATM Asynchronous Transfer Mode

La capa de enlace se encarga de los siguientes aspectos:

  • Delimitación de trama
  • Segmentación y bloque
  • Uso del medio compartido
  • Control de flujo
  • Control de errores

Delimitación de trama

editar

Trama de 802.3 Ethernet

editar
Preambulo
SDF
MAC destino
MAC origen
802.1Q Etiqueta (opcional)
longitud
Datos y relleno
CRC 32-bit
Gap entre frames
7 Bytes 1 Byte 6 Bytes 6 Bytes (4 Bytes) 2 Bytes De 46 (o 42) hasta 1500 Bytes 4 Bytes 12 Bytes
64–1522 Bytes
72–1530 Bytes
84–1542 Bytes

Nota: Al final de la trama hay un intervalo llamado IFG de 12 bytes que no se utiliza, se explica más adelante.


Campos de la trama:

Preámbulo: Sincronización bit "10101010" (x7).

SDF: Delimitador de comienzo de trama "10101011".

Direcciones MAC origen y destino:

Notación (por ejemplo): F2:3E:C1:8A:B1:01

OUI: Identificador organización.(3 bytes)

NIC: Id. Tarjeta interfaz de Red. (3 bytes)

Dirección de difusión (broadcast) FF:FF:FF:FF:FF:FF. Este tipo de dirección se utiliza para que todos los equipos conectados en el mismo dominio de difusión recojan la trama.

Etiqueta: es un campo opcional que indica la pertenencia a una VLAN o prioridad en IEEE P802.1p.

Longitud:

- Valores < 1536.

Datos + Relleno:

- Trama mínima de 64 bytes (512 bits -> 51,2 μs).

- Como Tx ≥ 2Tp: Datos+Relleno ≥ 46 bytes.

FCS (Frame Check Sequence) -> CRC (CRC, Cyclic Redundancy Check):

Secuencia de chequeo de trama. Es un CRC de un polinomio generador de orden 33:

x32+x26+x23+x22+x16+x12+x11+x10+x8+x7+x5+x4+x2+x+1


Espacio mínimo entre tramas:

IFG: "Inter-frame Gap" -> 12 bytes (96 bits) es un intervalo de espera que se realiza siempre antes de empezar a transmitir aún si el medio está libre.

La comprobación de redundancia cíclica (CRC) es un código de detección de errores usado frecuentemente en redes digitales y en dispositivos de almacenamiento para detectar cambios accidentales en los datos. Los bloques de datos ingresados en estos sistemas contiene un valor de verificación adjunto, basado en el residuo de una división de polinomios; el cálculo es repetido en el destino, y la acción de corrección puede tomarse en caso de que el valor de verificación no concuerde; por lo tanto se puede afirmar que este código es un tipo de función que recibe un flujo de datos de cualquier longitud como entrada y devuelve un valor de longitud fija como salida. El término suele ser usado para designar tanto a la función como a su resultado. Pueden ser usadas como suma de verificación para detectar la alteración de datos durante su transmisión o almacenamiento. Las CRC son populares porque su implementación en hardware binario es simple, son fáciles de analizar matemáticamente y son particularmente efectivas para detectar errores ocasionados por ruido en los canales de transmisión.

Ejemplo: Información a transmitir: 10110101101

Polinomio generador: 10011



Trama transmitida: 10110101101 0110

Resto (CRC-4): 0110

Segmentación y bloque

editar

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 la capa de enlace más larga.

Uso del medio compartido

editar
  • División estática del canal
    • Técnicas de multiplexación (TDM, FDM o WDM, SDM, CDM)
  • División dinámica del canal
    • Técnicas de contención (CSMA/CD)
    • Protocolos libres de colisión (Paso de testigo, reserva)

División estática: Multiplexación

editar

La multiplexación es la combinación de dos o más canales de información en un solo medio de transmisión usando un dispositivo llamado multiplexor. El proceso inverso se conoce como demultiplexación. Un concepto muy similar es el de control de acceso al medio.


Una aplicación usual de la multiplexación son las comunicaciones de larga distancia. Los enlaces de las redes de larga distancia son líneas de alta capacidad de fibra, de cable coaxial o de microondas, de modo que pueden transportar simultáneamente varias transmisiones de voz y de datos haciendo uso de las técnicas de multiplexación.

Una analogía posible para el problema del acceso múltiple sería una habitación (que representaría el canal) en la que varias personas desean hablar al mismo tiempo. Si varias personas hablan a la vez, se producirán interferencias y se hará difícil la comprensión. Para evitar o reducir el problema, podrían hablar por turnos (estrategia de división por tiempo - TDMA), hablar unos en tonos más agudos y otros más graves de forma que sus voces se distinguieran (división por frecuencia - FDMA), dirigir sus voces en distintas direcciones de la habitación (división espacial - SDMA) o hablar en idiomas distintos (división por código – CDMA), sólo las personas que conocen el código (es decir, el "idioma") pueden entenderlo.

TDMA (Acceso Múltiple por División de Tiempo)

Hace uso de multiplexación por división de tiempo o TDM (Time Division Multiplexing). En ella, el ancho de banda total del medio de transmisión es asignado a cada canal durante una fracción del tiempo total (intervalo de tiempo). Es decir se divide un único canal de frecuencia de radio en varias ranuras de tiempo. A cada persona que hace una llamada se le asigna una ranura de tiempo específica para la transmisión, lo que hace posible que varios usuarios utilicen un mismo canal simultáneamente sin interferir entre sí.


Existen varios estándares digitales basados en TDMA, tal como TDMA D-AMPS (Digital-Advanced Mobile Phone System), TDMA D-AMPS-1900, PCS-1900 (Personal Communication Services), GSM (Global System for Mobile Communication, en el que se emplea junto con saltos en frecuencia o frequency hopping ), DCS-1800 (Digital Communications System) y PDC (Personal Digital Cellular).


FDMA (Acceso Múltiple por División de Frecuencia)

Hace uso de multiplexación por división de frecuencia o FDM (Frequency Division Multiplexing) y su equivalente para medios ópticos, por división de longitud de onda o WDM (Wavelength Division Multiplexing).


FDM es un tipo de multiplexación utilizada generalmente en sistemas de transmisión analógicos. La forma de funcionamiento es la siguiente: se convierte cada fuente de varias que originalmente ocupaban el mismo espectro de frecuencias, a una banda distinta de frecuencias, y se transmite en forma simultánea por un solo medio de transmisión. Así se pueden transmitir muchos canales de banda relativamente angosta por un solo sistema de transmisión de banda ancha.


Hay muchas aplicaciones de FDM, por ejemplo, la radio FM comercial y las emisoras de televisión analógica, así como los sistemas de telecomunicaciones de alto volumen.

Una variante de FDM es la utilizada en fibra óptica, donde se multiplexan señales, que pueden ser analógicas o digitales, y se transmiten mediante portadoras ópticas de diferente longitud de onda, dando lugar a la denominada multiplexación por división de longitud de onda, o WDM del inglés Wavelength Division Multiplexing.


SDMA (Acceso Múltiple por División de Espacio)

Hace uso de multiplexación por división de espacio o SDM (Space Division Multiplexing).

El Acceso múltiple por división de espacio es una tecnología que segmenta el espacio en sectores utilizando antenas unidireccionales. Se utiliza generalmente en comunicaciones por satélite, pero también en redes celulares para reducir el número de estaciones base.


CDMA (Acceso Múltiple por División de Código)

Hace uso de multiplexación por división en código o CDM (Code Division Multiplexing).

La división por código se emplea en múltiples sistemas de comunicación por radiofrecuencia, tanto de telefonía móvil (como IS-95, CDMA2000, FOMA o UMTS), transmisión de datos (WiFi) o navegación por satélite (GPS).


División dinámica: diversas técnicas

editar

CSMA/CD (Acceso Múltiple con Escucha de Portadora y Detección de Colisiones)

CSMA/CD (del inglés Carrier Sense Multiple Access with Collision Detection) o, en español, acceso múltiple con escucha de portadora y detección de colisiones, es un protocolo de acceso al medio compartido. Su uso está especialmente extendido en redes Ethernet donde es empleado para mejorar sus prestaciones. En CSMA/CD, los dispositivos de red escuchan el medio antes de transmitir, es decir, es necesario determinar si el canal y sus recursos se encuentran disponibles para realizar una transmisión. Además, mejora el rendimiento de CSMA finalizando el envío cuando se ha detectado una colisión.

En CSMA/CD, cada estación que desea transmitir debe realizar una escucha del medio – escucha de portadora- para comprobar si éste se encuentra libre, es decir, para comprobar que ninguna otra estación está en ese instante transmitiendo un mensaje. Si el medio se encuentra libre entonces tiene lugar dicha transmisión. Aun así, puede ocurrir que varias estaciones tengan mensajes para enviar y que comiencen a transmitir una trama en el mismo instante. Cuando esto se sucede, se dice que ha ocurrido una colisión en la red. La estación que ha detectado la colisión procederá a enviar un mensaje de jam de 32 bits al resto de estaciones para notificar dicho evento. Una vez que todas las estaciones han sido notificadas, automáticamente se paran todas las transmisiones y se ejecuta un algoritmo de backoff (o de postergación) que consiste en esperar un tiempo aleatorio (backoff) antes de volver a intentar la transmisión.


Token Ring (Paso de testigo)

Esta técnica se basa en una pequeña trama o testigo que circula a lo largo del anillo. Un bit indica el estado del anillo (libre u ocupado) y cuando ninguna estación está transmitiendo, el testigo simplemente circula por el anillo pasando de una estación a la siguiente. Cuando una estación desea transmitir, espera a recibir el testigo modificando el bit de estado del anillo de libre a ocupado e inserta a continuación la información a enviar junto con su propia dirección y la de la estación destino. El paquete de datos circula por el anillo hasta llegar a la estación receptora que copia su contenido y lo vuelve a poner en circulación incluyendo una marca de recepción, de tal forma que, cuando vuelve a llegar a la estación emisora, ésta lo retira de la red y genera un nuevo testigo libre.


Este sistema es poco eficiente para cargas bajas, pero para cargas altas el sistema se comporta de manera muy eficiente y equitativo. Una desventaja seria es que se pierda el testigo, en cuyo caso toda la red se bloquearía. Los bits que se modifican en el anillo indican si la trama que acompaña al anillo ha llegado a su destino, si no ha llegado o si ha llegado pero no se ha copiado. Esta información de control es muy importante para el funcionamiento del sistema.


Token Ring fue desarrollada por IBM en los años 1970 con topología física en anillo y técnica de acceso de paso de testigo, usando un frame de 3 bytes llamado token que viaja alrededor del anillo. Token Ring se recoge en el estándar IEEE 802.5. En desuso por la popularización de Ethernet.


Las características más destacadas de esta arquitectura son:


  • Utiliza una topología lógica en anillo, aunque por medio de una unidad de acceso de estación múltiple (MSAU o MAU - Multistation access unit), la red puede verse como si fuera una estrella. Tiene topología física estrella y topología lógica en anillo.
  • Cada equipo conectado a la red dispone de una interfaz de unidad adjunta (AUI - Attachment Unit Interface) que permite la conexión a la MAU.
  • Utiliza cable especial apantallado, aunque el cableado también puede ser par trenzado.
  • La longitud total de la red no puede superar los 366 metros.
  • La distancia entre una computadora y el MAU no puede ser mayor que 100 metros (por la degradación de la señal después de esta distancia en un cable de par trenzado).
  • A cada MAU se pueden conectar ocho computadoras.
  • Estas redes alcanzan una velocidad máxima de transmisión que oscila entre los 4 y los 16 Mbps.
  • Posteriormente el High Speed Token Ring (HSTR) elevó la velocidad a 110 Mbps pero la mayoría de redes no la soportan.

Control de flujo

editar

El control de flujo es necesario para no saturar al receptor de uno a más emisores. Se realiza normalmente en la capa de transporte, y también a veces en la capa de enlace. Utiliza mecanismos de retroalimentación. El control de flujo conlleva dos acciones importantísimas que son la detección de errores y la corrección de errores.

Existen 2 técnicas:

  • Control de flujo mediante parada y espera
  • Control de flujo mediante ventana deslizante


Control de flujo mediante parada y espera

editar

Nota: La numeración de tramas es 0 y 1. 
Después se reinicia la numeración, lo que no significa que se vuelvan a enviar las tramas,
sino que la numeración  vuelve a iniciarse. 

El procedimiento más sencillo para controlar el flujo, denominado control de flujo mediante parada y espera, funciona de la siguiente manera. Una entidad origen transmite una trama. Tras la recepción, la entidad destino indica su deseo de aceptar otra trama mediante el envío de una confirmación de la trama que acaba de recibir. El origen debe esperar a recibir la confirmación antes de proceder a la transmisión de la trama siguiente. De este modo, el destino puede parar el flujo de los datos sin más que retener las confirmaciones. Este procedimiento funciona adecuadamente y, de hecho, es difícil mejorar sus prestaciones cuando el mensaje se envía usando un número reducido de tramas de gran tamaño.


Sin embargo, en la práctica las tramas tienden a ser pequeñas puesto que así:

  • el receptor necesita menor memoria temporal.
  • se reduce el riesgo de errores.
  • se evita la ocupación excesiva del medio por parte de una única estación transmisora.

Control de flujo mediante ventana deslizante

editar

Con el procedimiento anterior solo puede haber en tránsito una trama a la vez. Si se permite que transiten varias tramas al mismo tiempo sobre el enlace, la eficiencia mejorará significativamente.

Veamos cómo funcionaría este procedimiento para dos estaciones, A y B, conectadas mediante un enlace full-duplex. La estación B reserva memoria temporal suficiente para almacenar 3 tramas. Por tanto, B puede aceptar 3 tramas, permitiéndosele a A enviar este mismo número de tramas sin tener que esperar ninguna confirmación. Para saber qué tramas se han confirmado, cada una de ellas se etiqueta con un número de secuencia. B confirma una trama mediante el envío de una confirmación que incluye el número de secuencia de la siguiente trama que se espera recibir. Esta confirmación informa también, implícitamente, acerca de que B está preparado para recibir las 3 tramas siguientes, comenzando por la de número especificado.


Control de errores

editar

El control de errores hace referencia a los mecanismos necesarios para la detección y la corrección de errores que aparecen en una transmisión de tramas. Como se ha considerado hasta ahora, los datos se envían en base a una secuencia de tramas, las cuales se reciben en el mismo orden en que fueron enviadas y cada una de ellas, con carácter previo a su recepción, sufre un retardo arbitrario y posiblemente variable. Se contemplan dos tipos de errores potenciales:

  • Tramas perdidas: se produce cuando una trama enviada no llega al otro extremo. Así, por ejemplo, una ráfaga de ruido puede dañar una trama de manera que el receptor no se percate siquiera de su transmisión.
  • Tramas dañadas: ocurre cuando una trama se recibe con algunos bits erróneos (modificados durante la transmisión).

Las técnicas más usuales para el control de errores se basan en algunas o todas las siguientes aproximaciones:

  • Detección de errores: haciendo uso de códigos de comprobación de redundancia cíclica (CRC, Cyclic Redundancy Check).
  • Confirmaciones positivas: el destino devuelve una confirmación positiva por cada trama recibida con éxito, libre de errores.
  • Retransmisión tras la expiración de un temporizador: la fuente retransmite las tramas que no se han confirmado tras un periodo de tiempo predeterminado.
  • Confirmación negativa y retransmisión: el destino devuelve una confirmación negativa para aquellas tramas en las que se detecta la ocurrencia de errores. El origen retransmitirá de nuevo dichas tramas.

Estos mecanismos se denominan genéricamente solicitud de repetición automática (ARQ, Automatic Repeat reQuest); el objetivo de un esquema ARQ es convertir un enlace de datos no fiable en fiable. Hay tres variantes ARQ estandarizadas:

  • ARQ con parada y espera.
  • ARQ con vuelta atrás N.
  • ARQ con rechazo selectivo.

ARQ con parada y espera

editar

Si existe un error en el envío de la trama (por que llegue dañada -CRC no coincidente- o se pierda -expire el temporizador-), se vuelve a transmitir.

ARQ con vuelta atrás N

editar

El emisor va enviando las tramas que tiene en su ventana deslizante. Si existe un error en el envío de la trama (por que llegue dañada -CRC no coincidente- o se pierda -expire el temporizador-) se vuelve a transmitir esa trama y todas las siguientes aunque ya hayan sido enviadas previamente.

ARQ con rechazo selectivo

editar

El emisor va enviando las tramas que tiene en su ventana deslizante. Si existe un error en el envío de una trama (por que llegue dañada o su temporizador expire), se vuelve a transmitir sólo esa trama.