Primer Parcial 2do Cuat 2007 (Teoría de las Comunicaciones)

De Cuba-Wiki
Saltar a: navegación, buscar
Back.png Volver a la página de la materia

Enunciado[editar]

Prácticos[editar]

Ejercicio 1[editar]

La sonda espacial VCerf que se encuentra a 150 000 000 km de la tierra debe comunicarse con el control. Para ello tendra un sistema transmisor/receptor full duplex. Debera diseñar el protocolo de nivel de enlace usado entre la sonda y el control de mision. Tenga en cuenta que la sonda tiene dos protocolos sobre el nivel de enlace, uno para el envio de comandos y telemetria (que debe ser confiable, por lo menos en el sentido MC a sonda) y uno para el envio de los datos cientificos (por ejemplo fotos tomadas por la sonda), que puede admitir errores. Puede asumir que las computadoras de control de mision (pero no la sonda) pueden guardar los frames que necesiten por todo el tiempo necesario si deben retransmitirlos.

Rta:

  • Se necesita confiabilidad en el envio Control de Mision->Sonda (en adelante MC->S) => puede implementarse un protocolo basado en ventana deslizante.
  • TE (tamano de la ventana de emision) = RTT (1) * BW (2) / FrameSize (3); (1) delay ida y vuelta = 2.150*10^9m/c (sup propagacion a vel luz) (2) depende del enlace en si, (3) puede ser fijo (ej: 1Kb, es dificil que los comandos sean muy grandes).
  • TE sera bastante grande (x el alto RTT), conviene que: si la sonda tiene buffers disponibles => TE=TR y que el protocolo tenga SAK/NAK; si no, TR=1 y go-back-n ante un error => MC debe retransmitir toda la ventana, lo cual es una perdida fuerte debido al gran tamano.
  • #Bits usados para secuenciamiento (n) = menor valor tq 2^n >= TE+TR.
  • La sonda no puede guardar frames para reenviar ante falla (no es necesario) => no es necesario pedir ACKs de MC para los datos de fotos. Pueden enviarse paquetes sin pedir confirmacion e incluso hacer piggybacking de los ACKs a MC sobre estos frames.
  • Hay solo 2 hosts => no tiene sentido el uso de direcciones en paquetes. Un posible formato de frame seria:
FRAME
0..n-1 n..n+1 n+2..1023
Descripcion MC->S: Bits Seq / S->MC: paquete al que corresponde el ACK MC: no usados / S: ACK,SAK/NAK,"nothing" (solo envia datos y no se ACKea nada) Datos (1er bit puede reservarse p/que S indique datos o ACK/NAK)
  • Esto permite a la sonda hacer ACKs/NAKs haciendo piggyback, sin datos, con datos o ACK/NAK. El campo de secuenciamiento es reaprovechado para indicar a que paquete corresponde el ACK/NAK.
  • Tambien es posible achicar la parte de datos para agregar un tail con un CRC del paquete para evitar errores, que son muy posibles para el tipo de enlace.
Ejercicio 2[editar]

Se tiene una LAN con un servidor con una direccion IP privada. Esta LAN se encuentra conectada a Internet por medio de un router, capaz de hacer NAT. Se desea permitir que este servidor responda peticiones desde Internet, sin cambiar su direccion privada, de forma transparente para el servidor y el cliente. Usando las tecnicas de NAT explicadas en clase, encuentre una forma para que el servidor atienda pedidos desde Internet. Puede realizar modificaciones que desee en el router (dentro de las soportadas por el protocolo), pero no puede cambiar la direccion del servidor. El cliente debe pensar que esta hablando con una direccion IP publica, y puede asumir que se le da una direccion IP extra para ser usada con este fin. Muestre las modificaciones que haria, incluyendo cualquier tabla (u otra estructura de datos) que deba crear e indique las modificaciones que debera realizar a los paquetes IP destinados al servidor. Luego muestre como ejemplo un paquete de ida desde el cliente al servidor y una respuesta del servidor al cliente (incluyendo una explicacion de los cambios realizados por NAT). Asuma que del nivel 4 para arriba los datos son opacos y no necesitan cambios.

