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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

La<br />

Figura 1 muestra una visión <strong>de</strong> usuario <strong>de</strong> Ns simplificada. Ns es un intérprete <strong>de</strong> scripts<br />

<strong>en</strong> l<strong>en</strong>guaje Tcl ori<strong>en</strong>tado a objeto (OTcl). Ns ti<strong>en</strong>e un planificador <strong>de</strong> ev<strong>en</strong>tos para la<br />

simulación, librerías <strong>de</strong> objetos que son compon<strong>en</strong>tes <strong>de</strong> red y librerías <strong>de</strong> módulos <strong>de</strong><br />

configuración <strong>de</strong> red (plumbing modules). Actualm<strong>en</strong>te los módulos plumbing están<br />

implem<strong>en</strong>tados como funciones miembros <strong>de</strong>l objeto simulador base.<br />

Para configurar y correr una simulación <strong>de</strong> una red el usuario <strong>de</strong>berá escribir un script <strong>en</strong><br />

OTcl que inicie un programa <strong>de</strong> ev<strong>en</strong>tos, configure una topología <strong>de</strong> red usando los objetos<br />

<strong>de</strong> red y las funciones plumbing <strong>de</strong> la librería, y finalm<strong>en</strong>te <strong>de</strong>berá anunciar el comi<strong>en</strong>zo y<br />

término <strong>de</strong> la transmisión <strong>de</strong> paquetes <strong>de</strong> las fu<strong>en</strong>tes <strong>de</strong> tráfico <strong>de</strong>ntro <strong>de</strong>l planificador <strong>de</strong><br />

ev<strong>en</strong>tos.<br />

Cuando un usuario quiere hacer un nuevo objeto <strong>de</strong> red, él pue<strong>de</strong> hacerlo escribi<strong>en</strong>do un<br />

nuevo objeto o haci<strong>en</strong>do un objeto compuesto a partir <strong>de</strong> la librería <strong>de</strong> objetos, junto con<br />

conectar los datos <strong>en</strong>tre objetos.<br />

Otro compon<strong>en</strong>te importante <strong>de</strong> Ns, junto a los objetos <strong>de</strong> red, es el planificador <strong>de</strong><br />

acontecimi<strong>en</strong>tos (scheduler ev<strong>en</strong>t). Un acontecimi<strong>en</strong>to o ev<strong>en</strong>to <strong>en</strong> Ns es la i<strong>de</strong>ntificación <strong>de</strong><br />

un único paquete <strong>en</strong> un tiempo programado, junto con un puntero a un objeto que maneja<br />

dicho ev<strong>en</strong>to. En Ns, un scheduler ev<strong>en</strong>t supervisa el tiempo <strong>de</strong> simulación e inicia todos los<br />

ev<strong>en</strong>tos que hay programados <strong>en</strong> la cola <strong>de</strong> ev<strong>en</strong>tos para el instante actual, invocando los<br />

compon<strong>en</strong>tes apropiados <strong>de</strong> red, que son g<strong>en</strong>eralm<strong>en</strong>te los que solicitaron los ev<strong>en</strong>tos, y los<br />

<strong>de</strong>ja hacer las acciones apropiadas asociadas al paquete señalado por el ev<strong>en</strong>to.<br />

Los compon<strong>en</strong>tes <strong>de</strong> la red se pasan paquetes a través <strong>de</strong> la comunicación exist<strong>en</strong>te <strong>en</strong>tre<br />

ellos, no obstante, esta actividad no consume tiempo real <strong>de</strong> simulación. Todas las<br />

compon<strong>en</strong>tes <strong>de</strong> la red que necesitan <strong>de</strong>jar pasar un cierto tiempo <strong>de</strong> simulación para el<br />

procesami<strong>en</strong>to <strong>de</strong> un paquete (es <strong>de</strong>cir que consi<strong>de</strong>ran retardos <strong>en</strong> la compon<strong>en</strong>te), invocan<br />

un ev<strong>en</strong>to que retarda la acción <strong>de</strong>l ev<strong>en</strong>to que correspondía al paquete justo antes <strong>de</strong> pasar<br />

por la compon<strong>en</strong>te.<br />

Por ejemplo, para un compon<strong>en</strong>te <strong>de</strong> red correspondi<strong>en</strong>te a un switch que posee un<br />

retardo <strong>de</strong> conmutación <strong>de</strong> 20 microsegundos, solicita los ev<strong>en</strong>tos para los paquetes 20<br />

microsegundos más tar<strong>de</strong> <strong>en</strong> la simulación. Luego <strong>de</strong> estos 20 microsegundos, el planificador<br />

<strong>de</strong>s<strong>en</strong>colará el ev<strong>en</strong>to para un paquete dado e iniciará la compon<strong>en</strong>te <strong>de</strong> red (switch), la cual<br />

pasará el paquete a otro compon<strong>en</strong>te, que naturalm<strong>en</strong>te correspon<strong>de</strong>rá a un <strong>en</strong>lace.<br />

Otro uso <strong>de</strong>l planificador <strong>de</strong> ev<strong>en</strong>tos es el llevar la cu<strong>en</strong>ta <strong>de</strong>l tiempo. Por ejemplo, <strong>en</strong> TCP<br />

se necesita un contador para saber cuando una transmisión <strong>de</strong> paquete a superado el time<br />

out establecido <strong>en</strong> el protocolo, y así retransmitir el paquete. (La retransmisión <strong>de</strong>l paquete se<br />

realizará con el mismo número <strong>de</strong> transmisión TCP pero distinta i<strong>de</strong>ntificación <strong>de</strong> paquete<br />

para Ns).<br />

Los contadores usan el planificador <strong>de</strong> ev<strong>en</strong>tos <strong>de</strong> manera similar a los retardos. La única<br />

difer<strong>en</strong>cia es que los contadores mi<strong>de</strong>n el tiempo asociado a un paquete y hac<strong>en</strong> la acción<br />

apropiada relativa a ese paquete <strong>de</strong>spués <strong>de</strong> un tiempo específico, sin ser esto la simulación<br />

<strong>de</strong> un retraso.<br />

Ns no sólo está escrito <strong>en</strong> OTcl, si no que también <strong>en</strong> C++. Por razones <strong>de</strong> efici<strong>en</strong>cia, Ns<br />

separa para la implem<strong>en</strong>tación los path <strong>de</strong> datos y control. A modo <strong>de</strong> reducir los paquetes y<br />

el tiempo <strong>de</strong> procesami<strong>en</strong>to (no el tiempo <strong>de</strong> simulación), el planificador <strong>de</strong> ev<strong>en</strong>tos y los<br />

86

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

Saved successfully!

Ooh no, something went wrong!