26 de noviembre de 2007 Redes de Datos 2do parcial – 2007 Solución Pregunta 1 (9 puntos) a) En la red de la figura 1, los equipos A, B, R1 y R2 tienen configuradas las tablas de rutas que se indican. Un ping hecho en A a la dirección de B funciona correctamente pero un ping desde R2 hacia A no es exitoso. Indique las modificaciones necesarias a las tablas de rutas indicadas para que puedan comunicarse R2 y A. b) Para una trama ethernet vista en la lan de A que transporta un paquete IP desde A hacia B, indique: § Dirección IP de origen § Dirección IP de destino § Dirección MAC de origen § Dirección MAC de destino c) En la figura 2, indique las tablas de ruteo de A, B, C, R1, R2 y R3 de modo que se cumplan todas las siguientes condiciones: • Todas las subredes de la red son alcanzables desde todos los equipos • Cuando se envía un paquete a una dirección que no está incluida en ninguno de los rangos indicados, el paquete se descarta en el siguiente salto. • Se utiliza la cantidad mínima de entradas en las tablas de rutas de todos los equipos. • Los paquetes llegan a todas las subredes por el camino con menos saltos. Respuesta pregunta 1 a) Para que funcione un ping desde R2 a A, es necesario que el mensaje ICMP “ECHO Request” originado por R2 hacia A llegue a destino y que además el paquete ICMP “ECHO Reply” de respuesta generado por A llegue a R2. El mensaje originado por R2, al salir por la interfaz eth1 como lo indica su tabla de rutas, utilizará la IP 10.0.2.76 como dirección de origen, por lo que la respuesta de A estará dirigida a esa IP. El problema es que en la tabla de A no hay ninguna entrada que incluya a la dirección 10.0.2.76, por lo que si A genera un mensaje a esa IP, el mismo será descartado en el propio nodo A. La solución es agregar una entrada a la tabla de rutas de A que le indique que a la dirección 10.0.2.76 se llega a través de R1 (10.0.0.254). Algunas formas posibles serían: 1/6 26 de noviembre de 2007 Destino 10.0.2.76/32 Próximo salto 10.0.0.254 Destino 10.0.2.0/24 Próximo salto 10.0.0.254 Destino 0.0.0.0/0 (ruta por defecto) Próximo salto 10.0.0.254 b) La dirección IP de origen es la IP de A, la dirección IP de destino es la IP de B, la MAC de origen es la MAC de A y la MAC de destino es la MAC del router R1 asociada a la interfaz eth0. En la tabla de rutas de A dice que para llegar a B (al rango de direcciones que contiene la IP de B) se deben enviar los paquetes al próximo salto 10.0.0.254. Como por el contenido de la tabla de rutas de A, se sabe que el rango 10.0.0.0/24 (que incluye la IP de R1 en esa LAN) está directamente conectado a A, entonces A sabrá que para encaminar el paquete a R1 deberá ponerlo en una trama ethernet. Para que esa trama llegue a R1 deberá tener por destino la dirección MAC de R1. c) La menor cantidad de entradas que cumple todas las condiciones indicadas es: Tabla de A Destino Próximo salto 10.0.0.0/24 eth0 de A 0.0.0.0/0 10.0.0.254 Tabla de B Destino Próximo salto 10.0.1.0/25 eth0 de B 0.0.0.0/0 10.0.1.126 Tabla de C Destino Próximo salto 10.0.1.128/25 eth0 de C 0.0.0.0/0 10.0.1.254 Tabla de R1 Destino Próximo salto 10.0.0.0/24 eth0 de R1 10.0.2.0/24 eth1 de R1 10.0.3.4/30 ppp0 de R1 10.0.3.0/30 10.0.3.6 o 10.0.2.76 10.0.1.128/25 10.0.2.76 10.0.1.0/25 10.0.3.6 Tabla de R2 Destino Próximo salto 10.0.2.0/24 eth1 de R2 10.0.1.128/25 eth0 de R2 10.0.3.0/30 ppp0 de R2 10.0.0.0/24 10.0.2.33 10.0.3.4/30 10.0.3.1 o 10.0.2.33 10.0.1.0/25 10.0.3.1 Tabla de R3 Destino Próximo salto 10.0.3.0/30 ppp0 de R3 10.0.3.4/30 ppp1 de R3 10.0.1.0/25 eth0 de R3 10.0.1.128/25 10.0.3.2 10.0.0.0/24 10.0.3.5 10.0.2.0/24 10.0.3.5 o 10.0.3.2 No pueden ponerse rutas por defecto o rutas más generales (con máscaras /22 o /23) en los routers R1, R2 y R3 ya que cualquier dirección no perteneciente a los rangos mencionados no se descartaría en el primer salto en algún caso. No hay posibilidades de sumarizar redes porque a algún segmento no se llegaría por el camino más corto. En los equipos A, B y C alcanza con poner una ruta por defecto porque al llegar al “backbone” se descartan las que no existan. Pregunta 2 (9 puntos) a) ¿Cuál es la principal diferencia entre los algoritmos de clave pública y los algoritmos de clave secreta o clave compartida? b) ¿Qué propiedades debe cumplir un algoritmo de clave pública? c) En una comunicación entre A y B, utilizando algoritmos de clave pública, ¿qué clave debe utilizar A para encriptar los mensajes si quiere obtener secreto (que solamente B pueda leerlos)?. Justifique Respuesta pregunta 2 a) La principal diferencia entre los algoritmos de clave pública y los de clave compartida es que los de clave pública se encriptan los datos con una clave y el receptor los desencripta con otra distinta (algoritmo asimétrico). Mientras que en los de clave compartida ambos transmisor y receptor tienen la misma clave para encriptar y desencriptar (algoritmo simetrico). b) El algoritmo de clave pública debe poder encriptar con una clave y desencriptar con otra. También debe garantizar que conociendo la clave pública no sea posible descubrir la clave privada. Como el algoritmo es público se debe asegurar que aunque una persona conozca el mensaje, la clave pública y el mensaje encriptado tampoco pueda encontrar la clave privada. 2/6 26 de noviembre de 2007 c) A debe encriptar su mensaje con la clave pública de B, así B siendo el único que conoce su clave privada será el único capaz de desencriptar el mensaje. Pregunta 3 (8 puntos) Se denomina Unidad Máxima de Transmisión o MTU (por su sigla en inglés) al tamaño máximo en bytes (incluyendo sus encabezados) de un paquete de capa de red (en nuestro caso IP), que es posible transportar sobre cierta infraestructura de Capa de Enlace. a) En ethernet (802.3) a 10 Mbps, el valor de MTU es de 1500 Bytes. Protocolos como 1 Gigabit Ethernet (802.3z) y 10 Gigabit Ethernet (802.3ae) permiten la configuración de un tamaño de MTU mayor al que se utiliza para 10Mbps. ¿cuáles son los beneficios de un mayor tamaño de MTU?. b) Suponga que un router interconecta dos segmentos de red, donde uno es un segmento Ethernet a 10Mbps y el otro un segmento a 1Gbps con MTU de 9000 bytes. Un computador en el segmento de 1Gbps envía un paquete IP de 9000 bytes (incluyendo encabezados) a otro computador en el segmento Ethernet de 10Mbps. Si el paquete llega al destino, explique cómo es el mecanismo que lo permite. Si el paquete no llega, explique qué habría que hacer para que llegue. Respuesta pregunta 3 a) La utilización de un mayor tamaño de MTU trae como principal beneficio un mejor aprovechamiento del canal para la transmisión de datos. Los encabezados utilizados en la capa de enlace son de largo fijo, mientras que un mayor tamaño de MTU nos permitirá transportar más carga útil en cada trama, lo que redunda en mejor ratio carga útil/total de bytes transmitidos. A su vez se pueden citar otros beneficios para el host, en el caso de estar trabajando con un medio compartido, que vienen por el hecho que una vez que el host obtiene el canal para transmitir podrá hacerlo por más tiempo. Además el hecho de enviar los mismos datos en menos tramas (ya que cada una de ellas tendrá más carga útil) significará un ahorro en el tiempo de procesamiento para el host transmisor. b) En el caso que el host envíe el paquete con la bandera DF=0 (Don’t Fragment), el paquete llegará correctamente a destino ya que el router fragmentará el mismo. El mecanismo de fragmentación consiste en que el router divida el paquete original recibido desde el segmento de 1Gbps en paquetes de menor tamaño, de manera que pueda ser soportado por la capa de enlace de la interfaz de salida (el segmento de 10Mbps). El proceso de fragmentación deberá ser tal que el host destino sea capaz de reconstruir el paquete original. Para esto el router deberá agregar identificadores de secuencia a los distintos fragmentos, así como banderas para indicar si existen o no más fragmentos. Pregunta 4 (9 puntos) Para una transferencia de datos a nivel de capa de enlace entre A y B se supone: • tramas de tamaño 1000 bytes • canal de 10 Mbps de capacidad • canal libre de errores • tiempo de ida y vuelta entre transmisor y receptor es fijo en 200 ms • el tiempo de procesamiento de las tramas en el receptor y transmisor es despreciable • las tramas de reconocimiento tienen tamaño despreciable • la transferencia deseada está compuesta por 1000 tramas que se envían de A a B a) Calcule el tiempo necesario para completar la transferencia cuando se utiliza un protocolo de parada y espera (stop & wait). b) Calcule la eficiencia del uso del canal entre A y B, considerada como el tiempo en que el canal está ocupado sobre el tiempo total de la transferencia. c) Si se usa un algoritmo de ventanas deslizantes, calcule el tamaño en bytes de la ventana de transmisión para lograr un uso óptimo del canal. 3/6 26 de noviembre de 2007 d) Calcule el tiempo necesario para completar la transferencia cuando se usa el valor de ventana calculado en c) Respuesta pregunta 4 a) Para toda la transferencia: tiempo_transferencia = numero_de_tramas * (tiempo_serialización + RTT) TT = 200 ms 6 Tiempo_serialización = 1000 bytes * 8 bits / 10x10 bps = 0.8 ms à despreciable respecto al RTT. Numero_de_tramas = 1000 (Observación: El tiempo de serialización es el tiempo necesario para poner los bits en el canal) El tiempo total de la transferencia considerando las 1000 tramas es entonces: 1000 * (200 ms + 0.8 ms) = 200.8 s b) Eficiencia = (0.8/200) x 100 = 0.4% c) Para el uso óptimo del canal, lo que necesitamos es que la ventana alcance para transmitir durante un RTT. Serialización un bit= 1bit /(10x106 bps) = 1x10-7 s. Para mantener el canal ocupado por un RTT, necesito una ventana de tamaño: Tamaño = 0.2/(1x10 -7) = 2 Mb = 250 Kbytes. d) El canal esta siempre ocupado, por lo que el tiempo total de la transferencia es el tiempo de señalización de todos los bits más el retardo para el ACK de la última trama: Tiempo total de transmisión = 1000 bytes * 8 bits * 1000 tramas * 1x10 -7 s + 0.2 s = 1 s Pregunta 5 (8 puntos) a) ¿Cuáles son las posibles funciones de un puente (bridge) en capa MAC? b) En un puente (o switch) transparente, ¿cómo sabe el switch por qué boca o bocas debe reenviar una trama recibida? ¿Cómo aprende dicha información? Respuesta pregunta 5 a) Las funciones que realiza un puente en capa MAC son las siguientes: • Interconectar diferentes capas MAC de la familia IEEE 802. Al momento de compartir recursos, surge la necesidad de interconectar estas diferentes tecnologías, para lo cual hay que convertir entre diferentes formatos de trama y mecanismos de acceso al medio. • Incrementar la distancia entre los equipos más distantes, el puente oficia de regenerador de tramas a nivel digital, flexibilizando así las restricciones existentes por degradación de la señal analógica. • Reducir la cantidad de colisiones dividiendo la cantidad de equipos que pueden colisionar (dominio de colisión), aumentando de esta manera la cantidad de tráfico, en promedio, que pueden intercambiar el conjunto de estaciones. • Incrementar la seguridad, permiten filtrar tramas, en particular una vez que se aprenden donde se encuentran los equipos, solo se dirige la trama al puerto donde esta ubicado el mismo. b) Un puente transparente es un dispositivo que trabaja a nivel de capa MAC observando las tramas que llegan a cada uno de sus puertos (tramas en cada uno de los dominios de colisión). Permite interconectar diferentes equipos sin necesidad de configuración previa en los puentes. Para las estaciones el puente es un elemento transparente, por lo cual el mismo continúa haciendo creer a las estaciones que existe un “bus” que las interconecta. Este “bus lógico” tiene inteligencia adicional que permite analizar el contenido de las tramas e ir construyendo una tabla de donde se encuentran los equipos (direcciones MAC en capa 2), “recortando” el funcionamiento del “bus” cuando conoce donde esta el equipo destinatario de una trama. El mecanismo por el cual un puente aprende donde se encuentran los diferentes equipos se llama “backward learning”, un puente transparente aprende cuando ingresa una trama por un puerto que el 4/6 26 de noviembre de 2007 originador de la trama (MAC de origen en Ethernet) es alcanzable por este puerto. Esta información es guardada en una tabla (tabla de forwarding o mac-address-table) que asocia dirección MAC con puerto de salida. Nota: Cada entrada posee un valor de tiempo de vigencia. Si se continúan recibiendo tramas con la misma MAC de origen en el mismo puerto, se refresca el valor del temporizador a su valor máximo. Existe otro proceso periódico que decrementa los valores de tiempo en esta tabla y si el temporizador de una entrada llega a cero se elimina de la tabla. Es posible que me lleguen tramas destinadas a una dirección de capa MAC que aún no conozco. En este caso lo mejor que podemos hacer es inundar la información con la esperanza que llegue al destino, o sea “copiar” la trama en cada uno de los puertos salvo por el cual ingreso la trama (se asume que como es un medio compartido el destino debería de haber visto la trama y que inundando se llega a todos los destinos). Cada vez que se recibe una trama en un puerto, se aprende que la MAC de origen es alcanzable por el puerto. Una vez que se aprende donde se encuentran los destinatarios (MAC destinos), solo se realiza una copia de la trama en el puerto donde se encuentra el equipo destino, esta información se consulta a la tabla de forwarding de MACs que se construye todo el tiempo. Los temporizadores en las entradas permiten que se pueda mover un equipo de lugar (puerto) a otro, y hacer que así como se aprendió dinámicamente donde se encontraba el equipo y se creó una entrada en la tabla de forwarding, se dé de baja también de forma dinámica al no refrescarse la entrada Pregunta 6 (7 puntos) ¿Cuáles son los problemas que se presentan en las redes de área local inalámbricas que no se presentan en las redes cableadas que se vieron en el curso? ¿Cómo se resuelven? Respuesta pregunta 6 Los problemas típicos que se dan en las redes inalámbricas son los conocidos con el nombre de estación oculta y estación expuesta. Se suponen las 4 estaciones de la figura, con los alcances indicados en la siguiente figura por las circunferencias centradas en cada estación. A B C D Estación oculta A transmite a B, C escuchando el canal no puede detectar que A está transmitiendo por lo que puede decidir transmitir a B, produciéndose una colisión en B. Estación expuesta B transmitiendo a A, C quiere transmitir a D, pero al escuchar el canal nota que está ocupado por lo que decide no transmitir. En realidad el abstenerse de transmitir es innecesario porque en D no se producirá interferencia con lo que envía B (ídem en A con lo que envía C), por lo que se hace un uso ineficiente del canal. Para resolver los problemas: Se estimula al receptor a enviar una trama corta, mediante el envío de una trama de solicitud de envío por parte del transmisor. Ejemplos: protocolos MACA y MACAW MACA Supongamos A desea enviar datos a B. Entonces se realiza el siguiente intercambio de tramas: A-->RTS-->B solicitud de envío, contiene la longitud de datos a transmitir 5/6 26 de noviembre de 2007 B-->CTS-->A avisa que está libre para recibir, contiene la longitud de datos a transmitir por A A--> datos --> B *Cualquier estación que escucha la trama RTS permanece en silencio el tiempo suficiente para que B pueda enviar correctamente el CTS *Cualquier estación que escuche el CTS debe permanecer en silencio durante la siguiente transmisión de datos (los datos a enviar por A) cuyo tiempo estima de la longitud de los datos que está indicada en la CTS. Igualmente puede haber colisiones si dos estaciones intentan transmitir un RTS al mismo tiempo. Se darán cuenta de la colisión porque no reciben el CTS en el tiempo estimado. Entonces reintentarán luego de esperar un tiempo aleatorio. Se utiliza para esto el algoritmo de retroceso exponencial binario. MACAW Para mejorar la performance: *se introducen ACKs a nivel de la capa de enlace, tras cada trama exitosa. *se introduce detección de portadora, para evitar la transmisión simultánea de RTS de estaciones cercanas. 6/6