Rta:

  • Sup que el servidor sera el unico que acepte pedidos desde Internet => puede usarse la dir publica adicional para que el router la mapee al servidor permanentemente en su tabla de NAT. Asi, el router guarda una entrada con la dir publica reservada (A) y la privada del servidor (B).
  • Cuando llega un paquete de un cliente con dir IP C, destinado a la dir publica reservada para acceso al servidor (A), al router => este debe cambiar A por B en el frame y enviarlo al servidor, para asegurar que su dir coincida.
  • Cuando el servidor responde al cliente, el paquete tiene destino C y origen B. El router, al recibir el paquete para sacarlo hacia C => debe detectar que B esta en su tabla de NAT y cambiarlo por A, para que el cliente sepa que el paquete es una respuesta del servidor (ya que no se puede salir a Internet con una dir privada como origen o destino).

Rta Alternativa:

SERVER-(192.168.0.1)---ROUTER-(150.2.2.3)---INTERNET----CLIENTE(153.2.2.5)

El cliente enviara un mensaje al servidor utilizando en el campo destino la direccion publica extra que se menciona en el enunciado. El router luego sera el encargado de mediante su tabla de NAT obtener la direccion privada del server correspondiente a la direccion publica utilizada por el cliente.

Ej tabla NAT:
Nombre   Dir Privada   Dir Publica
Server   192.168.0.1   150.2.2.3
..       ..            ..
Ej paq ida:                          En router cambio a: (segun tabla)
Dir Dest      Dir Origen          -> Dir Dest      Dir Origen  
150.2.2.3     153.2.2.5   Datos      192.168.0.1   153.2.2.5   Datos
Ej paq vuelta:                       En router cambio a: (segun tabla)
Dir Dest      Dir Origen          -> Dir Dest      Dir Origen  
153.2.2.3     192.168.0.1 Datos      153.2.2.5     150.2.2.3   Datos
Ejercicio 3[editar]

Dada una red con direccion 199.199.199.0/24 se requiere direccionar a 50 VLANs de un solo servidor cada una. El router que conecta las 50 VLANs tiene 4 conexiones punto a punto para salir a Internet. Dibuje un esquema de la red aqui descripta, indicando direccion de red y mascaras para cada una. Asigne direcciones de su espacio tambien a las salidas a Internet.

Rta:

Red       #dirs(h+r,bc+router)  #bits dirs
VL 1..50  1+2+1=4               2     199.199.199.4*(k-1)/30        k=[1..50]
Int 1..4  1+2+1=4               2     199.199.199.4*50+4*(k-1)+1/30 k=[1..4]
  • Cada VLAN esta compuesta por dos interfaces que requieren direcciones unicast: el servidor y el router. Sumado a la dir de red y broadcast (terminadas en 0s y 1s respectivamente), c/u de las 50 VLANs requiere 4 dirs.
  • La dir IP para la red es 199.199.199.0/24 => se tienen 2^(32-24)=256 dirs publicas para repartir. Como se necesitan 50*4=200 dirs, puede ser posible asignar publicas a todas.
  • Asi, la 1er VLAN tendra las dirs: red 199.199.199.0/30, el host 199.199.199.1, router 199.199.199.2 en esa interface, y broadcast 199.199.199.3.
  • La siguiente tendra 199.199.199.4, y asi sucesivamente. La idea es partir el espacio /24 de 256 dirs en 64 espacios /30 de 4 dirs c/u, y usar los 50 1eros.
  • Un esquema de la red seria entonces:
                      ---------- 
                     | INTERNET |
                      ---------- 
199.199.199.201/30    |  ....  |    199.199.199.213/30
                      ---------- 
                     |  ROUTER  |
                      ---------- 
199.199.199.2/30      |  ....  |    199.199.199.198/30
                      |  ....  |
199.199.199.0/30     VL1 .... VL50  199.199.199.196/30
                      |  ....  |
