Presentation is loading. Please wait.

Presentation is loading. Please wait.

Simulation and Emulation with NCTUns

Similar presentations


Presentation on theme: "Simulation and Emulation with NCTUns"— Presentation transcript:

1 Simulation and Emulation with NCTUns
Esta apresentação abordará o simulador e emulador NCTUns, uma ferramenta desenvolvida no Network and System Laboratory da National Chiao Tung University em Taiwan. Professor Nelson Fonseca

2 NCTUns - Professor Nelson Fonseca
Outline Introduction Simulation X Emulation Details Features Installation Utilization Examples Conclusions References Na introdução será apresentada uma breve descrição do NCTUns e uma comparação com simuladores tradicionais Em seguida serão comparadas as duas técnicas de análise de desempenho suportadas pelo NCTUns. A simulação e a emulação. Detalhes a respeito do funcionamento do NCTUns, contendo exemplos de sua utilização serão explicados. A apresentação será finalizada com destaques para os pontos positivos e negativos da ferramenta. O último slide da apresentação lista algumas URLs que contém mais informações sobre o NCTUns. NCTUns - Professor Nelson Fonseca

3 NCTUns - Professor Nelson Fonseca
Introduction Antes de vermos como o NCTUns funciona é importante apresentar algumas caraterísticas dele. NCTUns - Professor Nelson Fonseca

4 NCTUns - Professor Nelson Fonseca
Main features Simulates and emulates network protocols Open source Modified Linux kernel GUI and shell commands Client-server model to allow communication between simulation/emulation engine and interface Since 2002 (version 1.0)‏ Version 5.0 released in 2008 O NCTUns é uma ferramenta para análise de desempenho de redes. Ele simula e emula protocolos das diversas camadas da arquitetura Internet. O seu código fonte é aberto e portanto é possível que novos protocolos sejam adicionados e protocolos já existentes sejam modificados. O núcleo do NCTUns consiste em um kernel do sistema operacional Linux modificado. Este kernel permite que o NCTUns obtenha resultados mais próximos do real pois toda a comunicação de dados realizada dentro da ferramenta é processada pelo kernel como se fosse uma comunicação de dados real entre duas máquinas reais. O NCTUns permite que os experimentos sejam realizados tanto via uma interface gráfica (ideal para o ensino) quanto via uma interface em linha de comando (ideal quando muitos experimentos devem ser realizados sobre um cenário base que terá apenas alguns parâmetros modificados de experimento para experimento)‏ O NCTUns é implementado sobre uma arquitetura cliente-servidor. A interface do usuário acessa a engine de simulação e emulação remotamente. É possível que a interface esteja em um país e que os experimentos sejam realizados em outro. A primeira versão estável do NCTUns foi lançada em Atualmente a ferramenta encontra-se na versão 5.0, que foi lançada em 2008. NCTUns - Professor Nelson Fonseca

5 NCTUns - Professor Nelson Fonseca
Comparing with traditional simulators Uses native Linux TCP/IP stack Interacts with real devices in virtual networks Allows experiments with real applications There is no need to change the real applications Allows remote simulations and concurrent simulations Easy to create simulation servers Can take advantage of multiple cores/processors Comparando o NCTUns com simuladores convencionais pode-se destacar as seguintes diferenças: O NCTUns usa a pilha TCP/IP nativa do sistema operacional Linux graças ao kernel modificado que é adicionado na sua instalação. Dessa forma, os resultados são mais próximos do real já que informações de aplicações internas do NCTUns vão passar pelos mesmos passos que as informações de aplicações reais, externas ao NCTUns. O NCTUns é mais do que um simulador. Ele permite que dispositivos reais interajam em redes virtuais funcionando como um emulador de redes. Os experimentos podem ser realizados com aplicações reais sem modificação destas aplicações. Por exemplo, um cliente bittorrent utilizado em um computador convencional pode ser executado em um experimento criado no NCTUns. Todo o tráfego gerado e recebido pelo bittorrent é processado no NCTUns e passa por todos os dispositivos virtuais pertencentes ao cenário criado. O NCTUns também permite a criação de servidores de simulação/emulação. Graças à arquitetura cliente-servidor, o usuário pode enviar seu experimento para um local central que fica responsável por escalonar aquele experimento em algum dos servidores disponíveis. Na versão mais atual o NCTUns suporta múltiplos cores (núcleos)/processadores, características comuns nos computadores mais atuais que aceleram bastante a execução dos experimentos. NCTUns - Professor Nelson Fonseca

