Está en la página 1de 40

Índice

Opnet
OMNeT++
Matlab/Simulink
NS-2

Herramientas de Simulación

N-QaS

Network, Quality and Security Research Group

26 de abril de 2006

N-QaS Herramientas de Simulación


Índice
Opnet
OMNeT++
Matlab/Simulink
NS-2

1 Opnet

2 OMNeT++

3 Matlab/Simulink

4 NS-2

N-QaS Herramientas de Simulación


Índice
Introducción
Opnet
Estructura en Capas
OMNeT++
Ejemplo
Matlab/Simulink
Ventajas y desventajas
NS-2

Introducción

Programa para la simulación de redes


Librerı́as y módulos muy completos
Posibilidad de crear nuevos módulos programando en C
Programa comercial
Gratuito para universidades*
Disponible para Windows, Solaris y Linux*

N-QaS Herramientas de Simulación


Índice
Introducción
Opnet
Estructura en Capas
OMNeT++
Ejemplo
Matlab/Simulink
Ventajas y desventajas
NS-2

Capas

Opnet se estructura en 4 capas


Capa de Red
Capa de Nodo
Capa de Proceso
Capa de Código

N-QaS Herramientas de Simulación


Índice
Introducción
Opnet
Estructura en Capas
OMNeT++
Ejemplo
Matlab/Simulink
Ventajas y desventajas
NS-2

Capa de Red

N-QaS Herramientas de Simulación


Índice
Introducción
Opnet
Estructura en Capas
OMNeT++
Ejemplo
Matlab/Simulink
Ventajas y desventajas
NS-2

Capa de Red

N-QaS Herramientas de Simulación


Índice
Introducción
Opnet
Estructura en Capas
OMNeT++
Ejemplo
Matlab/Simulink
Ventajas y desventajas
NS-2

Capa de Red

N-QaS Herramientas de Simulación


Índice
Introducción
Opnet
Estructura en Capas
OMNeT++
Ejemplo
Matlab/Simulink
Ventajas y desventajas
NS-2

Capa de Nodo

N-QaS Herramientas de Simulación


Índice
Introducción
Opnet
Estructura en Capas
OMNeT++
Ejemplo
Matlab/Simulink
Ventajas y desventajas
NS-2

Capa de Proceso

N-QaS Herramientas de Simulación


Índice
Introducción
Opnet
Estructura en Capas
OMNeT++
Ejemplo
Matlab/Simulink
Ventajas y desventajas
NS-2

Capa de Código

N-QaS Herramientas de Simulación


Índice
Introducción
Opnet
Estructura en Capas
OMNeT++
Ejemplo
Matlab/Simulink
Ventajas y desventajas
NS-2

Creando una simulación sencilla

N-QaS Herramientas de Simulación


Índice
Introducción
Opnet
Estructura en Capas
OMNeT++
Ejemplo
Matlab/Simulink
Ventajas y desventajas
NS-2

Creando una simulación sencilla

N-QaS Herramientas de Simulación


Índice
Introducción
Opnet
Estructura en Capas
OMNeT++
Ejemplo
Matlab/Simulink
Ventajas y desventajas
NS-2

Creando una simulación sencilla

N-QaS Herramientas de Simulación


Índice
Introducción
Opnet
Estructura en Capas
OMNeT++
Ejemplo
Matlab/Simulink
Ventajas y desventajas
NS-2

Creando una simulación sencilla

N-QaS Herramientas de Simulación


Índice
Introducción
Opnet
Estructura en Capas
OMNeT++
Ejemplo
Matlab/Simulink
Ventajas y desventajas
NS-2

Ventajas y desventajas de Opnet

Miles de modelos para todo tipo de equipos y enlaces


Grado de realismo muy alto
Es lento simulando
Para muchas de nuestras aplicaciones, ”nos queda grande”
Flexibilidad media
Diseñado para simular casos prácticos/concretos
Más difı́cil de usar para simulaciones teóricas/generales.

N-QaS Herramientas de Simulación


Índice Introducción
Opnet Estructura
OMNeT++ Interfaces
Matlab/Simulink Ejemplo
NS-2 Ventajas y desventajas

Introducción

Entorno de simulación basado en eventos discretos


Dispone de módulos básicos para los protocolos más
habituales
Facilmente adaptable (programando en C++)
Licencia Pública Academica
Disponible para Linux y Windows

N-QaS Herramientas de Simulación


