You are on page 1of 15

Redes de rea Local e Interconexin de Redes

Prcticas
PRCTICA 1.
INTRODUCCIN AL SIMULADOR ns
El objetivo de esta prctica es introducir al alumno en la utilizacin de uno de los simuladores de redes ms ampliamente utilizado entre la comunidad docente e investigadora del rea de redes de computadores. El simulador ns es una herramienta disponible en mltiples plataformas que ofrece soporte para la simulacin de todo tipo de redes tanto cableadas como inalmbricas. El simulador permite la configuracin de gran cantidad de parmetros tales como la topologa de la red, la pila de protocolos y parmetros especficos de cada protocolo. Tambin permite evaluar el impacto de diferentes tipos de trfico de red. Se realiza una prctica guiada que introduce al alumno la herramienta de simulacin presentando los aspectos bsicos de la misma que permiten al alumno una primera toma de contacto a partir de la cual poder avanzar en el estudio y anlisis de diferentes aspectos relacionados con las redes de computadores. Informacin detallada del simulador esta disponible en el siguiente sitio web: http://www.isi.edu/nsnam/ns/. 1. El simulador ns. ................................................................................... 2 2. Obtencin del simulador...................................................................... 3 2.1 Instalacin de ns. ............................................................................. 3 3. Herramienta Network Animation, nam................................................. 4 4. Un primer ejemplo. .............................................................................. 6 4.1 Anlisis del primer ejemplo. ............................................................. 6 5. Ejercicios. .......................................................................................... 11
Pgina 1

Prctica 1. Redes de rea Local e Interconexin de Redes

1. El simulador ns.
El simulador ns fue originalmente desarrollado bajo la supervisin del proyecto VINT (Virtual InterNetwork Testbed). Este proyecto estuvo respaldado por la DARPA (Defense Advanced Research Projects Agency) y actualmente ha quedado en manos de un grupo de investigadores y desarrolladores de la Universidad de Berkeley, LBL (Lawrence Berkeley Laboratory), USC/ISI (University of Southern California/Information Sciences Institute) y Xerox PARC (Palo Alto Research Center). La versin actualmente en desarrollo es la 2 (de la cual existen mltiples subversiones). ns es un simulador gratuito que se suministra con el cdigo fuente completo. El principal cambio desde la versin 1 ha sido una mejor subdivisin de las clases de objetos que componen el ncleo del simulador (para permitir un mejor desarrollo del mismo) y la adopcin del lenguaje OTcl como lenguaje de scripting. El simulador ns consta de un ncleo principal escrito en C++ al que se invoca simplemente tecleando ns en la lnea de comandos (una vez este ha sido correctamente instalado). A partir de este punto el usuario puede interactuar directamente con el simulador, a travs de un lenguaje de interface. El lenguaje de interface es OTcl, una versin de Tcl 2 orientada a objetos. En realidad, el mtodo anterior no es el ms recomendable. ns est pensado para ser ejecutado en modo batch. El usuario define mediante un script la pila de protocolos y otros aspectos bsicos del tipo de red a simular, y proporciona a ns diversos datos, algunos en forma de ficheros acerca del escenario a simular y del tipo y caractersticas del trfico se va a utilizar. Conforme avanza la simulacin, se generan un conjunto de datos de salida que se almacenan en un fichero de traza. A partir de las trazas de simulacin se pueden utilizar lenguajes como Perl y AWK para filtrar la traza y obtener los ndices de prestaciones que se deseen evaluar. Finalmente, herramientas tales como Network Animator (nam) permiten realizar un anlisis visual del envo y recepcin de paquetes de datos y control a medida que avanza la simulacin. La Figura 1 muestra un esquema del proceso de simulacin

Script Otc

Network Simulator 2

Archivo de

Procesamiento de datos

Archivos con la configuracin de la simulaci

Network Animator
Figura 1. Estructura del proceso del simulacin.
Pgina 2

Prctica 1. Redes de rea Local e Interconexin de Redes

El simulador ns, es un simulador extremadamente potente, diseado por y para investigadores. A pesar de esto, y debido a que es altamente configurable, resulta tambin indicado para ejecutar simulaciones de redes concretas as como herramienta educativa.