6 NCTUns - Professor Nelson Fonseca
Simulation X Emulation Como explicado no último slide, o NCTUns é mais do que um simulador. Ele permite que experimentos envolvendo emulação sejam realizados. Mas qual a diferença entre esses dois métodos utilizados para avaliar o desempenho em redes de computadores? NCTUns - Professor Nelson Fonseca

7 NCTUns - Professor Nelson Fonseca
Simulation Ideal to create several different scenarios Ideal when there isn't available testbeds Results not always the same as the reality because the applications are not the same Example: applications in the ns-2 simulator need to be rewritten to run inside the simulator (problem recently solved with ns-3)‏ A simulação recria o processo de comunicação de dados considerando as características mais importantes deste processo. Por exemplo, somente as características mais importantes dos protocolos são consideradas. Como consequência, os experimentos tendem a ser realizados com menos esforço do que em um sistema real. Enquanto sistemas reais dependem de um conjunto de scripts e/ou daemons que devem executar num dado sincronismo para que o experimento seja realizado, os simuladores podem reproduzir toda essa sincronia em uma única máquina. É possível ainda realizar experimentos utilizando recursos com capacidade bem superior aos recursos reais de uma organização. Simulação é ideal quando não se tem acesso a sistemas reais ou testbeds e costuma ser o primeiro passo utilizado para análise de desempenho de novas propostas de protocolos antes deles serem implementados em ambientes reais. Um problema da simulação é que os resultados alcançados nem sempre são iguais àqueles alcançados na prática já que os protocolos implementados não são iguais aos reais. Por exemplo, tomando o simulador ns-2 como exemplo, para uma aplicação real ser simulada, ela precisa ser re-escrita de acordo com os padrões dos códigos do ns. Ou seja, a aplicação executada no ns não é a mesma aplicação que é executada em um sistema real (este problema foi solucionado na versão mais recente do ns, o ns-3)‏ NCTUns - Professor Nelson Fonseca

8 NCTUns - Professor Nelson Fonseca
Emulation Uses real applications and network devices More realistic scenarios and more trustable results Can combine virtual and real devices/protocols Example: how will be the behaviour of a real application over a new transport protocol? Less flexible than simulations the characteristics of the emulated links are limited to the characteristics of the real links Na emulação, tenta-se reproduzir o funcionamento de um sistema real nos mínimos detalhes, e não apenas considerando as características principais, como na simulação. Dessa forma, é possível, por exemplo, incluir em um experimento aplicações e dispositivos reais, já que eles “enxergarão” a rede do cenário criado no experimento como se fosse uma rede real. Com a implementação dos protocolos nos mínimos detalhes os resultados alcançados com os experimentos tendem a ser mais próximos daqueles alcançados em sistemas reais. Com a emulação é possível analisar como uma aplicação real vai se comportar sobre um novo protocolo de transporte mas em um ambiente controlado e com características definidas no cenário dos experimentos. Um problema da emulação é que ela é menos flexível do que a simulação. Por exemplo, experimentos de rede realizados em um emulador terão as características de largura de banda disponível limitadas sobre a largura de banda disponível real das máquinas utilizadas nos experimentos. NCTUns - Professor Nelson Fonseca

