instalación de ns-3

Anuncio
SIMULACIÓN DE PROTOCOLOS DE ENRUTAMIENTO
PARA REDES MÓVILES AD-HOC MEDIANTE
HERRRAMIENTA DE SIMULACIÓN NS-3
INSTALACIÓN DE NS-3
Introducción a la herramienta
• NS-3 es un simulador de redes de eventos discretos
• Cada evento ocurre en un instante determinado y modifica el
estado del sistema
• La simulación no recorre de forma progresiva el tiempo
•
(simulador de tiempo continuo), sino que va saltando en el
tiempo de un evento al evento siguiente
Las simulaciones son más rápidas
• Aplicaciones: usos en investigación y educación
• Software abierto, de uso público, desarrollado en común a
través de las contribuciones de sus usuarios
• El Proyecto ns-3 arrancó su andadura en 2006
• Trata de sintonizar con las líneas de investigación más
actuales en materia de redes de comunicaciones
• Bajo nivel de compatibilidad con ns-2
Simulación de Redes
Loja - 2014
2
1
Introducción a la herramienta
• Objetivo: construcción de un núcleo de simulación sólido
(validado), sencillo de depurar y bien documentado
(relativamente)
• Facilita la extracción de los resultados de simulación
(trazas) para su posterior análisis
• Sistema operativo: Linux (nativo o máquina virtual)
• El núcleo de simulación soporta redes estructuradas sobre
el modelo IP y también no basadas en IP:
•
•
•
•
Wi-Fi
WiMAX
LTE
Redes de sensores, redes cableadas TCP/IP, aplicaciones, etc.
• Ejemplo de su evolución:
• Agosto 2013  ns-3.18
• Diciembre 2013  ns-3.19
Simulación de Redes
3
Loja - 2014
Introducción a la herramienta
Compilación y ensamblado
• Se realiza mediante WAF para configurar, compilar, limpiar, instalar y
desinstalar programas.
• Está desarrollado en el lenguaje PYTHON (instalar antes de su uso)
• Se ejecuta desde línea de comandos: ./waf
antenna
bridge
core
aodv
config-store
csma
dsdv
energy
network
point-to-point
sixlowpan
tap-bridge
uan
wave
csma-layout
dsr
emu
fd-net-device
internet
mobility
Simulación de Redes
applications
buildings
flow-monitor
lte
mpi
mesh
netanim (no Python)
nix-vector-routing
point-to-point-layout
spectrum
test (no Python)
virtual-net-device
wifi
olsr
Módulos incluidos
propagation
stats
topology-read
visualizer
wimax
Loja - 2014
4
2
Introducción a la herramienta
Los scripts se pueden desarrollar principalmente en dos lenguajes:
• CPP
• PYTHON
Un ejemplo de ejecución de un programa en ns3 es:
./waf --run scratch/scratch-simulator
El ejecutable se encuentra en el directorio build, si se quiere ejecutar
directamente sería necesario actualizar enlaces simbólicos (sudo ln…).
El fichero scratch-simulator.cc es:
Cabecera típica de C
Utilizado para depuración
Programa principal
Muestra mensaje en pantalla
Simulación de Redes
Loja - 2014
5
Prerrequisitos
 Instalación de C++
$ sudo apt-get install gcc g++ python
¿Instalar estos paquetes sin verificación [s/N]? → y
 Instalación de Python
$ sudo apt-get install gcc g++ python python-dev
 Instalación de Mercurial
$ sudo apt-get install mercurial
 Instalación de Bazaar
$ sudo apt-get install bzr
 Depurador
$ sudo apt-get install gdb valgrind
 Librería GSL (GNU Scientific Library)
$ sudo apt-get install gsl-bin libgsl0-dev libgsl0ldbl
Simulación de Redes
Loja - 2014
6
3
Prerrequisitos
 Analizador flex y generador bison
$ sudo apt-get install flex bison libfl-dev
 Instalación de tcpdump (lectura de salidas pcap)
$ sudo apt-get install tcpdump
 Instalación de librerías estadísticas
$ sudo apt-get install sqlite sqlite3 libsqlite3-dev
 Instalación de librerías XML
$ sudo apt-get install libxml2 libxml2-dev
 Sistema GTK (toolkit basado en objetos)
$ sudo apt-get install libgtk2.0-0 libgtk2.0-dev
 Máquinas virtuales en ns-3
$ sudo apt-get install vtun lxc
Simulación de Redes
Loja - 2014
7
Prerrequisitos
 Chequeo de código python
$ sudo apt-get install uncrustify
 Documentación (doxygen)
$ sudo apt-get install doxygen graphviz imagemagick
$ sudo apt-get install texlive texlive-extra-utils texlive-latexextra
 Visualización de manuales y tutorial (con sphinx y dia)
$ sudo apt-get install python-sphinx dia
 Instalación de visualizador pyviz de ns-3
$ sudo apt-get install python-pygraphviz python-kiwi pythonpygoocanvas libgoocanvas-dev
 Módulo openflow
$ sudo apt-get install libboost-signals-dev libboost-filesystemdev
 Soporte de emulador MPI (Message Passing Interface)
$ sudo apt-get install openmpi-bin openmpi-common openmpidoc libopenmpi-dev
Simulación de Redes
Loja - 2014
8
4
Prerrequisitos
 Enlaces modificados con python
$ sudo apt-get install gcc-multilib
Simulación de Redes
Loja - 2014
9
Instalación usando Bake
$
$
$
$
$
$
$
$
$
$
mkdir workspace
cd workspace
hg clone http://code.nsnam.org/bake
export BAKE_HOME=`pwd`/bake
export PATH=$PATH:$BAKE_HOME
export PYTHONPATH=$PYTHONPATH:$BAKE_HOME
cd bake
./bake.py check
./bake.py configure –e ns-3.18
bake .py show
qt4 - missing
$ sudo apt-get install qt4-dev-tools
$ ./bake.py show
qt4 - OK
Simulación de Redes
Loja - 2014
10
5
Instalación usando Bake
$ cd ../..
$ ./bake.py download –v
Centro de Software: instalar gccxml
$ ./bake.py build -vvv
Simulación de Redes
Loja - 2014
11
Loja - 2014
12
Prueba de funcionamiento
$ cd source/ns-3.18
$ ./test.py –c core
$ ./waf –run hello-simulator
Simulación de Redes
6
Instalación de aplicaciones
• Gnuplot en Centro de Software
 Prueba de funcionamiento
$ gnuplot
gnuplot> exit
• Wireshark en Centro de Software
 Aparecerá el icono en la barra lateral
Simulación de Redes
Loja - 2014
13
7
Descargar