SlideShare una empresa de Scribd logo
1 de 7
Descargar para leer sin conexión
All You Must to Know the NS Simulator
                                               A. F. Montoya, E. A. Ruiz, M. A. Martinez


Abstract- This paper presents the main features of NS Simulator           NS es un simulador de eventos discretos destinado para la
as the operating system that works, technical data of the                 creación de redes de investigación. Este proporciona un
computer for work and advantages over other simulators. Also,             apoyo sustancial para la simulación de variedad de
describes the process of installing and configuration in a
                                                                          protocolos de las capas de aplicación (http, ftp, cbr, etc),
operating system and a step by step example of a simple topology.
                                                                          transporte (TCP, UDP, RTP, SRM), también protocolos de
Keywords- simulation, NS, modeling, software tools, example,
                                                                          enrutamiento mono-difusión y multidifusión (multicast).
installation.1                                                            Aplicando funcionalidades tanto para redes cableadas, no
                                                                          cableadas, satelitales; con topologías complejas.
                         I. INTRODUCCIÓN
                                                                          El simulador NS también incluye mecanismos concernientes a
La simulación se puede definir como la imitación del                      la capa de Enlace de Datos en redes de área local, tales como
comportamiento de un sistema real durante un lapso de tiempo              protocolos de control de acceso al medio (MAC) del tipo de
determinado. En la actualidad se utilizan las simulaciones para           Acceso múltiple por detección de portadora y detección de
usos prácticos tales como: predicción, entrenamiento,                     colisiones (CSMA/CD). A su vez incluye diversos algoritmos
entretenimiento, mejor comprensión de la situación estudiada,             para la planificación de colas como FIFO, RED, FQ, SFQ,
apoyo a la toma de decisiones, etc.                                       DRR.

En el campo de las redes es importante simular debido a que               Para visualizar las simulaciones, NS dispone de herramientas
en la mayoría de los casos resulta mucho más práctico tener               para graficar como NAM y XGRAPH. El NAM es una
una idea del comportamiento que tendrá una arquitectura que               interfaz grafica que pueda representar la red que construyamos
necesitemos implementar antes de construirla físicamente.                 atreves del lenguaje OTcl y además permite visualizar
                                                                          dinámicamente el desplazamiento de los paquetes de la
Una de las herramientas de simulación de redes más                        simulación. El XGRAPH atreves de graficas bi-dimensionales
utilizadas alrededor del mundo tanto en el ámbito académico               permite realizar análisis de funcionalidades tales como
como en el investigativo es el NS, esto se debe a que se                  paquetes recibidos, paquetes perdidos, ancho de banda y
encuentra escrito en código abierto, y además gracias a que               retardos.
existe abundante documentación sobre este en la red. El
código de NS se ofrece bajo la versión 2 de la GNU (General               Básicamente NS se puede definir como un simulador
Public License).                                                          orientado a objetos, fue construido en C++ y proporciona una
                                                                          interfaz de simulación a través de OTcl, un dialecto orientado
                                                                          a objetos de Tcl. El usuario describe una topología de red
     II.       GENERALIDADES DEL SIMULADOR                                escribiendo scripts Otcl y, a continuación, el programa
                                                                          principal de NS simula la topología con los parámetros
En sus inicios NS fue desarrollado como una variante del                  especificados.
simulador de redes REAL en 1989, en los últimos años ha
tenido una gran evolución. Su desarrollo fue apoyado por                  En la actualidad NS se está utilizando tanto en entornos de
Defense Advanced Research Projects Agency (DARPA) con                     investigación como en entornos educativos. NS resulta de gran
ayuda de instituciones de investigación en redes como LBL,                ayuda para la investigación ya que nos da la posibilidad de
Xerox PARC, UCB y USC / ISI.                                              acceder a la realización de pruebas con elementos a los que
                                                                          no podríamos acceder normalmente en caso de no disponer de
                                                                          un simulador. NS además permite modificar casi todos los
    A. F. Montoya, Universidad Católica de Pereira, Pereira, Colombia,    parámetros que intervienen en el estado o configuración de
montoya118@hotmail.com                                                    una red en tan solo unos segundos.
    E. A. Ruiz, Universidad Católica de Pereira, Pereira, Colombia,
edwar.ruiz@ucpr.edu.co
    M. A. Martinez, Universidad Católica de Pereira, Pereira, Colombia,
therelax29@hotmail.com
III. PROCESO DE INSTALACIÓN Y                         OTCL_LIB=/your/path/ns-allinone-2.31/otcl-1.13
               CONFIGURACIÓN DEL SIMULADOR                          NS2_LIB=/your/path/ns-allinone-2.31/lib
                                                                    X11_LIB=/usr/X11R6/lib
En el siguiente capítulo, se describirá como se puede instalar      USR_LOCAL_LIB=/usr/local/lib
el simulador NS en un sistema operativo Linux, la cual              export
recomendamos que sea en Ubuntu, en la cual lo instalamos y          LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$OTCL_LIB:$
funcionó correctamente.                                             NS2_LIB:$X11_LIB:$USR_LOCAL_LIB

         Instalación del Simulador                                  # TCL_LIBRARY
                                                                    TCL_LIB=/your/path/ns-allinone-2.31/tcl8.4.14/library
Primero nos logueamos como usuario root                             USR_LIB=/usr/lib
                                                                    export TCL_LIBRARY=$TCL_LIB:$USR_LIB
$ su –
password:                                                           # PATH
                                                                    XGRAPH=/your/path/ns-allinone-2.31/bin:/your/path/ns-
Descargamos el archivo, lo movemos a /usr/src/, de ahí nos          allinone-2.31/tcl8.4.14/unix:/your/path/ns-allinone-
ubicamos en esa carpeta y lo descomprimimos                         2.31/tk8.4.14/unix
                                                                    NS=/your/path/ns-allinone-2.31/ns-2.31/
# wget http://nchc.dl.sourceforge.net/sourceforge/nsnam/ns-         NAM=/your/path/ns-allinone-2.31/nam-1.13/
allinone-2.31.tar.gz                                                PATH=$PATH:$XGRAPH:$NS:$NAM
# mv ns-allinone-2.31.tar.gz /usr/src/
# cd /usr/src/                                                      Luego actualizamos el bashrc con el siguiente comando:
# tar -xzvf ns-allinone-2.31.tar.gz
                                                                    # source ~/.bashrc
Instalamos las librerías necesarias para poder compilar el ns:
                                                                    Si hemos seguido los pasos anteriores y no hemos tenido
# apt-get install build-essential autoconf automake libxmu-dev      contratiempos deberíamos obtener el símbolo "%" al escribir
                                                                    ns en la consola de linux.
Sólo si aparecen errores reiniciamos el PC y luego instalamos:
                                                                    # ns
# sudo apt-get install -f build-essential libxt-dev libxt6 libsm-   %
dev libsm6 libice-dev libice6 libxmu-dev
                                                                    Si queremos salir del shell de ns pulsamos las teclas