199.199.199.1/30      h  ....  h    199.199.199.197/30
  • Es necesario asignar dirs publicas tambien a las interfeces externas del router, c/u podria incluirse en una nueva red /30 (la de tam minimo para 2 hosts+red+broadcast). Partiendo de la ultima VLAN asignada, podrian usarse las dirs:
    • 199.199.199.201/30
    • 199.199.199.205/30
    • 199.199.199.209/30
    • 199.199.199.213/30
  • Notar que no puede usarse .200+4k pues son de red, ni .203+4k pues son de broadcast. Asimismo, se eligio que las interfaces esten en distintas redes.
  • La formula cerrada para la dir de red de la VLAN i es 199.199.199.4(i-1)/30. Las 2 siguientes son para hosts, y .4(i-1)+3/30 para broadcast.
Ejercicio 4[editar]

Suponga que en el camino entre varios routers para ir desde el host A hasta el host B, se llega al router 1, donde se empieza a fragmentar los paquetes IP a 1000 bytes (MTU = 1000). Luego se llega al router 5, que tiene un MTU de 600 bytes. Que ocurre alli? Explicar.

Rta:

  • El MTU=1000 del router 1 indica que los paquetes seran de tamano <=1000. Cualquier paquete IP sera fragmentado para entrar. Como la fragmentacion se realiza en multiplos de 8 bytes => los fragmentos maximos que pueda generar el router 1 son de tamano 976(datos)+20(hdr) bytes (no se puede 980 porque 980%8!=0).
  • Sup que del router 1 al 5, el MTU se mantenga >=1000, al router 5 pueden llegar paquetes de hasta 1000 bytes (o fragmentos de 996), que al ser >600 se deberan refragmentar.
  • En ese caso, 5 generara 2 fragmentos: uno de tam 576(datos)+20(hdr) bytes y otro que cubra el resto, o sea (size-576)+20.
  • Flag MF: (1ºfrag) siempre en 1, (2ºfrag) solo si el paquete original lo tenia. Offset: (1ºfrag) = al del paq de entrada, (2ºfrag) le sumara 576/8=72 a ese campo, pues esta expresado en 8 bytes. ID, dir, resto: =.
  • El router 5 luego envia estos fragmentos por la interfaz indicada en su tabla de Fw. Tambien setea el tam de c/fragmento con su valor correspondiente a la #bytes de datos. (1ºfrag) 576, (2ºfrag) size-576. Tambien cambian TTL y checksum.

Conceptuales[editar]

Ejercicio 1[editar]

Decidir la veracidad de la siguiente frase: Dado un código optimo, se puede armar otros dos codigos optimos para la misma cantidad de simbolos y longitud media.

Rta:

FALSO

  • Sup. tengo una codificacion del alfabeto {A,B} tq A=1 y B=0. Dicho codigo es optimo, pues es univocamente decodificable y de longitud minima, ya que no es posible usar menos binits para la codificacion. EL unico otro codigo optimo generable es A=0 y B=1, ya que cualquier otro tendria mayor longitud minima; o sea, no es posible hallar otro mas.
  • Notar que si se desea generar otro codigo optimo, debera mantenerse la longitud media, L=SUM{i} Pi*Li, ya que optimalidad requiere que la longitud sea minima. Una forma sencilla de derivar nuevos optimos es intercambiando codificaciones entre simbolos de igual longitud, pero en el caso dado no es posible hacerlo mas de 1 vez.
Ejercicio 2[editar]

Justifique por qué link state se considera un tipico algortimo de ruteo distribuido, siendo que el calculo de la tabla de ruteo es centralizada (en cada uno de los routers).

Rta:

  • Link-State se caracteriza por hacer flooding de paquetes indicando las conexiones de cada router con sus vecinos. Eventualmente cada router podra generar una tabla con todo el estado de la red, y aplicar cualquier algoritmo de camino minimo (como Dijkstra) para obtener la tabla de FW.
  • Sin embargo, c/u de los routers comparte la informacion que tiene con el resto de la red y realiza por si mismo el calculo, por eso se lo considera distribuido. Seria centralizado si dependiera de un unico agente encargado de reunir la informacion procesada y distribuirla, que no es el caso. La inexistencia de un agente que centralice el proceso para todos los routers reduciria la robustez del metodo, ya que su falla implicaria la de todo el algoritmo.