11.05.2013 Views

Evaluación de Algoritmos de Ruteamiento Multipunto en Redes de ...

Evaluación de Algoritmos de Ruteamiento Multipunto en Redes de ...

Evaluación de Algoritmos de Ruteamiento Multipunto en Redes de ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

$ns duplex-link no<strong>de</strong>1 no<strong>de</strong>2 bandwidth <strong>de</strong>lay queue-type: crea dos<br />

<strong>en</strong>laces simples <strong>de</strong> un ancho <strong>de</strong> banda y retardo específico, y conecta a dos nodos dados. En<br />

Ns, la cola <strong>de</strong> salida <strong>de</strong> un nodo es implem<strong>en</strong>tada como parte <strong>de</strong> un <strong>en</strong>lace, <strong>en</strong> consecu<strong>en</strong>cia<br />

los usuarios podrían especificar el tipo <strong>de</strong> cola <strong>en</strong> el mom<strong>en</strong>to que crean un <strong>en</strong>lace. En el<br />

script <strong>de</strong> simulación mostrado arriba, se usa una cola <strong>de</strong> tipo DropTail. Si se quisiera utilizar<br />

un tipo <strong>de</strong> cola RED, simplem<strong>en</strong>te se <strong>de</strong>be reemplazar la palabra Drop Tail por RED. La<br />

implem<strong>en</strong>tación <strong>de</strong> un <strong>en</strong>lace <strong>en</strong> Ns se muestra <strong>en</strong> la sección posterior. Análogam<strong>en</strong>te a un<br />

nodo, un <strong>en</strong>lace es un objeto compuesto, y los usuarios pue<strong>de</strong>n crearlo con subobjetos que se<br />

conectan. El código fu<strong>en</strong>te <strong>de</strong> los <strong>en</strong>laces se pue<strong>de</strong> <strong>en</strong>contrar <strong>en</strong> los archivos “ns‐2/tcl/libs/ns‐<br />

lib.tclʺ y ʺns‐2/tcl/libs/ns‐link.tcl”. Cabe <strong>de</strong>stacar que pue<strong>de</strong>n insertarse módulos <strong>de</strong> error <strong>en</strong><br />

un compon<strong>en</strong>te <strong>de</strong> un <strong>en</strong>lace, con el fin <strong>de</strong> simular una pérdida <strong>de</strong> <strong>en</strong>lace (actualm<strong>en</strong>te los<br />

usuarios pue<strong>de</strong>n hacer e insertar algún objeto <strong>de</strong> red). Para más <strong>de</strong>talles se pue<strong>de</strong> ver la<br />

docum<strong>en</strong>tación oficial <strong>de</strong> Ns.<br />

$ns queue-limit no<strong>de</strong>1 no<strong>de</strong>2 number: Esta línea establece el límite <strong>de</strong> la cola (al<br />

número especificado, number) para los dos <strong>en</strong>laces simples que conectan al nodo n1 con el<br />

nodo n2. Seguram<strong>en</strong>te muchas <strong>de</strong> las cosas que están disponibles para las funciones<br />

miembros <strong>de</strong>l objeto Simulator no se han visto ni se verán <strong>en</strong> las sigui<strong>en</strong>tes secciones. Para<br />

más <strong>de</strong>talles se pue<strong>de</strong>n ver los archivos ʺns‐2/tcl/libs/ns‐lib.tclʺ y ʺns‐2/tcl/libs/ns‐link.tclʺ, o<br />

bi<strong>en</strong> la docum<strong>en</strong>tación oficial <strong>de</strong> Ns.<br />

$ns duplex-link-op no<strong>de</strong>1 no<strong>de</strong>2 ...: <strong>de</strong>spués <strong>de</strong> esta s<strong>en</strong>t<strong>en</strong>cia, el próximo par<br />

<strong>de</strong> líneas son usadas por el visualizador NAM. Para ver los efectos <strong>de</strong> estas líneas <strong>de</strong> código<br />

los usuarios pue<strong>de</strong>n com<strong>en</strong>tarlas y ver que pasa <strong>en</strong> la simulación.<br />

Ahora que está hecha la configuración básica <strong>de</strong> la red, el próximo paso es configurar los<br />

ag<strong>en</strong>tes <strong>de</strong> tráfico tales como TCP y UDP, las fu<strong>en</strong>tes <strong>de</strong> tráfico, tales como FTP y CBR, y<br />

adjuntarlos a los nodos y ag<strong>en</strong>tes respectivam<strong>en</strong>te.<br />

set tcp [new Ag<strong>en</strong>t/TCP]: Esta línea muestra como crear un ag<strong>en</strong>te TCP. En<br />

g<strong>en</strong>eral, los usuarios pue<strong>de</strong>n crear algún ag<strong>en</strong>te o fu<strong>en</strong>te <strong>de</strong> tráfico <strong>de</strong> esta manera. Los<br />

ag<strong>en</strong>tes y fu<strong>en</strong>tes <strong>de</strong> tráfico son <strong>de</strong> hecho objetos básicos (no compuestos), la mayoría <strong>de</strong> ellos<br />

están implem<strong>en</strong>tados <strong>en</strong> C++ y vinculados a OTcl. En consecu<strong>en</strong>cia, no hay funciones<br />

miembros específicas <strong>de</strong>l objeto Simulator que cre<strong>en</strong> estas clases <strong>de</strong> objetos. Para crear<br />

ag<strong>en</strong>tes o fu<strong>en</strong>tes <strong>de</strong> tráfico, un usuario <strong>de</strong>bería conocer el nombre <strong>de</strong> la clase <strong>de</strong> estos objetos<br />

(Ag<strong>en</strong>t/TCP, Ag<strong>en</strong>t/TCPSink, Application/FTP y así sucesivam<strong>en</strong>te). Esta información se<br />

pue<strong>de</strong> obt<strong>en</strong>er <strong>en</strong> la docum<strong>en</strong>tación oficial <strong>de</strong>l Ns. Un atajo es ver el archivo ʺns‐2/tcl/libs/ns‐<br />

<strong>de</strong>fault.tclʺ. Este archivo conti<strong>en</strong>e los valores <strong>de</strong> los parámetros configurables por <strong>de</strong>fecto<br />

para los objetos <strong>de</strong> red disponibles.<br />

$ns attach-ag<strong>en</strong>t no<strong>de</strong> ag<strong>en</strong>t: La función miembro attach-ag<strong>en</strong>t adjunta un<br />

objeto ag<strong>en</strong>te creado para un objeto nodo. Actualm<strong>en</strong>te, lo que hace esta función es llamar a<br />

la función miembro “attach” <strong>de</strong> un nodo específico, el cual adjunta el ag<strong>en</strong>te dado para el. En<br />

consecu<strong>en</strong>cia, un usuario pue<strong>de</strong> hacer la misma cosa, por ejemplo, $n0 attach $tcp.<br />

Similarm<strong>en</strong>te, cada objeto ag<strong>en</strong>te ti<strong>en</strong>e una función miembro attach-ag<strong>en</strong>t que adjunta un<br />

objeto fu<strong>en</strong>te <strong>de</strong> tráfico a si mismo.<br />

$ns connect ag<strong>en</strong>t1 ag<strong>en</strong>t2: Después que los dos ag<strong>en</strong>tes creados están<br />

comunicados, el próximo paso a seguir es establecer la conexión lógica <strong>de</strong> red <strong>en</strong>tre ellos.<br />

94

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!