2. Obtencin del simulador.


Aunque el simulador ns ya se encuentra correctamente instalado en las mquinas del laboratorio, en este apartado se indica como obtener el simulador as como los pasos necesarios para su correcta instalacin. La pgina principal de ns se encuentra ubicada en la direccin URL http://www.isi.edu/nsnam/ns/. Desde esta ubicacin se puede obtener el simulador de diferentes formas. ns-src-2.1b9a.tar.gz: Contiene el cdigo fuente del simulador. Una vez compilado, pueden ejecutarse scripts de instalacin para empezar a trabajar con el mismo. Esta distribucin es la mas indicada para aquellos que deseen modificar internamente el programa o desarrollar extensiones para soportar tipos de redes no soportados nativamente por ns. ns-allinone-2.1b9a.tar.gz: Contiene, adems de lo visto en el punto anterior, todas las libreras y programas necesarios para la compilacin y uso de ns, tales como OTcl. Es posible que todas o algunas de estas libreras no estn disponibles en el sistema en un momento dado. Este paquete las suministra todas en un fichero autocontenido. ns-2.1b9a-win32.zip: Binarios precompilados para plataformas Win32. En esta plataforma es ms comn encontrar errores al instalar o configurar, la herramienta, de ah que se suministre el programa ya compilado, para aquellos que nicamente deseen simular y no modificar el cdigo fuente del simulador.

Tras descargar el paquete, este debe instalarse correctamente en el sistema, descomprimiendo el fichero, compilando en caso de ser necesario y finalmente ejecutando los scripts de configuracin que establecen las variables de entorno necesarias.

2.1 Instalacin de ns.


En este punto, asumimos que el lector ha descargado uno de los paquetes anteriormente descritos, en concreto ns-allinone-2.1b9a.tar.gz, el cual contiene adems del cdigo fuente, las libreras empleadas por ns.

Pgina 3

Prctica 1. Redes de rea Local e Interconexin de Redes

Una vez descargado, el fichero se debe descomprimir en un directorio determinado. A continuacin se deben compilar los ficheros fuentes para generar los binarios del simulador y sus utilidades asociadas. Se debe ejecutar el comando ./configure desde el directorio donde ha sido descomprimido ns para generar los scripts de compilacin correctamente. A continuacin se ejecuta la orden de compilacin make (puede tardar hasta treinta minutos en compilar, dependiendo de la velocidad de la mquina en la cual se est trabajando): Si todo ha ido correctamente, tras la ejecucin de las ordenes anteriores ns estar compilado en nuestro sistema listo para ser invocado. Nota: Los PCs del laboratorio ya tienen instalada una copia del simulador. Sin embargo para que ste funcione correctamente se deben establecer una serie de variables de entorno. Para establecer dichas variables correctamente basta con ejecutar el script bash_setup_ns2 disponible en la web de la asignatura. Estableciendo previamente los permisos de ejecucin sobre el script bash_setop_ns2, ejecute el siguiente comando: source bash_setup_ns2 En este punto ya debe estar disponible el simulador ns.

3. Herramienta Network Animation, nam.


La herramienta nam es una herramienta de animacin desarrollada en Tcl/TK que utilizando como entrada las trazas generadas automticamente por ns permite realizar una animacin de la simulacin realizada con ns. Para invocar nam se utiliza la siguiente orden: nam fichero_traza.nam Cuando se abre un fichero de traza con nam, se crea una ventana con la topologa indicada en la simulacin. La Figura 2 muestra el aspecto general de la herramienta nam. Se han remarcado los comandos y zonas ms importantes de la herramienta.

Pgina 4

Prctica 1. Redes de rea Local e Interconexin de Redes