Ahora instalamos el paquete ns-2, esto demora un buen               control+c.
tiempo, así que se puede dejar compilando.
                                                                                 IV.      EJEMPLO DE SIMULACIÓN
# cd ns-allinone-2.31
#./install                                                          En éste capítulo de ejemplo de simulación, explicaremos las
                                                                    líneas de código necesarias para llevar a cabo la simulación
         Configuración de las Variables de Entorno                  que queremos.

Se pueden usar las variables vi o nano en lugar de gedit si es      El ejemplo simulará la topología que se muestra en la figura 1,
necesario.                                                          donde se enviarán paquetes UDP desde el nodo 0 hasta el 9 y
                                                                    desde el nodo 1 hasta el 8. Luego de un tiempo, se caen dos
$ gedit ~/.bashrc                                                   enlaces, y debido a que se ha configurado enrutamiento
                                                                    dinámico, los paquetes son desviados por otros enlaces hasta
Una vez dentro del bashrc le agregamos las siguientes líneas y      llegar a su destino. Además, se puede ver como se encolan los
reemplazamos /your/path/ por /usr/src/, como se muestra a           paquetes y como se pierden.
continuación:

# LD_LIBRARY_PATH
set n0 [$ns node]
                                                                 set n1 [$ns node]
                                                                 set n2 [$ns node]
                                                                 set n3 [$ns node]
                                                                 set n4 [$ns node]
                                                                 set n5 [$ns node]
                                                                 set n6 [$ns node]
Figura 1. Topología de ejemplo para la simulación                set n7 [$ns node]
                                                                 set n8 [$ns node]
Lo primero que debemos hacer, es abrir el editor de texto de     set n9 [$ns node]
Linux donde vamos a escribir todas nuestras líneas de código,
para que, posteriormente, se pueda ejecutar todo el archivo      Ahora vamos a conectar los nodos ya creados, con la topología
desde el terminal de Linux.                                      presentada en la figura 1.
Le ponemos un nombre al archivo y lo guardamos con
extensión TCL, como por ejemplo prueba.tcl.                      $ns duplex-link $n0 $n1 1Mb 10ms DropTail
Una vez creado y guardado el archivo, comenzamos a escribir      $ns duplex-link $n1 $n2 1Mb 10ms SFQ
nuestro código.                                                  $ns duplex-link $n0 $n3 1Mb 10ms DropTail
                                                                 $ns duplex-link $n3 $n4 1Mb 10ms DropTail
Lo primero es crear un objeto para el simulador, el cual se      $ns duplex-link $n2 $n4 1Mb 10ms DropTail
hace con:                                                        $ns duplex-link $n4 $n5 2Mb 10ms DropTail
                                                                 $ns duplex-link $n5 $n7 1Mb 10ms DropTail
set ns [new Simulator]                                           $ns duplex-link $n7 $n9 1Mb 10ms DropTail
                                                                 $ns duplex-link $n9 $n3 1Mb 10ms DropTail
Para obtener una visualización gráfica de la simulación, lo      $ns duplex-link $n5 $n6 1Mb 10ms DropTail
debemos hacer por medio del graficador NAM. Donde en la          $ns duplex-link $n6 $n8 1Mb 10ms DropTail
primera línea, creamos el archivo con nombre OUT con             $ns duplex-link $n8 $n2 1Mb 10ms DropTail
extensión NAM y lo vinculamos a la variable nf. En la
segunda, le decimos a la variable ns que guarde todos los        Con éstas líneas le decimos al simulador que cree enlace2 full
datos que se necesiten para la simulación en éste archivo.       dúplex, conectando los nodos $n0 y $n1, y los que se vayan a
                                                                 conectar, con un ancho de banda de 1Mbps, retarde de 10ms y
set nf [open out.nam w]                                          el tipo de encolamiento que hay en el ejemplo son DropTail
$ns namtrace-all $nf                                             (que viene siendo FIFO el cual desecha los paquetes que
                                                                 llegan si está llena la cola) y SFQ (Stochastic Fair Queueing)
Luego creamos un procedimiento “finish” el cual cierra todas     si se quiere una pérdida de paquetes más justa. Los valores
las trazas y ejecuta el NAM, el cual ejecutaremos más            escritos anteriormente pueden ser cambiados si ustedes lo
adelante.                                                        consideran necesario.

proc finish {} {                                                 Ahora, debemos darle una ubicación específica a los nodos, de
   global ns nf                                                  no hacerlo, el simulador los pone en ubicaciones aleatorias, lo
   $ns flush-trace                                               que dificultaría la visualización del ejemplo y dificultaría la
   close $nf                                                     comprensión del mismo.
   exec nam out.nam &
   exit 0                                                        $ns duplex-link-op $n0 $n1 orient right
}                                                                $ns duplex-link-op $n1 $n2 orient down
                                                                 $ns duplex-link-op $n0 $n3 orient down
Ahora, comenzamos a crear los nodos que tendrá nuestra           $ns duplex-link-op $n3 $n4 orient right-down
simulación.la instrucción set es para crear un nuevo objeto,     $ns duplex-link-op $n2 $n4 orient left-down
luego ponemos el nombre de la variable que queremos para         $ns duplex-link-op $n4 $n5 orient down
los nodos, que en este caso van enumerados desde el 0 hasta el   $ns duplex-link-op $n5 $n7 orient left-down
9 y luego con la instrucción $ns node decimos que vamos a        $ns duplex-link-op $n7 $n9 orient left-up
crear un objeto de tipo nodo.                                    $ns duplex-link-op $n9 $n3 orient right-up
$ns duplex-link-op $n5 $n6 orient right-down
$ns duplex-link-op $n6 $n8 orient right-up                          Ahora, procedemos a crear los agentes que va a recibir el
$ns duplex-link-op $n8 $n2 orient left-up                           tráfico que generan los nodos anteriores. Se crea un agente de
                                                                    tipo Null que servirán como receptor del tráfico y se adapta el
Hasta el momento, ya tenemos la topología creada, todos los         nodo que se usará como receptor al agente Null. Esto mismo
nodos conectados con sus respectivos enlaces. Ahora vamos a         se hace con los otros 2 nodos que serán receptores de tráfico,
configurar y crear el código para el envió de los datos entre los   como se ve a continuación:
nodos. Se debe tener en cuenta que hay que crear un agente, el
cual genera el tráfico y otro que es el que recibe el tráfico.      set null0 [new Agent/Null]
                                                                    $ns attach-agent $n8 $null0
Primero creamos el tipo de tráfico que se va a generar, que en
este caso será UDP que lo llamamos $udp0 y lo adjuntamos al         set null1 [new Agent/Null]
nodo $n0. Luego, debemos crear un generador de tráfico CBR          $ns attach-agent $n9 $null1
que se llama $cbr0 que se adjunta al agente $udp0. En el
generador de tráfico, podemos configurar el tamaño de los           set null2 [new Agent/Null]
paquetes que serán de 500 bytes con un intervalo de 0.005           $ns attach-agent $n0 $null2
segundos.
                                                                    Conectamos los dos agentes a nivel de capa de transporte,
