ferramenta de pesquisa de protocolo de rede

Este artigo distribuído sob o acordo Creative Commons.

Research protocolo de rede, necessidades de emulação de protocolo de rede para ser feito, e, em seguida, entrar em contacto com NS3 e wireshark.
 Bem, Mais perto de casa, o seguinte começou a introduzir o conhecimento relevante de NS3.
1 ns3 Introdução
1.1 ns3 descrição definição
ns3 é um simulador discreto orientado a eventos de rede, usado principalmente em pesquisa e educação, projetado para atender às necessidades do acadêmico e ensino.

projeto ns3 é desenvolver um projeto de código totalmente aberto, lançado em 2006. A primeira versão foi lançada em junho de 2008, a versão mais recente dos ns-3.15.

NS3 plataformas adequadas, incluindo: Linux, Mac OS, Cygwin (imitação ambiente Linux no Windows).
1.2ns3 diferente e NS2 de
NS3 não estender ns2, mas um novo simulador.
ns2 usando código escrito em C ++ e OTcl, no processo de aprendizagem para aprender uma nova língua OTcl. A NS3 utilizada em todos escritos em ligações de linguagem C ++ e Python com um opcional, o usuário pode selecionar C ++ ou código de linguagem de script Python para usar mais flexível.
não ns3 não suporta API NS-2 do. Embora NS2 Alguns módulos foram portados para ns3 mas ns3 ns2 longe de ser perfeito. No processo de desenvolvimento em ns3, equipe do projeto ns3 continuará a manter ns2, mas também estudar os mecanismos de transição e integração. não ns3 não conter todos os recursos atualmente NS-2, mas tem algumas características novas, tais como: o processamento multi-cartão certo, usando esquema de endereçamento IP, mais detalhado módulo 802.11 e assim por diante.
1,3 NS-3 para obter mais recursos da maneira
que um usuário pode obter informações mais detalhadas sobre NS3 a partir dos seguintes sites:
1. local Sede localizada http://www.nsnam.org, fornecer o sistema de informações básicas NS3.
2.http: //www.nsnam.org/ns-3-dev/documentation/ A página inclui as seguintes informações:
o Tutorial: conhecimento preliminar Introdução de NS-3, bem como baixar e instalar, simples de usar.
Manual: para explicar a NS3 conhecimento mais profundo e estilo de codificação de NS-3.
Modelo de biblioteca: Apresenta NS3 módulos relacionados. Os usuários podem selecionar módulos de aprender suas reais necessidades, você não precisa de olhar para tudo.
3.http: //www.nsnam.org/doxygen/index.html desta página oferecer uma arquitetura mais detalhada informação do sistema NS3. Ao escrever seus próprios módulos, um membro da classe de funções de pesquisa, propriedades ou qualquer coisa semelhante, você deve sempre usar este link.
4. Wikipedia página http://www.nsnam.org/wiki pode complementar NS-3 sítios primários.
5.ns3 código-fonte pode ser encontrado em http://code.nsnam.org. Os leitores também podem encontrar o NS-3 árvore de desenvolvimento repositório de origem chamado ns3-dev atual. E até lá lançamentos NS3 e a mais recente versão de teste do código.
2 download e instalar ns3
pacote 2.1 de download ns3
Nós ambiente Ubuntu Linux como um exemplo, baixar e instalar ns3 e executando um script simples, para verificar se a instalação foi bem sucedida.
Novo diretório para armazenar baixado pacote NS3. nome do diretório pode ser auto-criado. Como o novo diretório chamado ns3_install:

mkdir ns3_install

entrar ns3_install diretório, baixar a última versão do código fonte NS3 para o diretório, e descompactá-lo. Para baixar ns-3.15 versão do código-fonte como um exemplo:

cd ns3_install

https://www.nsnam.org/release/ns-allinone-3.30.tar.bz2 wget

o XJF NS-allinone tar-3.30.tar.bz2

diretório nomeado após descompressão ns-allinone-3.30 /.
2.2 compilador pacote NS3
2.2.1 compilado usando build.py

