Mauro Margalho Coutinho

Curriculum Lattes aqui


 

 

Locations of visitors to this page

Network Simulator

NS ou network simulator (também chamado de ns-2 em referência a sua geração) é um simulador de redes de computadores popular nos meios acadêmicos por ter o código fonte aberto. Muito usado em pesquisas sobre redes ad hoc, suporta os protocolos de rede mais populares tanto para redes cabeadas quanto as sem fio.

A primeira versão do ns foi desenvolvida em 1989 baseada no Real Network Simulator. A versão atual é a 2 e foi desenvolvida na Universidade de Berkley usando as linguagens C++ e Tcl. Os scripts Tcl são usados para descrever o ambiente a ser simulado, sendo o simulador um interpretador dests scripts que usa as bibliotecas desenvolvidas em C++ as quais possuem os objetos para scheduling de eventos e elementos de rede.


 

Network Simulator 3 (NS-3)

Network Simulator NS-3 (informações e download)

Tutoriais e Manual do NS-2 (download)

Network Simulator 2 (NS-2)

Network Simulator NS-2 (Download v2.34 - Compatível com o Ubuntu 9.10)

Versões anteriores: (Download v2.33)

Site do NS-2 Projeto VINT NS-2

 

 

Instalação em distro sabor DEBIAN

Primeiro vamos instalar os pacotes necessários pelo ns-2

$ sudo aptitude install build-essential autoconf automake libxmu-dev xgraph

E agora sim, podemos instalar o simulador propriamente dito. Mas é preciso lembrar que os procedimentos abaixo devem ser realizados na pasta do usuário (/home/pasta_do_usuario) e NÃO como root.

Copie o arquivo de instalação (ns-allinone-2.3x.tar.gz) para a pasta do usuário. Depois entre no terminal e digite:

$ cd ~

$ tar xzvf ns-allinone-2.3x.tar.gz
$ cd ns-allinone-2.3x/
$ ./install

{ Se a instalação for no Ubuntu 10.04 e o erro abaixo ocorrer siga os procedimentos descritos adiante

erro: make: *** [libotcl.so] Error 127 otcl-1.13 make failed!

$sudo apt-get install g++-4.3

$gedit otcl-1.13/Makefile.in

#edite a linha 7
Altere de :
CC=       @CC@
para :
CC=       gcc-4.3

Grave o arquivo
Digite na linha de comando:

$CC=gcc-4.3 CXX=g++-4.3 ./install  }

{ Ajustes requeridos no Ubuntu 11.04

Passo 1: sudo apt-get install xorg-dev g++ xgraph
Passo 2: Edite a linha 6304 em otcl-1.13/configure. Ajuste para
SHLIB_LD="gcc -shared"
onde se lê
SHLIB_LD="ld -shared"

Passo 3: Edite o arquivo ns-2.34/tools/ranvar.cc e modifique a linha  219 de
return GammaRandomVariable::GammaRandomVariable(1.0 + alpha_, beta_).value() * pow (u, 1.0 / alpha_);
para
return GammaRandomVariable(1.0 + alpha_, beta_).value() * pow (u, 1.0 / alpha_);

Passo 4: Modifique as linhas 183 e 185 no arquivo ns-2.34/mobile/nakagami.cc para
resultPower = ErlangRandomVariable(Pr/m, int_m).value();
e
resultPower = GammaRandomVariable(m, Pr/m).value();

Passo 5: Instale o gcc-4.4 e g++-4.4 incluindo as dependências. Use o comando abaixo:
$ sudo apt-get install gcc-4.4 g++-4.4

Passo 6: Mude a linha 270 em tcl8.4.18/unix/Makefile.in. Onde se lê:
CC = @CC@
mude para
CC = @CC@ -V 4.4

Finallmente, rode o  ./install na pasta ns-allinone-2.34.}

 


Obs.: Ao final da instalação serão exibidas as informações com as versões do NS, otcl, tk, nam etc. Substitua esses números de versão pelos "x" no trecho abaixo.