Para el ejemplo creamos 3 nodos que van a generar tráfico,          especificando el agente que genera el tráfico con el que lo
que son el nodo 0, el nodo 1 y el nodo 5. Para ello solo es         recibirá.
copiar los primeros bloques de código, cambiar los nodos y las
variables udp y cbr, tal como se muestra a continuación:            $ns connect $udp0 $null0
                                                                    $ns connect $udp1 $null1
#Create a UDP agent and attach it to node n0                        $ns connect $udp2 $null2
set udp0 [new Agent/UDP]
$ns attach-agent $n0 $udp0                                          Luego, debemos especificar a los generadores de tráfico en
                                                                    que momento iniciar y cuando parar. Tal como se muestra a
# Create a CBR traffic source and attach it to udp0                 continuación:
set cbr0 [new Application/Traffic/CBR]
$cbr0 set packetSize_ 500                                           $ns at 0.2 "$cbr0 start"
$cbr0 set interval_ 0.005                                           $ns at 0.4 "$cbr1 start"
$cbr0 attach-agent $udp0                                            $ns at 2.0 "$cbr2 start"
                                                                    $ns at 3.0 "$cbr1 stop"
#Create a UDP agent and attach it to node n1                        $ns at 3.3 "$cbr0 stop"
set udp1 [new Agent/UDP]                                            $ns at 3.4 "$cbr2 stop"
$ns attach-agent $n1 $udp1
                                                                    Para monitorear las colas en los enlaces, ponemos el código
# Create a CBR traffic source and attach it to udp1                 siguiente:
set cbr1 [new Application/Traffic/CBR]
$cbr1 set packetSize_ 500                                           $ns duplex-link-op $n0 $n3 queuePos 0.5
$cbr1 set interval_ 0.005                                           $ns duplex-link-op $n1 $n2 queuePos 0.5
$cbr1 attach-agent $udp1                                            $ns duplex-link-op $n4 $n5 queuePos 0.5

#Create a UDP agent and attach it to node n5                        En nuestra simulación, haremos caer varios enlaces para ver el
set udp2 [new Agent/UDP]                                            comportamiento de los paquetes y como se direccionan por
$ns attach-agent $n5 $udp2                                          otra vía. Para ello, ponemos el instante en el q se caera o
                                                                    subirá el enlace, seguido de “down” si queremos que se caiga
# Create a CBR traffic source and attach it to udp2                 el enlace o “up” si queremos subirlo y después los nodos del
set cbr2 [new Application/Traffic/CBR]                              enlace.
$cbr2 set packetSize_ 500
$cbr2 set interval_ 0.005                                           $ns rtmodel-at 1.0 down $n0 $n3
$cbr2 attach-agent $udp2                                            $ns rtmodel-at 1.0 down $n3 $n9
$ns rtmodel-at 1.5 up $n0 $n3
$ns rtmodel-at 2.0 down $n1 $n2
$ns rtmodel-at 2.0 down $n8 $n2
$ns rtmodel-at 2.5 up $n1 $n2

Para configurar un enrutamiento dinámico en nuestra
topología ponemos la siguiente línea de código:

$ns rtproto DV

Podemos identificar cada flujo de datos independientemente, y     Para poder ver mejor la simulación, reubicamos los nodos. En
asignarle un color a cada uno para diferenciarlo más              la parte izquierda, hacemos click en el botón editar y
fácilmente.                                                       movemos los nodos de forma que se vean todos, tal como se
                                                                  muestra en la figura siguiente:
$udp0 set class_ 1
$udp1 set class_ 2
$ns color 1 Blue
$ns color 2 Red

Y para finalizar, con la primera línea ponemos el tiempo que
queremos que termine la ejecución de la simulación y
llamamos al procedimiento “finish” que creamos al principio,
para finalizar las trazas, y con la segunda línea ejecutamos la
simulación.

$ns at 3.5 "finish"
$ns run                                                           Una vez acomodados los nodos ejecutamos la simulación
                                                                  haciendo click en el botón play, para iniciarla. En la grafica
Una vez creado todo el código anterior, guardamos los             siguiente, podemos observar como al inicio de la simulación,
cambios hechos en el archivo. Abrimos el terminal de Linux y      se envían pequeños paquetes entre los diferentes nodos, esos
escribimos la línea de código a continuación para ejecutar todo   son los paquetes para la tabla de enrutamiento, para saber que
el archivo:                                                       ruta debe escoger el tráfico, una vez comience el envío. Estos
                                                                  paquetes son enviados constantemente durante toda la
ns prueba.tcl                                                     simulación, incluso cuando se está generando el tráfico.


E inmediatamente se abre la ventana con la simulación como
se verá en el siguiente capítulo.


                 V. ANÁLISIS DE RESULTADOS

Una vez se ejecuta el archivo, nos muestra la siguiente imagen
de simulación:


                                                                  En la siguiente gráfica, se puede observar como el tráfico
                                                                  desde el nodo 0 hasta el 8 son enviados por la ruta más corta,
                                                                  gracias al enrutamiento dinámico que le configuramos
                                                                  anteriormente.
pero una vez se llena, solo de pierden paquetes azules, a
                                                                   diferencia del anterior que se perdían por igual.

                                                                   De igual manera, el nodo 5 comienza a generar un tráfico
                                                                   hacia el nodo 0, se puede ver en la grafica que éste flujo no
                                                                   interfiere con el flujo de datos que viene en dirección opuesta.




Luego, comienza el nodo 1 a enviar el tráfico hacia el nodo 9
simultáneamente que al tráfico generado por el nodo 0.
Podemos ver como el enlace es full dúplex, es decir que por el
enlace del nodo 0 al 1, el tráfico de subida es independiente al
de bajada, los paquetes no se interceptan ni deben esperar a
que uno termine de enviar para que el otro envíe.


                                                                   En la siguiente gráfica, se puede ver como los enlaces entre
                                                                   los nodos 0 y 3, y 2 y 8, han subido nuevamente, mientras que
                                                                   los enlaces entre los nodos 3 y 4, y 2 y 8, han quedado
                                                                   inactivos. Lo importante es observar lo que sucede entre los
                                                                   nodos 4 y 5, llegan los tráficos de los dos nodos, pero en este
                                                                   caso no se produce encolamiento ni pérdida de paquetes, esto
                                                                   se debe a que desde un principio se configuro un ancho de
                                                                   banda de 2 Mbps lo cual hace que se puedan enviar los
                                                                   paquetes sin ningún problema.

