Capitulo 5 - Enlace Flashcards
Servicios de capa de enlace
Servicios de capa de enlace
La capa de enlace se encarga de mover un datagrama de un extremo a otro de un link. Se implementa a nivel del adaptador de red.
Posibles servicios a ser ofrecidos por un protocolo de capa de enlace:
Framing: El protocolo especifica la estructura del frame.
Link access: Los protocolos de acceso al medio (MAC - Medium Access Protocol) sirven para coordinar la transmisión de frames de muchos nodos en un medio compartido.
Entrega confiable: Si el protocolo ofrece este servicio, los frames se envían de a través del link sin errores. Esto puede ser útil en un medio con alta probabilidad de errores, pero en un medio con baja probabilidad de error no es utilizado ya que es muy costoso.
Flow control: Los nodos de cada lado del link tienen poca capacidad de buffering, por lo que si los frames se reciben más rápido de lo que se pueden procesar el buffer se llena y los frames se pierden.
Error detection: Interferencias electromagnéticas o una atenuación de la señal pueden provocar cambios en los bits. Algunos protocolos brindan mecanismos para detectar estos errores.
Error correction: El receptor ademas de detectar el error puede determinar dónde ocurrió.
Half-duplex y full-duplex: En full duplex los dos nodos pueden transmitir al mismo tiempo, en half-duplex solo un nodo puede transmitir a la vez.
Chequeo de Paridad
Se incluye un bit extra, tal que la cantidad de 1’s en d+1 sea par.
El receptor debe contar la cantidad de 1’s en los datos recibidos, si es impar sabe que ocurrió al menos un error.
Esta técnica solo funciona si la cantidad de bits que cambian es impar y no permite corrección, ya que no se puede saber que bit cambió.
Chequeo de paridad matricial
Se dividen los datos en filas, y se le agrega a cada fila y columna el bit de paridad, para que la fila/columna tenga paridad par.
Este método permite detectar y corregir errores. Pero si se producen dos errores se puede detectar pero no corregir.
Chequeo de Redundancia cíclica (CRC)
Implementado a nivel de controlador de red (hardware), ya que tenemos un procesador dedicado a transmitir y recibir bits y hacer cálculos.
El emisor y el receptor se ponen de acuerdo en un código de r+1 bits que denominamos generador (G). El primer bit de G debe ser un 1.
El emisor le agrega a r bits adicionales a d, tal que el resultado es divisible entre G.
El receptor solo tiene que dividir los datos recibidos (d+r) entre G y si no tiene resto, no se produjo error, si tiene resto hubo un error.
Protocolos de Acceso Múltiple
Los medios compartidos pueden tener múltiples nodos enviando y recibiendo datos en el mismo canal. Cuando un nodo transmite un frame todos los otros nodos del medio compartido lo reciben. Si dos nodos transmiten al mismo tiempo se producen colisiones que hacen que los frames sean inentendibles.
Los protocolos de acceso múltiple permiten coordinar la manera en que los nodos transmiten en el medio compartido.
Hay tres categorias:
Protocolos de partición del canal: Dividen el canal dando una parte (time slot, frequency) exclusiva a cada nodo.
Protocolos de acceso aleatorio: Como son aleatorios admiten colisiones, por lo tanto deben proveer una forma de detectar si hubo colisión y una forma de recuperarse de esas colisiones.
Protocolos de toma de turnos: Los nodos toman turnos para utilizar el canal, nodos que tienen más datos para enviar puede utilizar el canal por más tiempo.
Protocolos de partición del canal
Las tecnicas de TDM (Time division multiplexing) y FDM (Frequency division multiplexing) ya vistas pueden ser utilizadas para particionar un medio compartido.
TDM elimina las colisiones y es justo ya que cada nodo obtiene R/N bps en cada frame de tiempo.
Desventajas:
- El rate está limitado a R/N aun cuando es el único nodo que quiere enviar datos.
- Debe esperar siempre su turno aunque sea el único nodo que quiere enviar datos.
FDM también evita colisiones y divide de forma justa el ancho de banda.
Desventajas:
- El ancho de banda está limitado a R/N aun cuando sea el único nodo queriendo enviar datos.
Protocolos de acceso aleatorio
En estos protocolos cada nodo envía con todo el rate del canal. Si se produce collision, los nodos re-transmiten los frames repetidamente hasta que el frame es enviado sin colisión.
Antes de hacer la retransmisión cada nodo espera un tiempo randomico, esto disminuye la probabilidad de que ocurra otra colisión.
Dentro de estos protocolos se encuentran:
- Slotted Aloha
- Aloha
- CSMA - Carrier Sense Multiple Access
Slotted Aloha
Se asume:
- Cada frame tiene un tamaño de L bits.
- El tiempo se divide en slots de tamaño L/R segundos (el tiempo necesario para transmitir un frame completo).
- Los nodos siempre comienzan a transmitir al comienzo de un slot.
- Si dos o más nodos colisionan, todos los nodos detectan la colisión antes de que termine el slot.
Transmisión:
- Cuando un nodo quiere transmitir, espera hasta el comienzo del próximo slot.
- Si no hay colisión el frame se transmite correctamente.
- Si hay colisión, el nodo detecta la colisión y retransmite en cada slot siguiente con probabilidad p hasta que no haya colisión.
Ventajas:
- Permite transmitir a todo el rate del canal si es el único nodo activo.
- Altamente descentralizado ya que cada nodo detecta la colisión y decide cuando retransmitir.
- Protocolo muy simple.
Desventajas:
- Requiere que los slots estén sincronizados en todos los nodos.
- Durante las colisiones se desperdicia el slot.
- Slots en los que nadie transmite.
- En el mejor caso 37% de uso del canal.
Aloha
Se asume:
- No hay slots.
Transmisión
- Cuando un nodo recibe un frame automáticamente lo transmite al medio compartido.
- Si se produce una colisión transmite el frame nuevamente con probabilidad p en sus siguientes frame-slots.
Ventajas:
- Totalmente descentralizado, ya que no hay que sincronizar slots.
Desventajas:
-Solo 18% de uso del medio compartido, en el mejor caso.
CSMA (Carrier Sense Multiple Access)
Carrier sensing: Antes de transmitir un frame, el nodo censa el canal para ver si hay otro nodo transmitiendo en ese momento. Si el canal está libre se transmite el frame, si el canal está ocupado el nodo espera un tiempo random y vuelve a censar el canal.
Collision detection: Mientras el nodo está transmitiendo censa el canal para ver si hay algún otro nodo interfiriendo. De ser así, se interrumpe la transmisión.
La diferencia entre CSMA y CSMA/CD es que el primero no tiene deteccion de colision, por lo que si se produce una colisión se sigue transmitiendo, el segundo para cuando detecta que hubo colisión.
En este caso igual pueden producirse colisiones, ya que las señales electromagnéticas demoran cierto tiempo en propagarse, y puede que un nodo comience a transmitir en un instante t, y en ese mismo instante un nodo que está lo suficientemente lejos vea el canal libre.
CSMA/CD en Ethernet
- Cuando el adaptador de red recibe un datagrama, prepara un frame Ethernet y lo coloca en el buffer del adaptador.
- El adaptador censa el canal, si está libre comienza a transmitir el frame. Si está ocupado, espera a que esté vacío y retransmite.
- Si se detecta una colisión cuando se está transmitiendo el frame, se detiene la transmisión y se envía una señal de jam para que todo el mundo se entere que hubo una colisión.
- Despues de abortar se entra en un backoff exponencial: el adaptador elige un k en {0,1…2^n-1}donde n es el número de colisiones consecutivas. Luego se espera K*512 tiempos de bit (el tiempo que demora transmitir un bit) para volver a censar el canal.
Es decir, si dprop -> 0 la eficiencia tiende a 1 (si hay poco delay, los nodos abortan inmediatamente evitando desperdiciar el canal).
Si dtrans -> infinito la eficiencia también tiende a 1 (si un frame usa el canal por un tiempo muy largo, entonces lo está aprovechando más).
Conclusión: es mejor que ALOHA, es simple, barato y descentralizado.
Protocolos de toma de turnos
Intentan tomar lo mejor de los protocolos de partición de canal y de acceso aleatorio.
Dentro de estos protocolos se encuentran:
Polling protocol.
Token-passing protocol.
Polling protocol
Requiere que uno de los nodos sea designado como master. El nodo maestro notifica a cada nodo cuando puede transmitir en forma de round robin.
Ventajas:
- Se eliminan las colisiones y los slots vacíos.
Desventajas:
- Hay un polling delay producto de avisar a cada nodo que puede transmitir.
- Si el master node falla, el canal se vuelve inoperable (single point of failure).
Token-passing protocol
En este protocolo no hay un nodo maestro. Existe un pequeño frame especial denominado token que se intercambia entre los nodos con un orden prefijado.
Cuando un nodo recibe el token si tiene algo para transmitir lo transmite, si no lo pasa al siguiente nodo.
Ventajas:
- Descentralizado y eficiente.
Desventajas:
- Si un nodo falla o no quiere devolver el token el canal entero queda inoperable.
Direcciones MAC
Las direcciones MAC tienen 6 bytes de largo (48 bits). Cada byte se expresa como un par de números hexadecimales.
La dirección MAC es única, no hay dos adaptadores que tengan la misma dirección MAC (aunque ahora es posible cambiarla mediante software).
Dirección de broadcast: FF-FF-FF-FF-FF-FF