Ajuste do Caminho:

Passo 1: Copie o texto abaixo para um arquivo chamado ns-2.txt  e grave na pasta home do usuário. Ex.: /home/margalho

#---------------------------------------------------------------------
#
# .ns2
#
# ---------------------------------------------------------------------
# Network Simulator - UNAMA
# ---------------------------------------------------------------------

NS2_ROOT=$HOME/ns-allinone-2.3x

# LD_LIBRARY_PATH
OTCL_LIB=$NS2_ROOT/otcl-1.1x
NS2_LIB=$NS2_ROOT/lib
X11_LIB=/usr/X11R6/lib
USR_LIB=/usr/local/lib
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$OTCL_LIB:$NS2_LIB:$X11_LIB:$USR_LIB

# TCL_LIBRARY
TCL_LIB=$NS2_ROOT/tcl8.4.1x/library
USR_LIB=/usr/lib
export TCL_LIBRARY=$TCL_LIB:$USR_LIB

# PATH
XGRAPH=$NS2_ROOT/bin:$NS2_ROOT/tcl8.4.1x/unix:$NS2_ROOT/tk8.4.1x/unix
NS=$NS2_ROOT/ns-2.3x/
NAM=$NS2_ROOT/nam-1.1x/
PATH=$PATH:$XGRAPH:$NS:$NAM
export PATH

#---------------------------------------------------------------------


Passo 2: digite
# mv ns-2.txt ~/.ns-2
# echo "source ~/.ns-2" >> ~/.bashrc

Passo 3: Feche a sessão a abra novamente

Passo 4: Verifique se o simulador esta instalado corretamente
digitando no prompt de comando:

# ns
% ns-version

Se aparecer a versão 2.3x a tarefa está cumprida

Exemplos de Simulação:

 

Topologia da RNP no NS

Usando arquivos de Nos, Enlaces e Trafego em Separado

WAN com SFQ

LAN com GATEWAY

Redes de Sensores

Exercicio WAN  - Relatório de Análise de Desempenho

Exemplos Diversos coletados na Internet

Suporte de Programação para o NS-2

O NS usa, como linguagem de front-end, o TCL. Clique aqui para obter exemplos de sintaxe que podem ser úteis no desenvolvimento de seus códigos.


Se quiser um material mais completo clique
aqui

Redes Infra-estruturadas no NS-2 (NOAH)

Ajustes no NS-2 para Redes Wireless Infra-estruturadas ou NOAH (professor Jörg Widmer da Escola Politécnica Federal de Lausanne, na Suíça) clique aqui

Antenas Direcionais no NS-2

Ajustes no NS-2 para uso de antenas direcionais (Departamento de Ciência da Computação e Engenharia do Instituto de Tecnologia Indiano, localizado em Kanpur, na Índia) clique aqui

Link para outros Simuladores

OPNET - Não é gratuito

Pacote de simuladores de rede gratuitos


Trabalhos Acadêmicos Orientados


NORMANDO PANTOJA QUEIROZ. Provendo Soluções de Comunicação em Ambientes Industriais Inóspitos via PLC - Um estudo aplicado a uma empilhadeira de bauxita da refinaria da ALUNORTE. 2009. Dissertação (Mestrado em Processos Industriais) - Universidade Federal do Pará, . Orientador: Mauro Margalho Coutinho.

 

OUTROS

 

Dicas do Carlos Eduardo Morimoto

 

Filme Guerreiros da NET



Cálculo de SubRede On-Line

Lista de Aplicativos Debian

ALERTA: Cuidado com a sua rede sem fio. Se ela estiver aberta (sem nenhuma proteção) e alguém fizer uma besteira a responsabilidade será sua

DNS - Serviço de Tradução de Nomes

named.conf.local named.conf db.matrix 

NFS - Redes no Linux

exports

Robô de Backup: crontab

montar_volumes backup.sh desmontar volumes 