Figura 2. Herramienta nam. Las principales reas y funciones de la herramienta nam son las siguientes: Animation Area: En esta zona de la ventana se visualiza el escenario y la animacin del mismo. Zoom In y Zoom Out: Estos dos botones permiten acercar o alejar el escenario y poder abarcar un mayor rango de visin de la simulacin. Stop/Play Animation: Como su nombre indica sirven para iniciar y detener la animacin. Current Animation Time: Indica el tiempo que llevamos de simulacin. Su valor llegar hasta el tiempo que le hubiramos indicado en la simulacin. Step: Este valor nos indica lo rpido que evolucionar la simulacin (en milisegundos). Su valor se puede modificar con el slider que hay debajo del marcador. Men: Agrupa varias opciones como por ejemplo grabar la animacin, imprimir el rea de animacin, ver la energa de los nodos, filtrar el tipo de paquetes a visualizar (Datos, Mac, Routing), etc.

Pgina 5

Prctica 1. Redes de rea Local e Interconexin de Redes

4. Un primer ejemplo.
En este apartado se presenta un primer ejemplo sencillo que se utilizar para introducir los conceptos bsicos de utilizacin del simulador. La forma bsica de utilizacin del simulador es la siguiente: 1. Desarrollo de un fichero scripts escrito en OTcl. Los scripts describen en lenguaje OTcl las caractersticas de la simulacin a llevar a cabo. Para editar estos scripts se necesitarn tener conocimientos bsicos de OTcl. En la direccin http://www.isi.edu/nsnam/ns/tutorial/index.html se puede encontrar manuales relacionados con OTcl. Un primer punto de partida puede ser utilizar alguno de los numerosos ejemplos disponibles en el directorio /tcl/ex de la distribucin del simulador. 2. Ejecucin del script. Una vez desarrollado el script, la forma de ejecutarlo se puede realizar utilizando el comando siguiente: ns script.tcl 3. Anlisis de los resultados. A partir de la simulacin realizada se pueden generan dos ficheros de salida. Un fichero con extensin .nam utilizado por la herramienta nam para realizar una animacin de la simulacin y un fichero de traza con extensin .tr a partir del cual se pueden obtener los ndices de prestaciones que se deseen, utilizando scripts de filtrado en lenguajes tales como Perl o AWK.

4.1 Anlisis del primer ejemplo.


En este apartado se analiza lnea a lnea el un primer ejemplo sencillo denominado primer.tcl .que describe un escenario sencillo de simulacin basado en 4 estaciones conectadas mediante enlaces de diferentes caractersticas. 1 2 set ns [new Simulator] 3 La lnea 2 declara la variable "ns" y se le asigna un nuevo objeto de simulacin 4 $ns color 0 blue 5 $ns color 1 red 6 $ns color 2 white

Pgina 6

Prctica 1. Redes de rea Local e Interconexin de Redes

7 Las lneas 4-6 se utilizan para asociar colores con el trfico ns. Este cdigo esta asociado con las animaciones de la herramienta nam. 8 set n0 [$ns node] 9 set n1 [$ns node] 10 set n2 [$ns node] 11 set n3 [$ns node] Las lneas 8-11 declaran 4 estaciones y les asigna las variables n0 a n3. 12 13 set f [open out.tr w] 14 $ns trace-all $f 15 set nf [open out.nam w] 16 $ns namtrace-all $nf 17 Las lneas 12-17 declaran los descriptores de los ficheros de salida out.tr (fichero de traza) y out.nam (fichero de animacin utilizado por nam). 18 $ns duplex-link $n0 $n2 5Mb 2ms DropTail 19 $ns duplex-link $n1 $n2 5Mb 2ms DropTail 20 $ns duplex-link $n2 $n3 1.5Mb 10ms DropTail 21 Las lneas 18-20 declaran enlaces entres las estaciones. Por cada enlace se indica caractersticas tales como el tipo (duplex) el ancho de banda (5 Mb/s o 1.5 Mb/s) el retardo de propagacin (2ms o 10 ms) y la poltica de servicio de las colas (DropTail corresponde a una poltica first-in-first-out). 22 $ns duplex-link-op $n0 $n2 orient right-up 23 $ns duplex-link-op $n1 $n2 orient right-down 24 $ns duplex-link-op $n2 $n3 orient right 25

Pgina 7

Prctica 1. Redes de rea Local e Interconexin de Redes

