Tema 5 - Capa de Enlace

Introducción y Servicios


📖
La capa de enlace de datos tiene la responsabilidad de transmitir los datagramas de un nodo al adyacente a través de un enlace
📔
Terminología
  • Nodos → Routers y Hosts
  • Enlaces → Canal de comunicación que conectan nodos adyacentes a lo largo de caminos. Hay tres tipos de enlaces (cableados, inalambricos, LANs)
  • Trama/Frame → Este es el paquete de la capa de enlace que encapsula a un datagrama
  • NIC Network Interface Controller, La tarjeta de red
📍
Un datagrama, cuando atraviesa una red, puede pasar por diferentes tipos de enlaces: Ethernet (IEEE 802.3), Wifi (IEEE 802.11) o Frame relay
💡
Cada protocolo de la capa de enlace puede proporcionar unos servicios
📜
El estándar IEEE 802 se refiere a una familia de estándares para las redes LAM y MAN
ℹ️
Servicios de la capa de enlace
  • Entramado → Encapsula el datagrama en una trama: le añade una cabecera y una cola
  • Acceso al enlace → Proporciona un canal de acceso y la MAC de las cabeceras para identificar el origen y destino
  • Entrega fiable → Emplea mecanismos de detección de errores, sobretodo en los enlaces inalámbricos
    • Detección de errores → El receptor solicitará el reenvío de la trama cuando identifica un error
    • Corrección de errores → El receptor puede corregir en destino algunos errores de bit
  • Control de flujo → Regula el envío de datos entre nodos adyacentes
  • Comunicación semi-duplex y full-duplex
    • Semi-duplex → Ambos nodos son receptor y emisor, pero no de forma simultánea
    • Full-duplex → Ambos nodos pueden ser receptores y emisores simultáneamente
🛠️
Implementación de la capa de enlace
La capa de enlace se implementa en todos los nodos de comunicación (hosts, routers y switches)
 
La implementación de la capa de red involucra al hardware (tarjeta de red), software (drivers de red del SO) y firmaware (software dentro de la tarjeta de red)
📡
Comunicación entre adaptadores de red
Tareas del emisor
  • Encapsular el datagrama en una trama
  • Añadir los bits de cotrol de errores, rdt, flujo, etc.
Tareas del receptor
  • Comprobar si hay errores mirando los bits de control
  • Desencamsular el datagrama y pasarlo a capa superior

Detección y corrección de errores


📔
Terminología
  • ED Error Detection
  • EDCError detection and Correction
📖
La detección de errores se basa en añadir información redundante de los datos en varias partes del paquete, añadiendo un hash de esta información. Cuando el paquete llega al receptor, recalculará el hash de los datos, y lo comprobará con la el hash almacenado en el paquete
🔢
Comprobación por paridad
Este mecanismo de detección de errores consiste en añadir un bit al final de los datos. Este bit contendrá el valor:
  • 1 → Si el número de 1’s en los datos es par
  • 0 → Si el número de 1’s en los datos es impar
notion image
💡 Tiene un 50% de probabilidades de detectar un error
 
Método de paridad bidimensional
Realiza la conprobación de paridad en cada fila y en cada columna
Este método es capaz de corregir un error cuando es detectado
notion image
🔁
Verificación por redundancia cíclica - Cyclic Redundance Check (CRC)
Este método consiste en concatenar a los datos DD, un valor RR tal que al dividir la concatenación de ambos entre un número GG (previamente acordado entre ambos host) la división debe ser exacta
Este método es muy usado debido a su simpleza y su capacidad de detectar rachas de errores. Ejm: Ethernet, WIFI, ATM
 
Funcionamiento
  • Sea DD los datos a transmitir, siendo de dd bits
  • Sea RR el resto de la división, que mide rr bits
  • Sea GG el divisor exacto de concat(D,R) al cual se le impone que si bit más significativo sea 1 y que mida: g=r+1g=r+1
Usando aritmética de módulo 2 sin acarreo (esto hace que las operaciónes: suma, resta y xor, den todas el mismo resultado)
En esta aritmética, el valor de RR coincide con el resto de la división entre DD y GG
Cálculo del CRC
Cálculo del CRC

Protocolos de acceso múltiple


🔌
Enlaces punto a punto
Este tipo de enlaces de red está compuestos por un único emisor y un único receptor
Protocolos
  • Protocolo Punto a Punto (PPP)
  • Protocolo de Control de Enlace de Datos de Alto Nivel (HDLC)
📡
Enlaces de difusión (broadcast link)
Este tipo de enlaces de red está compuesto por multiples emisores y receptores, todos conectados a través de un canal compartido
Protocolos
  • Ethernet
  • LAN inalámbrica