Índice Introducción
Opnet Estructura
OMNeT++ Interfaces
Matlab/Simulink Ejemplo
NS-2 Ventajas y desventajas

Estructura de una simulación en OMNeT++

Se maneja editando ficheros


Fichero .ned (Nivel de red)
Ficheros de C++ .cc y .h (Nivel de proceso/código)
Dos interfaces
Interfaz gráfica TKenv
Interfaz en modo texto CMDenv

N-QaS Herramientas de Simulación


Índice Introducción
Opnet Estructura
OMNeT++ Interfaces
Matlab/Simulink Ejemplo
NS-2 Ventajas y desventajas

Interfaz Gráfica TKenv

N-QaS Herramientas de Simulación


Índice Introducción
Opnet Estructura
OMNeT++ Interfaces
Matlab/Simulink Ejemplo
NS-2 Ventajas y desventajas

Interfaz Gráfica TKenv

N-QaS Herramientas de Simulación


Índice Introducción
Opnet Estructura
OMNeT++ Interfaces
Matlab/Simulink Ejemplo
NS-2 Ventajas y desventajas

Interfaz en modo texto CMDenv

N-QaS Herramientas de Simulación


Índice Introducción
Opnet Estructura
OMNeT++ Interfaces
Matlab/Simulink Ejemplo
NS-2 Ventajas y desventajas

Fichero .NED (I)

simple NIC
parameters:
tamcola: numeric, //Un parametro
lambda: numeric; //Otro parametro
gates:
in: in; // From PCI
out: out; //
in: in2; // From CPU
out: out2; //
endsimple

N-QaS Herramientas de Simulación


Índice Introducción
Opnet Estructura
OMNeT++ Interfaces
Matlab/Simulink Ejemplo
NS-2 Ventajas y desventajas

Fichero .NED (II)


module Red
submodules:
TarjetaDeRed: NIC;
parameters:
tamcola=1000;
display: "p=0,100;i=device/card_l,white";
Memoria: Memory;
display: "p=200,100";
Procesador: CPU;
display: "p=200,300;i=device/cpu_l,white";
[...]
connections:
TarjetaDeRed.out --> BusPCI.in;
BusPCI.out --> TarjetaDeRed.in;
[...]
endmodule

network red: Red


endnetwork

N-QaS Herramientas de Simulación


Índice Introducción
Opnet Estructura
OMNeT++ Interfaces
Matlab/Simulink Ejemplo
NS-2 Ventajas y desventajas

Fichero .CC
class NIC : public cSimpleModule
{
protected:
long NumPaq;
long TAMCOLA;
long Lost;
double lambda;
public:
Module_Class_Members(NIC, cSimpleModule, 0);
virtual Packet *generateNewMessage();
virtual void sendCopyOf(cMessage *msg);
virtual void planifica();
virtual void initialize();
virtual void handleMessage(cMessage *msg);
virtual int insertapaquete(cMessage *msg);
virtual void updateDisplay();
virtual void finish();
};
Define_Module(NIC);

N-QaS Herramientas de Simulación


Índice Introducción
Opnet Estructura
OMNeT++ Interfaces
Matlab/Simulink Ejemplo
NS-2 Ventajas y desventajas

Compilando

vi omnetpp.ini

opp_makemake -f -u cmdenv
opp_makemake -f -u tkenv

make

.\simulacion

N-QaS Herramientas de Simulación


Índice Introducción
Opnet Estructura
OMNeT++ Interfaces
Matlab/Simulink Ejemplo
NS-2 Ventajas y desventajas

Simulando

N-QaS Herramientas de Simulación


Índice Introducción
Opnet Estructura
OMNeT++ Interfaces
Matlab/Simulink Ejemplo
NS-2 Ventajas y desventajas

Ventajas y desventajas de OMNeT++

Pocos modelos de equipos y enlaces


Grado de realismo menor que Opnet
Simulaciones más rapidas que Opnet
Flexibilidad mayor que Opnet
(Es más fácil crear un nuevo módulo para OMNeT++ que
para Opnet)

N-QaS Herramientas de Simulación


Índice
Opnet Introducción
OMNeT++ Ejemplos
Matlab/Simulink Ventajas y desventajas
NS-2

Introducción

Entorno de simulación de Matlab


Sirve para cualquier area tecnológica (desde biologı́a hasta
automoción)
Programa comercial
Disponible para Windows, Unix (Linux, Solaris, BSD, ...) y
Mac.

N-QaS Herramientas de Simulación