9 NCTUns - Professor Nelson Fonseca
Simulator and emulator It is possible to use as a conventional simulator It is possible to evaluate new real applications over different network configurations It is possible to evaluate new protocols with different real applications It is possible to capture the generated traffic and use it as input to packet analysers like wireshark O NCTUns possibilita uma gama de experimentos Ele pode ser utilizado como um simulador convencional Ele pode ser utilizado como um emulador para avaliar o comportamento de uma aplicação real sobre redes que não estejam operacionais ainda em uma dada organização Ele pode ser utilizado para avaliar a execução de aplicações já existentes sobre novos protocolos E ainda é possível capturar o tráfego gerado e analisá-lo em ferramentas como o sniffer e analisador de pacotes wireshark, já que todos os cabeçalhos e os dados gerados pelos protocolos no NCTUns são compatíveis com os cabeçalhos e os dados gerados em comunicações reais. Tudo isso graças ao fato do NCTUns utilizar a pilha nativa do sistema operacional Linux. NCTUns - Professor Nelson Fonseca

10 NCTUns - Professor Nelson Fonseca
Details Nesta seção da apresentação serão comentadas algumas características principais do NCTUns que auxiliarão no entendimento do seu funcionamento. NCTUns - Professor Nelson Fonseca

11 NCTUns - Professor Nelson Fonseca
Features (1)‏ Support to several protocols is already included: IEEE 802.3, IEEE , IEEE , Learning bridge protocol, Spanning tree protocol, ... IP, Mobile IP, RIP, OSPF, OBS, GPRS, ... TCP, UDP, SDP, ... HTTP, FTP, telnet, ... (+ any real application)‏ Some specific applications included: stcp/rtcp - Greedy TCP traffic ttcp - Greedy TCP/UDP trafic stg/rtg - Greedy TCP/UDP traffic, trace driven, self- similar traffic, on-off, constant-bit-rate, and various packet streams. Vários protocolos já estão incluídos no NCTUns. Protocolos da camada de enlace como 802.3, , protocolos da camada de rede como IP, RIP, OSPF, protocolos da camada de transporte como TCP e UDP e protocolos da camada de aplicação como HTTP e telnet. Além disso, como explicado anteriormente, qualquer nova aplicação pode ser executada sobre o NCTUns. O NCTUns já possui algumas aplicações básicas disponíveis para a geração de tráfego. Por exemplo, o stcp e o rtcp podem ser utilizados em experimentos que precisam de tráfego TCP entre dois hosts. Já o ttcp e os pares stg/rtg podem ser utilizados tanto para tráfego TCP quanto para tráfego UDP. Os dois últimos permitem ainda uma gama de configurações do tráfego que será gerado. Podem ser lidos traces de tráfego e podem ser gerados tráfegos baseados em distribuições específicas. NCTUns - Professor Nelson Fonseca

12 NCTUns - Professor Nelson Fonseca
Features (2)‏ Support to several links and devices is already included PPP link, ethernet link, ... Host, hub, switch, router, ... QoS Diffserv boundary/interior routers Optical burst/circuit switch External host, external router (emulation)‏ Com relação a enlaces e dispositivos, o NCTUns já implementa enlaces PPP, ethernet, hubs, hosts, switches e roteadores. Roteadores com suporte a DiffServ também já estão implementados, bem como switches com suporte às tecnologias de comutação por circuitos ópticos e de comutação por rajadas ópticas. Além disso é possível incluir hosts e roteadores reais nos experimentos através de emulação.. NCTUns - Professor Nelson Fonseca

13 NCTUns - Professor Nelson Fonseca
Features (3)‏ Creates virtual interfaces to simulate the devices of the scenario Inspiration from loopback interface Utilizes IP address During the simulation it is possible to “see” the interfaces with the commands /sbin/ifconfig or /sbin/route Interfaces named tun0, tun1, tun2, ... Para poder utilizar a pilha TCP/IP nativa do Linux, o NCTUns cria interfaces virtuais para simular os dispositivos dos cenários criados. Dessa forma, o tráfego para cada dispositivo é redirecionado para as interfaces corretas e é tratado pelo kernel como se fosse o tráfego de uma interface real. Este mecanismo foi inspirado no funcionamento da interface loopback. Quando um usuário conecta no host , a comunicação passa pela pilha TCP/IP da mesma forma que uma conexão a um host externo. O kernel “sabe” que esta interface é de loopback e após processar todos os protocolos, redireciona para a própria máquina. Os endereços IP das interfaces virtuais criadas pelo NCTUns estão na faixa / As interfaces criadas são denominadas tun0, tun1, tun2, etc... e elas podem ser “vistas” durante os experimentos através de comandos que manipulam interfaces de rede reais no linux como o ifconfig e o route. NCTUns - Professor Nelson Fonseca

