Capa de enlace de una red - Infraestructuras de redes

En las capas de una arquitectura de red de computadoras, la **capa de enlace** es la encargada de proporcionar los servicios y mecanismos necesarios para convertir el medio físico de transmisión, propenso a posible errores de transmisión, en un enlace de datos lógico libre de errores. Recibe peticiones de la capa de red y utiliza los servicios de la capa física.

Entre las funciones que realiza la capa de enlace están el ofrecer servicios a la capa superior, el construir y delimitar tramas de datos según el protocolo especifiacado (entramado), el control de errores y el control de flujo de transmisión.

## Tipos de enlace

### Conexiones punto a punto (point to point)

Son aquellas dedicadas a la interconexión de dos dispositivos. Una conexión punto a punto puede establecerse entre dos equipos terminales (computadores), entre dos dispositivos de red (ej. routers) o entre un equipo terminal y un dispositivo de red.

### Conexiones multipunto

Son aquellos enlaces compartidos entre varios dispositivos.

## Modos de transmisión

Los enlaces de una conexión punto a punto se pueden clasificar en tres tipos según el sentido de las comunicaciones transportadas.

* **Simplex**. La transmisión se realiza en un único sentido.
* **Half-duplex**. La transmisión se realiza en ambos sentidos, pero de forma alternada.
* **Full-duplex**. La transmisión se realiza de manera simultánea en ambos sentidos.

## Servicios de la capa de enlace

Los servicios que la capa de enlace puede ofrecer de a la capa superior pueden ser de dos tipos.

### Servicios orientados a conexión

Garantizan la entrega fiable de tramas llevando a cabo un control de errores:

* Se detectan los errores de la transmisión y se descartan las tramas erróneas y duplicadas.
* Se retransmiten las tramas erróneas o perdidas.
* Se ordenan y entregan las tramas sin errores a las capas superiores, mediante numeración.
* Se realiza el control del flujo entre el emisor y el receptor, mediante la confirmación.

Los protocolos de enlace orientados a conexión incluyen tres fases:

1. Establecimiento de la conexión de enlace
2. Transmisión de datos
3. Fin de la conexión de enlace

### Servicios sin conexión

No garantizan la entrega fiable de tramas, respecto a los servicios con conexión, sólo detectan los errores de la transmisión y se descartan tramas erróneas, pero ninguna acción más (ni se retransmiten las tramas erróneas o perdidas, ni se descartan las duplicadas, ni se confirman, ni se ordenan - sólo orden de llegada -, etc.).

No hay fases de establecimiento o fin de conexión, considerando cada trama independiente del resto.

## Protocolos de la capa de enlace

### Protocolo HDLC : High-level Data Link Control

Protocolo de enlace que ofrece servicios orientados a conexión.

Modos de funcionamiento :

* **NRM (modo normal de respuesta, Normal Response Mode)**. Modelo de comunicación half-duplex maestro-esclavo. Las estaciones esclavas sólo transmiten si la maestra se lo ordena.
* **ABM (modo equilibrado asíncrono, Asynchronous Balanced Mode)**. Modelo de comunicación full-duplex computador-computador. Todas las estaciones tienen la misma categoría y todas pueden transmitir en cualquier momento a través del enlace.

Tipos de tramas:

Los distintos tipos de **tramas numeradas** son:

* **Información**. Transportan datos a la capa superior.
	+ Números de secuencia N(S). Se utiliza para control de errores y flujo, pueden ser de 3 bits (conexión normal,

	2
	3

	=
	8

	{\displaystyle 2^3=8}

	 identificadores de 0 a 7) o de 7 bits (conexión extendida,

	2

	7

	=
	128

	{\displaystyle 2 ^{7} = 128}

	 identificadores de 0 a 127).
	+ Números de confirmación N(R). Contiene el identificador de la siguiente trama que se espera recibir. Se utiliza para enviar confirmaciones superpuestas (técnica de piggy-backing), con conexión es de tipo full-duplex, se puede adjuntar la confirmación a los datos que viajan en sentido contrario, si dicho tráfico no existe, las confirmaciones deben enviarse en tramas de confirmación explícitas.
	+ Bit P/F (Pregunta/final). Se utiliza sobre todo en modo NRM (el maestro pone el bit P/F a 1 para indicar al esclavo que debe confirmar la trama) y cuando no se recibe la confirmación de una trama y expira el temporizador.