⚠️
Problemas de acceso múltiple
Un protocolo para un canal de difusión como debería garantizar y establecer las siguientes reglas:
  • Todo el mundo debe tener la oportunidad de hablar
  • No hablar hasta que te hablen
  • No monopolizar la conversación
  • Pedir el turno de palabra
  • No interrumpir cuando alguien habla
  • No quedarse dormido cuando alguien te habla
📔 Se denomina colisión, al suceso donde un nodo recibe varias tramas a la vez
🌈
Protocolo de acceso múltiple ideal
  • Cuando sólo un node quiere transmitir, debería poder hacerlo usando la máxima capacidad del canal
  • Cuando varios nodos quieren transmitir, cada uno debería tener una porción equitativa del canal
  • No haría falta un nodo para coordinar la transmisión
  • No hay relojes de sincronización
  • Sea sencillo de implementar

Tipos de protocolos de acceso múltiple

Protocolos de particionamiento del canal

Time Division Multiple Access (TDMA)
A cada nodo se le asigna un espacio temporal de longitud fija donde puede colocar sus datos.
🛑 Cuando un nodo no hace uso del enlace, ese slot se queda vacío
📻
Frequency Division Multiple Access (FDMA)
A cada nodo se le asigna una banda de frecuencia concreta que deberá usar para transmitir sus datos
🛑 Cuando un nodo no hace uso del enlace, esa banda se queda vacía
📐
Code Division Multiple Access (CDMA)
Cada nodo utiliza una codificación diferente. Dicha codificación se basa en la construcción de vectores, los cuales luego pueden separarse en sus diferentes componentes

Protocolos de acceso aleatorio

🏖️
ALOHA con particiones
  • El canal está dividido en slots que cualquier nodo puede utilizar cuando lo necesite
  • Los nodos, cuando necesitan enviar datos, esperan al inicio del siguiente slot
  • Si cuando un nodo comienza a transmitir, detecta una colisión, para de emitir, y si tras esperar un tiempo aleatorio, el canal está libre, puede transmitir, si no, tiene que esperar
  • Si cuando se acaba un slot, si no ha habido colisiones en la transmisión, puede continuar emitiendo en el siguiente slot
💡 La eficacia de este protocolo se mide en la cantidad de slots aprovechados, frente al total de slots transcurridos.
🎯 Una probabilidad de éxito del 37% cuando el número de nodos es muy grande
🏖️
ALOHA puro sin particiones
Esta versión permite que se envien datos en cualquier momento, sin slots.
🛑 Desgraciadamente, este protocolo tiene una menor probabilidad de éxito en cada transmisión.
🎯 Una probabilidad de éxito del 18% cuando el número de nodos es muy grande
👂🏻
Carrier Sense Multiple Access (CSMA)
Este método consiste en que si el canal está ocupado al momento de transmitir, el nodo esperará un tiempo aleatorio y volverá a comprobar el estado del canal
⚠️ Pueden producirse colisiones debido al retardo de propagación de las señales
Collision Detection (CSMA/CD)
Este es un mecanismo que permite reducir el desperdicio del canal
La detección de colisiones es facil en redes cableadas, pero más complejo en redes inalámbricas

Protocolos de toma de turnos

📊
Protocolo de sondea (polling)
Se designa un maestro que irá asignando el canal a los nodos que necesiten
Para esto se usa un algoritmo cíclico (round robin)
🟢 Ventajas
  • Elimina colisiones y slots vacios
🔴 Desventajas
  • Retardo por sondeo
  • El maestro es un nodo crítico
🔂
Toma de turnos (token)
Existe una trama especial llamada Token, los nodos se van intercambiando el token en un orden predeterinado.
Cuando un nodo recibe el testigo (token) manda todas las tramas que tenga (hasta un número máximo) y luego lo pasa al siguiente
🟢 Ventajas
  • Descentralizado y eficiente
🔴 Desventajas
  • Todos los nodos son nodos críticos

Direccionamiento de la capa de enlace


📖
La capa de enlace utliliza direcciones MAC en lugar de direcciones IP para direcciónar el tráfico. Las direcciones MAC solo pueden ser utilizadas por dispositivos en la misma red
ℹ️
Detalles sobre las direcciones MAC
  • Cada adaptador de red tiene una dirección MAC única asignada por el fabricante
  • Las MACs tienen 48-bits y se suelen representar como 6 pares de números hexadecimales (XX-XX-XX-XX-XX-XX)
  • Habitualmente grabadas en el ROM
  • Normalmente, los primeros 24-bits definen al fabricante, y el resto los asigna libremente cada fabricante
  • La dirección FF-FF-FF-FF-FF-FF es la dirección de difusión en la LAN