En la siguiente gráfica, se observa que los enlaces entre el       Igualmente se ve como el tráfico del nodo 5 hacia el 0, no se
nodo 0 y 3 y entre el 3 y 9, se caen los enlaces y el tráfico      ve afectado.
generado por el nodo 1, es redireccionado a través de los
nodos 2, 4, 5 y 7. También podemos observar como los
paquetes son encolados entre los nodos 1 y 2, y se pierden en
proporciones iguales, es decir, se usa un encolamiento “justo”
en pérdida de paquetes, pero es importante diseñar topologías
donde no sucedan pérdidas como éstas.




                                                                                         VI. CONCLUSIONES

                                                                   El simulador NS es uno de los más robustos y confiables en el
                                                                   entorno digital, toda simulación que se haga en ésta
                                                                   herramienta y sea presentada ante comités importantes de
                                                                   tecnología, respetan y confían en los resultados que éste nos
Ahora, en la siguiente gráfica, se caen los enlaces entre los      arroja.
nodos 1 y 2, y entre el nodo 2 y 8. Igualmente el tráfico es
enrutado a través de los otros enlaces, pero a diferencia de la    También es importante tener conocimiento del lenguaje de
gráfica anterior, el encolamiento entre el nodo 0 y 3 es           programación con la cuales trabaja éste, ya que, como vimos
diferente, pues se puede ver que el encolamiento es más largo,     anteriormente, el simulador funciona, principalmente con
código, si se quiere hacer una buena simulación, con
características adicionales que éste tiene.

El ejemplo es una muy pequeña muestra de lo que éste puede
hacer, si quiere más información, puede descargar el manual
que contiene toda la programación y todo lo que se puede
hacer con ésta herramienta.

Por último, es muy importante tener en cuenta a la hora de
implementar una topología de red, saber el tipo de tráfico que
se va a enviar, el tipo de encolamiento y el ancho de banda,
para que no hallan pérdidas de paquetes ni saturación de la
información como se pudo observar en el capítulo del análisis.
De igual forma, para eso es ésta herramienta, para hacer
pruebas y poderlas corregir.




                      VII. REFERENCIAS

[1] http://blog.pucp.edu.pe/item/37506/instalar-ns2-en-ubuntu
[2] http://www.isi.edu/nsnam/ns/tutorial/index.html
[3]        Manual         de     práctica      con       NS-2,
http://jpadilla.docentes.upbbga.edu.co/programa%20redes/Ma
nual%20de%20Practicas%20con%20NS2.pdf
[4]     Manual      for    the  Network     Simulator    “ns”,
http://www.isi.edu/nsnam/ns/tutorial/
[5]http://linuxalbacete.org/web/index2.php?option=com_conte
nt&do_pdf=1&id=149
[6]http://nsl.csie.nctu.edu.tw/NCTUnsReferences/memoria.pdf

Más contenido relacionado

La actualidad más candente

Arquitectura harvard y von neumann
Arquitectura harvard y von neumannArquitectura harvard y von neumann
Arquitectura harvard y von neumanncarlos_graterol
 
Recuperación bimestral 3 periodo
Recuperación bimestral 3 periodoRecuperación bimestral 3 periodo
Recuperación bimestral 3 periodoNachomania
 
Arquitectura de neumann y harvard keneling gullo compu 1
Arquitectura de neumann y harvard keneling gullo compu 1Arquitectura de neumann y harvard keneling gullo compu 1
Arquitectura de neumann y harvard keneling gullo compu 1kenelinggullo
 
Articulo nmap pvalera
Articulo nmap pvaleraArticulo nmap pvalera
Articulo nmap pvaleraguest30c8e1
 
Arquitectura harvard 2010 1
Arquitectura harvard 2010 1Arquitectura harvard 2010 1
Arquitectura harvard 2010 1jesus199025
 
Resumen del primer corte
Resumen del primer corteResumen del primer corte
Resumen del primer corteADOLFO BORJA
 
Arquitectura harvard y de von neumann
Arquitectura harvard y de von neumannArquitectura harvard y de von neumann
Arquitectura harvard y de von neumannCarloscv321
 
Arquitecturas del harvard y von neumann maria
Arquitecturas del harvard y von neumann mariaArquitecturas del harvard y von neumann maria
Arquitecturas del harvard y von neumann mariamariagrau14
 
Arquitectura de Von Neumann
Arquitectura de Von NeumannArquitectura de Von Neumann
Arquitectura de Von Neumannvictor medra
 
Arquitectura harvard y arquitectura von neumann
Arquitectura harvard y arquitectura von neumannArquitectura harvard y arquitectura von neumann
Arquitectura harvard y arquitectura von neumannkelwins93
 
2015 0 it524-m_r_telematicasi_pc4
2015 0 it524-m_r_telematicasi_pc42015 0 it524-m_r_telematicasi_pc4
2015 0 it524-m_r_telematicasi_pc4jcbp_peru
 
Arquitectura de computadoras (1)
Arquitectura de computadoras (1)Arquitectura de computadoras (1)
Arquitectura de computadoras (1)Adriiimarok
 

La actualidad más candente (20)

Arquitectura harvard y von neumann
Arquitectura harvard y von neumannArquitectura harvard y von neumann
Arquitectura harvard y von neumann
 
Recuperación bimestral 3 periodo
Recuperación bimestral 3 periodoRecuperación bimestral 3 periodo
Recuperación bimestral 3 periodo
 
Arquitectura harvard
Arquitectura harvardArquitectura harvard
Arquitectura harvard
 
Arquitectura de neumann y harvard keneling gullo compu 1
Arquitectura de neumann y harvard keneling gullo compu 1Arquitectura de neumann y harvard keneling gullo compu 1
Arquitectura de neumann y harvard keneling gullo compu 1
 
Articulo nmap pvalera
Articulo nmap pvaleraArticulo nmap pvalera
Articulo nmap pvalera
 
Arqui hardware
Arqui hardwareArqui hardware
Arqui hardware
 
Arquitectura harvard 2010 1
Arquitectura harvard 2010 1Arquitectura harvard 2010 1
Arquitectura harvard 2010 1
 
Resumen del primer corte
Resumen del primer corteResumen del primer corte
Resumen del primer corte
 
Modelo TCP/IP
Modelo TCP/IPModelo TCP/IP
Modelo TCP/IP
 
Arquitectura harvard y de von neumann
Arquitectura harvard y de von neumannArquitectura harvard y de von neumann
Arquitectura harvard y de von neumann
 
Arquitecturas del harvard y von neumann maria
Arquitecturas del harvard y von neumann mariaArquitecturas del harvard y von neumann maria
Arquitecturas del harvard y von neumann maria
 
Ethernetcindy
EthernetcindyEthernetcindy
Ethernetcindy
 
OSPF
OSPFOSPF
OSPF
 
Arquitectura de Von Neumann
Arquitectura de Von NeumannArquitectura de Von Neumann
Arquitectura de Von Neumann
 
Arquitectura harvard y arquitectura von neumann
Arquitectura harvard y arquitectura von neumannArquitectura harvard y arquitectura von neumann
Arquitectura harvard y arquitectura von neumann
 
