Preview only show first 6 pages with water mark for full document please download
Transcript
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