ℹ️
Address Resolution Protocol (ARP)
Este protocolo se encarga de traducir direcciones IP a MAC. Cada nodo de una red tiene una tabla ARP. Las entradas de la tabla tienen un formato tal que: ip:mac:ttl (en este caso el TTL significa el tiempo de vida de la entrada, osea, trascurrido cuanto tiempo debe pasar hasta que el host olvida este dispositivo y debe volver a consultar los datos (normalmente 20 mins.))
 
Los paquetes ARP de solicitud contienen:
  • La IP y MAC de origen
  • La IP de destino (la que queremos saber su MAC) y MAC de broadcast (para que todos los hosts lean el paquete)
Los paquetes ARP de respuesta contienen
  • La IP y MAC de origen
  • La IP y MAC de destino
 
Cuando se recibe una respuesta a un paquete ARP, el host que lo preguntó, lo almacena en su tabla hasta que la entrada se vuelve obsoleta
 
Si la IP de destino está en otra subred, entonces la MAC del paquete será la del router gateway de la subred de origen, y este paquete irá actualizando su MAC de destino en cada subred que atraviese hasta alcanzar el destino final

Conmutadores de capa de enlace (Switch)


🔀
Switch
Este es un dispositivo de capa de enlace cuya función es interconectar dos o más segmentos de la misma red partir a partir de la MAC de destino.
  • Se utilizan para compensar las diferencias de velocidades entre diferentes enlaces
  • Filtra el tráfico, mandando las tramas solo al segmento correspondiente de la red
  • Son transparentes en la red. Los hosts no perciben la presencia de este dispositivo en la red
  • No necesitan ser configurados. Plug-and-Play
  • Tienen auto-aprendizaje, el cual consiste en aprovechar los paquetes de los que es intermediario para aprovechar y aprenderse las MACs del emisor y la interfaz por la que entró antes de reenviarlo
  • Tiene conexión directa con cada host
  • Son capaces de gestionar múltiples transmisiones simultaneas sin colisiones
  • Utilizan el protocolo ethernet en cada enlace
  • Tienen una tabla ARP (suele usar TLLs de 30 mins.)
⚔️
Switches frente a routers
Routers
  • Son dispositivos de capa de red
  • Implementan tablas de enrutado
Switches
  • Son dispositivos de capa de enlace
  • Implementan tablas de MACs
🌐
Redes de Area Local Virtuales (VLAN)
Los switches pueden ser configurados para aislar una serie de hosts dentro de una misma red al margen del resto de dispositivos conectados al switch
notion image
🟢 Ventajas
  • No se realiza difusión donde no hace falta
  • Se puede gestionar el acceso que tiene cada host al resto de la red
  • Se pueden configurar en base a la interfaz del switch por la que se conecta un host, o por la MAC del propio host
  • Se pueden conectar múltiples switches entre sí

Ethernet


🔌
Actualmente, ethernet es la tecnología dominante en las redes LAN gracias a:
  • Sencillez de implementación y precio bajo
  • Fue una de las primeras en adoptarse
  • Velocidades de 100Mbps - 10Gbps
  • Usa par trenzado y ficha óptica
  • Tiene retrocompatibilidad
Su mayor competidor es el protocolo WIFI (IEEE 802.11)
 
Actualmente se usa una topología de estrella con un switch como centro de la red
🔌
Concentrador
Esto son un dispositivo de capa física. Sirven para poder ampliar una red in necesidad de cortar ni empalmar cables.
  • No tienen buffer para las tramas
  • Las tramas pueden colisionar con otras en el concentrador
🏗️
Estructura de la trama ethernet
notion image
Preámbulo (8 Bytes)
Este campo se utiliza para sincronizar los relojes entre el emisor y receptor
Este campo consta una secuencia de 7 Bytes seguida de un último Byte:
10101010 (x7) + 10101011 (x1)
  • MAC destino (6 Bytes)
  • MAC origen (6 Bytes)
Tipo (2 Bytes)
Permite saber el protocolo de capa superior (capa de red)
Datos (min. 46 Bytes)
Tiene un valor mínimo de 46 Bytes por lo que si los datos no alcanzan esta longitud, se introduciran datos de relleno. Los cuales serán eliminados por el protocolo IP gracias al campo longitud
  • CRC (4 Bytes)
ℹ️
Características de Ethernet
  • No orientado a conexión (sin acuerdo previo)
  • No fiable (no hay envío de ACKs)