Arquitectura harvard y von neumann
Arquitectura harvard y von neumannArquitectura harvard y von neumann
Arquitectura harvard y von neumann
 
2015 0 it524-m_r_telematicasi_pc4
2015 0 it524-m_r_telematicasi_pc42015 0 it524-m_r_telematicasi_pc4
2015 0 it524-m_r_telematicasi_pc4
 
ZENMAP
ZENMAPZENMAP
ZENMAP
 
Capitulo09 ethernet
Capitulo09 ethernetCapitulo09 ethernet
Capitulo09 ethernet
 
Arquitectura de computadoras (1)
Arquitectura de computadoras (1)Arquitectura de computadoras (1)
Arquitectura de computadoras (1)
 

Similar a Artículo - Simulador NS (Network Simulator)

Similar a Artículo - Simulador NS (Network Simulator) (20)

Simuladores De Redes Cisco
Simuladores De Redes CiscoSimuladores De Redes Cisco
Simuladores De Redes Cisco
 
Nachos sistema operativo
Nachos sistema operativoNachos sistema operativo
Nachos sistema operativo
 
Guia de redireccionamiento en ubuntu
Guia de redireccionamiento en ubuntuGuia de redireccionamiento en ubuntu
Guia de redireccionamiento en ubuntu
 
Intro to DTrace
Intro to DTraceIntro to DTrace
Intro to DTrace
 
Documento de comunicaciones
Documento de comunicacionesDocumento de comunicaciones
Documento de comunicaciones
 
SIMULADORES REDES NEURONALES
SIMULADORES REDES NEURONALESSIMULADORES REDES NEURONALES
SIMULADORES REDES NEURONALES
 
Uso de modelos en capas
Uso de modelos en capasUso de modelos en capas
Uso de modelos en capas
 
Clusterhomogeneorocks
ClusterhomogeneorocksClusterhomogeneorocks
Clusterhomogeneorocks
 
Portafolio Dionisio 1
Portafolio Dionisio 1Portafolio Dionisio 1
Portafolio Dionisio 1
 
T 25
T 25T 25
T 25
 
Microprocesadores1
Microprocesadores1Microprocesadores1
Microprocesadores1
 
T 25
T 25T 25
T 25
 
T 25
T 25T 25
T 25
 
3. guia sistemas modelo osi y tcp
3. guia sistemas modelo osi y tcp3. guia sistemas modelo osi y tcp
3. guia sistemas modelo osi y tcp
 
Implementacion de NAT - JUGM 2010
Implementacion de NAT - JUGM 2010Implementacion de NAT - JUGM 2010
Implementacion de NAT - JUGM 2010
 
Manual de packet_tracer
Manual de packet_tracerManual de packet_tracer
Manual de packet_tracer
 
Interesante ether ape 91281478 herramientas-de-scaneo-1
Interesante ether ape 91281478 herramientas-de-scaneo-1Interesante ether ape 91281478 herramientas-de-scaneo-1
Interesante ether ape 91281478 herramientas-de-scaneo-1
 
Instalacion y configuracion de protocolos de red
Instalacion y configuracion de protocolos de redInstalacion y configuracion de protocolos de red
Instalacion y configuracion de protocolos de red
 
Actividad 6
Actividad 6Actividad 6
Actividad 6
 
todo sobre linux
todo sobre linuxtodo sobre linux
todo sobre linux
 

Más de Andrés Felipe Montoya Ríos

Resolver Problemas Por Medio De La Ingeniería De Sistemas
Resolver Problemas Por Medio De La Ingeniería De SistemasResolver Problemas Por Medio De La Ingeniería De Sistemas
Resolver Problemas Por Medio De La Ingeniería De SistemasAndrés Felipe Montoya Ríos
 

Más de Andrés Felipe Montoya Ríos (16)

Patron de Arquitectura Broker
Patron de Arquitectura BrokerPatron de Arquitectura Broker
Patron de Arquitectura Broker
 
La creatividad, ¿de quien depende?
La creatividad, ¿de quien depende?La creatividad, ¿de quien depende?
La creatividad, ¿de quien depende?
 
Seo Para Principiantes
Seo Para PrincipiantesSeo Para Principiantes
Seo Para Principiantes
 
Todo sobre HTML5
Todo sobre HTML5Todo sobre HTML5
Todo sobre HTML5
 
La Importancia De Aprender A Investigar
La Importancia De Aprender A InvestigarLa Importancia De Aprender A Investigar
La Importancia De Aprender A Investigar
 
Resolver Problemas Por Medio De La Ingeniería De Sistemas
Resolver Problemas Por Medio De La Ingeniería De SistemasResolver Problemas Por Medio De La Ingeniería De Sistemas
Resolver Problemas Por Medio De La Ingeniería De Sistemas
 
Articulo - El Futuro Tiene Nombre Y Es LTE
Articulo - El Futuro Tiene Nombre Y Es LTEArticulo - El Futuro Tiene Nombre Y Es LTE
Articulo - El Futuro Tiene Nombre Y Es LTE
 
Telemedicina
TelemedicinaTelemedicina
Telemedicina
 
Planificador SSTF (shortest seek time first)
Planificador SSTF (shortest seek time first)Planificador SSTF (shortest seek time first)
Planificador SSTF (shortest seek time first)
 
Raid (redundant array of independent disks)
Raid (redundant array of independent disks)Raid (redundant array of independent disks)
Raid (redundant array of independent disks)
 
Estimación de Proyectos de Software
Estimación de Proyectos de SoftwareEstimación de Proyectos de Software
Estimación de Proyectos de Software
 
LTE (Long Term Evolution)
LTE (Long Term Evolution)LTE (Long Term Evolution)
LTE (Long Term Evolution)
 
Sistema de Posicionamiento Global
Sistema de Posicionamiento GlobalSistema de Posicionamiento Global
Sistema de Posicionamiento Global
 
Base de Datos Orientada a Objetos
Base de Datos Orientada a ObjetosBase de Datos Orientada a Objetos
Base de Datos Orientada a Objetos
 
Diseño de Software
Diseño de SoftwareDiseño de Software
Diseño de Software
 
Cuarta Generación De Los Sistemas Operativos
Cuarta Generación De Los Sistemas OperativosCuarta Generación De Los Sistemas Operativos
Cuarta Generación De Los Sistemas Operativos
 

Último

Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...FacuMeza2
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...AlanCedillo9
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersIván López Martín
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxJOSEMANUELHERNANDEZH11
 

Último (19)

Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptx
 

