Resumen Redes 2
Resumen Redes 2
Resumen Redes 2
Vamos a ver como es el proceso de entrega de una capa de enlace a otra capa de enlace. El objetivo
básico de una capa de enlace es transferir los datos de la capa de red de un equipo a la capa de red
de otro equipo con el que tiene conexión directa.
Servicios:
1. Control de errores: Mensajes que se pierden, llegan duplicados o con errores. Hay técnicas detectoras de
mensajes con errores. Debe ser capaz de detectar errores en el envío, transmisión o recepción y debe ser
capaz de corregir los errores cuando se detecten.
2. Control de acceso al medio: Transferir los datos de la capa de red de un equipo a la capa de red de otro
equipo con el que tiene conexión directa. Si la conexión es de enlaces punto a punto, se debe garantizar el
envío de bits de un extremo a otro. Si la conexión es de enlaces de difusión, además hay que controlar el
acceso al medio compartido.
3. Control de flujo: Se usa para evitar que el emisor envíe más datos al receptor de los que éste es capaz de
almacenar para su posterior tratamiento. Tenemos protocolos como el de parada y espera y repetición
selectiva (ventana deslizante).
4. Comunicación
No utilizamos enrutamiento ya que la capa de enlace solo se utiliza en dispositivos punto a punto y no
tiene sentido utilizar enrutamiento ya que sabemos cuál es la ruta.
Tenemos códigos detectores (bits de paridad, etc) que detectan si hay errores pero no los corrigen, y
códigos correctores (código Hamming) que hacen una corrección completa.
Bits de paridad:
Se añade un bit de paridad al final del bloque de datos. 2 tipos:
o Paridad par (el nº total de unos es par)
o Paridad impar (el nº total de unos es impar).
Tiene una fiabilidad del 50% ya que si lo que variamos por ejemplo 2 números alomejor nos
sigue diciendo que el número de unos es par y sin embargo ha habido errores.
Sumar los datos que se van a transmitir y agregar un valor adicional, llamado checksum, que
se calcula a partir de estos. Cuando los datos se reciben, se vuelven a sumar y se verifica si el
checksum calculado coincide con el checksum recibido. Si no coinciden, se sabe que ha habido
un error en la transmisión.
Se dividían los datos, así que si por ejemplo tenemos 16 bits y lo que hacemos es cambiar el
orden cuando lo dividimos, por la propiedad conmutativa sabemos va a seguir dando lo mismo,
por lo que no detecta fallo, pero sí lo hay.
vm_uma
Códigos redundante cíclicos:
Se envían d bits de información + r bits redundantes. La trama de d+r ha de ser divisible por
un número predeterminado. Se establece un rango que debe dividir a d+r y cuando se envía la
transmisión tiene que seguir siendo divisible.
Puede haber problemas como la pérdida del paquete y la pérdida de la respuesta, así que vamos a
activar un temporizador (timeout) que se activa cuando el emisor envía una trama y si se cumple el
tiempo y no ha recibido la confirmación, reenvía la trama. Se enumeran las tramas por si llegan los
paquetes repetidos.
Es simple de implementar y es eficiente si los mensajes son de gran tamaño, normalmente no lo son por
tamaño limitado de memoria), si hay errores hay que retransmitir mucha información y en medios de
acceso múltiple la red no puede estar ocupada por mucho tiempo.
Pipelining:
Permite enviar más de un mensaje consecutivamente, sin necesidad de tener que esperar confirmaciones
vm_uma
anteriores. Se basan en el concepto de ventana deslizante.
Para el emisor la ventana es el conjunto de paquetes que se pueden enviar sin esperar confirmación. La
ventana se desplaza al recibir las confirmaciones. Para el receptor la ventana es el conjunto de
paquetes que debe estar preparado para recibir en cualquier momento.
Es más eficiente que parada y espera y solo se retransmiten aquellas tramas no confirmadas,
además pueden llegar fuera de orden. Es necesario un buffer para almacenar las tramas que
llegan fuera de orden.
Si recibe una trama fuera de orden, envía una petición (NAK, confirmación negativa) con la
trama que esperaba recibir. Tenemos también confirmación positiva acumulativa lo que
permite que al almacenar un ACK con un número de secuencia X permite al receptor confirmar
todas las tramas pendientes con número de secuencia <X.
En las redes de área local no se suelen usar enlaces punto a punto, sino enlaces multipunto, acceso
múltiple o de difusión.Es necesario un protocolo que controle el acceso de las estaciones conectadas a
ese enlace compartido. Ese control de los accesos lo lleva a cabo un protocolo MAC. Tenemos 2 tipos
de control de acceso:
Los controles centralizados tienen ventajas como mayor control de los accesos, lógica de acceso
relativamente sencilla y evita problemas de coordinación distribuidos. Sin embargo, tiene
inconvenientes como la poca tolerancia a fallos, ya que si el master (quien tiene el control) falla, se
acaba la red. Un ejemplo es el Bluetooth.
Rotación circular: cada estación tiene un turno para transmitir, que puede ser utilizado o no. en cualquier
caso, el turno pasará a la siguiente estación.Un método centralizado es el sondeo (polling) y un método
distribuido es el paso de testigo que es un método adecuado cuando varias estaciones tienen que transmitir
datos durante largos periodos de tiempo.
vm_uma
Reserva: es una estrategia de reserva donde el tiempo se divide en intervalos de tiempo discretos (como en
tdm). cuando una estación quiere transmitir, reserva intervalos de tiempo para un largo periodo. esta técnica
es válida para tráfico continuo.
Competición: todas las estaciones compiten por acceder al medio (así que puede haber colisiones). es una
técnica válida para tráfico a ráfagas y tienden a deteriorar las prestaciones en condiciones de alta carga.
En las redes cuya estrategia es el acceso por competición pueden existir colisiones. Una colisión se
produce cuando dos tramas se transmiten simultáneamente por el mismo enlace, es decir, las señales se
superponen.
Una solución es la detección portadora (carrier sense) que consiste en detectar la señal portadora
antes de transmitir para determinar si el enlace está en uso o no antes de enviar. Si no usamos la
detección portadora, las estaciones transmiten libremente y después comprueban si han tenido
éxito.
Pero entonces puede seguir habiendo colisiones ya que 2 canales A y B hacen la comprobación de que
no hay ninguna señal y ambos lanzan su trama, así que colisionan. Si se detecta una colisión, se espera
un tiempo aleatorio y repite su esquema. Vamos a usar la técnica CSMA:
vm_uma
No-persistente: espera un tiempo aleatorio antes de volver a detectar si el canal está libre. intenta evitar que
dos o más tramas que estaban a la espera, empiecen a transmitirse justo a la vez.
P-persistente: hacemos un polling para ver cuando el canal esté libre. vamos a establecer una probabilidad
‘p’ (probabilidad que tienes de transmitir cuando el canal está libre). cuando el canal está libre se genera un
número aleatorio ‘r’ y si r <= p entonces se transmite la trama. en caso contrario, espera un tiempo fijo y
vuelve a generar un ‘r’ aleatorio.
Protocolo CSMA-CD
Se basa en que las estaciones abortan la transmisión tan pronto como detectan una colisión. En
los protocolos anteriores las tramas se transmiten enteras.
Cuando se quiere transmitir miramos primero si el canal está libre, si está, lo transmitimos. Si
el canal está ocupado, se espera hasta que esté libre.
Si se detecta una colisión, se transmite una señal corta de interferencia para informar al resto
de estaciones (señal de jamming). Después de esta señal, se espera un tiempo aleatorio antes
de empezar de nuevo.
Se utiliza para definir las esperas en caso de colisión. Si el paquete ha colisionado n < 16 veces seguidas se
aplica el siguiente algoritmo:
Se selecciona un k aleatorio entre {0, 1, 2, …, 2^m} donde m = min[10, n]. El nodo espera
512*k* (tiempo 1 bit).
vm_uma
Si hay pocas colisiones, la espera es pequeña, pero si hay muchas, la espera va creciendo
poco a poco.
Si el tiempo fuera fijo y muy grande, habría pocas colisiones, pero las que hay introducirán
mucho retraso. Si el tiempo de espera fuera fijo y pequeño, habría muchas colisiones.
Como consecuencia las tramas deben ser lo suficientemente largas para que se detecte una
colisión antes de que finalice la transmisión. En caso contrario, las prestaciones son las mismas
que CSMA.
Distinguimos la parte LCC (que se encarga del control de errores y el control de flujo
(congestión)) y la parte MAC y Física (que son dependientes del tipo de conexión y el medio
físico).
El protocolo MAC regula el acceso al canal dando a cada nodo la posibilidad de transmitir sus
paquetes.
El protocolo LLC proporciona los servicios de transmisión de paquetes entre nodos. Un
mismo LCC puede residir sobre distintos protocolos MAC.
Servicios:
o Servicio sin conexión confirmado: no se puede enviar una trama si no se ha confirmado la anterior (ack).
o Servicio sin conexión no fiable: no se garantiza que el paquete llegue bien a su destino (no espera ack, ni
temporizador).
o Servicio orientado a la conexión fiable: Tiene una fase para el establecimiento de una conexión
(negociación previa) con el otro extremo.
La capa LLC ofrece una interfaz entre la capa de red y la capa MAC. En general las redes LAN
y MAN ofrecen un servicio de best-effort en la capa de red, no orientado a la conexión y sin
confirmación.
Ethernet es definido por el estándar IEEE 802.3. Es la red más usada hoy día y fue
desarrollada por Xerox en los años 70. Tradicionalmente tenía topología de bus. Usa un
protocolo MAC de tipo CSMA-CD.
vm_uma
Ethernet comenzó con una topología en bus, donde todos los dispositivos en la red estaban
conectados a un solo cable compartido. En esta configuración, todos los dispositivos
escuchaban todas las tramas de datos enviadas en el cable y solo la estación de destino
específica procesaba la trama.
Finalmente, los switches reemplazaron a los hubs en muchas redes Ethernet. Estos switches leen
tramas (que contienen direcciones MAC) lo que hace que ya no exista un enlace de difusión,
sino punto a punto, por lo que no va a ser necesario usar CSMA-CD ya que no hay que gestionar
a quien le toca, solo hay que leer la trama y transmitirla.
El nivel MAC es una subcapa del nivel de enlace que va a gestionar todas las cosas relacionadas
con el canal de difusión.
Hay un campo de relleno ya que en CSMA/CD hay que detectar las colisiones. El emisor es el encargado de
detectarlas, escuchando y comparando mientras transmite. Las tramas tienen que ser lo suficientemente largas como
para detectar colisiones.
Se debe complir que Ttrans > 2*Tprop + Ttrans-jamming ya que cuando el emisor envía un paquete
(Tprop) y el receptor al final del enlace detecta una colisión , el receptor tiene que transmitir la señal de
jamming (Ttrans-jamming) y este tiene que llegar al emisor (Tprop) antes de terminar de enviar la
vm_uma
trama. Ese tiempo se conoce como tiempo de rodaja.
Las redes inalámbricas son cada vez más habituales. Todas comparten el mismo medio, las ondas de
radio. Clasificación:
Según los saltos:
o Single hop: Cada dispositivo se comunica directamente con su estación base. Ejemplos: WiFi,
WiMAX, Bluetooth.
o Multiple hop: Se produce cuando los dispositivos no tienen suficiente fuerza para enviar la señal a la
estación base, así que saltan de unos a otros hasta llegar a la estación base. Ejemplo: Zigbee.
Según su infraestructura:
o Con infraestructura: Hay una estación base y se establece la red. Ejemplo: WiFi.
o Sin infraestructura: La red la forman los dispositivos entre ellos. Es una red de punto a punto.
Ejemplo: Bluetooth
Wifi
Normalmente la tecnología WiFi usa 2 bandas de frecuencia: 2.4 GHz y 5 GHz.
Cuando usamos la de 2.4 todos los dispositivos se agolpan esperando su turno.
VENTAJAS DESVENTAJAS
Subnivel MAC
En la DCF, CSMA-CD no es aplicable directamente ya que la tarjeta WiFi no sabe detectar las
colisiones. Para poder detectar la colisión es necesario poder enviar y recibir a la vez, lo que es muy
costoso para estas tarjetas puesto que la señal que se envía tiene mucha más energía que la que se
recibe.
También tiene problemas por la cobertura. Entre otros, el problema de la estación oculta. Por
ejemplo: Tenemos 3 dispositivos, A,B,C. A quiere mandarle información a B y C también quiere
mandarle información a B. El problema está en que cada dispositivo tiene un radio de rango por lo que
A no puede saber si C está enviando información a B. Esto hace que se cause una colisión.
vm_uma
Protocolo MAC DCF
Las estaciones al enviar incluyen el tiempo que necesita ocupar el canal. Estas estaciones que quieren
transmitir crean un temporizador denominado NAV que determina cuánto tiempo debe pasar antes
de comprobar si el canal está libre. Por lo que antes de comprobar si el medio está libre, comprueba
su NAV para ver si ha expirado.
Entonces, como hemos dicho antes, si una estación quiere transmitir escucha el medio/mira su NAV. Si
está libre transmite, si no está libre espera a que finalice la transmisión en curso. Si hay colisión:
retroceso exponencial binario (back off).
Pero, ¿cómo sabe si hay colisión si antes hemos dicho que no puede detectar colisiones?. La forma que
tiene de detectarlas es introduciendo mensajes de confirmación (ACK) en la capa de enlace (tiene
temporizador, es como parada y espera). De otro modo, los mensajes perdidos se detectan en la capa
de transporte, lo que introduce mucho retardo.
Protocolo CSMA / CA
Para evitar estas colisiones se usa este protocolo, cuya idea básica consiste en informar previamente
con un pequeño paquete (RTS) indicando que se quiere enviar un paquete de datos por parte del
emisor y confirmar (paquete CTS) por parte del receptor.
2. Cuando el canal está libre, espera un tiempo DIFS (tiempo de espera de espacio entre tramas).
Enviamos trama de control RTS (trama que enviamos al receptor indicando que queremos
enviar datos).
3. El receptor recibe la trama RTS y espera un tiempo SIFS (tiempo de espera corto entre
tramas). Envía una trama CTS (trama que envía el receptor dando permiso para enviar los
datos).
4. De nuevo el emisor recibe la trama CTS y espera un tiempo SIFS. Envía los datos y el
receptor recibe los datos, espera un tiempo SIFS y envía una trama de confirmación ACK.
Hemos visto entonces que para aplazar una estación de envío de datos, utilizamos el NAV y escuchar
los RTS/CTS. Pero, ¿qué ocurre si hay colisión mientras las tramas RTS/CTS están en transición?
Dos o más estaciones pueden enviar tramas RTS al mismo tiempo y pueden colisionar. Debido a
que no hay forma de evitar la colisión, el EMISOR(es) asume que se ha producido si no recibe una
trama CTS del RECEPTOR. Así que se espera un tiempo según la estrategia de espera aleatoria y se
comienza de nuevo.
vm_uma
Además, dado que el número de colisiones puede ser alto y para minimizar el impacto de la
retransmisión, los paquetes se pueden fragmentar. Se usa el protocolo de parada y espera.
Arquitectura WiFi
Se identifican por un SSID (nombre que identifica una red inalámbrica WiFi) que permitirá a los
dispositivos en cobertura unirse a la red. Está formado por un máximo de 32 caracteres ASCII. Los
dispositivos que quieren comunicarse entre sí deben tener un mismo SSID, y este puede ser visible
o no según esté habilitada su difusión.
Modo ad hoc: Es una red aislada y no puede enviar datos a otras redes. Las estaciones pueden formar una
red, localizarse y acordar formar una red ad hoc (WiFi Direct).
Modo infraestructura: Estaciones + AP (punto de acceso). Las estaciones son los dispositivos que se
conectan a la red inalámbrica (portátiles, teléfonos). Y el AP es un dispositivo central que actúa como puente
entre las estaciones inalámbricas y la red cableada (routers).
Concepto de BSS
Un BSS (Conjunto Básico de Servicios) es un grupo de estaciones que se comunican entre sí. Este se
compone de estaciones móviles o fijas y una estación base opcional (AP).
Si estamos en una arquitectura Ad hoc no tiene AP y es una red aislada que no puede enviar datos a
otros BSS, aunque sí pueden formar una red si se localizan y hacen un acuerdo entre ellas.
Si estamos en una red con infraestructura sí tiene AP. Dos o más BSS pueden unirse a través de un
sistema de distribución para formar un ESS.
La diferencia entre BSS y ESS también está en que en los BSS los puntos de acceso son opcional, sin
embargo si queremos formar un ESS, hace falta un punto de acceso.
vm_uma
TRAMA
BLUETOOTH
Bluetooth es una tecnología inalámbrica PAN que permite la conexión de gran variedad de dispositivos
(teléfonos, portátiles, cámaras, etc). Es muy útil ya que permite reemplazar los cables.
Es una red Ad Hoc (se forma de manera espontánea) en la que los dispositivos se encuentran unos a
otros y forman una picorred o red dispersa.
ARQUITECTURA PICORRED ARQUITECTURA RED DISPERSA
vm_uma
Como máximo 8 estaciones (1 Es una combinación de
estación actúa de primaria y el resto picorredes, en la que una estación
como secundarias) secundaria actúa como primaria en
otra. Una estación puede ser
Entre los dispositivos primarios y miembro de 2 picorredes.
secundarios puede haber
comunicación en ambos sentidos, Entre un dispositivo secundario y
pero entre secundarios no puede un dispositivo
haber comunicación. secundario/primario, si puede
haber comunicación.
Protocolos básicos:
o Radio
o Banda Base (proporciona las funcionalidades básicas de transmisión y
recepción de datos, incluyendo codificación y decodificación de la señal)
o Protocolo de Gestión de Enlace (LMP) (gestiona el establecimiento,
mantenimiento y liberación de enlaces Bluetooth)
o Protocolo de adaptación y gestión del enlace lógico (L2CAP) (proporciona
servicios de multiplexación)
o Protocolo de Descubrimiento de Servicios (SDP) (permite a los dispositivos ver
los servicios disponibles de otros dispositivos Bluetooth)
El nivel de radio equivale al nivel físico y emplea una banda ISM de 2.4 GHz que utiliza un espectro
de ensanchado por salto de frecuencias. Estos dispositivos cambian de frecuencia 1600 veces por
segundo (625 µs antes de saltar a otra banda).
Esto se debe a que esa banda es gratis por lo que muchísimos dispositivos la van a ocupar, lo que va a
provocar que haya fallos si seguimos siempre en la misma frecuencia y así evitar interferencias con
otras redes. Esto requiere que todos los dispositivos de la picorred estén sincronizados entre sí.
El nivel de banda base (equivalente al subnivel MAC) es el que establece conexión, direcciona,
vm_uma
temporización y control de potencia, etc.
Las estaciones comparten en el tiempo el ancho de banda del canal, por lo que se utiliza TDMA
(Acceso Múltiple por División de Tiempo). El canal se va a dividir en ranuras en las que cada ranura
va a tener una frecuencia y una estación primaria envía una trama a una secundaria o viceversa. Por eso
mismo hemos dicho antes que las estaciones tienen que estar sincronizadas.
Hay que recalcar también que es una conexión semi-dúplex (no pueden ambas a la vez). ¿Entonces
cómo desde nuestros auriculares parece que no se corta ninguna vez?
Realmente sí hay constantemente saltos entre la estación primaria y secundaria, pero el oído humano no
es capaz de diferenciar 625 µs, por lo que le parece continuo.
Comunicación con un único secundario: El primario utiliza las ranuras pares y el secundario las impares.
Comunicación con múltiples secundarios: El primario utiliza las ranuras pares y las secundarias envían en
la siguiente ranura impar (pero solo si la trama anterior llevaba su dirección). Todas las secundarias
escuchan las ranuras pares, pero solo una envía en la ranura impar. Quien envía lo va a determinar la
estación primaria.
Por otra parte, tenemos el Bluetooth Low Energy. Una de sus ventajas es el uso de conexiones rápidas
y eficientes que se activan solo cuando requiere transferencia de datos, además que tiene menos
interferencias.
GAP es un perfil de BLE que controla las conexiones y los anuncios. GAP es lo que permite que tu
vm_uma
dispositivo sea público hacia el exterior y determina como 2 dispositivos pueden interactuar entre
ellos. Están los dispositivos centrales y los periféricos. Los dispositivos periféricos suelen enviar
anuncios para que los dispositivos centrales cercanos puedan descubrirlos y establecer una conexión si
es necesario.
GATT define la manera en que 2 dispositivos pueden comunicarse usando los servicios y
características. Con el protocolo ATT se usa para almacenar los servicios y características y datos
relacionados en una tabla.
Los periféricos emiten mensajes de anuncios. Todas las transacciones son iniciadas por el dispositivo
central (GATT Client) quien solicita datos o servicios al periférico (GATT Server).
Por lo tanto, cuando un dispositivo central (GATT Client) detecta el anuncio de un dispositivo
periférico (GATT Server), puede iniciar una conexión y enviar solicitudes para recibir datos o servicios
específicos. El dispositivo periférico, al recibir una solicitud del dispositivo central, responde
proporcionando la información solicitada.
vm_uma