Max Hernandez

Laberinto - Ejemplo de Canvas en HTML5

lunes, 8 de abril de 2013

Laboratorio 6: Modos de enrutamiento y generación de topologías

Para esta semana en la clase de redes de telecomunicaciones se nos dio la tarea de construir un generador de topologías y simularlo en NS-2 o NS-3.

Topología de Hipercubo


[Imagen obtenida de:"http://upload.wikimedia.org/wikipedia/commons/0/0f/Hypercube.png"]
Para el generador de topologías decidí implementar una basada en hipercubos
los cuales son modelos que se obtienen tratando de desplazar un cubo a la quinta dimensión, imaginando el cubo como una sombra.
Para la topología se tomaron características de un hipercubo en especial para generar las topologías, el programa recibe como entrada la cantidad de dimensiones que tendrá el hipercubo utilizado como modelo para la topología después de eso se calculan el número de nodos que tiene un hipercubo de esas dimensiones y se hace un grafo que muestra quien tiene debe tener conexiones con quien.

El número de nodos se calcula siendo $n$ el número de dimensiones, con la siguiente formula:
$nodos = 2^{n}$

Ahora se calculan los vecinos para cada nodos nombrando los nodos con números de cero a $n$
$nodos = \left \{  0, ..., n\right \}$

Ahora para cada nodo se calculan sus vecinos utilizando una representación binaria de el nombre del nodos y buscando otros nodos en los que su representación binaria solo cambie en un bit, siendo estos sus vecinos. por Ejemplo: El nodo "000" es vecino de los nodos "001", "100", "010".


[imagen obtenida de: "http://www.mathematische-basteleien.de/hyper14.gif"]

Routing NS-2
En el ruteo hay cuatro estrategias:
  1. Estática
    \$ns rtproto Static;
  2. Sesión
    \$ns rtproto Session;
  3. Dinamica
    \$ns rtproto DV \$n1 \$n2 \$n3;
  4. Manual
    \$ns rtproto LS \$n1 \$n2;

También es posible definir el costo de llegar de un nodo a otro, lo cual afectara el enrutamiento dependiendo de la configuración seleccionada.
Para definir un costo:
\$ns cost \$n1 \$n2 10;
Para verificar el valor del costo definido:
[\$ns link \$n1 \$n2] cost?;

También podemos configurar una tabla de ruteo manual, configurando la simulación para eso:
\$ns rtproto Manual

Y definiendo una ruta manual de la siguiente manera:
[\$n1 get-module "Manual"] add-route-to-adj-node -default \$n2

Código


Resultado
El código anterior genera un archivo ".tlc", el cuál compila con NS-2 y luego corre la animación generada con NAM.

Hipercubo de 2 dimensiones

Hipercubo de 3 dimensiones


Hipercubo de 4 dimensiones


Referencias:
http://www.tjhsst.edu/~dhyatt/arch/hyper.html
http://es.wikipedia.org/wiki/Hipercubo
http://www.tti.unipa.it/~ilenia/course/05_NS_Routing.pdf

1 comentario:

  1. Me hubiera gustado ver los distintos ruteos en las topologías generadas. 6 pts.

    ResponderBorrar