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
EDC → Error 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
💡 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
🔁
Verificación por redundancia cíclica -Cyclic Redundance Check (CRC)
Este método consiste en concatenar a los datos D, un valor R tal que al dividir la concatenación de ambos entre un número G (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 D los datos a transmitir, siendo de d bits
Sea R el resto de la división, que mide r bits
Sea G 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+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 R coincide con el resto de la división entre D y G
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
🟢 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
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:
El NIC encapsula el datagrama en una trama y la coloca en el buffer de salida.
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
Mientras transmite, escucha si hay colisiones
Si se detecta una colisión, deja de transmitir la trama y transmite una señal de interferencia (jam de 48-bits)
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=1+tt5tp1
Siendo
tp = El tiempo de propagación de la señal entre dos nodos
tt = 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
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
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)
Autenticación (opcional) → En esta fase se puede usar dos protocolos
PAP (Password Authentication Protocol) → Texto claro, sin cifrar
CHAP (Challenge Handshake Authentication Protocol) → Cifrado
Configuración de la red → Si la capa de red usa IPCP para asignar la dirección IP
Transmisión → Tansmisión de datos
Terminación → Finaliza la transmisión (puede terminarse cuando se quiera)