A Discrete-Event Network Simulator
Rastreamento

Introdução

O ns-3 é um simulador de redes baseado em eventos discretos desenvolvido especialmente para pesquisa e uso educacional. O projeto ns-3 iniciou em 2006 e tem seu código aberto.

O objetivo deste tutorial é apresentar o ns-3 de forma estruturada aos usuários iniciantes. Algumas vezes torna-se difícil obter informações básicas de manuais detalhados e converter em informações úteis para as simulações. Neste tutorial são ilustrados vários exemplos de simulações, introduzindo e explicando os principais conceitos necessários ao longo do texto.

A documentação completa do ns-3 e trechos do código fonte são apresentados para os interessados em aprofundar-se no funcionamento do sistema.

Alguns pontos importantes para se observar:

  • O ns-3 não é uma extensão do ns-2; O ns-3 é um simulador novo. Ambos são escritos em C++, mas o ns-3 é totalmente novo e não suporta as APIs da versão anterior. Algumas funcionalidades do ns-2 já foram portadas para o ns-3. O projeto continuará mantendo o ns-2 enquanto o ns-3 estiver em fase de desenvolvimento e formas de integração e transição estão em estudo.
  • O ns-3 é código aberto e existe um grande esforço para manter um ambiente aberto para pesquisadores que queiram contribuir e compartilhar software com o projeto.

Para os usuários do ns-2

Para aqueles familiarizados com o ns-2 a mudança mais visível é a escolha da linguagem de codificação (scripting). O ns-2 utiliza a linguagem OTcl e os resultados das simulações podem ser visualizados utilizando o Network Animator - nam. Entretanto, não é possível executar uma simulação escrita inteira em C++ no ns-2 (por exemplo, com um main() sem nenhum código OTcl). Assim sendo, no ns-2 alguns componentes são escritos em C++ e outros em OTcl. No ns-3, todo o simulador é escrito em C++ com suporte opcional a Python. Desta forma, os códigos de simulação podem ser escritos somente em C++ ou Python. Os resultados de algumas simulações podem ser visualizados pelo nam, mas novas formas de visualização estão sendo desenvolvidas. O ns-3 gera arquivos de rastreamento de pacotes (packet trace) no formato pcap, assim, é possível utilizar outras ferramentas para a análise de pacotes. Neste tutorial iremos nos concentrar inicialmente nos códigos de simulação escritos em C++ e na interpretação dos pacotes nos arquivos de rastreamento.

Também existem semelhanças entre o ns-2 e o ns-3. Ambos, por exemplo, são orientados a objeto e parte do código do ns-2 já foi portado para o ns-3. As diferenças entre as versões serão destacadas ao longo deste tutorial.

Uma questão que frequentemente aparece é: “Eu devo continuar usando o ns-2 ou devo migrar para o ns-3?”. A resposta é: depende. O ns-3 não tem todos os modelos do ns-2, contudo, possui novas funcionalidades (tais como: trabalha corretamente com nós de rede com múltiplas interfaces de rede (por exemplo, computadores com várias placas de rede), usa endereçamento IP, é mais consistente com arquiteturas e protocolos da Internet, detalha mais o modelo 802.11, etc.). Em todo o caso, os modelos do ns-2 podem ser portados para o ns-3 (um guia está em desenvolvimento). Atualmente existem várias frentes de trabalho para o desenvolvimento do simulador. Os desenvolvedores acreditam (e os primeiros usuários concordam) que o ns-3 está pronto para o uso e é uma ótima alternativa para usuários que querem iniciar novos projetos de simulação.

Contribuindo

O ns-3 é um simulador para pesquisas e de uso educacional, feito por e para pesquisadores. Este conta com contribuições da comunidade para desenvolver novos modelos, corrigir erros ou manter códigos e compartilhar os resultados. Existem políticas de incentivo para que as pessoas contribuam com o projeto, assim como foi feito no ns-2, tais como:

  • Licença de código aberto compatível com GNU GPLv2;
  • Wiki;

Se você está lendo este documento, provavelmente contribuir diretamente não seja o foco neste momento, mas esteja ciente que contribuir está no espírito do projeto, mesmo que seja deixando uma mensagem descrevendo suas experiências com o ns-3 (por exemplo, você pode relatar qual seção deste tutorial não esta clara), reportar a desatualização da documentação, etc. Toda ajuda será muita bem vinda.

Organização do Tutorial

Este tutorial assume que os novos usuários podem iniciar da seguinte forma:

  • Baixar e compilar uma cópia do ns-3;
  • Executar alguns programas exemplo;
  • Analisar as saídas de simulação e ajustá-las.

Assim, tentamos organizar este tutorial nesta sequência.

Tabela de Conteúdo

Tópico anterior

ns-3 Tutorial

Próximo tópico

Recursos

Esta Página