Capítulo 6: Capa de enlace y LAN Flashcards
¿Qué 4 servicios puede ofrecer un protocolo de capa de enlace?
Los 4 servicios que puede ofrecer un protocolo de capa de enlace son:
- [F]
Framing
(entramado): un frame es un campo de datos donde se inserta el datagrama y una serie de headers. La estructura del frame la especifica el protocolo. - [A]
Acceso al enlace
: El protocolo MAC (Medium Access Control) especifica las reglas con las que se transmite un frame a un enlace. Sirve principalmente para cuando muchos nodos comparten un mismo enlace de broadcast. - [D]
Detección y corrección de errores
: A veces aparecen errores en los bits transmitidos debido a atenuaciones de señales o ruido electromagnético. En el nodo que transmite se incluyen bits de detección de errores en el frame, luego el nodo receptor tiene que hacer el chequeo de errores (similar al checksum de la capa de transporte). - [E]
Entrega confiable
: Garantiza que cada datagrama se mueva a través del enlace sin errores (similar a la idea de TCP). Esto puede lograrse con ACKs y retransmisiones. En general se usa en enlaces inalámbricos que son los más propensos a errores, no tanto en enlaces cableados.
¿Dónde se implementa la capa de enlace? ¿Cómo funciona este componente?
Mayormente, la capa de enlace se implementa en un adaptador de red, a veces conocido como Network Interface Card (NIC).
En el adaptador de red se encuentra el controlador de capa de enlace; generalmente es un único chip que implementa todos los servicios.
- En el lado
emisor
el controlador toma un datagrama, lo encapsula en un frame y luego lo transmite al enlace, siguiendo su protocolo de acceso. - En el
receptor
el controlador recibe el frame y extrae de allí el datagrama. Si la capa de enlace realiza una detección de errores, entonces el controlador del emisor es el que setea los bits de detección en el header del frame y es el controlador del receptor el que realiza la detección de error.
¿Cuáles son las 3 técnicas para detección y corrección de errores?
Las técnicas de detección y corrección de errores son 3:
- [CP]
Comprobaciones de paridad
: en un esquema de paridad par, el emisor simplemente incluye un bit adicional y selecciona su valor de modo que el número total de 1s en los D+1 bits que conforman los datos del datagrama sea par. En los esquemas de paridad impar, el valor del bit de paridad se selecciona de modo que exista un número impar de 1s. El receptor sólo necesita contar el número de 1s dentro de los D+1 bits recibidos. Si se está utilizando un esquema de paridad par y se encuentra un número impar de bits con valor 1, el receptor sabrá que se ha producido al menos un error de bit. Si se encuentra un número par no es garantía de nada, podría pasar que haya errores no detectados. - [CH]
Métodos basados en checksum
: en las técnicas de checksum, los D bits de datos se tratan como una secuencia de enteros de K bits. Un método simple de checksum consiste en sumar estos enteros de K bits y utilizar la suma resultante como bits de detección de errores. El receptor verifica el checksum calculando el complemento a 1 de la suma de los datos recibidos y comprobando si el resultado tiene todos los bits en 1. Si alguno de los bits es un 0, hubo un error. - [CRC]
Comprobación de redundancia cíclica (CRC)
: es una técnica de detección de errores muy utilizada hoy día. Está basada en los códigos de comprobación de redundancia cíclica (CRC), también conocidos como códigos polinómicos, dado que se puede ver la cadena de bits que hay que enviar como si fuera un polinomio cuyos coeficientes son los valores 0 y 1 de la cadena de bits.
Considerando la secuencia de datos D de d bits que el nodo emisor quiere transmitir al nodo receptor, el emisor y el receptor tienen que acordar primero un patrón der + 1
bits, conocido como generador, que denominaremos con la letra G. El bit más significativo de G debe ser 1. Para una secuencia de datos, D, el emisor seleccionará r bits adicionales, R, y se los añadirá a D, de modo que el patrón ded + r
bits resultante sea exactamente divisible por G utilizando aritmética módulo 2. El proceso de comprobación de errores con los códigos CRC es, por tanto, muy simple: el receptor divide los d + r bits recibidos por G. Si el resto es distinto de cero, el receptor sabrá que se ha producido algún error; en caso contrario, se aceptarán los datos como correctos.
¿Qué tipos de enlaces de red hay? Explicar cada uno.
Existen 2 tipos de enlaces de red: enlaces punto a punto y enlaces de difusión (broadcast).
-
Enlace punto a punto
: compuesto por un único emisor en un extremo del enlace y un único receptor en el otro extremo. Existen muchos protocolos de capa de enlace para enlaces punto a punto; dos de esos protocolos son el Protocolo punto a punto (PPP, Point-to-Point Protocol) y el protocolo de Control del enlace de datos de alto nivel (HDLC, High-level Data Link Control). -
Enlace de broadcast
: puede tener múltiples nodos emisores y receptores, todos conectados a un único canal de broadcast compartido. Se conoce como problema de acceso múltiple al problema de cómo coordinar el acceso a un canal de broadcast compartido.
Cuando se produce una colisión, todos los involucrados se pierden y el canal de broadcast está siendo desaprovechado.
Es responsabilidad del protocolo de acceso múltiple el coordinar las transmisiones de esos nodos activos.
¿Cómo se clasifican los protocolos de acceso múltiple? Explicar cada categoría.
Los protocolos de acceso múltiple se pueden clasificar en 3 categorías: protocolos de particionamiento de canal, protocolos de acceso aleatorio y protocolos de toma de turnos.
-
Protocolos de particionamiento del canal
: Time-division multiplexing (TDM) y frequency-division multiplexing (FDM) son dos técnicas que pueden usarse para particionar el ancho de banda de un canal broadcast entre todos los nodos.TDM
divide el tiempo en frames y luego subdivide cada uno en N slots. Cada slot se asigna entonces a uno de los N nodos. Cuando un nodo tenga un paquete para enviar, transmite los bits durante su slot asignado, dentro del frame TDM que se repite de forma cíclica. TDM elimina las colisiones y es equitativo. Sin embargo, presenta dos importantes inconvenientes. En primer lugar, cada nodo está limitado a una tasa, aunque sea el único nodo que tiene paquetes para transmitir. El segundo inconveniente es que un nodo siempre tiene que esperar a que le llegue el turno dentro de la secuencia de transmisión. Esa espera será obligatoria aún cuando sea el único nodo que tenga un frame que enviar.FDM
es parecido, divide los accesos en diferentes frecuencias y asigna cada frecuencia a uno de los nodos. Cada frecuencia tiene una fracción del ancho de banda del canal, por lo que si son pocos los nodos que transmiten, tiene los mismos problemas que TDM.
Un tercer protocolo de particionamiento del canal es el protocoloCDMA
(Code Division Multiple Access), que asigna una señal diferente para cada nodo, que funciona como un código. Cada nodo utiliza su código exclusivo para codificar los bits de datos a enviar. Distintos nodos pueden transmitir simultáneamente y conseguir que sus respectivos receptores decodifiquen correctamente los bits de datos codificados por el emisor aunque haya interferencias provocadas por las transmisiones realizadas por los otros nodos.
CDMA (Code Division Multiple Access) pertenece a la familia de protocolos de particionamiento del canal. En un protocolo CDMA, cada bit enviado se codifica aplicando XOR con otra señal, que es un código pseudoaleatorio y único para el usuario. Este código varía a una velocidad mucho mayor (conocida como chipping rate) que la secuencia de datos a transmitir.
-
Protocolos de acceso aleatorio
: cada nodo transmisor transmite siempre a la máxima velocidad del canal. Cuando se produce una colisión, cada uno de los nodos implicados en la colisión espera un tiempo aleatorio y luego retransmite su frame, repitiendo el procedimiento hasta que consiga pasar sin colisiones. Los protocolos de acceso aleatorio más comúnmente utilizados son los protocolos ALOHA y los protocolos de Carrier Sense Multiple Access (CSMA). El protocoloALOHA
requiere que todos los nodos sincronicen sus transmisiones para que estas comiencen al principio de una partición. Si un frame transmitido experimenta una colisión con una o más transmisiones de otros nodos, el nodo retransmitirá de forma inmediata con una probabilidad p. En caso contrario, el nodo esperará durante un tiempo equivalente al tiempo total de transmisión de un frame. Después de esta espera, transmitirá el frame con probabilidad p, o esperará (permaneciendo inactivo) durante otro período de tiempo igual al tiempo de transmisión de un frame con una probabilidad 1 - p.
EnCSMA
(Carrier Sense Multiple Access) la decisión de transmitir o no depende de los demás nodos. Se siguen dos reglas:
* “Escuchar antes de hablar” (carrier sensing): cada nodo escucha el canal antes de transmitir. Si actualmente se está transmitiendo un frame de otro nodo por el canal, se espera hasta detectar que no hay ninguna transmisión.
* “Si alguien comienza a hablar al mismo tiempo, dejar de hablar” (detección de colisiones): un nodo que esté transmitiendo escuchará el canal mientras dure la transmisión. Si detecta que otro nodo está transmitiendo un frame que interfiere con la suya, dejará de transmitir y esperará una cantidad aleatoria de tiempo antes de repetir el ciclo de detectar y transmitir si no hay actividad. -
Protocolos de toma de turnos
: lo que le falta aALOHA
yCSMA
es que el ancho de banda se distribuya equitativamente entre los nodos activos. Para esto se crearon los protocolos de toma de turnos. El primero es el protocolo desondeo
(polling), que requiere que se designe a uno de los nodos como nodo maestro. El nodo maestro va eligiendo cada uno de los nodos al estilo round-robin. Con este protocolo se eliminan las colisiones y las particiones vacías, consiguiendo una eficiencia mucho mayor a la de los de acceso aleatorio, aunque también presenta dos desventajas: el protocolo introduce un delay por lo que tarda el sondeo, y que si el nodo maestro falla entonces todo el canal dejará de estar operativo.
El segundo protocolo de toma de turnos es elToken-ring
protocol. El token es un pequeño frame de propósito especial que va siendo intercambiado entre los nodos en un determinado orden fijo. Cuando un nodo recibe el token, lo retiene solo en el caso de que tenga algo para transmitir; en caso contrario, reenvía inmediatamente el token al siguiente nodo. Si un nodo tiene frames que transmitir cuando recibe el token, envía hasta el número máximo permitido y luego reenvía el token al siguiente nodo. Este mecanismo es descentralizado y eficiente, aunque también tiene el problema de que el fallo de un nodo puede hacer que todo el canal quede inutilizable, o si un nodo se olvidara de liberar el token sería necesario invocar algún procedimiento de recuperación para hacer que vuelva a circular.
El tiempo de espera del token se puede acotar.
¿Qué es una dirección MAC? ¿Qué la caracteriza? ¿Para qué sirve?
- Una dirección MAC es una dirección de la capa de enlace que se asigna a las interfaces de red.
- La dirección MAC tiene 6 bytes de longitud, lo que da 2^48 posibles direcciones MAC.
-
No puede haber dos
adaptadores
con la misma dirección. - A diferencia de la dirección IP, la dirección MAC no cambia, sin importar el lugar físico en el que se encuentre el adaptador.
- Cuando un adaptador quiere enviar un frame, inserta la dirección MAC del adaptador de destino en el frame y luego lo envía a través de la red LAN. Entonces, cuando un adaptador recibe un frame, verifica que la dirección MAC de destino coincida con la propia. Si coincide, extraerá el datagrama y lo pasará hacia arriba por la pila de protocolos. Si no coincide, se descarta el frame.
- Existe una dirección MAC especial de broadcast para cuando se quiere que el frame lo reciban todos los adaptadores. En LANs con direcciones de 6 bytes es FF-FF-FF-FF- FF-FF.
Explicar el protocolo ARP (Address Resolution Protocol)
Address Resolution Protocol (ARP) se encarga de la traducción entre direcciones IP y direcciones MAC. ARP recibe como input una dirección IP que esté en la misma LAN y devuelve la correspondiente dirección MAC. Esto se necesita para enviar datagramas dentro de una misma subnet, porque quien envía solo tiene la dirección IP destino.
Cada host o router tiene en memoria una tabla ARP, que contiene las correspondencias entre las direcciones IP y las direcciones MAC. La tabla ARP también contiene un TTL que indica cuándo se eliminará cada correspondencia de la tabla.
Si la tabla no contiene actualmente una entrada para el nodo de destino, el emisor construye un paquete especial denominado paquete ARP que contiene varios campos, incluyendo las direcciones MAC e IP del emisor y el receptor. Se enviará un paquete de consulta ARP con este formato a todos los hosts y routers de la subred, para que chequeen si su dirección IP coincide con la dirección IP destino del paquete ARP. La que coincida enviará un paquete ARP de respuesta, y el mapeo se agregará a la tabla.
Un paquete ARP se encapsula dentro de un frame de la capa de enlace y así se sitúa, arquitectónicamente, encima de la capa de enlace. Sin embargo, un paquete ARP dispone de campos que contienen direcciones de la capa de enlace, por lo que se podría decir que es un protocolo de la capa de enlace, pero también contiene direcciones de la capa de red y, por tanto, podría también argumentarse que es un protocolo de la capa de red.
¿Qué es Ethernet? ¿Qué rol cumplen los campos CRC y Preamble del frame Ethernet?
Ethernet es la tecnología de LAN cableado más usada hoy en día.
El campo CRC (Cyclic Redundancy Check) sirve para que el receptor detecte los errores de bit en el frame. Cuando un frame no pasa la comprobación, el adaptador simplemente lo descarta, y el emisor no sabe si el frame que transmitió llegó a destino y pasó la comprobación. Esta ausencia de transporte fiable en la capa de enlace hace que Ethernet sea barato, pero también implica que el flujo de datagramas pasado a la capa de red pueda tener “huecos”.
El campo Preamble sirve para “despertar” a los adaptadores del receptor y sincronizar sus relojes con el reloj del emisor.
¿Cómo resuelven los switches de capa de enlace la situación en que llegan frames a una de sus interfaces de salida más rápido que la capacidad del enlace de esa interfaz?
Existe una situación donde los frames llegan a una de sus interfaces de salida más rápido que la capacidad del enlace de esa interfaz.
Para enfrentarse a este problema, las interfaces de salida del switch disponen de buffers, de forma muy parecida a como las interfaces de salida de un router disponen de buffers para los datagramas.
¿Qué característica tienen los switches de capa de enlace?
¿Qué funciones tienen?
¿Qué es la switch table y para qué sirve?
Los switches de capa de enlace son transparentes a los hosts y routers de una subnet, es decir que un host/router envía un frame sin saber que en el medio va a pasar por un switch.
Los switches tienen una función de filtrado donde se determina si un frame debe ser reenviado a alguna interfaz o descartado. También tienen una función de reenvío donde se determinan las interfaces a las que será enviado un frame.
Las funciones de filtrado y reenvío del switch se realizan utilizando la tabla de conmutación (switch table).
Una entrada de la tabla contiene una dirección MAC, la interfaz del switch que lleva hacia dicha dirección MAC y el instante en el que la entrada fue incluida en la tabla.
Cada vez que llega un frame al switch hay 3 posibilidades:
- No hay ninguna entrada en la tabla para su dirección MAC de destino. En este caso, el switch hace un broadcast del frame.
- Existe una entrada en la tabla que contiene la dirección MAC de destino, pero tiene asociada la misma interfaz en la que está. No hay necesidad de reenviar el frame a ninguna de las restantes interfaces, entonces el switch lleva a cabo la función de filtrado descartando el frame.
- Existe una entrada con la dirección MAC y tiene asociada una interfaz distinta a la que ya está. El switch hace el reenvío mandando el frame por el buffer de salida que precede a la interfaz de destino.
Explicar la propiedad de autoaprendizaje de los switches
La propiedad de autoaprendizaje de los switches significa que su tabla se construye de forma automática, dinámica y autónoma, sin intervención de un administrador de red ni de ningún protocolo de configuración.
El switch inicia con la tabla de conmutación vacía. Para cada frame recibido en una interfaz, el switch almacena en su tabla la dirección MAC de origen, la interfaz de la que procede y la hora actual. Estas entradas también tienen un TTL que depende de si se recibió algún frame para la entrada últimamente.
¿Cuáles son las 3 propiedades de la conmutación en la capa de enlace?
Las propiedades de la conmutación en la capa de enlace son 3:
- [EC]
Eliminación de las colisiones
: En una red LAN construida con switches (y sin hubs) no se desperdicia ancho de banda a causa de las colisiones. Los switches almacenan los frames en un buffer y nunca transmiten más de un frame a un segmento simultáneamente. - [EH]
Enlaces heterogéneos
: Dado que un switch aísla los enlaces entre sí, los distintos enlaces de una LAN pueden operar a velocidades diferentes y pueden utilizar diferentes medios físicos. - [G]
Gestión
: Si detecta que un adaptador está funcionando mal, puede desconectarlo automáticamente.
¿Qué problemas presentan las redes LAN jerárquicas y cómo se resuelven?
Generalmente las redes LAN están configuradas jerárquicamente, y esto tiene algunas desventajas:
- [FAT]
Falta de aislamiento del tráfico
: Aunque la jerarquía localiza el tráfico dentro de un mismo switch, el tráfico de broadcast tienen que atravesar toda la LAN. - [UIS]
Uso ineficiente de los switches
- [GUS]
Gestión de los usuarios
: Si un empleado se mueve entre distintos grupos, el cableado físico debe modificarse para conectar al empleado a un switch diferente.
Estas dificultades se pueden resolver utilizando un switch que soporte VLANs (Virtual Local Area Networks). Esto es un switch que permite múltiples redes locales virtuales definidas en una única infraestructura de red local física. Los hosts de una VLAN se comunican entre sí como si solo ellos estuvieran conectados al switch.
Explicar MPLS (Multi-Protocol Label Switching)
MPLS (Multi-Protocol Label Switching) es un mecanismo de transporte de datos que adopta etiquetas de longitud fija para etiquetar los datagramas IP y permitir que los routers los reenvíen basándose en las etiquetas, en lugar de en direcciones IP de destino. Entonces el router compatible con MPLS no necesita extraer la dirección IP de destino y realizar una búsqueda del prefijo con la coincidencia más larga dentro de la tabla de reenvío, sino que busca la etiqueta en la tabla directamente.
MPLS se usa para implementar VPNs (Virtual Private Network). Al implementar una VPN para un cliente, un ISP utiliza su red compatible con MPLS para conectar entre sí las diversas redes del cliente. MPLS puede usarse para aislar tanto los recursos como el direccionamiento de usuarios por la VPN del cliente con respecto a los de otros usuarios que también tengan que atravesar la red del ISP.