14 NCTUns - Professor Nelson Fonseca
Features (4)‏ How loopback works? (Host 1 and Host 2 are the same host)‏ Estas figuras ilustram o funcionamento do loopback. Do ponto de vista de um usuário externo que esteja usando os programas stcp e rtcp (relembrando, estes dois programas são instalados com o NCTUns e geram tráfego TCP entre dois hosts) pela interface de loopback (endereço IP = ), os processos comunicam-se como se estivessem em duas máquinas remotas. Mas para o kernel, tudo se passa dentro do próprio host. Os dados da camada de aplicação gerados no nível de usuário passam para o nível do kernel e são copiados para a mesma interface. NCTUns - Professor Nelson Fonseca

15 NCTUns - Professor Nelson Fonseca
Features (5)‏ Kernel re-entering methodology No caso das interfaces virtuais do NCTUns, o funcionamento é semelhante ao loopback. É utilizada a técnica denominada Kernel re-entering methodology. O tráfego que sai de uma dada interface virtual sai do nível de usuário, entra no nível do kernel e é copiada para a interface virtual referente ao dispositivo que representa o próximo hop no cenário criado. A diferença para o loopback é que a engine de simulação do NCTUns cria enlaces virtuais entre as interfaces virtuais para reproduzir características como atraso e largura de banda disponível nos enlaces dos cenários. Só depois de passar pelos enlaces virtuais é que os dados chegam na interface de destino, tudo isso dentro do kernel do Linux modificado pelo NCTUns. NCTUns - Professor Nelson Fonseca

16 NCTUns - Professor Nelson Fonseca
Installation (1)‏ Download from: Software requirements: Operating system Fedora Linux 10.0 gcc and g++ compiler X window system Tcl rsh server and rlogin SELINUX disabled Firewall disabled root privileges Para utilizar o NCTUns deve-se copiar o seu código-fonte desta URL. Antes de compilar a ferramenta é importante observar todos os requisitos. O pacote disponibilizado na URL é compatível com o Fedora Linux Ele pode ser instalado em outras distribuições de Linux mas são necessárias mudanças nos scripts de instalação. Ferramentas de segurança como o SELINUX e o firewall iptables devem ser desabilitados e é necessário privilégio de root para instalar o NCTUns e para executar os processos responsáveis por gerenciar os experimentos. A interface do usuário pode ser executada sem privilégios de root. NCTUns - Professor Nelson Fonseca

17 NCTUns - Professor Nelson Fonseca
Installation (2)‏ Hardware requirements: RAM memory 256 MB Pentium 1.6GHz processor At least 200MB free disk space Multi-core processors are supported Os requisitos de hardware para o NCTUns são modestos. É importante lembrar que processadores multi-core são suportados na versão 5.0. Também é importante observar que, no caso de emulação, os possíveis cenários emulados dependem diretamente das características reais da máquina onde o NCTUns está instalado. Por exemplo, se um cenário de emulação é criado interligando duas máquinas reais por um enlace de 1Gbps, esta largura de banda jamais será alcançada caso as duas máquinas reais estejam ligadas na máquina onde o NCTUns está instalado por um enlace de 100Mbps. NCTUns - Professor Nelson Fonseca

18 NCTUns - Professor Nelson Fonseca
Installation (3)‏ Installation procedure Uncompress the downloaded .tar.gz file Run ./install.sh Reboot Select one of the two new kernels: NCTUns NCTUns (ELP) – If you want to use more than one core/processor A instalação do NCTUns consiste na execução de um script que cuida da compilação e da cópia de todos os arquivos para os diretórios corretos do sistema. Após a execução do script, a máquina deve ser reiniciada. Como o NCTUns instala um novo kernel modificado no sistema, este kernel deve ser selecionado no gerenciador de boot da máquina sempre que ela for ligada. O NCTUns adiciona duas novas entradas no gerenciador de boot: NCTUns e NCTUns-ELP. Este último deve ser escolhido caso o usuário queira tirar proveito de processadores multi-core. O primeiro deve ser escolhido caso o usuário possua uma máquina com um único core/processador. NCTUns - Professor Nelson Fonseca