* **Supervisoras**. Confirman tramas y administran el control de flujo y de errores.
	+ Tramas de Tipo RR (Receptor Ready, receptor preparado). Es una trama de confirmación (similar a ACK, las confirma en caso de no existir tráfico en sentido contrario), con N(S) id de la siguiente trama que se espera recibir.
	+ Tramas de Tipo REJ (Reject, rechazo). Es una trama de confirmación negativa (similar a NAK) para implementar el mecanismo RQ continuo con retroceso-N.
		- Cuando el receptor recibe una trama errónea, devuelve una trama REJ, indicando en el N(R), el identificador de la siguiente trama que espera recibir. El receptor descartará todas las tramas recibidas a continuación, hasta recibir la trama indicada en N(R).
		- El emisor debe retransmitir todas las tramas, a partir la trama indicada en N(R).
	+ Tramas de Tipo SREJ (Selective Reject, rechazo selectivo). Es una trama de confirmación negativa (similar a NAK) para implementar el mecanismo RQ continuo con repetición selectiva.
		- Cuando el receptor recibe una trama de información errónea, devuelve una trama SREJ, indicando en el N(R), el identificador de la trama que debe retransmitir el emisor.
		- El emisor debe retransmitir sólo la trama indicada en N(R).
	+ Tramas de Tipo RNR (Receptor Not Ready, receptor no preparado). Se utiliza para controlar el flujo: permite al receptor indicar al emisor que suspenda temporalmente el envío de tramas. Esta trama confirma todas las tramas de información anteriores a la trama indicada en (R), pero sin incluir ésta.
		- Cuando el receptor está en condiciones de recibir nuevas tramas de información, debe enviar una trama supervisora de tipo RR.
		- Al recibir una trama RNR, el emisor debe detener inmediatamente el envío de nuevas tramas de información.

Por otro lado, tambien exisiten **tramas sin numerar**. Su información va sin numerar y se encargan de conectar, desconectar, confirmar tramas sin numerar, rechazar las tramas con formato incorrecto y reiniciar la conexión. Los tipos de tramas sin numerar son: Set NRM, Set ABM, Set NRM Extended, Set ABM Extended, DISConect, Unnumered Ack, Unnumered Information, FRaMe Reject (formato incorrecto), ReSET.

### Protocolo PPP (Point-to-Point Protocol)

Protocolo de enlace sin conexión basado en HDLC, con formato de trama similar a HDLC pero solo ofrece servicios sin conexión. Se utiliza parsa encapsular tráfico IP (u otros protocolos de red) sobre enlaces punto a punto, por ejemplo: conexión ADSL (PPPoE = PPP over Ethernet, PPPoA = PPP over ATM) o telefónica mediante módem convencional entre el usuario y su proveedor de acceso a Internet (ISP).

Funciones de PPP:

* **Control del enlace**. Permite realizar el establecimiento y configuración de la conexión de enlace, permite negociar algunas opciones de la conexión (tam.max de la trama, protocolo de autenticación realizado...). Se realiza mediante protocolo LCP (Link Control Protocol).

* **Autenticación del usuario**. Permite al usuario autenticarse en el proveedor de acceso a Internet (ISP) mediante un nombre de usuario y una contraseña. Se realiza mediante PAP (Password Authentication Protocol) y CHAP (Challenge Handshake Authentication Protocol).

* **Gestión del protocolo de red**. Permite negociar la dirección IP del cliente. Se realiza mediante IPCP (IP Control Protocol).

### Protocolo LLC (Logical Link Control)

Protocolo de enlace de las redes de área local (LAN). Está descrito en el estándar IEEE 802.2 y ofrece tanto servicios orientados a conexión como sin conexión, aunque IP sobre LLC utiliza únicamente servicios sin conexión.