26 $ns duplex-link-op $n2 $n3 queuePos 0.5 27 Las lneas 22-26 son comandos que se utilizan para generar el fichero de animacin .nam, y describen la orientacin de las estaciones y los enlaces. 28 set udp0 [new Agent/UDP] 29 $ns attach-agent $n0 $udp0 30 set cbr0 [new Application/Traffic/CBR] 31 $cbr0 attach-agent $udp0 32 Las lneas 28-31 declaran un agente de transporte UDP en la estacin n0, y le asocian un trfico CBR. 33 set udp1 [new Agent/UDP] 34 $ns attach-agent $n3 $udp1 35 $udp1 set class_ 1 36 set cbr1 [new Application/Traffic/CBR] 37 $cbr1 attach-agent $udp1 38 Las lneas 33-37 son parecidas a las anteriores con la nica diferencia de que se utiliza la lnea 35 para etiquetar este trfico con una clase de servicio diferente. 39 set null0 [new Agent/Null] 40 $ns attach-agent $n3 $null0 41 42 set null1 [new Agent/Null] 43 $ns attach-agent $n1 $null1 44 Las lneas 39-43 declaran y asocian agentes del tipo "null" a las estaciones receptoras. Estos agentes simplemente aceptan trfico sin realizar ninguna otra accin adicional.
Pgina 8

Prctica 1. Redes de rea Local e Interconexin de Redes

45 $ns connect $udp0 $null0 46 $ns connect $udp1 $null1 47 Las lneas 45 y 46 establecen las conexiones entre los agentes udp y null. 48 $ns at 1.0 "$cbr0 start" 49 $ns at 1.1 "$cbr1 start" Las lneas 48 y 49 indican los instantes en los que se comienza a generar trfico CBR (instante 1.0 y 1.1 respectivamente). 50 51 set tcp [new Agent/TCP] 52 $tcp set class_ 2 53 set sink [new Agent/TCPSink] 54 $ns attach-agent $n0 $tcp 55 $ns attach-agent $n3 $sink 56 $ns connect $tcp $sink 57 set ftp [new Application/FTP] 58 $ftp attach-agent $tcp 59 $ns at 1.2 "$ftp start" 60 Las lneas 51-59 declarar un agente del tipo TCP entre las estaciones n0 y n3. A continuacin se asocial un trfico FTP (file transfer protocol) sobre dicho agente. En el instante 1.2 se comienza a transferir un fichero de tamao infinito. 61 $ns at 1.35 "$ns detach-agent $n0 $tcp ; $ns detachagent $n3 $sink" 62 La lnea 61 indica la parada del trfico FTP en el instante 1.35. 63 puts [$cbr0 set packetSize_] 64 puts [$cbr0 set interval_]
Pgina 9

Prctica 1. Redes de rea Local e Interconexin de Redes

65 Las lneas 63 y 64 indican que se impriman en pantalla las variables tamao del paquete e intervalo entre paquetes CBR. 66 $ns at 3.0 "finish" 67 La lnea 66 indica el instante en el que finaliza la simulacin. 68 proc finish {} { 69 70 71 72 73 74 75 76 77 } 78 Las lneas 68-77 declaran una funcin encargada de cerrar los descriptores de ficheros y lanzar la herramienta nam de forma automtica una vez finalizada la simulacin. 79 $ns run 80 Finalmente, la lnea 79 indica que se ejecute el objeto simulador declarado en la lnea 2. puts "running nam..." exec nam out.nam & exit 0 global ns f nf $ns flush-trace close $f close $nf

Pgina 10

Prctica 1. Redes de rea Local e Interconexin de Redes

5. Ejercicios.
Antes de realizar los ejercicios se deber obtener y descomprimir en un directorio el paquete p3_scripts.tar.gz con los diferentes scripts de la prctica. Para descomprimir el fichero ejecute la siguiente orden: tar xzvf p3_scripts.tar.gz Ejercicio 1. Ejecute el fichero primer.tcl e indique cual es el tamao del paquete CBR y el intervalo de envo de los mismos.