Índice
Opnet Introducción
OMNeT++ Ejemplos
Matlab/Simulink Ventajas y desventajas
NS-2

Ejemplo básico

N-QaS Herramientas de Simulación


Índice
Opnet Introducción
OMNeT++ Ejemplos
Matlab/Simulink Ventajas y desventajas
NS-2

Ejemplo aeronautico

N-QaS Herramientas de Simulación


Índice
Opnet Introducción
OMNeT++ Ejemplos
Matlab/Simulink Ventajas y desventajas
NS-2

Ejemplo telecomunicaciones: Bluetooth

N-QaS Herramientas de Simulación


Índice
Opnet Introducción
OMNeT++ Ejemplos
Matlab/Simulink Ventajas y desventajas
NS-2

Ejemplo nuestro

N-QaS Herramientas de Simulación


Índice
Opnet Introducción
OMNeT++ Ejemplos
Matlab/Simulink Ventajas y desventajas
NS-2

Ventajas y desventajas de Matlab/Simulink

Muy útil para el ámbito de la señal


Para nosotros es una herramienta matemática más
Nuevos productos de Matlab:
StateFlow: Permite programar máquinas de estados
SimEvents: ????

N-QaS Herramientas de Simulación


Introducción a Network Simulator 2
Índice
Estructura
Opnet
Interfaces
OMNeT++
Ejemplo básico
Matlab/Simulink
Código ns-2
NS-2
Gráficas

Introducción

Simulador basado en eventos.


TCP, UDP, IP, redes inalámbricas, satélite, MPLS
Se utilizan scripts en oTcl para definir los escenarios de
simulación
Programado en C++. Uso de clases para definir los objetos de
la simulación.
Utilizado en muchos grupos de investigación
http://www.isi.edu/nsnam/ns/

N-QaS Herramientas de Simulación


Introducción a Network Simulator 2
Índice
Estructura
Opnet
Interfaces
OMNeT++
Ejemplo básico
Matlab/Simulink
Código ns-2
NS-2
Gráficas

Estructura del funcionamiento de NS-2


Topologı́a de la red y configuración de las conexiones de datos
Hay una relación entre los objetos en oTcl y el código C++
del simulador. Ej: posición
Se generan unos ficheros de trazas. Es necesario saber
interpretar la información.

Código de ns-2
Definición de clases en ficheros cabecera .h
Implementación en ficheros .cc
Existe una jerarquı́a de clases, que podéis modificar o utilizar
Clases importantes: Agent, Node, Link
Eventos controlados por el scheduler (planificador)
N-QaS Herramientas de Simulación
Introducción a Network Simulator 2
Índice
Estructura
Opnet
Interfaces
OMNeT++
Ejemplo básico
Matlab/Simulink
Código ns-2
NS-2
Gráficas

Fichero de trazas

r 15.687500000 _0_ RTR --- 22 cbr 1000 [0 0 0 0] ------- [0:0 2:0 32 0] [22] 0 0
r 15.693661581 _4_ RTR --- 12 cbr 1020 [13a 4 3 800] ------- [0:0 2:0 29 4] [12] 2 0
r 15.703620409 _4_ RTR --- 13 cbr 1020 [13a 4 3 800] ------- [0:0 2:0 29 4] [13] 2 0
r 15.713684333 _3_ RTR --- 15 cbr 1020 [13a 3 0 800] ------- [0:0 2:0 30 3] [15] 1 0
f 15.714846603 _4_ RTR --- 10 cbr 1020 [13a 4 3 800] ------- [0:0 2:0 28 2] [10] 2 0
s 15.717500000 _0_ RTR --- 22 cbr 1020 [0 0 0 0] ------- [0:0 2:0 30 3] [22] 0 0
s 15.718750000 _0_ AGT --- 23 cbr 1000 [0 0 0 0] ------- [0:0 2:0 32 0] [23] 0 0
r 15.718750000 _0_ RTR --- 23 cbr 1000 [0 0 0 0] ------- [0:0 2:0 32 0] [23] 0 0
r 15.723323667 _3_ RTR --- 16 cbr 1020 [13a 3 0 800] ------- [0:0 2:0 30 3] [16] 1 0
f 15.724505432 _4_ RTR --- 11 cbr 1020 [13a 4 3 800] ------- [0:0 2:0 28 2] [11] 2 0
s 15.731275329 _1_ RTR --- 0 AODV 48 [0 0 0 0] ------- [1:255 -1:255 1 0] [pp0x1 1 [1 8]] (HELLO)
r 15.733081788 _4_ RTR --- 14 cbr 1020 [13a 4 3 800] ------- [0:0 2:0 29 4] [14] 2 0
s 15.741297162 _2_ RTR --- 0 AODV 48 [0 0 0 0] ------- [2:255 -1:255 1 0] [pp0x1 1 [2 10]] (HELLO)
r 15.742859591 _2_ AGT --- 10 cbr 1020 [13a 2 4 800] ------- [0:0 2:0 28 2] [10] 3 0
f 15.743684333 _3_ RTR --- 15 cbr 1020 [13a 3 0 800] ------- [0:0 2:0 29 4] [15] 1 0
s 15.748750000 _0_ RTR --- 23 cbr 1020 [0 0 0 0] ------- [0:0 2:0 30 3] [23] 0 0
s 15.750000000 _0_ AGT --- 24 cbr 1000 [0 0 0 0] ------- [0:0 2:0 32 0] [24] 0 0
r 15.750000000 _0_ RTR --- 24 cbr 1000 [0 0 0 0] ------- [0:0 2:0 32 0] [24] 0 0
r 15.752637994 _2_ AGT --- 11 cbr 1020 [13a 2 4 800] ------- [0:0 2:0 28 2] [11] 3 0
f 15.753323667 _3_ RTR --- 16 cbr 1020 [13a 3 0 800] ------- [0:0 2:0 29 4] [16] 1 0

