Práctica 1: Fundamentos, Direct Links y LAN Switching (Teoría de las Comunicaciones)
Volver a la página de la materia
Ejercicio 01
Si, lo es. La explicación está en un apunte de la cátedra llamado OSIModel.pdf en la página 2.
Ejercicio 02
Para un modelo de software de red organizado en capas (ej. OSI, TCP/IP), indicar si las siguientes afirmaciones son verdaderas o falsas:
- Si la capa n ofrece servicio orientado a conexión, entonces la capa n+1 debe ofrecer necesariamente servicio orientado a conexión.
- Si la capa n ofrece servicio orientado a conexión, entonces la capa n-1 puede ofrecer servicio sin conexión.
- Si la capa n ofrece servicio sin conexión, entonces la capa n+1 no puede ofrecer servicio orientado a conexión.
Respuestas:
- Falso, la capa superior puede introducir nuevos problemas que hagan imposible la conexión.
- Verdadero, la capa superior puede utilizar a la inferior para generar una conexión, solucionando los problemas que tuviese.
- Falso, la capa superior puede generar la conexión.
Las capas son independientes unas de las otras.
Ejercicio 03
Ejercicio 04
Suponga que se instala un enlace punto-a-punto de 100Mbps entre la Tierra y una nueva colonia en la Luna. La distancia entre la Luna y la Tierra es de aproximadamente 386243 kilómetros, y los datos atraviesan el enlace a la velocidad de la luz (299338 kilómetros por segundo).
- Calcule el mínimo RTT del enlace.
- Usando el RTT como delay, calcule el producto delay x bandwith para el enlace.
- ¿Cuál es el significado del producto delay x bandwith calculado en el punto anterior?
- Una cámara en la base lunar toma fotografías de la Tierra y las guarda en formato digital en un disco. Suponga que el Control de Misión en la Tierra desea descargar la última imagen que es de 25 MB. ¿ Cuál es el tiempo mínimo que puede transcurrir entre el momento en que se inicia el pedido del dato y finaliza la transferencia ?
Respuestas:
Ver pp 40-50 del Peterson
1. El roundtrip time es el tiempo que toma a un único bit ir de un extremo a otro del enlace y volver. Es el doble de la latencia, la cual se calcula como:
Latency = Propagation + Transmit + Queue Propagation = Distance / c Transmit = Size / Bandwidth
Entonces el RTT vale:
RTT = 2 * Latency = = 2 * Distance / c + 2 * Size / Bandwidth + 2 * Queue = = 2 * 386243 km / 299338 km/s + 2 * 1bit / 100Mbps + 0 = = 2.58s + 2E-8 = 2.58s
2. El producto delay x bandwidth vale
Delay * BW = 2.58s * 100Mbps = 258 000 000 bits
3. El producto delay x bandwidth representa la cantidad de data "en vuelo" que puede haber simultáneamente en el enlace, es decir, cuánta data se necesita para saturar el enlace. Al utilizar el RTT en lugar de la one way latency, indica la data necesaria para llenarlo en ambos sentidos.
4. El tiempo de transferencia se calcula como
TransferTime = RTT + 1 / BW * TransferSize
El RTT resume los tiempos de delay para el envio del pedido y la recepcion del paquete, mientras que el segundo sumando se refiere al ancho de banda y el tamaño del paquete.
TransferTime = 2.58s + 1 / 100Mbps * 200Mb = 4.58s
Otra fórmula útil es la del throughput, que indica la performance de un enlace
Throughput = TransferSize / TransferTime
Ejercicio 05
Ejercicio 06
Ejercicio 07
Dado el siguiente string 0100110100 dibujar las formas de ondas correspondientes a:
- Codificación NRZ
- Codificación NRZI
- Codificación 4B/5B
- Codificación Manchester
Respuestas:
Ver pp 75-79 del Peterson
Un cero indica una onda baja, y un uno una alta
Bits 0 1 0 0 1 1 0 1 0 0 NRZ 0 1 0 0 1 1 0 1 0 0 Clock 01 01 01 01 01 01 01 01 01 01 NRZI 00 01 11 11 10 01 11 10 00 00 Manchester 01 10 01 01 10 10 01 10 01 01
Para 4B/5B, la codificacion se hace convirtiendo de a 4 en 5. Luego se codifica usando NRZI.
0100 = 01010 1101 = 11011 0000 = 11110
Bits 0 1 0 1 0 1 1 0 1 1 1 1 1 1 0 NRZI 00 01 11 10 00 01 10 00 01 10 01 10 01 10 00
Resumiendo,
- El NRZ codifica un 1 como una señal alta y un cero como baja; tiene el problema de que si hay muchos ceros o unos consecutivos es dificil mantener los relojes sincronizados. También hace que se dificulte distinguir las señanles altas de bajas, ya que el receptor usa el promedio de la diferencia entre las recibidas.
- El NRZI resuelve las tandas de 1s haciendo que el cero mantenga la señal, y el uno provoque un cambio. No resuelve las de ceros.
- El Manchester hace un XOR entre la codificación NRZ y el reloj, el problema es que la eficiencia es del 50%, ya que necesita dos cambios de señal para codificar un único bit.
- El 4B/5B convierte 4 bits en 5 tales que nunca sea posible que haya más de tres ceros consecutivos. Luego usa NRZI para resolver los 1s consecutivos. El aprovechamiento es del 80%.
Ejercicio 08
La principal causa de errores en comunicaciones de datos se debe a:
- ruido impulsivo
- variaciones de fase
- ruido blanco
Respuesta:
Variaciones de fase no hay que tenerlo en cuenta. Ruido blanco es un ruido que siempre esta porque se refiere al ruido propio del medio y por lo tanto los modelos de comunicación estan pensados sabiendo que ese ruido existe. Es por eso que el que mas errores de comunicaciones causa es el ruido impulsivo.
¿Qué tipo de ruido es considerado en las formulas de Nyquist y Shannon?
Segun lei de la siguiente pagina: http://www.eveliux.com/mx/index.php?option=content&task=view&id=126 el ruido impulsivo no es tomado en cuenta en las fórmula de Shannon. Por descarte diría que se refieren al ruido blanco.
Ejercicio 09
Ejercicio 10
Ejercicio 11
Ejercicio 12
Ejercicio 13
Si una señal binaria es enviada en un canal de 3kHz. cuya relación señal-ruido es de 20dB; ¿Cuál es la máxima velocidad de transferencia?
Respuesta:
Ver pp 72-74 del Peterson
Se debe aplicar el teorema de Shannon:
C = B log2 (1 + S/N)
Donde C es la capacidad máxima del canal medida en Hz, B es el ancho de banda en Hz, y S/N es la relación señal-ruido medida en decibeles, donde db = 10 log10 (S/N).
Entonces, para calcular primero S/N,
20db = 10 log10(S/N) 2db = log10 (S/N) 100 = S/N
Luego se calcula C con el teorema
C = 3kHz * log2(101) = 3k * 6.66 = 20Kbps
Ejercicio 14
Un sistema de TV por cable tiene mas de 100 canales alternando programas con propagandas. ¿ Es esto mas parecido a TDM o FDM?
Respuesta:
FDM. Ver pags. 11-13 Peterson
Ejercicio 15
Asumiendo que se utiliza bit stuffing, muestre la secuencia de bits transmitidos sobre el enlace cuando el frame contiene la siguiente secuencia de bits: 0111111011010111110101111110101111111001111110 Indique los bits insertados. Dato: delimitador = 01111110.
Ver Peterson p84
Respuesta:
Bit stuffing se utiliza cuando los mensajes son terminados por un delimitador y es necesario transmitir el delimitador como parte del mensaje. Siendo que el delimitador son seis 1s entre un par de ceros, cuando se quieren transmitir más de cinco 1s consecutivos, se agrega un 0 cada cinco unos. Si el receptor encuentra 6 unos consecutivos, chequea el siguiente bit. Si es cero, es el delimitador. Si es uno, es un error de transmisión.
El delimitador se transmite constantemente mientras el enlace está libre para mantener los relojes sincronizados.
011111101101011111010111110101011111011001111101001111110
Ejercicio 16
Suponga que la siguiente secuencia de bits llegan por un enlace: 01111110110101111101011111001011111011001111110. Muestre el frame resultante luego que todos los bits insertados fueron removidos. Indique cualquier error que haya podido ser introducido dentro del frame. Dato: delimitador = 01111110.
Ver Peterson p84
Respuesta:
Cada cinco 1s consecutivos, se quita el cero subsiguiente. Si hay seis 1s, se chequea el siguiente. Si es cero, es delimitador. Si es uno, es error.
01111110 1101011111010111110010111110110 01111110
01111110 1101011111-1011111-01011111-110 01111110
Ejercicio 17
Ejercicio 18
¿Cuáles son las ventajas del CRC sobre el algoritmo de checksum de IP? ¿Cuáles son las desventajas?
Ver Peterson pp 90-97
Respuesta:
Ventajas de CRC:
- CRC tiende a detectar más errores que checksum.
- CRC permite elegir distintos polinomios divisores según el ambiente que detectan distintos tipos de errores.
- CRC se puede implementar muy fácil por hardware.
Desventajas:
- Checksum se implementa más fácil por software
Ejercicio 19
Para proveer más confiabilidad que la que puede dar un simple bit de paridad, una técnica de codificación para detección de errores usa un bit de paridad para chequear todos los bits en posiciones impares y un segundo bit de paridad para todos los bits en posiciones pares. ¿Cuál es la distancia de Hamming de este código? ¿Ofrece alguna mejora con respecto al que utiliza un único bit de paridad? Si es así, ¿En qué consisten esas mejoras?
Respuesta:
La distancia de Hamming de un código se define como la cantidad mínima de bits erróneos que debe haber para engañar un código.
Vale que si d = n+1, es posible detectar todos los errores de hasta n bits, y si vale d = 2m+1, es posible corregir todos los de hasta m bits.
En el código propuesto la distancia es de 2, ya que teniendo dos bits cambiados en las posiciones pares, es posible engañar al código.
Sin embargo, es mejor que el código que utiliza un único bit, ya que, aunque tienen la misma distancia de Hamming, un byte con los dos primeros bits cambiados será detectado como erróneo por el nuevo código y no por el original.
Ejercicio 20
Una manera de detectar errores es transmitir datos como bloques de n filas de k bits por fila y adicionar bits de paridad para cada fila y cada columna. ¿Detectará esta política todos los errores simples? ¿Los errores dobles? ¿Los errores triples? ¿Qué hay de las correcciones?
Ver Peterson pp 89-90
Respuesta:
Si se utilizan bits de paridad solamente para las filas y columnas de la data, la distancia de Hamming será de 3. De acuerdo al Peterson, si se agrega un bit de paridad para la columna que contiene la paridad de las filas, la distancia será de 4.
En ambos casos la mejor corrección realizable es de un único bit.
Ejercicio 21
Para corregir todos los errores de orden n, la distancia de Hamming de un código debe ser:
- D >= 2n
- D >= 2n+1
- D = 2n+n
- no existe restricción alguna.
- D >= n+2
- D > 2n+1
- D <= 2n
Respuesta:
Debe ser 2), D >= 2n+1
Ejercicio 22
El término piggybacking aplicado a un protocolo se refiere a:
- la transmisión de datos en forma full-dúplex.
- la incorporación de un reconocimiento o control en el mensaje de datos.
- la utilización de un buffer de ventana deslizante.
- la habilidad de concatenar múltiples datos en un mensaje.
- ninguno de los anteriores.
¿Cuál es la ventaja de utilizar piggybacking?
Respuesta:
Ver p 98 del Peterson
Piggybacking implica enviar un mensaje de ACK en un mensaje de datos que se envía como respuesta.
Ejercicio 23
En un protocolo stop-and-wait al aumentar la velocidad de propagación (espacio/tiempo), el ancho de banda desperdiciado para la transmisión de datos:
- aumenta.
- disminuye.
- permanece constante.
- ninguna de las anteriores.
Ver Peterson pp 98-101
Respuesta: (no muy seguro)
El bandwidth desperdiciado disminuye, ya que el aumentar el delay, los mensajes ACK son recibidos antes por el emisor que espera menos tiempo en transmitir el siguiente frame.
Ejercicio 24
Suponga que está diseñando un protocolo con sliding windows para un enlace punto-a-punto de 1Mbps a la Luna con una latencia de 1.25 segundos por tramo. Asumiendo que cada frame lleva 1KB de datos; ¿Cuál es el mínimo numero de bits necesarios para secuenciar los frames?
Ver pp 100-105 Peterson
Primero hay que calcular cual es la cantidad máxima de paquetes que puede haber en vuelo en base al producto Delay x BW del enlace y al tamaño de frame. Para delay hay que usar el RTT, ya que importa el tiempo que demora desde que sale hasta que llega el ACK.
RTT x BW = 2.5Mb 2.5Mb / 1KB = 320
Entonces puede haber hasta 320 paquetes en vuelo. Suponiendo que las ventanas del emisor y el receptor coinciden, entonces en base a la fórmula (ojo: esta fórmula está copiada del Peterson, en clase la dieron con menor o igual en lugar de estricto)
RWS + SWS < Max+1 = 2^n 640 < 2^n n > 9.32
Se necesitan 10 bits.
Ejercicio 25
En un protocolo de ventana deslizante; ¿Porqué no tiene sentido que la ventana de recepción sea más grande que la ventana de transmisión?
Ver Peterson p104
Respuesta:
La ventana del emisor indica el número máximo de paquetes que pueden estar en vuelo simultáneamente sin esperar un ACK (es decir, pueden llegar desordenados por errores de transimisión), con lo que no tiene sentido tener más buffers que los necesarios.
Ejercicio 26
Ejercicio 27
Ejercicio 28
Ejercicio 29
Un protocolo de nivel de enlace punto a punto, orientado a conexión y confiable, utiliza ventana deslizante con 3 bits de secuenciamiento para transportar frames sobre un enlace satelital con una tasa de errores relativamente alta. Mencionar cuáles son los valores óptimos de tamaño de ventana de transmisión y recepción si el protocolo utiliza NAKs.
Ver Peterson pp 101-105
Respuesta:
Suponiendo que 2^n >= E + R (en desacuerdo con el Peterson, que indica desigualdad estricta, pero según lo vimos en clase), y tomando E = R, resulta
8 >= 2E E = 4
Puesto que el protocola soporta NAKs, conviene que la ventana de recepcion sea igual a la de emision, ya que ante un error (que en este caso son frecuentes) se puede retransmitir solamente el paquete fallido, y no es necesario reenviar toda la ventana.
Ejercicio 30
NO HAY QUE HACERLO.
Ejercicio 31
Ejercicio 32
La norma IEEE 802.3 especifica los nivles OSI:
..opciones
Respuesta:
niveles 1 y 2
Ejercicio 33
¿Para qué se utiliza el preámbulo de Ethernet (802.3)?
Respuesta:
Se utiliza para sincronización.
Ejercicio 34
¿Qué pasa si en una red Ethernet las estaciones esperan un tiempo fijo T antes de intentar transmitir un dato en buffer? Asuma que el tiempo fijo T cuenta a partir del momento en que el dato está libre.
Respuesta:
En este caso habrá una alta probabilidad de que se produzcan colisiones. Esto es debido a que si varias estaciones quieren enviar algun dato en el mismo momento (mientras el canal esta ocupado) esperarán ambas un tiempo T. Si el canal se desocupó las 2 estaciones mandarán el dato y producirán colision.
En caso que no se haya desocupado, entonces esperarán nuevamente un tiempo T y se fijarán nuevamente, y esperaran sucesivamente de a T unidades de tiempo hasta que este desocupado y luego cuando se desocupe intentarán de mandar al mismo tiempo y colisionaran.
Y es probable que (aunque de esto no estoy seguro) que sigan colisionando en forma indefinida.