250 likes | 452 Views
Tema 7.- Redes inalámbricas Ad Hoc. Simulación de Redes inalámbricas con NS-2. Jae Chung, Mark Claypool Worcester Polytechnic Institute Ya Xu y Haobo Yu USC/ISI Polly Huang AT&T Labs Research Hao-Li Wang Department of Electrical and Computer Engineering, Iowa State University Sung Park
E N D
Tema 7.- Redes inalámbricas Ad Hoc. Simulación de Redes inalámbricas con NS-2 Jae Chung, Mark Claypool Worcester Polytechnic Institute Ya Xu y Haobo Yu USC/ISI Polly Huang AT&T Labs Research Hao-Li Wang Department of Electrical and Computer Engineering, Iowa State University Sung Park Network and Embedded Systems Lab (NESL) - Electrical Engineering, UCLA K. Sridharan Iyer, Texas A&M University agradecimientos/acknowledgments
El simulador ns-2 • El ns-2 es una herramienta software gratis disponible para Linux y Windows (no recomendado) • Funcionamiento en modo consola • Orientado a eventos, tiempo simulado (no real) • Combina C++ con TCL • C++ para el nucleo → ejecución rapida • TCL para la configuración del simulador y para lanzar las simulaciones
What is NS • Discrete event simulator • The VINT project : Virtual InterNet Testbed • UC Berkeley, Lawrence Berkeley National Lab, USC/ISI, Xerox PARC, AT&T Research • Packet-level • Link layer and up • Wired and wireless • Object-oriented • Mixed C++ and Otcl • Most UNIX and UNIX-like systems • FreeBSD • Solaris • Linux • Window 95/98/NT/2K • Works, but with an effort http://www.isi.edu/nsnam/ns/ Download source: current release 2.31 (released Mar 10, 2007)
El simulador ns-2 • Es el simulador más utilizado en el mundo científico (MANETs) dónde obtenerlo: http://www.isi.edu/nsnam/ns/
El simulador ns-2: limitaciones / problemas • La configuración de cada simulación se hace de forma manual • Las simulaciones son algo lentas – especialmente para la parte inalámbrica • Las trazas de salida puden llegar a ser muy grandes • No ofrece herramientas para el tratamiento y visualización de resultados • Herramientas del grupo (modo consola) • Herramientas externas: http://www.tracegraph.com/
Simulación de redes inalámbricas en ns-2 • Modelos sencillos de canal inalámbrico: • TwoRayGround, Shadowed... • Algunas tecnologías inalámbricas: • TDMA, 802.11 (DCF) • Existen ampliaciones para: • PCF, 802.11e HCF (EDCA / HCCA) • Diferentes procolos de encaminamiento: • DSR, AODV, TORA, DSDV, (ninguno) • Existen implementaciones externas de otros protocolos: • OLSR, MDSR, AODV-UU, DSR-UU, DYMO y otros • Movilidad de los nodos: • Random waypoint (setdest), otras herramientas (grcmob, ...)
Simulación de redes inalámbricas en ns-2 • Tecnologías IEEE 802.11 utilizadas: • Valor por defecto: 802.11b a 2 Mbit/s • Con un pequeño cambio: 802.11b a 11 Mbit/s • Recompilando: 802.11a/g a 54 Mbit/s • Tiempo típico de simulación: entre 300 y 900 segundos • Se puede introducir un periodo previo para activar el encaminamiento y descubrir las rutas necesarias entre fuente y destino, obteniendo así resultados en "caliente” • Recomendado: • 802.11g • Tiempo de simulación de 100 s (preparación) + 300 segundos (efectivos) + 20 segundos (finalizar) =420 segundos
Simulación de redes inalámbricas: selección escenarios • Forma • Cuadrado / rectangular • Tamaño • Debe de estar relacionado con el numero de nodos • Determina el numero medio de saltos • Numero de nodos / densidad de nodos • Problemas por baja / alta densidad • Relación con el tiempo de simulación • Valores propuestos • Cuadrado (870x870 m con 50 nodos) • Rectangular (1900x400 con 50 nodos) • Para otros tamaños, mantener el ratio de ~ 66 nodos por km2
Sim. redes inal.: selección patrones movilidad • Random waypoint (más utilizado) • Movimiento rectilíneo a velocidad fija hasta el destino • Pausa de N segundos en el destino • Nuevo movimiento • Problemas: • Poco realista • Los nodos empiezan por la pausa (setdest) • Tiempo de convergencia elevado • El intervalo de velocidades utilizado empieza por cero • Consecuencias: • Los resultados son poco estables, se requiere muchas simulaciones
Sim. redes inal.: selección patrones movilidad • Disponibles con la herramienta del grupo: • Movilidad por grupos • Manhattan • Movilidad para vehículos Downtown • … • Herramientas de otros grupos • Steady-state random waypoint (Tracy Camp, U. Colorado) • Recomendado para publicar • Random waypoint modificado (GRC): • Velocidad constante (1-12 m/s) • Colocar tiempos de pausa a cero • Downtown • Steady-state random waypoint • También sin tiempos de espera, y con velocidad constante
Sim. redes inal.: selección patrones trafico • Tráfico FTP/TCP (transferencias masivas de datos) puede originar problemas • Ocupa todo el ancho de banda del canal • Dificulta el encaminamiento si no hay QoS (con wi-fi estándar) • Genera trazas muy grandes • Tráfico UDP • A una tasa baja permite comprobar la eficacia de los distintos protocolos de encaminamiento • Trafico CBR es poco realista • Otras variantes (Pareto) permiten simular VoIP • Con trazas se puede simular transmisión de video
Sim. redes inal.: trazas de salida • 2 formatos: • Antiguo – más sencillo • Nuevo – más completo y adecuado para redes inalámbricas • 3 niveles de información • MAC (no se suele utilizar – trazas muy grandes) • Routing (aplicaciones + protocolos encaminamiento) • Agente (sólo para aplicaciones) • Información variada • MAC, IP, puerto para fuente / destino • Tiempo relativo al evento • Identificador único de paquete (sirve para calcular e2e delay) • Tipo y tamaño de paquete (sirve para calcular throughput)
Automatización: lanzamiento param. de sims. • El lenguaje de consola Linux (bash) permite programar lotes de simulaciones de forma sencilla • La herramienta nohup permite realizar tareas en background • Si alteramos el fichero de configuración de las simulaciones logramos cambiar valores dinámicamente • Ejemplo: • Cambiar el protocolo de encaminamiento utilizado • Cambiar el escenario utilizado • Cambiar el numero de nodos • etc.
Automatización: lanzamiento param. de sims. • Ejemplo FIN=420 SCEN=scen-s5-x1000-y1000-1 for NUM_NODES in 30 50 70; do for i in `seq 1 10`; do for RT_PROT in DSR AODV OLSR; do RES=0; while [ $RES -ne 1 ]; do ../../ns base_script.tcl -sc $SCEN -nn $NUM_NODES -stop $FIN -trfile res-n$NUM_NODES-r$RT_PROT-$i.tr && RES=1 done done done done
Automatización: lanzamiento param. de sims. • Requisitos: set val(rp) AODV set val(nn) 50 ;# how many nodes are simulated set val(cp) "find-route.tcl" ;#conection patter set val(sc) "unknown" ; #scenario proc getopt {argc argv} { global val lappend optlist cp nn sc rp for {set i 0} {$i < $argc} {incr i} { set arg [lindex $argv $i] if {[string range $arg 0 0] != "-"} continue set name [string range $arg 1 end] set val($name) [lindex $argv [expr $i+1]] } }
The setdest mobility generator • Mobile Movement Generator ./setdest [-n num_of_nodes] [-p pausetime] [-s maxspeed] [-t simtime] [-x maxx] [-y maxy] > [outdir/movement-file] Example: ./setdest -n 20 -p 2.0 -s 10.0 -t 200 -x 500 -y 500 > scen-20-test and the output will be written in a file called scen-20-test. • Random movement $node start • See ns-2/indep-utils/cmu-scen-gen/setdest/
The traffic patterns generators • ns cbrgen.tcl [-type cbr|tcp] [-nn nodes] [-seed seed] [-mc connections] [-rate rate] • Generating CBR traffic patterns • ns cbrgen.tcl -type cbr -nn 10 -seed 1 -mc 8 -rate 4.0 • Generating TCP traffic patterns • ns cbrgen.tcl -type tcp -nn 25 -seed 0 -mc 20 • See ns-2/indep-utils/cmu-scen-gen/
Automatización: obtención de resultados • A partir de las trazas de salida del simulador podemos extraer la información que deseemos • Ejemplos de información importante: • Throughput para una conexión FTP/TCP o CBR/UDP • Tasa de paquetes perdidos para una conexión VoIP • Retardo extremo-a-extremo (e2ed) para una conexión • Routing overhead • Número total de paquetes de routing • Número total de bytes de routing • Routing overhead normalizado • paquetes de routing / paquetes de datos
Automatización: obtención de resultados • Se puede automatizar también el proceso de obtención de resultados (y el de generación de escenarios) • Recomendación: pasar todos los resultados de un mismo estudio a una hoja de cálculo • Centralizar todos los resultados • Sacar valores medios, desviación estándar, intervalos de confianza, etc. • Podemos pre-visualizar los resultados de forma gráfica • Podemos exportarlos de forma sencilla para su representación via gnuplot
Automatización: representación con GNUPLOT • Estándar de-facto para generación de gráficas • Las graficas se generan mediante instrucciones • Adecuado para representación de resultados en forma de lineas • Poco adecuado para gráficas de barras, sectoriales, etc. • Permite generar gráficos en formato eps (necesario para los papers: latex)
Automatización: representación con GNUPLOT • Ejemplo: reset set terminal x11 set xlabel 'Number of legacy 802.11 nodes (%)' set ylabel 'Throughput per AC (Mbit/s)' set key top right set xtics 10 plot [0:100] [0.10:0.9] 'Hyb-def_br.txt' u 1:($2*512*8/60e6) title 'AC_VO (Voice)' w lp,\ 'Hyb-def_br.txt' u 1:($4*512*8/60e6) title 'AC_VI (Video)' w lp,\ 'Hyb-def_br.txt' u 1:($6*512*8/60e6) title 'AC_BE (Best effort)' w lp,\ 'Hyb-def_br.txt' u 1:($8*512*8/60e6) title 'AC_BK (Background)' w lp set terminal postscript eps set out 'Hyb-def_br.eps' replot
Metodología para realizar trabajos • Realizar unos pocos experimentos de prueba • Lanzar un lote de experimentos, verificando que todo está funcionando como planeado • Verificar el método para extraer resultados de un experimento • Extraer todos los resultados por lotes • Visualizar en Office si los resultados obtenidos son válidos • Pasar a gnuplot los resultados importantes • Incluir las gráficas en el paper
Metodología para simular en garibaldi • 1 PC con 2 procesadores de 32 bits • Lanzar 2 simulaciones en paralelo • se puede hacer tratamiento a 1 traza en simultaneo sin retrasar las simulaciones de forma significativa • Otras opciones: • una simulación → tratamiento de 2 trazas en simultaneo • ninguna simulación → tratamiento de 3/4 trazas en simultaneo
Metodología para simular en mozart • 4+1 equipos (videos), cada una con 2 procesadores de 64 bits • Lanzar 2 simulaciones en paralelo en cada video • Total de 8 en simultaneo • El tratamiento de trazas se debe realizar en el front-end (mozart) → almacenamiento en red • simulaciones → CPU bounded • tratamiento de trazas → I/O bounded • no más de 2 trazas a la vez → I/O de los videos via NFS • ¡Cuidado! - la compilación de ns-2 en mozart no funciona (64 bits) → de momento