primeira compilação pacote NS3, recomendado ./build.py --enable-exemplos comando --enable-tests para baixar o código-fonte para compilar geral.

Primeiro, mude para o diretório acima do de compressão:

cd ns-allinone-3.30

, digite o seguinte comando para compilar o script começou a compilar, compilar o primeiro tempo com um mais longo, por favor, seja paciente:

./build.py --enable-exemplos - permitir-testes

ao compilar script de começar a compilar o download ns3, você verá uma série de informações de entrada compilador comum. Finalmente, ver mensagem de sucesso compilação:

'Construir' Terminado com sucesso (40m30.586s)

compilação estiver concluída, gerar um diretório chamado ns-3.30 / na atual diretório (NS-AllinOne-3,30), altere o diretório sob

CD-NS 3.30
2.2.2 compilado utilizando waf
além dos métodos descritos acima, que pode compilar o código-fonte com NS3 waf. Antes de compilar com waf, primeiro a entender WAF.
Depois de baixar o leitor NS3 código-fonte, a necessidade de código fonte a ser compilado para produzir um programa executável. Como o código-fonte de gestão de uma variedade de maneiras, há uma variedade de ferramentas para compilar o código fonte. A ferramenta mais comumente utilizada é a marca. deficiências fazer é que ele pode ser para compilar um grande e altamente configuráveis sistemas de uma forma o mais difícil. Portanto, há muitas ferramentas alternativas têm sido desenvolvidas. Recentemente, em larga escala altamente configuráveis ferramentas de compilação do sistema em sua maioria optar por usar a linguagem Python para se desenvolver.
sistema de compilação NS3 usa Waf. É uma nova geração de sistemas de gestão desenvolvedores a construir Python. Os leitores não tem que dominar o python, você pode compilar projeto NS3 existente. Se os leitores querem estender sistema NS3 existente, na maioria dos casos, você precisa saber um subconjunto do conhecimento muito poucos e muito intuitivo de Python.
Mais detalhes sobre Waf, você pode começar por http://code.google.com/p/waf/.
Em seguida, digite o assunto desta seção, para configurar e começar a usar waf NS3 compilar o pacote.
Ao usar waf do código-fonte NS3 é compilado, ele pode ser dividido em otimização de compilador para compilar e depurar ambos os casos. A depuração padrão compilado.
A fim de informar waf compilador otimizado, você precisa executar o seguinte comando:

./waf Limpo

./waf -d Optimized --enable-exemplos os do configure --enable-tests

Para evitar erro do compilador duplicado pode trazer, o primeiro comando primeira conteúdo vazios previamente compilado (conteúdo compilado localizado no ns-3.30 / compilação / directório). Este comando não é necessário, mas isso é um bom hábito. Depois de digitar o segundo comando, o sistema começa a verificar compilados várias dependências e compilá-lo. Você pode ver uma saída semelhante a:

Verificação de Programa G ++: o ok / usr / bin / G ++

Verificação de CPP Programa: o ok / usr / bin / cpp

Ar Programa de Verificação: o ok / usr / bin / Ar

Verificação de ranlib Programa: o ok / usr / bin / ranlib

verificação de G ++: o ok

..................

'do configure' Terminado com sucesso (2.870s)

última declaração mostra que o bom compilado.

Em tempo de compilação notar que algumas características do ns-3 não está ativado por padrão, apoiar as necessidades subjacentes do sistema para ser capaz de funcionar sem problemas. Por exemplo: Para executar xmlto, o sistema deve ser instalado libxml-2,0 bibliotecas, a biblioteca se não for encontrado, os respectivos ns-3 característicos, que não irá ser activado, o qual será apresentado em uma mensagem. Outro ponto a nota: para alguns programas, você precisará usar o comando sudo para definir o programa, e estes programas podem ser desativado por padrão, então esta propriedade será exibido inativo.

Da mesma forma, também podemos depuração compilado (para a conveniência de explicação posterior, recomenda-se para selecionar compilação tempo modo de depuração de compilação):

./waf Limpo

./waf -d debug --enable-examples-Testa a --enable configure

