Story Transcript
´Indice Opnet OMNeT++ Matlab/Simulink NS-2
Herramientas de Simulaci´on N-QaS Network, Quality and Security Research Group
26 de abril de 2006
N-QaS
Herramientas de Simulaci´ on
´Indice Opnet OMNeT++ Matlab/Simulink NS-2
1
Opnet
2
OMNeT++
3
Matlab/Simulink
4
NS-2
N-QaS
Herramientas de Simulaci´ on
´Indice Opnet OMNeT++ Matlab/Simulink NS-2
Introducci´ on Estructura en Capas Ejemplo Ventajas y desventajas
Introducci´on
Programa para la simulaci´on de redes Librer´ıas y m´odulos muy completos Posibilidad de crear nuevos m´odulos programando en C Programa comercial Gratuito para universidades* Disponible para Windows, Solaris y Linux*
N-QaS
Herramientas de Simulaci´ on
´Indice Opnet OMNeT++ Matlab/Simulink NS-2
Introducci´ on Estructura en Capas Ejemplo Ventajas y desventajas
Capas
Opnet se estructura en 4 capas Capa de Red Capa de Nodo Capa de Proceso Capa de C´odigo
N-QaS
Herramientas de Simulaci´ on
´Indice Opnet OMNeT++ Matlab/Simulink NS-2
Introducci´ on Estructura en Capas Ejemplo Ventajas y desventajas
Capa de Red
N-QaS
Herramientas de Simulaci´ on
´Indice Opnet OMNeT++ Matlab/Simulink NS-2
Introducci´ on Estructura en Capas Ejemplo Ventajas y desventajas
Capa de Red
N-QaS
Herramientas de Simulaci´ on
´Indice Opnet OMNeT++ Matlab/Simulink NS-2
Introducci´ on Estructura en Capas Ejemplo Ventajas y desventajas
Capa de Red
N-QaS
Herramientas de Simulaci´ on
´Indice Opnet OMNeT++ Matlab/Simulink NS-2
Introducci´ on Estructura en Capas Ejemplo Ventajas y desventajas
Capa de Nodo
N-QaS
Herramientas de Simulaci´ on
´Indice Opnet OMNeT++ Matlab/Simulink NS-2
Introducci´ on Estructura en Capas Ejemplo Ventajas y desventajas
Capa de Proceso
N-QaS
Herramientas de Simulaci´ on
´Indice Opnet OMNeT++ Matlab/Simulink NS-2
Introducci´ on Estructura en Capas Ejemplo Ventajas y desventajas
Capa de C´odigo
N-QaS
Herramientas de Simulaci´ on
´Indice Opnet OMNeT++ Matlab/Simulink NS-2
Introducci´ on Estructura en Capas Ejemplo Ventajas y desventajas
Creando una simulaci´on sencilla
N-QaS
Herramientas de Simulaci´ on
´Indice Opnet OMNeT++ Matlab/Simulink NS-2
Introducci´ on Estructura en Capas Ejemplo Ventajas y desventajas
Creando una simulaci´on sencilla
N-QaS
Herramientas de Simulaci´ on
´Indice Opnet OMNeT++ Matlab/Simulink NS-2
Introducci´ on Estructura en Capas Ejemplo Ventajas y desventajas
Creando una simulaci´on sencilla
N-QaS
Herramientas de Simulaci´ on
´Indice Opnet OMNeT++ Matlab/Simulink NS-2
Introducci´ on Estructura en Capas Ejemplo Ventajas y desventajas
Creando una simulaci´on sencilla
N-QaS
Herramientas de Simulaci´ on
´Indice Opnet OMNeT++ Matlab/Simulink NS-2
Introducci´ on Estructura en Capas Ejemplo Ventajas y desventajas
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˜nado para simular casos pr´acticos/concretos M´as dif´ıcil de usar para simulaciones te´ oricas/generales.
N-QaS
Herramientas de Simulaci´ on
´Indice Opnet OMNeT++ Matlab/Simulink NS-2
Introducci´ on Estructura Interfaces Ejemplo Ventajas y desventajas
Introducci´on
Entorno de simulaci´on basado en eventos discretos Dispone de m´odulos b´ asicos para los protocolos m´as habituales Facilmente adaptable (programando en C++) Licencia P´ ublica Academica Disponible para Linux y Windows
N-QaS
Herramientas de Simulaci´ on
´Indice Opnet OMNeT++ Matlab/Simulink NS-2
Introducci´ on Estructura Interfaces Ejemplo Ventajas y desventajas
Estructura de una simulaci´on en OMNeT++
Se maneja editando ficheros Fichero .ned (Nivel de red) Ficheros de C++ .cc y .h (Nivel de proceso/c´odigo) Dos interfaces Interfaz gr´afica TKenv Interfaz en modo texto CMDenv
N-QaS
Herramientas de Simulaci´ on
´Indice Opnet OMNeT++ Matlab/Simulink NS-2
Introducci´ on Estructura Interfaces Ejemplo Ventajas y desventajas
Interfaz Gr´afica TKenv
N-QaS
Herramientas de Simulaci´ on
´Indice Opnet OMNeT++ Matlab/Simulink NS-2
Introducci´ on Estructura Interfaces Ejemplo Ventajas y desventajas
Interfaz Gr´afica TKenv
N-QaS
Herramientas de Simulaci´ on
´Indice Opnet OMNeT++ Matlab/Simulink NS-2
Introducci´ on Estructura Interfaces Ejemplo Ventajas y desventajas
Interfaz en modo texto CMDenv
N-QaS
Herramientas de Simulaci´ on
´Indice Opnet OMNeT++ Matlab/Simulink NS-2
Introducci´ on Estructura Interfaces Ejemplo 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´ on
´Indice Opnet OMNeT++ Matlab/Simulink NS-2
Introducci´ on Estructura Interfaces Ejemplo 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´ on
´Indice Opnet OMNeT++ Matlab/Simulink NS-2
Introducci´ on Estructura Interfaces Ejemplo 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´ on
´Indice Opnet OMNeT++ Matlab/Simulink NS-2
Introducci´ on Estructura Interfaces Ejemplo Ventajas y desventajas
Compilando
vi omnetpp.ini opp_makemake -f -u cmdenv opp_makemake -f -u tkenv make .\simulacion
N-QaS
Herramientas de Simulaci´ on
´Indice Opnet OMNeT++ Matlab/Simulink NS-2
Introducci´ on Estructura Interfaces Ejemplo Ventajas y desventajas
Simulando
N-QaS
Herramientas de Simulaci´ on
´Indice Opnet OMNeT++ Matlab/Simulink NS-2
Introducci´ on Estructura Interfaces Ejemplo Ventajas y desventajas
Ventajas y desventajas de OMNeT++
Pocos modelos de equipos y enlaces Grado de realismo menor que Opnet Simulaciones m´as rapidas que Opnet Flexibilidad mayor que Opnet (Es m´as f´acil crear un nuevo m´ odulo para OMNeT++ que para Opnet)
N-QaS
Herramientas de Simulaci´ on
´Indice Opnet OMNeT++ Matlab/Simulink NS-2
Introducci´ on Ejemplos Ventajas y desventajas
Introducci´on
Entorno de simulaci´on de Matlab Sirve para cualquier area tecnol´ogica (desde biolog´ıa hasta automoci´on) Programa comercial Disponible para Windows, Unix (Linux, Solaris, BSD, ...) y Mac.
N-QaS
Herramientas de Simulaci´ on
´Indice Opnet OMNeT++ Matlab/Simulink NS-2
Introducci´ on Ejemplos Ventajas y desventajas
Ejemplo b´asico
N-QaS
Herramientas de Simulaci´ on
´Indice Opnet OMNeT++ Matlab/Simulink NS-2
Introducci´ on Ejemplos Ventajas y desventajas
Ejemplo aeronautico
N-QaS
Herramientas de Simulaci´ on
´Indice Opnet OMNeT++ Matlab/Simulink NS-2
Introducci´ on Ejemplos Ventajas y desventajas
Ejemplo telecomunicaciones: Bluetooth
N-QaS
Herramientas de Simulaci´ on
´Indice Opnet OMNeT++ Matlab/Simulink NS-2
Introducci´ on Ejemplos Ventajas y desventajas
Ejemplo nuestro
N-QaS
Herramientas de Simulaci´ on
´Indice Opnet OMNeT++ Matlab/Simulink NS-2
Introducci´ on Ejemplos Ventajas y desventajas
Ventajas y desventajas de Matlab/Simulink
Muy u ´til para el ´ambito de la se˜ nal Para nosotros es una herramienta matem´ atica m´as Nuevos productos de Matlab: StateFlow: Permite programar m´aquinas de estados SimEvents: ????
N-QaS
Herramientas de Simulaci´ on
´Indice Opnet OMNeT++ Matlab/Simulink NS-2
Introducci´ on a Network Simulator 2 Estructura Interfaces Ejemplo b´ asico C´ odigo ns-2 Gr´ aficas
Introducci´on
Simulador basado en eventos. TCP, UDP, IP, redes inal´ ambricas, sat´elite, MPLS Se utilizan scripts en oTcl para definir los escenarios de simulaci´on Programado en C++. Uso de clases para definir los objetos de la simulaci´on. Utilizado en muchos grupos de investigaci´on http://www.isi.edu/nsnam/ns/
N-QaS
Herramientas de Simulaci´ on
´Indice Opnet OMNeT++ Matlab/Simulink NS-2
Introducci´ on a Network Simulator 2 Estructura Interfaces Ejemplo b´ asico C´ odigo ns-2 Gr´ aficas
Estructura del funcionamiento de NS-2 Topolog´ıa de la red y configuraci´ on de las conexiones de datos Hay una relaci´on entre los objetos en oTcl y el c´odigo C++ del simulador. Ej: posici´on Se generan unos ficheros de trazas. Es necesario saber interpretar la informaci´on. C´odigo de ns-2 Definici´on de clases en ficheros cabecera .h Implementaci´on en ficheros .cc Existe una jerarqu´ıa de clases, que pod´eis modificar o utilizar Clases importantes: Agent, Node, Link Eventos controlados por el scheduler (planificador) N-QaS
Herramientas de Simulaci´ on
´Indice Opnet OMNeT++ Matlab/Simulink NS-2
Introducci´ on a Network Simulator 2 Estructura Interfaces Ejemplo b´ asico C´ odigo ns-2 Gr´ aficas
Fichero de trazas r r r r f s s r r f s r s r f s s r r f
15.687500000 15.693661581 15.703620409 15.713684333 15.714846603 15.717500000 15.718750000 15.718750000 15.723323667 15.724505432 15.731275329 15.733081788 15.741297162 15.742859591 15.743684333 15.748750000 15.750000000 15.750000000 15.752637994 15.753323667
_0_ _4_ _4_ _3_ _4_ _0_ _0_ _0_ _3_ _4_ _1_ _4_ _2_ _2_ _3_ _0_ _0_ _0_ _2_ _3_
RTR RTR RTR RTR RTR RTR AGT RTR RTR RTR RTR RTR RTR AGT RTR RTR AGT RTR AGT RTR
-----------------------------------------
22 cbr 12 cbr 13 cbr 15 cbr 10 cbr 22 cbr 23 cbr 23 cbr 16 cbr 11 cbr 0 AODV 14 cbr 0 AODV 10 cbr 15 cbr 23 cbr 24 cbr 24 cbr 11 cbr 16 cbr
1000 [0 0 1020 [13a 1020 [13a 1020 [13a 1020 [13a 1020 [0 0 1000 [0 0 1000 [0 0 1020 [13a 1020 [13a 48 [0 0 0 1020 [13a 48 [0 0 0 1020 [13a 1020 [13a 1020 [0 0 1000 [0 0 1000 [0 0 1020 [13a 1020 [13a
0 0] ------- [0:0 2:0 32 0] [22] 0 0 4 3 800] ------- [0:0 2:0 29 4] [12] 4 3 800] ------- [0:0 2:0 29 4] [13] 3 0 800] ------- [0:0 2:0 30 3] [15] 4 3 800] ------- [0:0 2:0 28 2] [10] 0 0] ------- [0:0 2:0 30 3] [22] 0 0 0 0] ------- [0:0 2:0 32 0] [23] 0 0 0 0] ------- [0:0 2:0 32 0] [23] 0 0 3 0 800] ------- [0:0 2:0 30 3] [16] 4 3 800] ------- [0:0 2:0 28 2] [11] 0] ------- [1:255 -1:255 1 0] [pp0x1 4 3 800] ------- [0:0 2:0 29 4] [14] 0] ------- [2:255 -1:255 1 0] [pp0x1 2 4 800] ------- [0:0 2:0 28 2] [10] 3 0 800] ------- [0:0 2:0 29 4] [15] 0 0] ------- [0:0 2:0 30 3] [23] 0 0 0 0] ------- [0:0 2:0 32 0] [24] 0 0 0 0] ------- [0:0 2:0 32 0] [24] 0 0 2 4 800] ------- [0:0 2:0 28 2] [11] 3 0 800] ------- [0:0 2:0 29 4] [16]
N-QaS
Herramientas de Simulaci´ on
2 2 1 2
0 0 0 0
1 2 1 2 1 3 1
0 0 [1 8]] (HELLO) 0 [2 10]] (HELLO) 0 0
3 0 1 0
´Indice Opnet OMNeT++ Matlab/Simulink NS-2
Introducci´ on a Network Simulator 2 Estructura Interfaces Ejemplo b´ asico C´ odigo ns-2 Gr´ aficas
Nam
N-QaS
Herramientas de Simulaci´ on
´Indice Opnet OMNeT++ Matlab/Simulink NS-2
Introducci´ on a Network Simulator 2 Estructura Interfaces Ejemplo b´ asico C´ odigo ns-2 Gr´ aficas
Conexi´on 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´ on
´Indice Opnet OMNeT++ Matlab/Simulink NS-2
Introducci´ on a Network Simulator 2 Estructura Interfaces Ejemplo b´ asico C´ odigo ns-2 Gr´ aficas
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´ on
´Indice Opnet OMNeT++ Matlab/Simulink NS-2
N-QaS
Introducci´ on a Network Simulator 2 Estructura Interfaces Ejemplo b´ asico C´ odigo ns-2 Gr´ aficas
Herramientas de Simulaci´ on
´Indice Opnet OMNeT++ Matlab/Simulink NS-2
Introducci´ on a Network Simulator 2 Estructura Interfaces Ejemplo b´ asico C´ odigo ns-2 Gr´ aficas
Herramientas de Simulaci´on N-QaS Network, Quality and Security Research Group
26 de abril de 2006
N-QaS
Herramientas de Simulaci´ on