N-QaS Herramientas de Simulación


Introducción a Network Simulator 2
Índice
Estructura
Opnet
Interfaces
OMNeT++
Ejemplo básico
Matlab/Simulink
Código ns-2
NS-2
Gráficas

Nam

N-QaS Herramientas de Simulación


Introducción a Network Simulator 2
Índice
Estructura
Opnet
Interfaces
OMNeT++
Ejemplo básico
Matlab/Simulink
Código ns-2
NS-2
Gráficas

Conexión TCP entre 2 nodos


#Create a simulator object
set ns [new Simulator]
#Open the ns trace file
set nf [open out.ns w]
$ns trace-all $nf
proc finish {} {
global ns nf
$ns flush-trace
close $nf
exit 0}

#Create two nodes


set n0 [$ns node]
set n1 [$ns node]
#Create a duplex link between the nodes
$ns duplex-link $n0 $n1 1Mb 10ms DropTail

set tcp [new Agent/TCP/Reno]


set snk [new Agent/TCPSink]
$tcp set syn_ true
$ns attach-agent $n0 $tcp
$ns attach-agent $n1 $snk
$ns connect $tcp $snk

$ns at 0.5 "$tcp advanceby 1"


$ns at 5.0 "finish"
#Run the simulation
$ns run N-QaS Herramientas de Simulación
Introducción a Network Simulator 2
Índice
Estructura
Opnet
Interfaces
OMNeT++
Ejemplo básico
Matlab/Simulink
Código ns-2
NS-2
Gráficas

Cabecera IP
struct hdr_ip {
/* common to IPv{4,6} */
ns_addr_t src_;
ns_addr_t dst_;
int ttl_;
/* IPv6 */
int fid_; /* flow id---->session label */
int prio_;
static int offset_;
inline static int& offset() { return offset_; }
inline static hdr_ip* access(const Packet* p) {
return (hdr_ip*) p->access(offset_);
}
/* per-field member acces functions */
ns_addr_t& src() { return (src_); }
nsaddr_t& saddr() { return (src_.addr_); }
int32_t& sport() {return (src_.port_);}
ns_addr_t& dst() { return (dst_); }
nsaddr_t& daddr() { return (dst_.addr_); }
int32_t& dport() { return dst_.port_;}
int& ttl() { return (ttl_); }
/* ipv6 fields */
int& flowid() { return (fid_); }
int& prio() { return (prio_); }
};

N-QaS Herramientas de Simulación


Introducción a Network Simulator 2
Índice
Estructura
Opnet
Interfaces
OMNeT++
Ejemplo básico
Matlab/Simulink
Código ns-2
NS-2
Gráficas

N-QaS Herramientas de Simulación


Introducción a Network Simulator 2
Índice
Estructura
Opnet
Interfaces
OMNeT++
Ejemplo básico
Matlab/Simulink
Código ns-2
NS-2
Gráficas

Herramientas de Simulación

N-QaS

Network, Quality and Security Research Group

26 de abril de 2006

N-QaS Herramientas de Simulación

También podría gustarte