Redes de datos (Plan 97) Examen 4 de Febrero de 2004 - SOLUCIONES Pregunta 1 a) La capa MAC es necesaria en aquellas redes donde varias estaciones acceden a un medio compartido. Un asunto muy importante en este tipo de redes, es como se distribuye la utilización del canal cuando hay varias estaciones intentando hacerlo. Es importante implementar algún tipo de protocolo para evitar que las estaciones intenten tomar el canal a la vez, causando colisiones y pérdida de datos. Como su nombre lo indica, esta capa establece la manera en que se accede al medio compartido. b) Los protocolos CSMA son aquellos que basan su funcionamiento en la posibilidad de las estaciones de detectar cuando alguna esa transmitiendo, y actuar acorde a ello. Dentro de esta categorı́a encontramos tres modalidades de los protocolos CSMA, que describimos a continuación CSMA persistente-1 Este protocolo es el más sencillo de los que implementan detección de portadora. Cada vez que una estación desea transmitir un marco, sensa el canal. Si el mismo esta ocupado, entonces espera a que se desocupe, y luego transmite. Por otro lado, si el canal esta libre, lo toma, y transmite el marco. En caso de ocurrir una colisión, la estación espera una cantidad aleatoria de tiempo y comienza de nuevo. Se le llama persistente-1, ya que con probabilidad 1 transmite cuando encuentra el canal libre. Esta caracterı́stica es la que diferencia las demás modalidades. CSMA no persistente La modalidad no persistente se diferencia de la persistente-1 solamente cuando una estación encuentra el canal ocupado. En lugar de escuchar el canal hasta que la estación que estaba haciendo uso del canal lo libere, y comenzar a transmitir de inmediato, las estaciones esperan un tiempo aleatorio y vuelven a escuchar el canal, siguiendo el mismo comportamiento luego. De esta manera se obtiene una mejor utilización del canal que el anterior, ası́ como mayores retardos. CSMA persistente-p Esta modalidad se aplica solamente a canales ranurados, es decir, en los que las estaciones solamente pueden transmitir en instantes determinado de tiempo (o ranuras). Funciona similar a la persistente-1, salvo que cuando una estación lista para transmitir observa que el canal esta en reposo, no lo hace siempre, sino que transmite con probabilidad p. En caso de no trasmitir, la estación espera a la siguiente ranura y actúa de la misma manera. El proceso sigue hasta que la trama se transmite, o hasta que encuentra el canal en uso. En la segunda opción, actúa como si hubiera ocurrido una colisión, esperando un tiempo aleatorio antes de intentar de nuevo. La utilización del canal y el retardo varı́an de manera inversa al hacer variar el parámetro p. 1 c) Los protocolos CSMA/CD agregan a los anteriores la detección de las colisiones. En esta modalidad, cuando las estaciones están utilizando el canal, abortan la transmisión ni bien detectan una colisión, en lugar de transmitir toda la trama. Como ventaja, esta implementación de los protocolos CSMA, ahorra tiempo y ancho de banda. La desventaja es que aparece una complicación adicional, si se quiere detectar las colisiones. Las estaciones deberán escuchar el canal a la vez que están transmitiendo. Si lo que se lee es diferente a lo que se puso en el canal, es debido a una colisión. Por lo tanto se debe utilizar una codificación especial que permita detectar las colisiones (por ejemplo, si se superpusieran dos señales de 0 volts, la colisión serı́a imposible de detectar). Pregunta 2 a) El método de control de congestión conocido como balde con goteo es un mecanismo mediante el cual los paquetes salen con una tasa máxima fija, sin importar la tasa con la ingresan al mecanismo. Por este motivo se le llamo de esta manera, se interpreta conceptualmente como un balde en el cual entra el agua a la tasa que arribe, pero sale siempre a una tasa constante, determinada por el balde en sı́. De esta manera, en todo momento la velocidad de salida de datos del balde será constante, ρ, si existen datos en el balde, y será cero, en caso de estar vacı́o. Otra caracterı́stica de los baldes con goteo es la capacidad. Cuando los datos ingresan al mismo a una tasa mayor que ρ, se irán acumulando en el balde, pero solamente hasta un determinado punto. Los baldes tienen una capacidad C, que indica la cantidad máxima de datos que los mismos pueden contener. Una vez que el balde esta lleno, si arriban más datos, los mismos se pierden. Mientras que el anterior algoritmo modifica el tráfico ajustándolo a la tasa promedio, sin importar las ráfagas que al balde ingresen, el algoritmo de balde con fichas se ajusta un poco más a la forma del tráfico a la entrada. El funcionamiento del balde con goteo es el siguiente: un reloj genera fichas a una tasa constante, que se van acumulando en el balde. El balde tiene una capacidad máxima de fichas n. Cuando un paquete arriba al balde, solamente podrá ser transmitido si hay al menos una ficha en el mismo. Es decir, los paquetes solo pueden abandonar el balde “acompañados” de una ficha. La caracterı́stica mas importante del balde con fichas, es que permite que se acumulen las fichas, de manera que ante la llegada de una ráfaga la velocidad de salida será mayor que la media. Este método acepta que pasen ráfagas de hasta n paquetes. Las fichas no necesariamente están asociadas a un paquete sino que normalmente representan una cantidad de bytes de modo de tener un comportamiento más equitativo con protocolos de diferente tamaño de paquete. Si al balde ingresan paquetes cuando no hay fichas, esos paquetes se descartan. Si quien envı́a los datos controla la existencia de fichas en el balde, puede mantener un buffer para almacenarlos mientras se generen las fichas necesarias. b) En la figura 1 se puede apreciar el comportamiento tanto de la velocidad de entrada y salida del balde, como de la ocupación del mismo. 2 Velocidad a la entrada Velocidad a la salida 10 kbps 8 6 4 2 0 0 0.5 1 1.5 t (seg) 2 2.5 3 5000 Ocupación del balde kbits 4000 3000 2000 1000 0 0 0.5 1 1.5 t (seg) 2 2.5 3 Figura 1: Pregunta 2 - parte b c) En la figura 2 se puede apreciar el comportamiento para el caso del balde con fichas. Es notorio el hecho que luego del instante t = 0,4 seg, se perderán datos, ya que los mismos ingresarán al balde a una tasa de 10kbps, pero solo podrán salir a 5kbps. 3 Velocidad a la entrada Velocidad a la salida 10 kbps 8 6 4 2 0 0 0.5 1 t (seg) 1.5 2 2000 Ocupación del balde kbits 1500 1000 500 0 0 0.5 1 t (seg) 1.5 2 Figura 2: Pregunta 2 - parte c Pregunta 3 a) Cuando la carga ofrecida a la red es mayor de lo que esta puede aceptar, ocurre el fenómeno de congestión. Si bien generalmente las redes se diseñan para que en media sean capaces de aceptar todos los paquetes provenientes de los diferentes hosts, debido a la forma del tráfico, puede ocurrir que en una o varias partes de la red, hayan demasiados paquetes, lo que lleva a una degradación del desempeño. Dicha degradación puede dar lugar la pérdida de alguno de dichos paquetes. b) El control de congestión y el control de flujo, son ambos mecanismos que intentan atacar el problema de la mala performance de la red. Se diferencian el donde combaten este problema. El control de flujo se ocupa de que no existan problemas de performance debido a el atoramiento de un host, es decir, intenta evitar que, dada una comunicación entre dos hosts de capacidades dispares, el transmisor (rápido) atore al receptor (lento). Por otro lado, el control de congestión ataca los problema de performance debido a la saturación de la red en sı́. Cuando los hosts envı́an paquetes de manera que la red no puedo procesar todos al mismo tiempo, se da la congestión, y esto es lo que intenta evitar este mecanismo. c) La manera que TCP realiza control de congestión es manteniendo una ventana de 4 congestionamiento en cada uno de los transmisores, que indica la cantidad de bytes que se pueden enviar. Al establecerse la conexión TCP, el transmisor asigna a dicha ventana el tamaño máximo de segmento (MSS) usado en la conexión, y por lo tanto envı́a un paquete de ese tamaño. A su vez se mantiene un temporizador luego de enviada cada serie de datos, y luego de vencido el mismo se asume que los datos se perdieron debido a problemas de congestión en la red. Si por el contrario, se recibe el acuse de los datos enviados antes del fin del temporizador, por cada byte reconocido se agregan 2 al valor de la ventana de congestión. De esta manera, la ventana crece de manera exponencial (se conoce como arranque lento), hasta que ocurren una de dos alternativas, se alcanza la ventana del receptor o se alcanza un umbral fijado de antemano. TCP mantiene un umbral que indica el fin del arranque lento. Luego que la ventana alcanza el valor del umbral, en lugar de duplicar el tamaño de la misma, en cada ráfaga reconocida con éxito, simplemente se aumenta su valor en la cantidad de bytes reconocidos. Si en cualquier momento se termina una temporización antes que sean reconocidos todos los datos enviados, el umbral se establece en la mitad del valor de la ventana en dicho momento, y la ventana se establece en un MSS nuevamente, para recomenzar el ciclo. Lo que se busca con este mecanismo es determinar la capacidad de la red, llegando rápidamente hasta el valor umbral, y luego aumentando lentamente, con más precisión. El crecimiento de la ventana de congestión se detiene, o bien cuando se alcanza la ventana receptora, o cuando se vencen los temporizadores, intentando determinar cual de los dos fenómenos será el limitante para la transmisión. Pregunta 4 a) En un dominio de DNS el registro MX indica el nombre de la máquina que recibe el correo para ese dominio. b) El servidor de correo debe enviar el correo a la máquina que reciba correo para el dominio fing.edu.uy, por lo que debe consultar por el registro MX asociado a ese dominio. Por lo tanto, las consultas serán: i El servidor de correo consulta a su servidor de DNS local A.dominio.com.uk por el registro MX asociado al dominio fing.edu.uy. i El servidor A.dominio.co.uk consultará a uno de los servidores raı́z (cuyas direcciones tiene almacenadas en su configuración) por el registro MX del dominio fing.edu.uy. El servidor raı́z le responde la dirección de quien maneja la zona uy, que es la máquina seciu.uy. ii Nuevamente A.dominio.co.uk realiza la consulta, esta vez a la máquina seciu.uy por el registro MX del dominio fing.edu.uy. iii La máquina seciu.uy maneja los dominios uy y edu.uy y como además responde consultas recursivas, se encargará de buscar el registro MX del dominio fing.edu.uy. Como el dominio fing.edu.uy lo tiene delegado a la máquina ns1.fing.edu.uy realizará a ésta la consulta por el registro MX del dominio fing.edu.uy. Como respuesta, ns1.fing.edu.uy le devuelve el registro MX solicitado que corresponde a un nombre de máquina (una etiqueta) que por ejemplo es mail.fing.edu.uy. Normalmente como dato adicional agrega el registro A correspondiente a ese nombre. 5 iv La máquina seciu.uy, que como se indicó anteriormente obtuvo la respuesta que buscaba, le devuelve el dato a la máquina A.dominio.co.uk. iv Finalmente A.dominio.co.uk devuelve el resultado de la búsqueda al servidor de correo que lo solicitó. Si no se hubiera devuelto en los datos adicionales el registro A correspondiente al MX del dominio, hubiera sido necesaria una nueva consulta de DNS para averiguar el registro A del nombre mail.fing.edu.uy. 6