Artículo - Simulador NS (Network Simulator)

  • 1. All You Must to Know the NS Simulator A. F. Montoya, E. A. Ruiz, M. A. Martinez Abstract- This paper presents the main features of NS Simulator NS es un simulador de eventos discretos destinado para la as the operating system that works, technical data of the creación de redes de investigación. Este proporciona un computer for work and advantages over other simulators. Also, apoyo sustancial para la simulación de variedad de describes the process of installing and configuration in a protocolos de las capas de aplicación (http, ftp, cbr, etc), operating system and a step by step example of a simple topology. transporte (TCP, UDP, RTP, SRM), también protocolos de Keywords- simulation, NS, modeling, software tools, example, enrutamiento mono-difusión y multidifusión (multicast). installation.1 Aplicando funcionalidades tanto para redes cableadas, no cableadas, satelitales; con topologías complejas. I. INTRODUCCIÓN El simulador NS también incluye mecanismos concernientes a La simulación se puede definir como la imitación del la capa de Enlace de Datos en redes de área local, tales como comportamiento de un sistema real durante un lapso de tiempo protocolos de control de acceso al medio (MAC) del tipo de determinado. En la actualidad se utilizan las simulaciones para Acceso múltiple por detección de portadora y detección de usos prácticos tales como: predicción, entrenamiento, colisiones (CSMA/CD). A su vez incluye diversos algoritmos entretenimiento, mejor comprensión de la situación estudiada, para la planificación de colas como FIFO, RED, FQ, SFQ, apoyo a la toma de decisiones, etc. DRR. En el campo de las redes es importante simular debido a que Para visualizar las simulaciones, NS dispone de herramientas en la mayoría de los casos resulta mucho más práctico tener para graficar como NAM y XGRAPH. El NAM es una una idea del comportamiento que tendrá una arquitectura que interfaz grafica que pueda representar la red que construyamos necesitemos implementar antes de construirla físicamente. atreves del lenguaje OTcl y además permite visualizar dinámicamente el desplazamiento de los paquetes de la Una de las herramientas de simulación de redes más simulación. El XGRAPH atreves de graficas bi-dimensionales utilizadas alrededor del mundo tanto en el ámbito académico permite realizar análisis de funcionalidades tales como como en el investigativo es el NS, esto se debe a que se paquetes recibidos, paquetes perdidos, ancho de banda y encuentra escrito en código abierto, y además gracias a que retardos. existe abundante documentación sobre este en la red. El código de NS se ofrece bajo la versión 2 de la GNU (General Básicamente NS se puede definir como un simulador Public License). orientado a objetos, fue construido en C++ y proporciona una interfaz de simulación a través de OTcl, un dialecto orientado a objetos de Tcl. El usuario describe una topología de red II. GENERALIDADES DEL SIMULADOR escribiendo scripts Otcl y, a continuación, el programa principal de NS simula la topología con los parámetros En sus inicios NS fue desarrollado como una variante del especificados. simulador de redes REAL en 1989, en los últimos años ha tenido una gran evolución. Su desarrollo fue apoyado por En la actualidad NS se está utilizando tanto en entornos de Defense Advanced Research Projects Agency (DARPA) con investigación como en entornos educativos. NS resulta de gran ayuda de instituciones de investigación en redes como LBL, ayuda para la investigación ya que nos da la posibilidad de Xerox PARC, UCB y USC / ISI. acceder a la realización de pruebas con elementos a los que no podríamos acceder normalmente en caso de no disponer de un simulador. NS además permite modificar casi todos los A. F. Montoya, Universidad Católica de Pereira, Pereira, Colombia, parámetros que intervienen en el estado o configuración de montoya118@hotmail.com una red en tan solo unos segundos. E. A. Ruiz, Universidad Católica de Pereira, Pereira, Colombia, edwar.ruiz@ucpr.edu.co M. A. Martinez, Universidad Católica de Pereira, Pereira, Colombia, therelax29@hotmail.com
  • 2. III. PROCESO DE INSTALACIÓN Y OTCL_LIB=/your/path/ns-allinone-2.31/otcl-1.13 CONFIGURACIÓN DEL SIMULADOR NS2_LIB=/your/path/ns-allinone-2.31/lib X11_LIB=/usr/X11R6/lib En el siguiente capítulo, se describirá como se puede instalar USR_LOCAL_LIB=/usr/local/lib el simulador NS en un sistema operativo Linux, la cual export recomendamos que sea en Ubuntu, en la cual lo instalamos y LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$OTCL_LIB:$ funcionó correctamente. NS2_LIB:$X11_LIB:$USR_LOCAL_LIB Instalación del Simulador # TCL_LIBRARY TCL_LIB=/your/path/ns-allinone-2.31/tcl8.4.14/library Primero nos logueamos como usuario root USR_LIB=/usr/lib export TCL_LIBRARY=$TCL_LIB:$USR_LIB $ su – password: # PATH XGRAPH=/your/path/ns-allinone-2.31/bin:/your/path/ns- Descargamos el archivo, lo movemos a /usr/src/, de ahí nos allinone-2.31/tcl8.4.14/unix:/your/path/ns-allinone- ubicamos en esa carpeta y lo descomprimimos 2.31/tk8.4.14/unix NS=/your/path/ns-allinone-2.31/ns-2.31/ # wget http://nchc.dl.sourceforge.net/sourceforge/nsnam/ns- NAM=/your/path/ns-allinone-2.31/nam-1.13/ allinone-2.31.tar.gz PATH=$PATH:$XGRAPH:$NS:$NAM # mv ns-allinone-2.31.tar.gz /usr/src/ # cd /usr/src/ Luego actualizamos el bashrc con el siguiente comando: # tar -xzvf ns-allinone-2.31.tar.gz # source ~/.bashrc Instalamos las librerías necesarias para poder compilar el ns: Si hemos seguido los pasos anteriores y no hemos tenido # apt-get install build-essential autoconf automake libxmu-dev contratiempos deberíamos obtener el símbolo "%" al escribir ns en la consola de linux. Sólo si aparecen errores reiniciamos el PC y luego instalamos: # ns # sudo apt-get install -f build-essential libxt-dev libxt6 libsm- % dev libsm6 libice-dev libice6 libxmu-dev Si queremos salir del shell de ns pulsamos las teclas Ahora instalamos el paquete ns-2, esto demora un buen control+c. tiempo, así que se puede dejar compilando. IV. EJEMPLO DE SIMULACIÓN # cd ns-allinone-2.31 #./install En éste capítulo de ejemplo de simulación, explicaremos las líneas de código necesarias para llevar a cabo la simulación Configuración de las Variables de Entorno que queremos. Se pueden usar las variables vi o nano en lugar de gedit si es El ejemplo simulará la topología que se muestra en la figura 1, necesario. donde se enviarán paquetes UDP desde el nodo 0 hasta el 9 y desde el nodo 1 hasta el 8. Luego de un tiempo, se caen dos $ gedit ~/.bashrc enlaces, y debido a que se ha configurado enrutamiento dinámico, los paquetes son desviados por otros enlaces hasta Una vez dentro del bashrc le agregamos las siguientes líneas y llegar a su destino. Además, se puede ver como se encolan los reemplazamos /your/path/ por /usr/src/, como se muestra a paquetes y como se pierden. continuación: # LD_LIBRARY_PATH
  • 3. set n0 [$ns node] set n1 [$ns node] set n2 [$ns node] set n3 [$ns node] set n4 [$ns node] set n5 [$ns node] set n6 [$ns node] Figura 1. Topología de ejemplo para la simulación set n7 [$ns node] set n8 [$ns node] Lo primero que debemos hacer, es abrir el editor de texto de set n9 [$ns node] Linux donde vamos a escribir todas nuestras líneas de código, para que, posteriormente, se pueda ejecutar todo el archivo Ahora vamos a conectar los nodos ya creados, con la topología desde el terminal de Linux. presentada en la figura 1. Le ponemos un nombre al archivo y lo guardamos con extensión TCL, como por ejemplo prueba.tcl. $ns duplex-link $n0 $n1 1Mb 10ms DropTail Una vez creado y guardado el archivo, comenzamos a escribir $ns duplex-link $n1 $n2 1Mb 10ms SFQ nuestro código. $ns duplex-link $n0 $n3 1Mb 10ms DropTail $ns duplex-link $n3 $n4 1Mb 10ms DropTail Lo primero es crear un objeto para el simulador, el cual se $ns duplex-link $n2 $n4 1Mb 10ms DropTail hace con: $ns duplex-link $n4 $n5 2Mb 10ms DropTail $ns duplex-link $n5 $n7 1Mb 10ms DropTail set ns [new Simulator] $ns duplex-link $n7 $n9 1Mb 10ms DropTail $ns duplex-link $n9 $n3 1Mb 10ms DropTail Para obtener una visualización gráfica de la simulación, lo $ns duplex-link $n5 $n6 1Mb 10ms DropTail debemos hacer por medio del graficador NAM. Donde en la $ns duplex-link $n6 $n8 1Mb 10ms DropTail primera línea, creamos el archivo con nombre OUT con $ns duplex-link $n8 $n2 1Mb 10ms DropTail extensión NAM y lo vinculamos a la variable nf. En la segunda, le decimos a la variable ns que guarde todos los Con éstas líneas le decimos al simulador que cree enlace2 full datos que se necesiten para la simulación en éste archivo. dúplex, conectando los nodos $n0 y $n1, y los que se vayan a conectar, con un ancho de banda de 1Mbps, retarde de 10ms y set nf [open out.nam w] el tipo de encolamiento que hay en el ejemplo son DropTail $ns namtrace-all $nf (que viene siendo FIFO el cual desecha los paquetes que llegan si está llena la cola) y SFQ (Stochastic Fair Queueing) Luego creamos un procedimiento “finish” el cual cierra todas si se quiere una pérdida de paquetes más justa. Los valores las trazas y ejecuta el NAM, el cual ejecutaremos más escritos anteriormente pueden ser cambiados si ustedes lo adelante. consideran necesario. proc finish {} { Ahora, debemos darle una ubicación específica a los nodos, de global ns nf no hacerlo, el simulador los pone en ubicaciones aleatorias, lo $ns flush-trace que dificultaría la visualización del ejemplo y dificultaría la close $nf comprensión del mismo. exec nam out.nam & exit 0 $ns duplex-link-op $n0 $n1 orient right } $ns duplex-link-op $n1 $n2 orient down $ns duplex-link-op $n0 $n3 orient down Ahora, comenzamos a crear los nodos que tendrá nuestra $ns duplex-link-op $n3 $n4 orient right-down simulación.la instrucción set es para crear un nuevo objeto, $ns duplex-link-op $n2 $n4 orient left-down luego ponemos el nombre de la variable que queremos para $ns duplex-link-op $n4 $n5 orient down los nodos, que en este caso van enumerados desde el 0 hasta el $ns duplex-link-op $n5 $n7 orient left-down 9 y luego con la instrucción $ns node decimos que vamos a $ns duplex-link-op $n7 $n9 orient left-up crear un objeto de tipo nodo. $ns duplex-link-op $n9 $n3 orient right-up
  • 4. $ns duplex-link-op $n5 $n6 orient right-down $ns duplex-link-op $n6 $n8 orient right-up Ahora, procedemos a crear los agentes que va a recibir el $ns duplex-link-op $n8 $n2 orient left-up tráfico que generan los nodos anteriores. Se crea un agente de tipo Null que servirán como receptor del tráfico y se adapta el Hasta el momento, ya tenemos la topología creada, todos los nodo que se usará como receptor al agente Null. Esto mismo nodos conectados con sus respectivos enlaces. Ahora vamos a se hace con los otros 2 nodos que serán receptores de tráfico, configurar y crear el código para el envió de los datos entre los como se ve a continuación: nodos. Se debe tener en cuenta que hay que crear un agente, el cual genera el tráfico y otro que es el que recibe el tráfico. set null0 [new Agent/Null] $ns attach-agent $n8 $null0 Primero creamos el tipo de tráfico que se va a generar, que en este caso será UDP que lo llamamos $udp0 y lo adjuntamos al set null1 [new Agent/Null] nodo $n0. Luego, debemos crear un generador de tráfico CBR $ns attach-agent $n9 $null1 que se llama $cbr0 que se adjunta al agente $udp0. En el generador de tráfico, podemos configurar el tamaño de los set null2 [new Agent/Null] paquetes que serán de 500 bytes con un intervalo de 0.005 $ns attach-agent $n0 $null2 segundos. Conectamos los dos agentes a nivel de capa de transporte, Para el ejemplo creamos 3 nodos que van a generar tráfico, especificando el agente que genera el tráfico con el que lo que son el nodo 0, el nodo 1 y el nodo 5. Para ello solo es recibirá. copiar los primeros bloques de código, cambiar los nodos y las variables udp y cbr, tal como se muestra a continuación: $ns connect $udp0 $null0 $ns connect $udp1 $null1 #Create a UDP agent and attach it to node n0 $ns connect $udp2 $null2 set udp0 [new Agent/UDP] $ns attach-agent $n0 $udp0 Luego, debemos especificar a los generadores de tráfico en que momento iniciar y cuando parar. Tal como se muestra a # Create a CBR traffic source and attach it to udp0 continuación: set cbr0 [new Application/Traffic/CBR] $cbr0 set packetSize_ 500 $ns at 0.2 "$cbr0 start" $cbr0 set interval_ 0.005 $ns at 0.4 "$cbr1 start" $cbr0 attach-agent $udp0 $ns at 2.0 "$cbr2 start" $ns at 3.0 "$cbr1 stop" #Create a UDP agent and attach it to node n1 $ns at 3.3 "$cbr0 stop" set udp1 [new Agent/UDP] $ns at 3.4 "$cbr2 stop" $ns attach-agent $n1 $udp1 Para monitorear las colas en los enlaces, ponemos el código # Create a CBR traffic source and attach it to udp1 siguiente: set cbr1 [new Application/Traffic/CBR] $cbr1 set packetSize_ 500 $ns duplex-link-op $n0 $n3 queuePos 0.5 $cbr1 set interval_ 0.005 $ns duplex-link-op $n1 $n2 queuePos 0.5 $cbr1 attach-agent $udp1 $ns duplex-link-op $n4 $n5 queuePos 0.5 #Create a UDP agent and attach it to node n5 En nuestra simulación, haremos caer varios enlaces para ver el set udp2 [new Agent/UDP] comportamiento de los paquetes y como se direccionan por $ns attach-agent $n5 $udp2 otra vía. Para ello, ponemos el instante en el q se caera o subirá el enlace, seguido de “down” si queremos que se caiga # Create a CBR traffic source and attach it to udp2 el enlace o “up” si queremos subirlo y después los nodos del set cbr2 [new Application/Traffic/CBR] enlace. $cbr2 set packetSize_ 500 $cbr2 set interval_ 0.005 $ns rtmodel-at 1.0 down $n0 $n3 $cbr2 attach-agent $udp2 $ns rtmodel-at 1.0 down $n3 $n9
  • 5. $ns rtmodel-at 1.5 up $n0 $n3 $ns rtmodel-at 2.0 down $n1 $n2 $ns rtmodel-at 2.0 down $n8 $n2 $ns rtmodel-at 2.5 up $n1 $n2 Para configurar un enrutamiento dinámico en nuestra topología ponemos la siguiente línea de código: $ns rtproto DV Podemos identificar cada flujo de datos independientemente, y Para poder ver mejor la simulación, reubicamos los nodos. En asignarle un color a cada uno para diferenciarlo más la parte izquierda, hacemos click en el botón editar y fácilmente. movemos los nodos de forma que se vean todos, tal como se muestra en la figura siguiente: $udp0 set class_ 1 $udp1 set class_ 2 $ns color 1 Blue $ns color 2 Red Y para finalizar, con la primera línea ponemos el tiempo que queremos que termine la ejecución de la simulación y llamamos al procedimiento “finish” que creamos al principio, para finalizar las trazas, y con la segunda línea ejecutamos la simulación. $ns at 3.5 "finish" $ns run Una vez acomodados los nodos ejecutamos la simulación haciendo click en el botón play, para iniciarla. En la grafica Una vez creado todo el código anterior, guardamos los siguiente, podemos observar como al inicio de la simulación, cambios hechos en el archivo. Abrimos el terminal de Linux y se envían pequeños paquetes entre los diferentes nodos, esos escribimos la línea de código a continuación para ejecutar todo son los paquetes para la tabla de enrutamiento, para saber que el archivo: ruta debe escoger el tráfico, una vez comience el envío. Estos paquetes son enviados constantemente durante toda la ns prueba.tcl simulación, incluso cuando se está generando el tráfico. E inmediatamente se abre la ventana con la simulación como se verá en el siguiente capítulo. V. ANÁLISIS DE RESULTADOS Una vez se ejecuta el archivo, nos muestra la siguiente imagen de simulación: En la siguiente gráfica, se puede observar como el tráfico desde el nodo 0 hasta el 8 son enviados por la ruta más corta, gracias al enrutamiento dinámico que le configuramos anteriormente.
  • 6. pero una vez se llena, solo de pierden paquetes azules, a diferencia del anterior que se perdían por igual. De igual manera, el nodo 5 comienza a generar un tráfico hacia el nodo 0, se puede ver en la grafica que éste flujo no interfiere con el flujo de datos que viene en dirección opuesta. Luego, comienza el nodo 1 a enviar el tráfico hacia el nodo 9 simultáneamente que al tráfico generado por el nodo 0. Podemos ver como el enlace es full dúplex, es decir que por el enlace del nodo 0 al 1, el tráfico de subida es independiente al de bajada, los paquetes no se interceptan ni deben esperar a que uno termine de enviar para que el otro envíe. En la siguiente gráfica, se puede ver como los enlaces entre los nodos 0 y 3, y 2 y 8, han subido nuevamente, mientras que los enlaces entre los nodos 3 y 4, y 2 y 8, han quedado inactivos. Lo importante es observar lo que sucede entre los nodos 4 y 5, llegan los tráficos de los dos nodos, pero en este caso no se produce encolamiento ni pérdida de paquetes, esto se debe a que desde un principio se configuro un ancho de banda de 2 Mbps lo cual hace que se puedan enviar los paquetes sin ningún problema. En la siguiente gráfica, se observa que los enlaces entre el Igualmente se ve como el tráfico del nodo 5 hacia el 0, no se nodo 0 y 3 y entre el 3 y 9, se caen los enlaces y el tráfico ve afectado. generado por el nodo 1, es redireccionado a través de los nodos 2, 4, 5 y 7. También podemos observar como los paquetes son encolados entre los nodos 1 y 2, y se pierden en proporciones iguales, es decir, se usa un encolamiento “justo” en pérdida de paquetes, pero es importante diseñar topologías donde no sucedan pérdidas como éstas. VI. CONCLUSIONES El simulador NS es uno de los más robustos y confiables en el entorno digital, toda simulación que se haga en ésta herramienta y sea presentada ante comités importantes de tecnología, respetan y confían en los resultados que éste nos Ahora, en la siguiente gráfica, se caen los enlaces entre los arroja. nodos 1 y 2, y entre el nodo 2 y 8. Igualmente el tráfico es enrutado a través de los otros enlaces, pero a diferencia de la También es importante tener conocimiento del lenguaje de gráfica anterior, el encolamiento entre el nodo 0 y 3 es programación con la cuales trabaja éste, ya que, como vimos diferente, pues se puede ver que el encolamiento es más largo, anteriormente, el simulador funciona, principalmente con
  • 7. código, si se quiere hacer una buena simulación, con características adicionales que éste tiene. El ejemplo es una muy pequeña muestra de lo que éste puede hacer, si quiere más información, puede descargar el manual que contiene toda la programación y todo lo que se puede hacer con ésta herramienta. Por último, es muy importante tener en cuenta a la hora de implementar una topología de red, saber el tipo de tráfico que se va a enviar, el tipo de encolamiento y el ancho de banda, para que no hallan pérdidas de paquetes ni saturación de la información como se pudo observar en el capítulo del análisis. De igual forma, para eso es ésta herramienta, para hacer pruebas y poderlas corregir. VII. REFERENCIAS [1] http://blog.pucp.edu.pe/item/37506/instalar-ns2-en-ubuntu [2] http://www.isi.edu/nsnam/ns/tutorial/index.html [3] Manual de práctica con NS-2, http://jpadilla.docentes.upbbga.edu.co/programa%20redes/Ma nual%20de%20Practicas%20con%20NS2.pdf [4] Manual for the Network Simulator “ns”, http://www.isi.edu/nsnam/ns/tutorial/ [5]http://linuxalbacete.org/web/index2.php?option=com_conte nt&do_pdf=1&id=149 [6]http://nsl.csie.nctu.edu.tw/NCTUnsReferences/memoria.pdf