Ejercicio 2. Analice el fichero de traza out.tr. Nota: Cada lnea de este fichero corresponde a un evento donde cada uno de los campos tiene un significado especfico. As, por cada lnea el primer campo hace referencia a la operacin (+ = paquete entra en una cola, - = paquete sale de una cola, r = paquete recibido, d = paquete eliminado). El siguiente campo indica el tiempo en que ocurre el evento. A continuacin aparecen las estaciones fuente y destino, el tipo y el tamao del paquete. Del resto de campos, resulta de especial inters el ltimo campo, el cual es un identificador de paquete, y permite realizar un seguimiento de los diferentes paquetes.

Ejercicio 3. Ejecute la herramienta nam con el fichero out.nam generado e intente identificar los diferentes flujos de datos. En que periodo temporal hay una mayor congestin de la red? Nota: Intente poner el paso de simulacin aproximadamente en 50 microseg y visualizar la evolucin de la simulacin a partir del segundo 1.

Pgina 11

Prctica 1. Redes de rea Local e Interconexin de Redes

Ejercicio 4. A partir de los conceptos tratados en la asignatura de Redes calcule el producto bandwidth-delay (tamao de la ventana) de los enlaces entre las estaciones 0-3 y 2-3.

Ejercicio 5. Utilice la herramienta nam para analizar cuantos paquetes estn siendo enviados sin llegar al destino entre el instante 1.0 y 1.1. Se pide: 1. Cuntos paquetes estan in fligh entre las estaciones 0-2? 2. Cuntos paquetes estan in fligh entre las estaciones 2-3? 3. A que se debe esta diferencia?

Ejercicio 6 A partir del fichero de traza out.tr indicar cuantos paquetes son eliminados. (Intente buscar eventos cuyo primer campo sea d = drop).

Pgina 12

Prctica 1. Redes de rea Local e Interconexin de Redes

Nota: Utilice el comando grep Se pide: Cuntos paquetes se eliminan debido a saturacin de alguna cola?

Ejercicio 7 El script primer.tcl utiliza un tamao de cola igual a 50 paquetes. En este ejercicio se va a modificar el tamao de la cola entre las estaciones 2 y 3. Para realizar este cambio se deben aadir las siguientes lneas tras la lnea 27 del fichero primer.tcl. $ns queue-limit $n2 $n3 10 puts "Nuevo tamao de cola entre 2 y 3 es [[[$ns link $n2 $n3] queue] set limit_]" Se pide: 1. Modificar el script primer.tcl. 2. Cuntos paquetes se eliminan debido a saturacin de alguna cola? 3. Intente visualizar con la herramienta nam los paquetes eliminados 4. Elimine las dos lneas aadidas al script original.

Pgina 13

Prctica 1. Redes de rea Local e Interconexin de Redes

Como se comento anteriormente, para obtener ndices de prestaciones a partir del fichero de traza out.tr, lo ms cmodo es utilizar alguno de los numerosos lenguajes de scripts tales como perl y awk. A continuacin se utilizarn dos scripts realizados en lenguaje perl para analizar la relacin existente entre ancho de banda y variabilidad del retardo o jitter. Samples.pl. Es un script que a partir del fichero de traza obtiene el retardo que ha sufrido desde que fue enviado hasta que es recibido por la estacin destino. Este script utiliza como entrada el fichero out.tr y genera como resultado el fichero out.tr.delay. Stddev.pl. Obtiene la media y desviacin tpica de los valores contenidos en out.tr.delay.

Ejercicio 8. Ejecutar los siguientes comandos: $ perl samples.pl -infile out.tr $ perl stddev.pl -infile out.tr.delays Se pide: 1. Indicar cual es el retardo mnimo, mximo, la media y la desviacin tpica de los paquetes enviados.

Pgina 14

Prctica 1. Redes de rea Local e Interconexin de Redes

Ejercicio 9. Modifique el script primer.tcl para reducir el ancho de banda entre las estaciones 2-3 desde 1.5 Mb/s hasta 500 Kb/s Se pide: 1. Indicar cual es el retardo mnimo, mximo, la media y la desviacin tpica de los paquetes enviados. 2. Razone los resultados obtenidos.

Pgina 15

You might also like