Mais referências/backup incremental

Samba - Servidor de Autenticação/Arquivos

smb.conf

Vai Formatar? Comandos para fazer backup no MySQL


Minhas Contribuições


E-book - Network Simulator para Iniciantes

Programa em TCL para Cálculo de Vazão, Atraso e Jitter e Probabilidade de Bloqueio

Programas que calculam vazao, atraso, jitter e probabilidade de bloqueio

Instruções:

1- Descompacte os arquivos dentro da mesma pasta do trace

2- renomeie o trace para "wtrace.tr"

3- # ns calcula_vazao (Roda o Cálculo do TroughPut)

4- # ns calcula_atraso (Roda o Cálculo do Atraso, do Jitter e da Probabilidade de Bloqueio)

5- Importante: Cada fluxo deve estar com um Fid (Flow Identification) e Classe ordenados em sequencia crescenbte.

Cálculo da Vazão Agregada

Qualquer contribuição para a melhoria dos códigos será bem vinda.


Requisitos necessários para a reprodução da Simulação Carimbo:

Para permitir o uso de redes sem fio infra-estruturadas nas simulações desta tese de doutorado foi aplicado o ajuste de código do grupo de pesquisa ligado ao professor Jörg Widmer da Escola Politécnica Federal de Lausanne, na Suíça. O código encontra-se disponível em <http://icapeople.epfl.ch/widmer/>. Esse ajuste permitiu que a comunicação entre os nós da rede ocorresse sempre por intermédio de uma estação base ou ponto de acesso. Todavia, ainda fez-se necessário a aplicação de um segundo ajuste de código para permitir o uso de antenas direcionais, não suportadas na versão nativa do NS. Para isso utilizou-se o módulo desenvolvido pelo Departamento de Ciência da Computação e Engenharia do Instituto de Tecnologia Indiano, localizado em Kanpur, na Índia. O código encontra-se disponível  em <http://www.cse.iitk.ac.in/users/braman/tens/>.

 

Como resultado do processo de simulação do NS, um arquivo texto é gerado contendo todos os eventos ocorridos. Tais eventos são associados ao instante de simulação em que ocorreram. Esse arquivo (trace file) precisa ser tratado para apresentar os resultados estatísticos desejados. Como o simulador NS não contém programas que façam esse tratamento, todos os códigos de simulação utilizados nesta tese de doutorado, assim como os programas requeridos para o tratamento estatístico do arquivo de trace foram desenvolvidos especificamente para esse fim e estão relacionados no Quadro de códigos-fonte.

Quadro de códigos-fontes

Programas

Descrição

Requisitos

Programas utlizados para o cálculo das variáveis de desempenho

vazão Calcula a vazão fim a fim a partir de um arquivo de trace chamado wtrace.tr. Deve-se executar o arquivo matrizvzroot.tcl. Cada fluxo da simulação deve ter uma identificação única e seqüencial feita através da variável <fid_>
atraso/jitter/bloqueio Calcula o atraso fim a fim, o jitter fim a fim e a probabilidade de bloqueio a partir de um arquivo de trace chamadowtrace.tr. Deve-se executar o arquivo matriz atsroot.tcl. Cada fluxo da simulação deve ter uma identificação única e seqüencial feita através da variável <fid_>
vzrootunificada.tcl Calcula a vazão acumulada (somatório das vazões de todos os fluxos) Cada fluxo da simulação deve ter uma identificação única e seqüencial feita através da variável <fid_>

Programas utilizados para as simulações do framework CARIMBÓ

últimamilha_WLAN Realiza a simulação entre o TI e o PCR com redes locais sem fio Os ajustes de código do NS devem ser aplicados
carimboredeinterativa.tcl Realiza a simulação na rede interativa com QoS Os ajustes de código do NS devem ser aplicados

Código-fonte do sistema piloto desenvolvido em XletView Aqui


Mauro Margalho Coutinho - skype: margalho