Si falla una transmisión, dependerá de la capa de transporte detectar dichos errores y solicitar la retransmisión (TCP)
🕷️
CSMA/CD en Ethernet
Este protocolo se implementa en Ethernet cuando el host se conecta a un concentrador.
Este protocolo funciona tal que:
  1. El NIC encapsula el datagrama en una trama y la coloca en el buffer de salida.
  1. El NIC sondea el enlace durante 96 periodos
      • Si el enlace está inactivo transmite la trama
      • Si el enlace está activo esperará a que quede libre
  1. Mientras transmite, escucha si hay colisiones
  1. Si se detecta una colisión, deja de transmitir la trama y transmite una señal de interferencia (jam de 48-bits)
  1. Después de la colisión entra en la fase de espera exponencial (backoff exponencial)
📔 Conceptos
  • Periodo de bit → Tiempo que se tarda en transmimtir 1 bit
  • Señal de interferencia (Jam) → Tiene como objetivo anunciar a los receptores de que se ha producido una interferencia para que desechen la trama
  • Backoff exponencial → Trata de ajustar el tiempo entre intentos de retransmisión
 
Eficiencia
efficiency=11+5tpttefficiency = \frac{1}{1+ \frac{5t_{p}}{t_t}}
Siendo
  • tpt_p = El tiempo de propagación de la señal entre dos nodos
  • ttt_t = El tiempo para transmitir una trama Ethernet de tamaño máximo
🏷️
Nomenclatura del estandar de las tecnologías Ethernet
100Base-TX
  • 100 → Velocidad
  • Base → Tipo de tráfico
  • TX → Tipo de medio físico
📜 Estandares utilizados
  • Cable coaxial → 10Base-2 , 10Base-5
  • Par trenzado o UPT → 100Base-T
  • Fibra → 100Base-FX , 100Base-SX , 100Base-BX
  • Ethernet Gigabit → 10GBase-T
0️⃣
Codificación en ethenet
  • Las primeras versiones (10Base-5 y 10Base-F) utilizaban la codificación manchester
  • Las versiones moderna (10GBase-T) utilizan la codificación 8B/10B

PPP


📖
Los enlaces punto a punto son aquellos que solo tienen un emisor y un receptor por en cada extremo del enlace
ℹ️
Point-to-Point Protocol
Permite establecer una comunicación a nivel de capa de enlace TCP/IP entre dos hosts
Características
  • Realiza el entramado de paquetes (encapsulación de segmentos en tramas)
  • Realiza el transporte de datos de cualquier protocolo de red
  • Puede ser usado en diferentes tipos de enlaces
  • No prohibe usar ningún patrón de bits en el segmento
  • No existe corrección de errores, eso se delega a los protocolos de capas superiores
  • No hay control de flujo
  • No garantiza orden, pero las entrega en orden casi siempre
  • Proporciona autenticación a través de una clave de acceso
  • Asignación dinámica de direcciones IP: asigna una IP a cada cliente cuando se conectan al proveedor. La IP se conserva hasta que termina la conexión y luego se asigna a otro cliente
🏗️
Estructura de una trama de datos PPP
notion image
  • El primer y el último byte son patrones delimitadores de tramas
  • El byte de dirección están reservados para futuras ampliaciones, de momento contienen 11111111 y 00000001 respectivamente
  • Protocolo de capa superior (capa de red)
  • El campo info contiene el paquete de datos que va a ser enviado. Por defecto contiene 1500-bits pero es configurable
  • El campo check es para corrección de errores con CRC
Secuencias de escape
Para garantizar que se puede incluir cualquier patrón de bits en los datos, se utiliza la secuencia 01111101 sirve como secuencia de escape, de tal manera que cuando aparezca esta secuencia en los datos, quiere decir que aunque el siguiente bytes contenga el patrón delimitador de la trama, no significa que sea el fin de la trama, sino parte de los datos.
 
Si es el propio patrón delimitador el que aparece en los datos, entonces también se escapará, osea se pondrá la secuencia de escapa dos veces
🔢
Fases del protocolo PPP
  1. Establecimiento de conexión → Se negocian los parámetros del enlace y el método de autenticación usando el protocolo LCP (Link Control Protocol)
  1. Autenticación (opcional) → En esta fase se puede usar dos protocolos
    1. PAP (Password Authentication Protocol) → Texto claro, sin cifrar
    2. CHAP (Challenge Handshake Authentication Protocol) → Cifrado
  1. Configuración de la red → Si la capa de red usa IPCP para asignar la dirección IP
  1. Transmisión → Tansmisión de datos
  1. Terminación → Finaliza la transmisión (puede terminarse cuando se quiera)