19 NCTUns - Professor Nelson Fonseca
Utilization (1)‏ Basic components (binaries)‏ nctunsclient – GUI interface between user and system nctuns – shell interface between user and system nctunsse – NCTUns core dispatcher – Manage the simulation requests. Can control multiple coordinators running in different machines coordinator – Receives the simulation from the dispatcher and forward it to the nctunsse O NCTUns possui 5 programas binários básicos. O nctunsclient é a interface gráfica que permite a criação do cenário. Este programa também envia o cenário para ser executado no simulador/emulador. Ele não precisa ser executado na mesma máquina onde o experimento será realizado graças à arquitetura cliente-servidor do NCTUns. O nctuns pode ser utilizado como opção ao nctunsclient nos casos em que o cenário já foi construído e o usuário deseja apenas submeter o experimento para o engine do NCTUns. O nctuns também pode ser executado caso o usuário tenha feito mudanças simples diretamente nos arquivos de simulação, sem necessidade de passar pelo nctunsclient. O nctunssse é a engine do NCTUns. É este processo que tem acesso ao kernel para que todas as características dos dispositivos virtuais sejam mantidas próximas do real. O dispatcher recebe os experimentos do nctunsclient ou do nctuns. Após receber os experimentos, o dispatcher escolhe qual servidor executará. O coordinator é o processo responsável por receber o experimento do dispatcher e repassar para o nctunsse. Cada máquina servidora que faz parte do “cluster” do NCTUns deve possuir um processo coordinator em execução. NCTUns - Professor Nelson Fonseca

20 NCTUns - Professor Nelson Fonseca
Utilization (2)‏ Esta figura resume como os componentes básicos do NCTUns comunicam-se em um ambiente cliente-servidor. Usuários em diferentes cidades rodam o nctunsclient (ou o nctuns caso não seja necessário executar o programa com interface gráfica) Os experimentos são enviados para um local central que está executando um processo do dispatcher. Em seguida o dispatcher, que conhece todos os servidores do “cluster”, seleciona qual servidor vai executar o experimento e repassa o experimento para ele. O experimento é recebido pelo coordinator do servidor escolhido e o nctunsse executa o experimento. Ao término, os arquivos gerados como saída são enviados de volta para o usuário que submeteu o experimento para o NCTUns. Cada servidor de simulação deve possuir um kernel do NCTUns modificado, o nctunsse, os módulos dos protocolos suportados e um processo do coordinator em execução. Each simulation server = kernel modifications + nctunsse + protocol modules + coordinator NCTUns - Professor Nelson Fonseca

21 NCTUns - Professor Nelson Fonseca
Utilization (3)‏ Folders organization tools = executable programs of various applications and tools pre-installed by NCTUns 5.0 bin = executable programs of the GUI program, dispatcher, coordinator, and the simulation engine etc = configuration files needed by the dispatcher and coordinator programs BMP = icon bmp files uses by the GUI program lib = libraries used by the simulation engine Após a instalação do NCTUns, alguns diretórios são criados. O diretório tools possui todos os programas que são instalados pelo NCTUns para gerarem tráfego nos experimentos. Conforme explicado anteriormente, qualquer programa pode ser usado dentro dos experimentos. A diferença dos programas localizados no diretório 'tools' é que na hora de definí-los na interface gráfica não é necessário colocar os seus caminhos completos. Basta o nome do executável. O diretório bin possui todos os programas básicos para o funcionamento do NCTUns O diretório etc mantém a configuração dos programas dispatcher e coordinator. É neste diretório que é informado o endereço IP (ou o hostname) do dispatcher ao qual o coordinator deve se conectar. O diretório BMP armazena as figuras utilizadas pela interface gráfica e o diretório lib mantém as bibliotecas necessárias pelo nctunsse. NCTUns - Professor Nelson Fonseca