além de parâmetros - o, alterar o diretório de objeto compilado, o diretório padrão é compilado build /. Até o seguinte comando para alterar o diretório de destino é compilado Construir / Debug /

./waf -o -d compilação de depuração / debug --enable-exemplos os do configure --enable-testes

, há muitas outras opções disponíveis na configuração e compilação de waf . Mais opções podem ser vistos com o seguinte comando:

./waf --help
2.3 para testar a correção de compilação

Após a compilação estiver concluída, você pode testar a adequação do pacote ns-3, executando script "./test.py núcleo -c",

./test.py -c Núcleo

estes testes podem ser realizados em waf paralelo, você pode ver o último resultados são os seguintes:

136 de 139 testes passado (136 passou, ignorou os 3, 0 falhou, Crashed 0, 0 erros Valgrind.)

durante o teste, a seguinte informação pode ser visto semelhante:

Waf: Entering directory '/ Home / ... ... / NS-allinone-3.15 / NS-3.15 / Construir '

Waf: Deixando Diretório' /home/....../ns-allinone-3.15/ns-3.15/build '

' Construir 'Terminado com sucesso (1.799s)

o PASS: NS3 do TestSuite interferência - WiFi

a PASS: o TestSuite IPv4-address-Helper

o PASS: o TestSuite dispositivos de WiFi

do PASS: o TestSuite-propagação-Loss Modelo

...

136 139 testes de passado (136 passou, ignorou os 3, 0 falhou, Crashed 0, 0 erros Valgrind. )

os usuários normalmente pode executar este comando para verificar os pacotes corretos NS3 compilados.
2.4 execução de um script
Normalmente, usamos waf executar o script. Quando compilado corretamente pacote NS3, se você quiser executar um programa, você pode simplesmente adicionar --run opção depois WAF. Vamos executar um programa comum Olá Simulator no ns-3 ambiente, o programa é equivalente ao tempo do programa Olá Mundo para aprender uma língua:

./waf --run o Olá-Simulator

Waf irá primeiro verificar a compilação programa corretamente, mas também você pode precisar de re-compilação. implementação Waf deste programa, e emite a seguinte informação:

o Olá Simulator

Se você não ver a saída "Olá Simulator", descrevem o compilador você está realizado no modo de compilador otimização, o modo de otimização do compilador, desligado pela saída do console padrão. Através do seguinte comando:

./waf Limpo

./waf -d Debug --enable-exemplos do configure --enable-testes

recompilar compilado no modo de depuração.

