Escolar Documentos
Profissional Documentos
Cultura Documentos
1 de abril de 2013
Sumrio
1
Introduo Caractersticas Instalao Como instalar o NS3 Tutorial Viso geral Primeiro exemplo Segundo exemplo Terceiro exemplo Resultados Arquivo de sada Filtrar resultados Plotar Ferramenta
Carlos Giovanni Nunes de Carvalho Network Simulator (NS3)
www.nsnam.org
Comunidade Permite que desenvolvedores da comunidade de redes contribuam em seu cdigoa Lista de usurios do NS3b
a b
www.nsnam.org/developers/overview/ groups.google.com/group/ns-3-users
Carlos Giovanni Nunes de Carvalho Network Simulator (NS3)
NS3a vs NS2b
a b
www.nsnam.org/docs/release/3.15/tutorial-pt-br/ns-3-tutorial.pdf nsnam.isi.edu/nsnam/index.php/Main_Page
O NS3 no uma extenso do NS2 No suporta as APIs do NS2 Algumas funcionalidades do NS2 foram portadas para o NS3 um simulador novo
Pr-requisitos
Aplicativos e bibliotecas Para que o NS3 funcione juntamente com gerao de documentao, plotagem de grcos e outras funcionalidades, necessrio a instalao de alguns pacotes Pacotes recomendados para os usurios do Ubuntua
a
www.nsnam.org/wiki/index.php/Installation
C++ e Python: >sudo apt-get install gcc g++ python python-dev Mercurial: >sudo apt-get install mercurial rvore de desenvolvedores ns-3: >sudo apt-get install bzr Debugging: >sudo apt-get install gdb valgrind
Carlos Giovanni Nunes de Carvalho Network Simulator (NS3)
Pr-requisitos (Cont.)
Pacotes recomendados (Cont.) Modelos de erro para WiFi: >sudo apt-get install gsl-bin libgsl0-dev libgsl0ldbl Analisador lxico e parser: >sudo apt-get install ex bison lib-dev Traces pcap: >sudo apt-get install tcpdump Database para estatstica: >sudo apt-get install sqlite sqlite3 libsqlite3-dev Xml: >sudo apt-get install libxml2 libxml2-dev GTK: >sudo apt-get install libgtk2.0-0 libgtk2.0-dev Mquinas virtuais: >sudo apt-get install vtun lxc Utilitrios: >sudo apt-get install uncrustify
Carlos Giovanni Nunes de Carvalho Network Simulator (NS3)
Pr-requisitos (Cont.)
Pacotes recomendados (Cont.) Documentao: >sudo apt-get install doxygen graphviz imagemagick texlive texlive-extra-utils texlive-latex-extra python-sphinx dia Visualizador: >sudo apt-get install python-pygraphviz python-kiwi python-pygoocanvas libgoocanvas-dev Openow: >sudo apt-get install libboost-signals-dev libboost-lesystem-dev Emulador: >sudo apt-get install openmpi*
Passo a passo
Recomendao de download O procedimento recomendado baixar o NS3 atravs do Mercurial, pois a ferramenta copia o cdigo do simulador no repositrio Comandos >cd; mkdir repos; cd repos >hg clone http://code.nsnam.org/ns-3-allinone >./download.py -n ns-3-dev >ls -la Tempo de espera O tempo de download vai variar de acordo com a conexo da Internet, mas pode levar alguns minutos ou horas
Carlos Giovanni Nunes de Carvalho Network Simulator (NS3)
Passo a passo
Compilao Para gerar o executvel do NS3 necessrio que os cdigos fontes baixados sejam compilados Comandos >cd ns-3-allinone >./build.py enable-examples enable-tests >cd ns-3-dev; ls -la Teste Para vericar o funcionamento, use os seguintes comandos: >./test.py -c core >./waf run hello-simulator
Carlos Giovanni Nunes de Carvalho Network Simulator (NS3)
Logs da simulao
O que so logs? So as mensagens do simulador e esto distribudas em 7 nveis Nveis das mensagens NS_LOG_ERROR: erro NS_LOG_WARN: alertas NS_LOG_DEBUG: depurao NS_LOG_INFO: informativo NS_LOG_FUNCTION: descreve a funo chamada NS_LOG_LOGIC: uxo lgico dentro de uma funo NS_LOG_ALL: tudo
Carlos Giovanni Nunes de Carvalho Network Simulator (NS3)
Dissecando o cdigo
// Adicionar bibliotecas bsicas contendo o ncleo do simulador, // os ns e enlaces. #include ns3/core-module.h #include ns3/simulator-module.h #include ns3/node-module.h #include ns3/helper-module.h using namespace ns3; // Denio do log NS_LOG_COMPONENT_DEFINE (FirstScriptExample); // Funo principal do cdigo int main (int argc, char *argv[])
Carlos Giovanni Nunes de Carvalho Network Simulator (NS3)
Dissecando o cdigo
// Adicionar bibliotecas bsicas contendo o ncleo do simulador, // os ns, enlaces multiponto (csma/ethernet) e roteamento. #include ns3/core-module.h #include ns3/network-module.h #include ns3/csma-module.h #include ns3/internet-module.h #include ns3/point-to-point-module.h #include ns3/applications-module.h #include ns3/ipv4-global-routing-helper.h
Dissecando o cdigo
// Adicionar bibliotecas bsicas contendo o ncleo do simulador, // os ns, enlaces multiponto (csma/ethernet) e roteamento. #include ns3/core-module.h #include ns3/point-to-point-module.h #include ns3/network-module.h #include ns3/applications-module.h #include ns3/wi-module.h #include ns3/mobility-module.h #include ns3/csma-module.h #include ns3/internet-module.h
n5 n6
// Carrega a simulao aps todas as denies Simulator::Run (); // Encerra a simulao no nal Simulator::Destroy (); return 0; }
Preparar o arquivo
Como fazer? Existem vrias ferramentas para tratar o arquivo de sada, entre elas esto as linguagens de script, as quais permitem ltrar, calcular e armazenar os resultados de acordo com as necessidades do usurio. Exemplos de ferramentas Shell Script Perl Python AWK GnuPlot O GnuPlot permite executar cdigos AWK dentro de seus scripts.
Carlos Giovanni Nunes de Carvalho Network Simulator (NS3)
END{ arp_rep=0; while (arp_rep<iARP_Rep) {print tempoARP_Rep[arp_rep] pacotesARP_Rep[arp_rep]; arp_rep+=1;}; } Comando para redirecionar a sada no arquivo de plotagem: > tcpdump -nn -tt -r second-2-0.pcap | awk -f "exemplo3_AWK.awk enviados_ARP_Rep.dat
END{ arp_req=0; while (arp_req<iARP_Req) {print tempoARP_Req[arp_req] pacotesARP_Req[arp_req]; arp_req+=1;}; } Comando para redirecionar a sada no arquivo de plotagem: > tcpdump -nn -tt -r second-2-0.pcap | awk -f "exemplo4_AWK.awk enviados_ARP_Req.dat
Ferramenta
Script
GnuPlot uma das ferramentas mais utilizada para plotar os resultados de simulao. set title Bytes IP enviados set xlabel Tempo(s) set ylabel Bytes plot enviados_IP.dat title Dados with lines