Documente Academic
Documente Profesional
Documente Cultură
Outline
Introduccin
Primer ejemplo de ns3. Enlace punto a punto.
Segundo ejemplo de ns3. Dos nodos inalmbricos en
configuracin ad hoc
Simulacin de Protocolos de
Enrutamiento para MANET con
ns-3
Loja - 2014
Simulacin de Protocolos de
Enrutamiento para MANET con
ns-3
Loja - 2014
Antenna Module
DSDV Routing
DSR Routing
Mobility
Propagation models
Wifi
Simulacin de Protocolos de
Enrutamiento para MANET con
ns-3
Loja - 2014
#include "ns3/core-module.h"
NS_LOG_COMPONENT_DEFINE
("ScratchSimulator");
Programa principal
Se muestra el mensaje
Se ejecuta hasta que no haya un
STOP o no haya eventos
Simulator::Run ();
Simulator::Destroy ();
Se libera memoria.
Cmo se ejecuta?
./waf --run scratch/scratch-simulator
Simulacin de Protocolos de
Enrutamiento para MANET con
ns-3
Loja - 2014
Mensajes de logs
LOG functionality: macros which allow developers to send
information to the std::clog output stream.
$ export NS_LOG=UdpEchoClientApplication=level_all
Simulacin de Protocolos de
Enrutamiento para MANET con
ns-3
Loja - 2014
Mensajes de logs
Existen 7 niveles de mensajes de log:
LOG_ERROR Log error messages
(associated
macro:
NS_LOG_ERROR);
LOG_WARN
Log
warning
messages
(associated
macro:
NS_LOG_WARN);
LOG_DEBUG Log relatively rare, ad-hoc debugging messages
(associated macro: NS_LOG_DEBUG);
LOG_INFO Log informational messages about program progress
(associated macro: NS_LOG_INFO);
LOG_FUNCTION Log a message describing each function called (two
associated macros: NS_LOG_FUNCTION, used for member functions,
and NS_LOG_FUNCTION_NOARGS, used for static functions);
LOG_LOGIC Log messages describing logical flow within a function
(associated macro: NS_LOG_LOGIC);
LOG_ALL Log everything mentioned above (no associated macro).
NS_LOG_UNCOND Log the associated message unconditionally (no
associated log level).
Simulacin de Protocolos de
Enrutamiento para MANET con
ns-3
Loja - 2014
Modelo de ns3
Con ns3 se crean un dispositivos o nodos que puede tener
distintas interfaces, aplicaciones, direcciones IP, etc
Nivel
Aplicacin
UdpEchoClientHelper
Transporte
Red
Ipv4AddressHelper
Enlace
PointToPointHelper
Fsico
Simulacin de Protocolos de
Enrutamiento para MANET con
ns-3
Loja - 2014
Cliente
Node
10.0.0.1
Enlace
Enlace
Application
Application
Protocol stack
Protocol Stack
NetDevice
Interfaz
Punto a punto
Simulacin de Protocolos de
Enrutamiento para MANET con
ns-3
Channel
PtP Protocol
NetDevice
Interfaz
Punto a punto
Loja - 2014
"ns3/core-module.h"
"ns3/network-module.h"
"ns3/internet-module.h"
"ns3/point-to-point-module.h"
"ns3/applications-module.h"
Simulator::Run ();
Simulator::Destroy ();
Return 0;
Loja - 2014
10
Simulacin de Protocolos de
Enrutamiento para MANET con
ns-3
Loja - 2014
11
Simulacin de Protocolos de
Enrutamiento para MANET con
ns-3
Loja - 2014
12
Loja - 2014
13
Simulacin de Protocolos de
Enrutamiento para MANET con
ns-3
Loja - 2014
14
Ficheros de resultados I
Hay que aadir ms cdigo para obtener resultados que se
puedan procesar.
Para conseguir un fichero de traza similar a los de ns2 se
aade el siguiente cdigo:
AsciiTraceHelper ascii;
pointToPoint.EnableAsciiAll (ascii.CreateFileStream ("first.tr"));
Simulacin de Protocolos de
Enrutamiento para MANET con
ns-3
Loja - 2014
15
Ficheros de resultados II
Cada lnea se corresponde con un evento.
En este caso se estn monitorizando los eventos que
ocurren en las colas de transmisin de todos los
dispositivos punto a punto.
+
2
/NodeList/0/DeviceList/0/$ns3::PointToPointNetDevice/TxQueue/Enqueue
ns3::PppHeader (
Point-to-Point Protocol: IP (0x0021))
ns3::Ipv4Header (
tos 0x0 ttl 64 id 0 protocol 17 offset 0 flags [none]
length: 1052 10.1.1.1 > 10.1.1.2)
ns3::UdpHeader ( length: 1032 49153 > 9)
Payload (size=1024)
Simulacin de Protocolos de
Enrutamiento para MANET con
ns-3
Loja - 2014
16
Wireshark
Desde consola con:
$ tcpdump -nn -tt -r myfirst-0-0.pcap
reading from file myfirst-0-0.pcap, link-type PPP (PPP)
2.000000 IP 10.1.1.1.49153 > 10.1.1.2.9: UDP, length 1024
2.514648 IP 10.1.1.2.9 > 10.1.1.1.49153: UDP, length 1024
$ tcpdump -nn -tt -r myfirst-1-0.pcap
reading from file myfirst-1-0.pcap, link-type PPP (PPP)
2.257324 IP 10.1.1.1.49153 > 10.1.1.2.9: UDP, length 1024
2.257324 IP 10.1.1.2.9 > 10.1.1.1.49153: UDP, length 1024
Simulacin de Protocolos de
Enrutamiento para MANET con
ns-3
Loja - 2014
17
Simulacin de Protocolos de
Enrutamiento para MANET con
ns-3
Loja - 2014
18
Simulacin de Protocolos de
Enrutamiento para MANET con
ns-3
Loja - 2014
19
Loja - 2014
20
Simulacin de Protocolos de
Enrutamiento para MANET con
ns-3
Loja - 2014
21
Ejecutar
./waf --run scratch/wifi-quiet-adhoc
Resultados. Mensajes de log
Simulacin de Protocolos de
Enrutamiento para MANET con
ns-3
Loja - 2014
22
Ficheros de resultados I
Fichero .tr
t 2.009 /NodeList/0/DeviceList/0/$ns3::WifiNetDevice/Phy/State/Tx
ns3::WifiMacHeader (DATA ToDS=0, FromDS=0, MoreFrag=0, Retry=0,
MoreData=0 Duration/ID=0usDA=ff:ff:ff:ff:ff:ff, SA=00:00:00:00:00:01,
BSSID=00:00:00:00:00:01, FragNumber=0, SeqNumber=0) ns3::LlcSnapHeader
(type 0x806) ns3::ArpHeader (request source mac: 00-06-00:00:00:00:00:01
source ipv4: 10.1.1.1 dest ipv4: 10.1.1.2) ns3::WifiMacTrailer ()
r 2.0097 /NodeList/1/DeviceList/0/$ns3::WifiNetDevice/Phy/State/RxOk
ns3::WifiMacHeader (DATA ToDS=0, FromDS=0, MoreFrag=0, Retry=0,
MoreData=0 Duration/ID=0usDA=ff:ff:ff:ff:ff:ff, SA=00:00:00:00:00:01,
BSSID=00:00:00:00:00:01, FragNumber=0, SeqNumber=0) ns3::LlcSnapHeader
(type 0x806) ns3::ArpHeader (request source mac: 00-06-00:00:00:00:00:01
source ipv4: 10.1.1.1 dest ipv4: 10.1.1.2) ns3::WifiMacTrailer ()
Simulacin de Protocolos de
Enrutamiento para MANET con
ns-3
Loja - 2014
23
Ficheros de resultados II
$ tcpdump -nn -tt -r wifi-quiet-adhoc-0-0.pcap
reading from file wifi-quiet-adhoc-0-0.pcap, link-type IEEE802_11_RADIO (802.11 plus
radiotap header)
2.009000 2009000us tsft 1.0 Mb/s 2412 MHz 11b ARP, Request who-has 10.1.1.2
(ff:ff:ff:ff:ff:ff) tell 10.1.1.1, length 28
2.010458 2010458us tsft 1.0 Mb/s 2412 MHz 11b -79dB signal -101dB noise ARP, Reply
10.1.1.2 is-at 00:00:00:00:00:02, length 28
2.010468 2010468us tsft 1.0 Mb/s 2412 MHz 11b Acknowledgment
RA:00:00:00:00:00:02
2.011202 2011202us tsft 1.0 Mb/s 2412 MHz 11b IP 10.1.1.1.49153 > 10.1.1.2.9: UDP,
length 1024
2.020412 2020412us tsft 1.0 Mb/s 2412 MHz 11b -79dB signal -101dB noise
Acknowledgment RA:00:00:00:00:00:01
2.026802 2026802us tsft 1.0 Mb/s 2412 MHz 11b -79dB signal -101dB noise ARP,
Request who-has 10.1.1.1 (ff:ff:ff:ff:ff:ff) tell 10.1.1.2, length 28
2.026852 2026852us tsft 1.0 Mb/s 2412 MHz 11b ARP, Reply 10.1.1.1 is-at
00:00:00:00:00:01, length 28
2.027870 2027870us tsft 1.0 Mb/s 2412 MHz 11b -79dB signal -101dB noise
Acknowledgment RA:00:00:00:00:00:01
2.036956 2036956us tsft 1.0 Mb/s 2412 MHz 11b -79dB signal -101dB noise IP
10.1.1.2.9 > 10.1.1.1.49153: UDP, length 1024
2.036966 2036966us tsft 1.0 Mb/s 2412 MHz 11b Acknowledgment
RA:00:00:00:00:00:02
Simulacin de Protocolos de
Enrutamiento para MANET con
ns-3
Loja - 2014
24
Loja - 2014
25
Mensajes de log
./waf --run scratch/wifi-quiet-adhoc verbose=1
WifiPhy:GetPayloadDurationMicroSeconds(1088, DsssRate1Mbps)
size=1088 mode=DsssRate1Mbps rate=1000000
DcfManager:NotifyTxStartNow(0x8710dc8, +8896000.0ns)
+2028060080.0ns 0x8710dc8 tx start for +8896000.0ns
DcfManager:UpdateBackoff(0x8710dc8)
DcfManager:GetBackoffStartFor(0x8710dc8, 0x872be40)
DcfManager:GetAccessGrantStart(0x8710dc8)
DcfManager:MostRecent(0x8710dc8, +2027566080.0ns, +10000.0ns, +2027880080.0ns,
+2009714016.0ns, +2037306080.0ns, +10000.0ns, +10000.0ns)
access grant start=+2037306080.0ns, rx access start=+2027566080.0ns, busy access
start=+10000.0ns, tx access start=+2027880080.0ns, nav access start=+2009714016.0ns
DcfManager:MostRecent(0x8710dc8, +2028060080.0ns, +2037346080.0ns)
DcfManager:GetBackoffStartFor(0x8710dc8, 0x86f0908)
DcfManager:GetAccessGrantStart(0x8710dc8)
DcfManager:MostRecent(0x8710dc8, +2027566080.0ns, +10000.0ns, +2027880080.0ns,
+2009714016.0ns, +2037306080.0ns, +10000.0ns, +10000.0ns)
access grant start=+2037306080.0ns, rx access start=+2027566080.0ns, busy access
start=+10000.0ns, tx access start=+2027880080.0ns, nav access start=+2009714016.0ns
DcfManager:MostRecent(0x8710dc8, +2027920080.0ns, +2037346080.0ns)
Simulacin de Protocolos de
Enrutamiento para MANET con
ns-3
Loja - 2014
26
References
http://www.nsnam.org/docs/release/3.19/doxygen/
Ns-3 tutorial.
http://www.nsnam.org/docs/release/3.19/tutorial/singleht
ml/index.html
Simulacin de Protocolos de
Enrutamiento para MANET con
ns-3
Loja - 2014
27