Até agora, nós compilado com sucesso pacote de download NS3, e para verificar a regularidade do pacote e scripts de teste Olá Simulador executados. Se você deseja executar como gdb ou valgrind no âmbito do programa em outras ferramentas, veja a entrada Wiki.
Início Rápido 3 NS3
alguns conceitos-chave de um NS3 3.1
nó 3.1.1 Nó
na terminologia de rede, qualquer computador conectado aos dispositivos de computação da rede são chamados de hospedeiros, também conhecido como um terminal. NS3 é um simulador de rede, ao invés de um simulador dedicado à Internet, e nós evitar o termo "host" porque o termo é muito fácil pensar da Internet e seus protocolos. Portanto, nós escolhemos a partir de uma teoria dos grafos, o termo é também amplamente utilizado em outros simulador de rede: nó.
NS3 dispositivo de computação básica é captada como um nó. Nó descrita pela classe nó escrita em C ++. classe Node fornece um método para gerenciar um dispositivo de computação.
Nó pode ser concebida como uma variedade de funções podem ser adicionados ao computador. Para que um computador para trabalhar de forma eficaz, podemos adicionar aplicações para ele, pilhas de protocolo e outros cartões de periféricos e motoristas. NS3 utilizando este mesmo modelo.
3.1.2 canal
no mundo real, as pessoas podem ligar o seu computador à rede. Nós geralmente dados de mídia fluem através da rede é chamada de canal. Quando você colocar o cabo à tomada Ethernet na parede, você está conectado ao computador através de um canal de Ethernet. Em NS3 pode ser ligado ao objecto de nó, que representa o canal de troca de dados. Aqui, o conceito abstrato de sub-rede de comunicação básico é chamado de canal, um tipo de Canal escrito em C ++ será descrita.
classe de gestão de canais fornece vários métodos e nó de sub-rede objeto de comunicação está ligado ao canal. classe canal também pode ser um método orientado a objeto de personalizado pelo desenvolvedor. Um exemplo de canal para simular um simples cabo (fio), também pode simular uma enorme switch Ethernet complexo, uma rede sem fio e até mesmo espaço tridimensional preenchido com um obstáculo.
Neste capítulo usaremos o exemplo de vários modelo de canal, que compreende: CsmaChannel, PointToPointChannel e WifiChannel. Por exemplo, o canal CsmaChannel para um canal simulado pode ser implementado no sentido portador de acesso múltiplo, o canal de Ethernet tendo funções semelhantes.
3.1.3 dispositivo de rede
se você quer um computador conectado à rede, o cartão deve ser instalado no computador. Se um software placa de rede motoristas para controlar o hardware não é a falta de trabalho. Nos sistemas Unix / Linux, hardware periférico é classificado como "Device". Dispositivos controlados pelo condutor, eo cartão é controlado pelo driver NIC. Nos sistemas Unix / Linux, o cartão é chamado de nomes como eth0.
Em NS3, o dispositivo de rede corresponde ao conceito abstrato de dispositivos de hardware e drivers de software combinadas. ambiente de simulação NS3, os corresponde aos dispositivos de rede instalados no nó, tais nó e o outro canal de comunicação nó. Como um computador real, como um nó pode ser conectado a uma pluralidade de canais simultaneamente por uma pluralidade de dispositivos de rede.
dispositivo de rede NetDevice é descrito usando a classe em C ++. classe NetDevice fornece um método de gestão de outros nós e canal de ligação do objecto, e permite que os programadores para personalizar a abordagem orientada para o objecto. Usamos várias instâncias de um dispositivo de rede particular no curso atual, eles são CsmaNetDevice, PointToPointNetDevice e WifiNetDevice. Como placa Ethernet é projetado para operar no mesmo Ethernet, CsmaNetDevice é projetado para trabalhar no canal CSMA, enquanto PointToPointNetDevice trabalho no canal PointToPoint, trabalho WifiNetNevice no canal de wifi.
3.1.4 aplicação
de software de computador geralmente podem ser divididos em duas categorias: software de sistema e software de aplicação. A configuração do software do sistema modelo de cálculo e gestão de recursos computacionais, como memória, ciclos de processador, disco rígido, rede e similares. software de sistema normalmente não usar esses recursos para tarefas de usuário completo. Os usuários muitas vezes precisa executar o aplicativo para concluir determinadas tarefas, enquanto as necessidades de aplicação para utilizar os recursos que são controlados pelo software do sistema.

Em geral, os limites do software de sistema e software de aplicação para o nível de privilégio de alterações de desempenho, e essa mudança é através do sistema operacional da função de auto-trapping (armadilhas do sistema operacional) para alcançar. Em NS3 e nenhum conceito real do sistema operacional, e nenhum conceito de níveis de privilégio ou chamadas do sistema. No entanto, temos o conceito de aplicações. Como as aplicações do "mundo real" em execução no computador para executar várias tarefas, aplicação de ambiente de simulação NS3 execução em um nó para conduzir a simulação.

Em NS3, é preciso ser usuário programa simulado é captada para a aplicação. Aplicação para descrever uma classe. Essa classe fornece o modo de gestão a simulação da aplicação em nível de usuário. Os desenvolvedores devem personalizar e criar novas aplicações usando abordagem orientada a objetos. Neste tutorial, vamos usar duas instâncias da classe Application: UdpEchoClientApplication e UdpEchoServerApplication. Estas aplicações incluem um aplicativo cliente e um aplicativo de servidor para enviar e responder aos pacotes na rede simulada.

Acho que você gosta

Origin www.cnblogs.com/evilqliang/p/12488889.html
Recomendado
Clasificación