22 NCTUns - Professor Nelson Fonseca
Utilization (4)‏ Execution order dispatcher Waits client connection via TCP port 9800 Waits coordinator connection via TCP port 9810 coordinator Connects to dispatcher nctunsclient or nctuns Connects to dispatcher to send the scenario and waits the end of the simulation. The nctunsse is started by the coordinator Sempre que o NCTUns for colocado em operação, estes passos devem ser seguidos Em primeiro lugar o dispatcher é executado. Ele mantém-se aguardando conexões TCP dos clientes na porta 9800 e conexões TCP do coordinator na porta 9810. Em seguida todos os processos do coordinator devem ser executados nas máquinas que fazem parte do cluster do NCTUns. Cada coordinator vai conectar ao dispatcher que já está em execução. O coordinator precisa ser configurado para saber o endereço do dispatcher ao qual conectar. Finalmente o usuário pode executar o nctunsclient ou o nctuns para criar o cenário e enviá-lo para o dispatcher, que então envia para algum coordinator que por sua vez invoca o ntcunsse. NCTUns - Professor Nelson Fonseca

23 NCTUns - Professor Nelson Fonseca
Utilization (5)‏ How to use the GUI? Como criar o cenário a ser simulado/emulado no NCTUns? Deve-se utilizar o programa nctunsclient para isso. Este programa possui 4 modos de operação. Draw Topology -> é onde o cenário é construído Edit Topology -> é onde as características dos enlaces e dos dispositivos são definidos. Também é neste modo que os programas que serão executados em cada dispositivo são definidos e onde os logs que devem ser gerados são especificados. Pode-se gerar logs de utilização dos enlaces em bits por segundo ou em pacote por segundo. Também é possível gerar logs de colisão. Run Simulation -> gerencia o envio do experimento para o dispatcher Playback -> permite a visualização de animações que reproduzem a comunicação entre os dispositivos do cenário. Este método também permite que os logs especificados na fase de “Edit Topology” sejam visualizados em gráficos. (Obs.: mas os gráficos também podem ser gerados por programas externos como o gnuplot). NCTUns - Professor Nelson Fonseca

24 NCTUns - Professor Nelson Fonseca
Utilization (6)‏ Draw topology A principal janela exibida para o usuário que executa a interface gráfica do NCTUns é esta. Ele deve clicar nos dispositivos localizados na parte superior da janela e escolher onde na área branca eles serão posicionados para assim definir a topologia do cenário criado. NCTUns - Professor Nelson Fonseca

25 NCTUns - Professor Nelson Fonseca
Utilization (7)‏ Essa figura dá um zoom nas várias barras localizadas na parte superior da janela do nctunsclient. Existem botões para remover dispositivos e para adicionar cada um dos dispositivos suportados pelo NCTUns. Os botões com as letras DERP definem em que modo de operação o nctunsclient encontra- se. Neste caso, o “D” significa que o modo atual é o modo de “Draw Topology”. NCTUns - Professor Nelson Fonseca

26 NCTUns - Professor Nelson Fonseca
Utilization (8)‏ Edit property Uma vez desenhada a topologia, deve-se selecionar o modo de edição. Neste modo os ícones de desenho ficam desabilitados e é possível abrir a configuração dos enlaces e dos dispositivos através de dois cliques sobre cada um deles. NCTUns - Professor Nelson Fonseca

27 NCTUns - Professor Nelson Fonseca
Utilization (9)‏ As janelas exibidas após o duplo-clique nos dispositivos depende do tipo de dispositivo. Na figura do slide é apresentada a janela referente a um host. Pode-se definir qual aplicação vai rodar naquele host e durante qual intervalo de tempo. É possível ainda configurar intervalos de tempo em que o dispositivo estará off-line. Isso é ideal para experimentos que simulem falhas na rede. Na figura do slide foi definida a execução da aplicação stg do instante de tempo 0 até o instante de tempo 100. NCTUns - Professor Nelson Fonseca