La cabecera de LLC tiene las direcciones de destino y origen de 1B cada una, 1B o 2B de control como HDLC, 1B con un código de organización (0 para TCP/IP) y 2B con el tipo de protocolo encapsulado en la capa superior (0x0800 para IP ó 0x0806 para ARP).

Ethernet II puede especificar el tipo de protocolo (en vez de la longitud) y no hace falta usar LLC. En una red WiFi siempre se usa LLC.

## Redes de área local (LAN)

Son redes de carácter privado para interconectar dispositivos en oficina, hogar o edificio. Suelen abarcar distancias desde decenas a centenas de metros.

Pueden ser de dos tipos:

* Redes LAN de canal compartido (o de difusión). Todos los dispositivos reciben todos los mensajes. Las topologías más comunes son la topología en bus, en anillo o en estrella (con hub de cable o AP inalámbrico).

En este tipo de redes se producen colisiones cuando dos o más estaciones acceden de forma simultánea al medio de transmisión compartido, por lo que se necesitan de mecanismos de **control de acceso al medio** (Media Access Control, **MAC**) para evitar o resolver este problema de las colisiones.

* Redes LAN conmutadas. Los paquetes solo llegan a su destinatario. Suelen presentar una topología en estrella con un switch.

El protocolo de referencia de la redes LAN está descrito en el estándar IEEE 802.2 y divide la capa de enlace en dos subniveles: control de enlace lógico (LLC, Logical Link Control) y control de acceso al medio (MAC, Media Access Control).

### Redes LAN Ethernet

Ethernet está estandarizado en IEEE 802.3. Distintas versiones usan distintos cables.

Puede ser usado para redes de difusión o conmutadas así que usa un protocolo de control de acceso al medio (**CSMA/CD**) para evitar colisiones, que consiste en transmitir si no hay nadie más transmitiendo y si se detecta una colisión volver a intentarlo después de un tiempo aleatorio llamado periodo de contienda (en un rango creciente con el nº de colisiones consecutivas).

Para detectar colisiones hay que estar retransmitiendo durante un mínimo de tiempo (51,2 μs normalmente) por eso el tamaño de trama mínima de Ethernet es de 64B (18B de los cuales son de cabecera).

Las tramas Ethernet empiezan con el byte 10101010 repetido 7 veces seguido del byte 10101011 (SFD). Esto se hace para sincronizarse y delimitar el inicio.

Luego vienen las **direcciones MAC** de destino y origen (6B cada una), 2B indicando la longitud (≤1500) o el tipo (>1500, 0x0800 IP, 0x0806 ARP), entre 46B y 1500B de datos con relleno si es necesario y por último 4B de redundancia para detección de errores (FCS).

La dirección MAC, Ethernet, física o hardware son lo mismo. Puede ser individual (unicast, 1er byte par), grupal (multicast, 1er byte impar) o de difusión (broadcast, FF:FF:FF:FF:FF:FF). Si el 7º bit es 0 la MAC ha sido asignada por el fabricante.

Como Ethernet puede funcionar a distintas velocidades al establecer la conexión se autonegociará para determinar la mayor velocidad que pueden soportar todos los dispositivos conectados.

Hay dos tipos de **switch**:

* Almacenamiento y envío (store-and-forward). Guarda la trama, la descarta si es errónea y la reenvía. Permite conectar dispositivos a varias velocidades.
* Truncamiento (cut-through). Lee la dirección MAC que aparece al principio de la trama y la va reenviando. Sufre poco retardo.

Los switches tienen una tabla que asocia a cada puerto una dirección MAC y un timestamp. Conforme le llegan mensajes va asociando las direcciones MAC a los puertos correspondientes. Si no sabe dónde enviar un mensaje lo envía por todos. Pasado un tiempo (~60s) se borra la entrada.

Para evitar bucles los switches ignoraran conexiones redundantes usando el protocolo de árboles recubridores (STP).

Un **dominio de colisión** es un conjunto de máquinas que pueden colisionar entre ellas. Una colisión dentro de un dominio afecta a todas las máquinas.

