Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Opnet
OMNeT++
Matlab/Simulink
NS-2
Herramientas de Simulación
N-QaS
26 de abril de 2006
1 Opnet
2 OMNeT++
3 Matlab/Simulink
4 NS-2
Introducción
Capas
Capa de Red
Capa de Red
Capa de Red
Capa de Nodo
Capa de Proceso
Capa de Código
Introducción
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
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);
Compilando
vi omnetpp.ini
opp_makemake -f -u cmdenv
opp_makemake -f -u tkenv
make
.\simulacion
Simulando
Introducción
Ejemplo básico
Ejemplo aeronautico
Ejemplo nuestro
Introducció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
Nam
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_); }
};
Herramientas de Simulación
N-QaS
26 de abril de 2006