28 NCTUns - Professor Nelson Fonseca
Utilization (10)‏ Run simulation Após as características dos dispositivos serem definidas, os logs selecionados e as aplicações atribuídas, passa-se ao modo de execução do experimento. Neste modo, o experimento é enviado para o dispatcher para que seja repassado a um coordinator e, finalmente, ao nctunsse local de algum servidor disponível. NCTUns - Professor Nelson Fonseca

29 NCTUns - Professor Nelson Fonseca
Utilization (11)‏ Antes do experimento ser enviado ao dispatcher é necessário fornecer os dados de conexão ao mesmo. Um usuário e uma senha para conexão ao servidor onde o dispatcher está em execução também devem ser informadas, bem como um endereço de NCTUns - Professor Nelson Fonseca

30 NCTUns - Professor Nelson Fonseca
Utilization (12)‏ É possível controlar a execução do experimento através do menu “Simulation”. O experimento pode ser interrompido e retomado através desse menu. NCTUns - Professor Nelson Fonseca

31 NCTUns - Professor Nelson Fonseca
Utilization (13)‏ Playback O último modo de operação do nctunsclient é o modo de Playback. Animações são geradas para simular a comunicação de dados entre os dispositivos como pode ser visto na figura do slide. NCTUns - Professor Nelson Fonseca

32 NCTUns - Professor Nelson Fonseca
Utilization (14)‏ Todo o controle do playback do experimento é feito pelos botões localizados na parte inferior da janela do nctunsclient. É possível modificar a granularidade do playback a fim de acelerar ou retardar a visualização. NCTUns - Professor Nelson Fonseca

33 NCTUns - Professor Nelson Fonseca
Utilization (15)‏ Ainda no modo de playback é possível observar os gráficos dos logs que foram selecionados no modo de edição da topologia. NCTUns - Professor Nelson Fonseca

34 NCTUns - Professor Nelson Fonseca
Utilization (16)‏ O trace da simulação também pode ser visualizado no modo de Playback. Basta selecionar a opção “View Packet Trace” sob o menu “Tools” NCTUns - Professor Nelson Fonseca

35 NCTUns - Professor Nelson Fonseca
Utilization (17)‏ Main simulation files .emu: external routing table (needed to emulation)‏ .ndt: nodes identification .tfc: list of commands to be executed .srt-l: internal routing table (tun[0-9]* devices)‏ .tcl: scenario details One example of each file is available at A criação dos cenários de simulação pelo nctunsclient criam diversos arquivos com uma sintaxe própria do NCTUns. Os principais arquivos criados são: .emu -> arquivo que contém a tabela de roteamento externa necessária para que o dispositivos virtuais acessem os dispositivos reais durante experimentos de emulação .ndt -> identificação de cada nós .tfc -> lista dos programas que serão executados durante o experimento nos dispositivos do cenário criado. São listadas informações como o ID do host, o tempo de início e de fim da execução dos comandos e a linha de comando completa para a execução do programa. .mrt-l: a tabela de roteamento interna do nctuns. Este arquivo relaciona as interfaces virtuais tun0, tun1, etc... entre si. .tcl: o arquivo principal com os detalhes do cenário. As características de todos os hosts, enlaces e dispositivos de conexão são definidas neste arquivo. Para modificar a capacidade de transmissão de um enlace somente este arquivo precisa ser modificado. Nesta URL há exemplos desses arquivos. NCTUns - Professor Nelson Fonseca

36 NCTUns - Professor Nelson Fonseca
Utilization (18)‏ To run without the GUI Create the basic scenario from the GUI (It is easier)‏ Make the necessary changes in the files Run nctuns <file.tcl> <file.tcl> is generated by the GUI Wait for the results Como informado anteriormente, é possível executar o NCTUns sem utilizar a interface gráfica. Para isso executa-se o binário nctuns passando como parâmetro o arquivo .tcl criado para a topologia a ser simulada/emulada. Apesar de receber apenas o .tcl, todos os outros arquivos devem existir no mesmo diretório onde o .tcl está para que o experimento seja realizado. Recomenda-se que os cenários-base para os experimentos sejam feitos inicialmente utilizando a interface gráfica do nctunsclient e depois as pequenas mudanças sejam feitas diretamente nos arquivos passados para o binário nctuns. NCTUns - Professor Nelson Fonseca