Para ampliar redes 10BASE2 o 10BASE5 se pueden usar repetidores (no más de 4 seguidos). Para ampliar redes 10BASE-T o 100BASE-TX se pueden usar hubs (no más de 4 o 2 respectivamente). Se pueden ampliar redes 100BASE-TX y 1000BASE-TX con tantos switches como se quiera.

### Redes LAN inalámbricas (WiFi)

Las principales tecnologías de redes inalámbricas son:

* BlueTooth: ~10m de alcance. 2Mbps
* WiFi: ~100m de alcance. 150Mbps
* WiMAX: ~80km de alcance. 75Mbps
* UMTS (3G): ~200km de alcance en buenas condiciones. 7Mbps-40Mbps(HSPA+).
* LTE (4G): 100km-500km de alcance. 320Mbps de bajada, 80Mbps de subida.

El WiFi está estandarizado en IEEE 802.11.

Las redes WiFi pueden ser:

* Con infraestructura: hay un AP (punto de acceso) que hace de hub.
* Sin infraestructura (ad-hoc): los equipos se conectan entre sí.

Un **BSS** (conjunto básico de servicios) está formado por un conjunto de estaciones y posiblemente un AP. Se identifican con el BSSID, que si hay un AP es su MAC.

Un **ESS** (conjunto de servicios extendido) es un conjunto de BSSs unidos por sus APs. Se identifican con el ESSID.

En als redes WiFi no es posible utilizar CSMA/CD debido a la dificultad de detectar colisiones. La técnica MAC usada es la **DFC** (Distributed Coordination Function).

   Se definen dos tiempos SIFS<DIFS.

Cuando un equipo quiere emitir escucha el medio durante DIFS, si está libre durante ese tiempo entonces transmite. Si no, espera a que lo esté y vuelve a esperar DIFS más un tiempo aleatorio (contienda).

El receptor, después de un tiempo SIFS, envía confirmación (ACK).

En las redes inalámbricas aparece un problema adicional de colisión, llamado **problema de la estación oculta**, y es que puede que no detectemos un dispositivo que está transmitiendo al mismo dispositivo que queremos transmitir porque está muy lejos de nosotros. Por ello lo primero que se hace en cada transmisión es una petición para enviar (RTS, request to send) y esperar a recibir confirmación (CTS, clear to send).

Las tramas WiFi tienen el siguiente formato: 2b de versión, 2b de tipo (datos, control o gestión), 4b de subtipo (RTS, CTS, ACK,...), 2b para saber si la trama viene y/o va a un AP, 1b para decir si quedan más mensajes por enviar, 1b para indicar si es es una retransmisión, 1b para indicar si el dispositivo se pondrá en modo ahorro de energía, 1b de coordinación, 1b para indicar que hay algún mecanismo de seguridad, 1b para indicar que las tramas están ordenadas. Luego vienen 2B que indican cuántos microsegundo durará la transmisión, 4 direcciones de 6B cada una para guardar las MAC de destino, origen, el BSSID destino y el BSSID origen (si son distintos), 2B indicando el fragmento y trama, entre 0B y 2312B de datos y 32b de comprobación.

Si los APs están conectados por Ethernet se usan tramas Ethernet con las MAC de los dispositivos, no con las de los APs.

## Redes de área extensa (WAN)

El tipo de red WAN usado en la actualidad es el ATM (Asynchronous Transfer Mode). ATM es una red de conmutación con paquetes (o celdas) de tamaño fijo muy pequeño (53B). Todos los paquetes siguen la misma ruta y se entregan en orden. No se garantiza la corrección pero se usan técnicas de calidad de servicio.

## Tecnologías de acceso residencial

   El **módem** codifica los datos digitales en una señal analogica y se transmite por la línea telefónica.

El **ADSL** transmite los datos digitales por los cables telefónicos en una frecuencia distinta a la que usan los teléfonos. Usa multiplexación FDM con 256 canales independientes de ~4KHz. Transmite analogicamente usando 4PSK o QAM. ADSL2+ usa 512 canales de ~2KHz.

Los módems de cable son el ADSL de la televisión por cable.

La **fibra óptica** usa cables totalmente distintos y puede llegar hasta el nodo (FTTN), la cabina (FTTC), el edificio (FTTB) o la casa (FTTH).