Se desea programar una aplicación que requiere una conexión

Anuncio
24 de noviembre de 2011
Redes de Datos
2do parcial – 2011
Solución
Esta es una posible solución a las preguntas planteadas. Por razones didácticas puede contener más
información que la mínima necesaria para responder la pregunta.
Los textos marcados de esta forma, corresponden a aclaraciones e imprecisiones de la letra indicados
oralmente durante la prueba.
Pregunta 1
(9 puntos)
En el esquema de la figura las tablas
de enrutamiento de los equipos
tienen las siguientes entradas:
A 192.168.0.5
B 192.168.3.10
192.168.0.254
R1
192.168.0.0/24
LAN1
172.16.0.1
172.16.0.6
R3 192.168.3.254
192.168.3.0/24
LAN2
172.16.0.0/26
LAN3
Tabla de A
Red destino
Máscara
Próximo salto
Tabla de R3
Red destino
Máscara
Próximo salto
192.168.0.0
255.255.255.0
if0
192.168.3.0
255.255.255.0
if0
192.168.3.0
255.255.255.0
192.168.0.254
172.16.0.0
255.255.255.192
if1
Máscara
Próximo salto
Tabla de R1
Red destino
Máscara
Próximo salto
Tabla de B
Red destino
192.168.0.0
255.255.255.0
if0
192.168.3.0
255.255.255.0
if0
172.16.0.0
255.255.255.192
if1
192.168.0.0
255.255.255.0
192.168.3.254
192.168.3.0
255.255.255.0
172.16.0.6
a) Un usuario en A realiza un ping a B y reporta que no funciona. Se verifica el correcto funcionamiento de
todos los equipos involucrados. Identifique cuál es el problema y proponga una solución.
Debido a que R3 no tiene una entrada en su tabla para la red 192.168.0.0/24 a través de R1 (172.16.0.1).
Esto hara que las respuestas que B envia a A sean descartadas por el Router R3 por no poseer ruta para
llegar a la red en la cual esta A. Se puede solucionar el problema agregando la ruta faltante en la tabla de
R3.
b) Aún con la solución de la parte a), un administrador en la consola de R3 realiza un ping a A y diagnostica
que el equipo A no está encendido. ¿Es correcto este diagnóstico? Justifique
El diagnostico del administrador es equivocado. Esto se debe a que cuando el administrador realiza un
ping a A desde R3 la IP de origen de estos paquetes sera la 172.16.0.6. Entonces cuando llegan a A
estos paquetes y A trata de responder revisa su tabla de ruteo y no encuentra ninguna entrada para
enviar el paquete de respuesta. Esto se puede solucionar agregando una ruta por defecto a través de R1
(192.168.0.254) o agregando una ruta para la red 172.16.0.0/26 a través de R1 (192.168.0.254).
c)
Para un paquete IP que viaja de A hacia B, indique en cada segmento de red (LAN1, LAN2 y LAN3) las
direcciones MAC e IP de origen y destino de las tramas involucradas. Se supone que las tablas de ARP ya
fueron resueltas
En LAN1:
MAC Origen
MAC Destino
IP Origen
IP Destino
MAC_A
MAC_R1_if0
192.168.0.5
192.168.3.10
1/6
24 de noviembre de 2011
En LAN3:
MAC Origen
MAC Destino
IP Origen
IP Destino
MAC_R1_if1
MAC_R3_if1
192.168.0.5
192.168.3.10
En LAN2:
MAC Origen
MAC Destino
IP Origen
IP Destino
MAC_R3_if0
MAC_B
192.168.0.5
192.168.3.10
Pregunta 2
(8 puntos)
Explique el funcionamiento de los códigos detectores de errores basados en polinomios (CRC).
En particular, explicar:
a) Cómo se construyen los mensajes intercambiados entre equipos.
b) Cómo se reconstruye el mensaje original.
c)
Cómo se detectan los errores y en qué casos no se detectan los mismos.
d) Qué propiedades debe cumplir el polinomio generador para detectar errores simples y errores dobles.
a) Los métodos de detección de errores mediante CRC se basan en tratar las cadenas de bits como
polinomios cuyos coeficientes serán 0 o 1. Un marco m con k bits corresponde a los coeficientes de un
polinomio M(x) de grado k-1 que van desde xk-1 hasta x0. Por ejemplo 1101 corresponde al polinomio
x3+x2+ 1.
Para utilizar este método el transmisor y receptor deben ponerse de acuerdo en un polinomio generador
G(x) de grado r. Dicho polinomio deberá cumplir algunas condiciones, algunas de las cuáles se
mencionarán después. Por ejemplo, G(x) deberá tener el primero y el último de sus coeficientes en 1.
Supongamos que el marco m que se quiere transmitir corresponde al polinomio M(x). Lo que se hace es
agregar una suma de comprobación al final del marco, de manera que el polinomio representado sea
divisible por G(x). El procedimiento es el siguiente:
– Sea r el grado de G(x). Se anexan r bits en “0” al final del marco, con lo que tendrá m+r bits y
corresponderá al polinomio: xrM(x).
– Se divide la cadena de bits que corresponde a x rM(x) entre la que corresponde a G(x), usando
división módulo 2 (sumas y restas son OR exclusivo sin acarreo).
xrM(x) = G(x)*Q(x)+R(x)
–
Se resta el residuo (que tiene r o menos bits) a la cadena de bits correspondiente a x rM(x), usando
resta módulo 2. Esto último es equivalente a poner los r bits del resto al final del mensaje de m
bits.
Llamemos a este polinomio T(x), que obviamente será divisible entre
G(x), y es el marco que será transmitido.
T(x) = xrM(x) – R(x)
Observar que la resta o suma módulo 2 son equivalentes a XOR, por lo que sumar o restar es equivalente
y además como xrM(x) tiene los r términos de menor grado en 0 y el residuo tiene grado r o menor, la resta
(suma) indicada en el tercer paso, no es más que una concatenación de M(x) con el residuo. Esto facilita
la implementación en hardware del método.
b) Teniendo en cuenta la observación vista antes, una vez verificado que no hubieron errores, el mensaje
original se reconstruye de forma sencilla. Alcanza con tomar los primeros m bits de mensaje equivalente
del polinomio T(x).
Notar que los primeros m bits corresponderian al mensaje y los últimos r bits
al resto de la división antes mencionada.
c) En el receptor se recibirá una trama que corresponderá a un polinomio Q(x)=T(x)+E(x), representando
2/6
24 de noviembre de 2011
E(x) al patrón de errores ocurrido en el canal y en el que serán 1 los bits alterados. Se divide Q(x) entre
G(x) y se toma el resto. Como T(x) es divisible por G(x), el resto obtenido será simplemente el resto
correspondiente a dividir E(x) entre G(x). Por lo tanto, si la división tiene un resto diferente a cero se habrá
detectado la existencia de error(es) en el canal. El único caso en que no se detectarían los errores, es
cuando E(x) es divisible entre G(x). (E(x) diferente de 0).
d) Todos los errores simples siempre serán detectados, ya que se tratarán de casos en que E(x)=x i (para
algun valor de i), que nunca será divisible entre un polinomio G(x) que contenga a los coeficientes de
menor y mayor orden en 1, de un polinomio de grado r mayor o igual a 1.
xr-1 + ...+ 1
No es posible sacar de factor común un xk
Los errores dobles llevarán a polinomios E(x) de la forma xi+xj ( i>j ) que es
representable como xj(xi-j+1). Por lo tanto una manera de detectar todos los
los errores dobles es que G(x) no divida a polinomios de la forma xk+1 para
ningún k hasta la longitud máxima del marco. Existen polinomios de bajo
grado que no dividen a polinomios de la forma xk+1 para valores muy altos
de k.
De esa manera se han estandarizado algunos valores de G(x) para tener en
cuenta los criterios anteriores y varias otras cosas más.
Se puede encontrar más referencia a este tema en el Libro: “Redes de Computadores” de Andrew
Tanenbaum – Sección 3.2 (tercera edición).
Pregunta 3
(6 puntos)
a) ¿Qué ventajas presenta, en una red 802.3, el uso de switches (puentes) para interconectar los equipos, en
comparación con el uso de repetidores o hubs?
b) ¿Qué problema se presenta si, para lograr redundancia en la red, se instalan switches en una topología
que genera un loop? ¿Qué solución se dispone para solucionarlo? (Indique muy resumidamente cómo
evita
el
problema
dicha
solución)
a) Los puntos importantes a remarcar ante esta pregunta son:
• Dado que el método de arbitraje para el acceso al medio genera colisiones cuando muchas estaciones
intentan acceder al mismo, una ventaja importante de los switches es que al particionar la red en
distintos dominios de colisión disminuyen la probabilidad de colisión mientras que los repetidores o
hubs no.
• Dado que el switch aprende la ubicación de cada dirección MAC activa, solo repetirá las tramas en los
segmentos de destino adecuados, permitiendo múltiples comunicaciones entre pares de estaciones
disjuntas, aumentando la capacidad efectiva de la red comparado con el uso de repetidores.
• En caso de conectar una única estación por segmento y utilizar cableado UTP o Fibra, puede utilizarse
el modo “full-duplex”, donde el switch y el equipo pueden transmitir simultáneamente, no existiendo
colisiones y aumentando el ancho de banda efectivo.
• Al reenviar las tramas solamente por el puerto donde se encuentra la MAC de destino, introduce una
pequeña mejora en la seguridad de la red Ethernet, no siendo tan fácil “espiar” el tráfico dirigido a otra
estación.
• Permite alcanzar distancias mayores que las impuestas en un solo dominio de colisión por 802.3
(porque las colisiones no se propagan a través del switch, con lo que la distancia máxima dada por la
detección de colisiones debe cumplirse en cada segmento conectado al switch, no en el total de la
red.
b) El problema de los switches en este tipo de topologías es que para cualquier trama que deba inundar (ya
sea tramas enviadas a la dirección de difusión, o tramas enviadas a una dirección de capa MAC que no se
encuentra en las tablas de los switches) se generan múltiples copias, las cuales inundan la red impidiendo el
tráfico útil en la misma
La solución que se dispone es el protocolo Spanning Tree en sus diferentes variantes (Spanning tree original,
Rapid Spanning tree, etc.), el cual de forma automática genera una topología activa sin loops deshabilitando
los puertos que generan loops. Para esto resumidamente los pasos son:
• Se elige un switch como raíz
• Cada switch elige el camino de menor costo a la raíz
• Se bloquean aquellos puertos que generarían un loop
3/6
24 de noviembre de 2011
Pregunta 4
(9 puntos)
Un sistema de transmisión de música sobre IP
se basa en estaciones emisoras que mediante
un sistema de suscripción envían tráfico UDP
unidireccional hacia dispositivos receptores
especializados cuya única función es recibir ese
tráfico UDP (del mismo modo que lo haría un
receptor de radio convencional), sin nunca enviar
paquetes IP. En la figura, “Emisor” es la estación
emisora y “M1” es el receptor.
Switch ethernet
(Puente)
R
Emisor
M1
Dado que las máquinas de la red son de alta confiabilidad, el administrador ha decidido fijar en 1 día el tiempo
de expiración de las entradas en la tabla de ARP del enrutador R, pensando en que esto reducirá el tráfico de
broadcast. El puente (switch o bridge) tiene un tiempo de expiración de sus tablas de MAC de 5 minutos.
Los computadores conectados al puente experimentan un aumento no deseado del tráfico en sus interfaces de
red desde que se implantó este servicio.
a) Suponiendo que el puente está encendido y que en determinado instante (t=0) se enciende el enrutador R.
Explique el comportamiento del sistema en los siguientes intervalos de tiempo:
i. 0 < t < 5min
ii. 5min < t < 1día
i.
Cuando el router tenga que enviar el primer paquete a M1 este necesitara saber la direccion MAC por
lo que realiza una consulta ARP, cuando el switch vea pasar la consulta ARP del router y la respuesta ARP de
M1 colocara en la tabla de direcciones MAC la direccion de M1 y la de R. El router R incluirá en su tabla ARP
la relacion IP_M1 <--> MAC_M1. Entonces cuando el router R envíe paquetes a M1 el switch que posee en su
tabla la direccion MAC de M1 enviará los paquetes sólo por el puerto en el cual se encuentra conectado M1 no
recibiendo tráfico extra los demas equipos.
ii.
Luego de pasados los 5 minutos, dado que M1 únicamente recibe tráfico y no envía ningún paquete,
el switch no puede volver a aprender en que puerto se encuentra conectada. Entonces pasados los 5 minutos
el switch borra de su tabla MAC la dirección de M1. Dado que el router aún mantiene en su tabla ARP la
entrada para M1 no requiere realizar consultas ARP y sigue enviando los paquetes UDP a M1. Cuando el
switch recibe estas tramas al mirar su tabla MAC no encuentra la dirección MAC de M1 por lo que envía la
trama por todos los puertos menos por el que recibio la trama (Flooding o Inundación) y así se presenta el
problema de aumento de tramas en los otros equipos.
b) Proponga una solución. Justifique su respuesta
La solución se basa en que la máquina M1 envie algun tipo de trama antes de que la entrada de la tabla
MAC del switch caduque. Esto lograra que el switch siempre tenga actualizada la entrada en la tabla y no
realice Flooding.
Para lograr esto hay varias opciones:
1) Cambiar el tiempo del vida de las entradas ARP para que sea menor que el tiempo de expiración de la
tabla del switch, esto hace que las peticiones ARP se den antes que el vencimiento de las tablas MAC
2) Cambiar el tiempo de vida de las entradas MAC para que sea mayor que las entrada de las tablas ARP
obteniendo el mismo resultado que en 1.
3) Programar a la maquina M1 para que envie paquetes periódicamente en tiempos menores que los
tiempos de vencimiento de la tabla MAC.
Pregunta 5
(9 puntos)
a) Explique el funcionamiento del protocolo de acceso al medio CSMA/CD.
b) Explique la necesidad de estandarizar un tamaño mínimo de trama.
c)
Para el caso de 802.3 (que implementa CSMA/CD), explique qué sucede en el caso de que haya
colisiones y en el caso que éstas se reiteren en intentos sucesivos.
d) A lo largo de los años se han ido incrementando las velocidades de los estándares de Ethernet de 10
4/6
24 de noviembre de 2011
Mbps, a 100 Mbps, 1 Gbps y más. ¿Fue necesario modificar el tamaño mínimo de trama? Justifique su
respuesta.
a) Los protocolos CSMA (Carrier Sense, Medium Access) son protocolos para arbitrar el acceso al medio en
canales compartidos y basan su funcionamiento en la posibilidad de las estaciones de detectar cuando se
está transmitiendo y actuar acorde a ello, de modo de acotar la probabilidad de colisiones.
Aún cuando se sense el medio antes de intentar transmitir, es posible que ocurran colisiones ya que una
estación puede ver el canal libre más o menos simultáneamente con otra y ambas pueden decidir
comenzar a transmitir en función de los retardos inherentes al canal. Cuando ocurren colisiones, las
señales eléctricas correspondientes a ambas tramas se suman en el canal, corrompíendose los datos
enviados por ambas estaciones.
Hay tres modalidades de los protocolos CSMA, que se describen a continuacion:
CSMA persistente-1 Este protocolo es el más sencillo de los que implementan detección de portadora.
Cada vez que una estacion desea transmitir una trama, sensa el canal (detección de portadora).
Si el canal esta libre comienza la transmisión de la trama.
Si está ocupado, entonces permenece sensando el canal y cuando se desocupa, transmite. Se le llama
persistente-1, ya que con probabilidad 1 transmite cuando se encuentra el canal libre. Esta característica
es la que diferencia las restantes modalidades.
En caso de ocurrir una colision, la estacion espera una cantidad aleatoria de tiempo e intenta nuevamente
el proceso indicado.
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; espera un tiempo aleatorio y vuelve
a sensar el canal, siguiendo el mismo comportamiento luego. De esta manera se obtiene una mejor
utilizacion del canal que en el caso anterior y también 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 determinados de tiempo (o ranuras). El
funcionamiento es similar a la modalidad persistente-1, salvo que cuando una estación está lista para
transmitir y observa que el canal esta en reposo, transmite con probabilidad p y espera a la siguiente
ranuta con una probabilidad 1-p. En la siguiente ranura vuelve a sensar el canal y repite el proceso. De
esta forma continúa hasta que logra transmitir la trama.
El protocolo CSMA/CD agrega a los anteriores la detección de colisión (Colision detection, CD). Esta
detección se realiza escuchando el canal mientras se transmite y comparando lo que se recibe con lo que
se transmite. Si se recibe lo mismo que se transmite, entonces no hay colisiones.
b) El largo mínimo de trama es necesario porque puede suceder que la estación A vea el canal libre y
comience a transmitir pero por los retardos de propagación del canal, en otro punto del medio compartido,
otra estación B aún vea el canal libre y también comience a transmitir. En este caso habría una colisión y
para que A pueda detectarla deberá permanencer leyendo el canal y comparando con lo que está
enviando. Si A parara de transmitir antes, no sabría si la señal que le llega de B es de una estación lejana
que colisionó con su trama o de una estación cercana que comenzó a transmitir en cuanto A se detuvo.
Por lo tanto, se necesita que en el peor caso A transmita al menos el tiempo necesario para que la señal
de A llegue a B más el tiempo en que la señal de B llegue a A, y este tiempo multiplicado por la velocidad
de transmisión en bits/s nos da la longitud mínima de trama (en bits). Este tiempo depende de la distancia
máxima admitida entre cualquier par de estaciones (peor caso de separación entre A y B) y la velocidad
de propagación de la señal electromagnética por el medio elegido. O sea L (bits)=V (bps) * T (s), siendo V
la velocidad en bps y T el tiempo de ida y vuelta entre las estaciones más lejanas.
Según la norma 802.3, en una LAN a 10 Mbps con una distancia máxima entre estaciones de 2500 metros
y 4 repetidores, el tiempo de ida y vuelta (incluyendo la propagación en el cable y los retardos introducidos
por los repetidores), se considera alrededor de 50 μsec en el peor caso. Por lo tanto el tamaño mínimo de
trama será de 10 x 10 6 x 50 x 10 -6 = 500 bits, por lo que se toma agregando cierto márgen de seguridad
512 bits = 64 bytes como tamaño mínimo de trama.
c)
En 802.3 en caso que haya colisiones se elige un tiempo de reintento utilizando el algoritmo de retroceso
exponencial binario (binary exponential backoff). Luego de la detección de la colisión, se discretiza el
tiempo en ranuras del tamaño de una trama mínima o sea de 51,2 μsec que permiten 512 bits. En la
5/6
24 de noviembre de 2011
primer colisión, las estaciones eligen reintentar en el intervalo 0 o en el 1. Solamente si eligen el mismo
intervalo volverán a colisionar. Para resolver esta segunda colisión eligen entre los intervalos 0,1,2,3 para
reintentar, de modo que disminuya la probabilidad de una nueva colisión. En general se elige entre los
intervalos 0 a 2n-1, siendo n el número de veces que se colisionó.
d) En base al cálculo del tamaño mínimo de trama explicado en b), si no se cambian los parámetros físicos
de la red, T no cambiará, por lo que al aumentarse V, aumentaría en la misma proporción el largo mínimo
de trama. Para evitar esto, lo que cambió en las normas al aumentar la velocidad de transmisión es la
distancia máxima admitida entre cualquier par de estaciones en el medio compartido.
Pregunta 6
(9 puntos)
a) En seguridad, ¿a qué se hace referencia cuando se habla de seguridad incondicional y de seguridad
computacional?
b) ¿Qué información contiene un Certificado de clave pública? ¿Qué utilidad tiene?
c)
El siguiente es el funcionamiento simplificado que se vio en clase del protocolo SSL/TLS.
1. El cliente envía los algoritmos soportados
2. El servidor envía su certificado de clave pública y los algoritmos elegidos
3. El cliente valida certificado del servidor
4. El cliente genera una clave secreta para la sesión, la encripta con la clave pública del servidor
y la envía al mismo
5. El servidor obtiene la clave de sesión
6. Servidor y cliente comienzan a transmitir información usando esa clave
i. Explique cómo el cliente debe validar el certificado del servidor. ¿Qué información debe tener el
cliente?
ii. ¿En qué momento el cliente puede asumir que su contraparte es el servidor con el cual quería
comunicarse? Justifique.
a) Seguridad incondicional se refiere a aquellos métodos en los cuales el atacante no puede obtener
información del mensaje original solo con disponer del texto cifrado, ya que no hay suficiente información
en el mismo para determinar unívocamente el mensaje
Seguridad computacional nos dice que, dado un poder de recursos computacionales, el tiempo necesario
para quebrar un código es más grande que el tiempo de vida del mensaje.
b) El certificado de clave pública sirve para relacionar una identidad con su correspondiente clave pública, de
una forma que la validez de esta relación pueda ser verificada por terceros. Al menos debe tener:
- Una identidad (nombre, dirección de sitio web, etc.)
- La clave pública correspondiente a esta identidad.
- Información que permita identificar la autoridad certificadora que firma el certificado
- Debe estar firmado por la autoridad certificadora (o sea que la autoridad certificadora genera un hash del
contenido del certificado con un formato preestablecido, y luego encripta ese hash con su clave privada).
Puede tener (y de hecho normalmente la tiene) otra información como fechas de validez del certificado,
usos permitidos del certificado, un link a la lista de revocación correspondiente, etc.
c)
i) Para validar el certificado del servidor, el cliente precisa disponer de la clave pública de la autoridad de
certificación (CA) correspondiente (obtenida de alguna manera “confiable”).
El cliente debe verificar que la identidad corresponde con el servidor al que se está conectando, que el
certificado está dentro de su período de validez y el resto de los datos del certificado. Luego genera el
hash del contenido del certificado, desencripta la firma con la clave pública de la CA, y verifica que los
hashes coinciden. Si coinciden, como es computacionalmente muy difícil generar otro hash que coincida
con el del mensaje, y también es computacionalmente muy difícil tanto averiguar la clave privada a partir
de la clave pública como generar una nueva firma sin conocer la clave privada, tiene la confianza que
alguien que tiene la clave privada correspondiente a la clave pública que dispongo asegura la relación
entre la identidad y la clave pública presentes en el certificado.
ii) Recién en el paso 6, cuando el cliente reciba del servidor alguna información encriptada con la clave de
sesión y pueda validar que se desencripta correctamente con la clave de sesión calculada por el, puede
estar tranquilo que con quien se está comunicando tiene la clave privada correspondiente (ya que pudo
desencriptar la clave de sesión encriptada con la clave pública)
6/6
Descargar