37 NCTUns - Professor Nelson Fonseca
Examples (1)‏ Scenario 1 Network topology: 2 hosts connected by an ethernet link Protocols: TCP and UDP Applications: rtcp/stcp Devices: Os próximos slides apresentam algumas informações de exemplos de experimentos que foram realizados no NCTUns. Pretende-se simular uma topologia simples contendo dois únicos hosts interligados via um enlace Ethernet. Inicialmente será gerado tráfego TCP entre os hosts utilizando os programas stcp e rtcp NCTUns - Professor Nelson Fonseca

38 NCTUns - Professor Nelson Fonseca
Examples (2)‏ Scenario 1 – Applications configuration To simulate data transfer between host 1 ( ) and hosts 2 ( ) via TCP using stcp and rtcp Host 1: stcp -p Sending TCP segments to at port 8000 Host 2: rtcp -p 8000 Receiving TCP segments from port 8000 Para definir a execução dos programas deve-se clicar em cada um dos hosts e informar as linhas de comando completas dos programas. O stcp, o processo que enviará o tráfego tcp, precisa saber o endereço IP do host onde o rtcp será executado. O endereço é informado na interface do ntcunsclient. NCTUns - Professor Nelson Fonseca

39 NCTUns - Professor Nelson Fonseca
Examples (3)‏ Essas janelas são as janelas onde os programas devem ser descritos para cada um dos hosts. NCTUns - Professor Nelson Fonseca

40 NCTUns - Professor Nelson Fonseca
Examples (4)‏ Scenario 2 To simulate data transfer between host 1 ( ) and host 2 ( ) via UDP using stg and rtg Host 1: stg -u m p Sending UDP datagrams to at port Transmission rate limited to 50Mbps and packet size equal to 1000 bytes. Host 2: rtg -u -p 8000 Receiving UDP datagrams from port 8000 Nos slide estão os exemplos de comandos stg e rtg que devem ser utilizados para gerar tráfego UDP entre os hosts no NCTUns. As linhas de comando exibidas mostram um exemplo em que serão transferidos dados UDP a uma taxa fixa de 50Mbps e com pacotes de tamanho fixo igual a 1000 bytes. NCTUns - Professor Nelson Fonseca

41 NCTUns - Professor Nelson Fonseca
Conclusions Nesta apresentação foi abordado o simulador e emulador NCTUns. NCTUns - Professor Nelson Fonseca

42 NCTUns - Professor Nelson Fonseca
Conclusions Joins simulation and emulation in one tool Intuitive and simple GUI Good if there is a few number of scenarios Hard to manage if there is a large number of scenarios Good documentation Several demo videos at official website O NCTUns é baseado em uma arquitetura cliente-servidor que permite a construção de clusters de simulação/emulação para as organizações. Ele permite a utilização de aplicações reais sem necessidade de modificação e pode tirar proveito de máquinas com múltiplos cores/processadores. O principal componente do NCTUns a ser utilizado por pessoas interessadas em executar simulações e emulações é o nctunsclient, uma interface gráfica que permite a criação dos cenários e a gerência da execução dos experimentos. Apesar da interface gráfica tornar a curva de aprendizado do NCTUns curta, ela dificulta a execução de um conjunto grande de experimentos caso eles diferenciem-se por pequenos detalhes. Nestes casos recomenda-se que as mudanças sejam feitas diretamente nos arquivos do cenário e que seja utilizado o comando nctuns, que submete o experimento para o dispatcher sem necessidade da interface gráfica. O NCTUns possui uma boa documentação no site oficial com diversos exemplos e vídeos. NCTUns - Professor Nelson Fonseca

43 NCTUns - Professor Nelson Fonseca
References Official website List of related papers GUI user manual Developer manual Videos of NCTUns in action Neste slide são apresentadas algumas URLs com informações extra sobre o NCTUns. Vale destacar o último link onde são disponibilizados diversos vídeos com exemplos de utilização do NCTUns. NCTUns - Professor Nelson Fonseca


Download ppt "Simulation and Emulation with NCTUns"

Similar presentations


Ads by Google