SlideShare une entreprise Scribd logo
1  sur  60
Télécharger pour lire hors ligne
Simulação de Redes Sensores com
OMNET++ e Castalia
Principais conceitos teóricos e aplicações
Apresentadores/Pesquisadores
● Daniel G. Costa - Professor Doutor da Universidade
Estadual de Feira de Santana (UEFS)
● Lucas Vinícius dos S. Assis - Graduando em
Engenharia de Computação (UEFS)
Laboratório de pesquisa - UEFS
http://www2.uefs.br/netmedia/
Introdução
● O avanço tecnológico na década de 1990 nas áreas de
sensores, circuitos integrados e comunicação sem fio
permitiu a criação das Redes de Sensores sem Fio
(RSSF).
Parte I
Introdução às Redes de Sensores sem Fio (RSSF)
RSSF - O que são?
● Sensores sem fio, com recursos energéticos e de
processamento limitados, densamente distribuídos
numa região de interesse e trabalhando em conjunto
para obter informações sobre esse ambiente.
RSSF - Deve-se levar em consideração
● Fenômeno: é o que a rede de sensores monitora;
● Sensor: é quem de fato monitora o fenômeno;
● Observador: é o usuário final, ou seja, quem deseja
estudar o fenômeno.
RSSF - Componentes principais
● Nós sensores: dispositivos que capturam e/ou
retransmitem a informação capturada do ambiente;
● Sink: gateway que recebe as informações provenientes
dos sensores e as repassa para o banco de dados do
usuário da aplicação.
RSSF - Componentes principais
RSSF - Aplicações
● Ambiente: monitoramento de variáveis ambientais em locais
internos ou externos;
● Controle: fornece mecanismos de controle automatizados
para ambientes residenciais ou industriais;
● Tráfego: monitorar veículos em rodovias, malhas viárias
urbanas dentre outros.
RSSF - Aplicações
● Segurança: fornecendo segurança em centros comerciais,
estacionamentos, dentre outros;
● Medicina/Biologia:
○ Monitoramento do funcionamento de órgãos no corpo
humano ou animal;
○ Detectar substâncias que indiquem a presença ou
surgimento de um problema biológico ou doenças.
RSSF - Aplicações
● Militar:
○ Rastreamento e vigilância de alvos;
○ Detecção de material perigoso, como radiação e
gases tóxicos;
○ Geralmente utilizam dados criptografados e de curto
alcance para evitar interceptações clandestinas.
RSSF - Camadas de rede
● A interação entre as camadas de RSSF deve levar em
consideração fatores como energia, mobilidade e as tarefas
da rede.
RSSF - Restrições e desafios
tecnológicos
● Algoritmos e protocolos em RSSFs devem levar em
consideração a quantidade de energia consumida em cada
nó (rádio, processador, bateria, etc);
● Processamento limitado nos nós sensores.
RSSF - Restrições e desafios
tecnológicos
● Devido a limitação do alcance da transmissão entre os
nós, o envio da informação envolve caminhos multi-hop
utilizando outros nós, uma topologia altamente variável.
Por que deve-se usar simuladores?
● Em geral para RSSF a solução para um contexto não
pode ser aplicada diretamente em outro cenário sem
uma avaliação cuidadosa;
● Simulações permitem testar aplicações envolvendo
RSSF antes de sua implantação em campo.
Parte II
Simulador de RSSF - Castalia
Castalia - O que é?
● Simulador de RSSF, Body Area Network (BAN) e redes
de dispositivos embarcados;
● Baseado na plataforma OMNeT++;
● Utilizado para testes de algoritmos e/ou protocolos de
rede distribuídos em modelos realistas de acesso ao
canal e rádio.
Castalia - Características
● Modelo de Canal avançado (simulações baseadas em
informações empíricas), que:
○ Define um map of path loss (diminuição da potência da onda
eletromagnética com sua propagação);
○ Permite mobilidade de nós;
○ Trata interferência como potência do sinal recebido.
Castalia - Características
● Modelo de transmissão baseado em rádios de baixa
potência;
● Simulador permite adaptações e expansões de seu
código fonte (Software livre).
Castalia - Herança OMNet++
(Módulos e Mensagens)
● Módulo é a unidade básica de execução (OMNet++);
● Um módulo aceita mensagens de outro módulos ou
dele mesmo;
● Módulos executam algoritmos diferentes dependendo
da mensagem recebida;
Castalia - Herança OMNet++
(Linguagem NED)
● Os módulos têm suas portas de entrada e saída
mapeadas pela linguagem NED no OMNet++ (arquivos
terminados em “.ned”);
● Linguagem usada para definir, por exemplo:
○ Nome;
○ Parâmetros;
○ Interface (Portas de entrada e saída);
○ Estrutura de submódulos (Para módulos compostos).
Castalia - Módulos
● Conjunto de Módulos e Submódulos formam a estrutura
do nó sensor;
● Conjunto de nós sensores formam uma RSSF.
● Mensagem enviada entre submódulos (Setas Cheias)
Castalia - Estrutura do nó sensor
● Chamadas de função (Setas Tracejadas)
Castalia - Estrutura do nó sensor
● A maioria dos módulos chamam funções de
gerenciamento de recursos para indicar que energia foi
consumida, por exemplo.
Castalia - Estrutura do nó sensor
● Usuário pode modificar, para construir seus protocolos
e aplicações, os módulos:
○ Aplicação;
○ Comunicação MAC;
○ Roteamento, dentre outros.
Castalia - Criando protocolos e
aplicações
● Nós sensores são conectados entre sí indiretamente pelo canal
sem fio e pelos processos físicos monitorados.
Castalia - Interação entre nós sensores
Antes de instalar o Castalia...
● Necessita de instalações prévias: GnuPlot, G++,
OMNet++;
● Instalação do OMNeT++ (comandos do terminal):
○ $ cd omnetpp (busca da pasta descompactada)
○ $ . setenv
○ $ ./configure
○ $ make
Castalia - Instalação (Comandos
terminal)
● $ cd castalia (busca da pasta descompactada)
● $ ./makemake
● $ make
Scripts
● Castalia: executa as simulações;
● CastaliaResults: interpreta os resultados provenientes do
Castalia;
● CastaliaPlot: cria gráficos (utilizando o GnuPlot) utilizando as
tabelas de saída resultantes do CastaliaResults.
Os scripts acima encontram-se na pasta: ~/Castalia/bin
Antes de simular...
1. Criar uma pasta dentro do diretório ~/Castalia/Simulations
para colocar o arquivo contendo a simulação a ser criada;
2. Dentro da pasta criada adicionar um arquivo denominado
omnetpp.ini (arquivo padrão de simulações);
3. Escrever as simulações e executá-las utilizando os scripts.
Antes de simular...
● Execução padrão do Castalia: $ ../../bin/Castalia;
● Para não precisar executar esse comando toda vez que for simular
pode-se criar um alias;
1. Pelo terminal, vá à pasta /home e procure o arquivo .bashrc;
2. Abra-o com qualquer editor de texto;
3. Adicione o caminho dos scripts do Castalia ao final do arquivo como no
exemplo a seguir:
alias castalia=’~/caminhoqueseencontra/Castalia’
4. Salve o arquivo e digite o comando $ bash para atualizar o terminal.
Executando a Simulação - radioTest
● Ao executar o comando Castalia sem nenhum argumento o script
irá realizar um parser no arquivo omnetpp.ini da pasta e imprimir
na tela o nome das configurações válidas contidas no mesmo.
Executando a Simulação - radioTest
● O comando -h exibe todas as opções válidas de execução para do
script Castalia. (CastaliaResults e Plot também possuem esse
comando)
● O comando -c permite selecionar qual das configurações
dentro do arquivo do Castalia será executada.
Executando a Simulação - radioTest
● Após a execução do script, um arquivo de saída padrão
(contendo os dados da simulação) no formato YYMMDD-
HHMMSS.txt será adicionado na mesma pasta que o
omnetpp.ini.
Executando a Simulação - radioTest
● Além do arquivo de saída padrão, um arquivo denominado
Castalia-Trace.txt poderá ser criado caso a simulação solicite
rastros (Traces) de algum módulo.
Executando a Simulação - radioTest
Exemplo - radioTest
Conhecendo o arquivo de
simulação - radioTest
● include ../Parameters/Castalia.ini - arquivo que contém alguns
parâmetros básicos que toda simulação do Castalia irá precisar.
(Necessário incluir no início das simulações)
● sim-time-limit = 100s - é o tempo que será simulado pelo
Castalia.
Conhecendo o arquivo de
simulação - radioTest
● SN.field_x = 200 - Os eixos x, y e z ditam o tamanho do campo
através de valores inteiros (como o eixo z, no exemplo, foi deixado
vazio ele assume o seu valor padrão: 0).
● SN.numNodes = 3 - escolha do número de nós presentes na
simulação
● # meters - O caractere ‘#’ indica comentário de linha
Conhecendo o arquivo de
simulação - radioTest
● SN.wirelessChannel.onlyStaticNodes = false - Indica que a
simulação terá nós móveis.
Os parâmetros abaixo foram desligados para que sejam
desconsiderados os efeitos de sombreamento (atenuação da onda
com a distância) na simulação.
● SN.wirelessChannel.sigma = 0.
● SN.wirelessChannel.bidirectionalSigma = 0.
Conhecendo o arquivo de
simulação - radioTest
● SN.node[*].Communication.Radio.RadioParametersFile = "..
/Parameters/Radio/CC2420.txt" - o RadioParameterFile é um
arquivo especialmente formatado definindo propriedades básicas
de operação de rádio.
● SN.node[*].Communication.Radio.TxOutputPower = "-5dBm" -
configura a potência com que o rádio transmite os seus pacotes.
Conhecendo o arquivo de
simulação - radioTest
● SN.node[9].xCoor = 10.5 - modifica um parâmetro específico do
nó com índice [9].
● É possível modificar uma grande quantidade de nós de uma só vez
da seguinte maneira:
○ [*] - todos os índices
○ [3..5] - índices 3, 4 e 5
○ [..4] - índices 0, 1, 2, 3, 4
○ [5..] - índices 5 até o último
Conhecendo o arquivo de
simulação - radioTest
● SN.node[*].Communication.Routing.maxNetFrameSize = 2500
● SN.node[*].Communication.MAC.maxMACFrameSize = 2500
● SN.node[*].Communication.Radio.maxPhyFrameSize = 2500
Os Parâmetros acima configuram o máximo tamanho permitido (em
bytes) do pacote em todas as camadas de comunicação: roteamento,
enlace e rádio.
Conhecendo o arquivo de
simulação - radioTest
● SN.node[*].ApplicationName = "ThroughputTest" - nome da aplicação.
● SN.node[*].Application.packet_rate = 5 - taxa de pacotes entregues por
segundo.
● SN.node[*].Application.constantDataPayload = 2000 - quantidade de
bytes entregues em um pacote.
● SN.node[0].Application.collectTraceInfo = true - ativando o trace para o
nó destinatário (nó zero) pode-se ver o padrão de entregas de arquivos
pelo protocolo de aplicação.
Conhecendo o arquivo de
simulação - radioTest
● SN.node[0].xCoor = 0 - caso o usuário queira configurar o
posicionamento de nós individualmente, pode-se assinalar seus
eixos x, y e z pelos parâmetros xCoor, yCoor, zCoor
respectivamente.
Conhecendo o arquivo de
simulação - radioTest
● SN.deployment - posiciona todos os nós em campo de uma só
vez utilizando uma string pré-definida, como nos exemplos abaixo:
○ “uniform” - os nós são colocados no campo usando uma distribuição
randomica e uniforme
○ “NxM” - as variáveis N e M são número inteiros. Os nós so colocados
na grade de N nós por M nós.
○ “NxNxK” - mesa coisa que o de cima para três dimensões
○ “center” - nós são colocados no centro do campo
● Configurando mobilidade no nó zero
○ SN.node[0].MobilityManagerName = "LineMobilityManager"
○ SN.node[0].MobilityManager.updateInterval = 100
○ SN.node[0].MobilityManager.xCoorDestination = 200
○ SN.node[0].MobilityManager.yCoorDestination = 200
○ SN.node[0].MobilityManager.speed = 15
● Pode-se escolher desativar mobilidade, como a seguir:
○ SN.node[0].MobilityManagerName = "NoMobilityManager"
Conhecendo o arquivo de
simulação - radioTest
Conhecendo o arquivo de
simulação - radioTest
● Por padrão os protocolos de roteamento e de enlace são
configurados para deixar os pacotes passarem sem nenhuma
interferência por essas camada, como os próprios nomes já
sugerem:
○ SN.node[*].Communication.MACProtocolName = "BypassMAC"
○ SN.node[*].Communication.RoutingProtocolName = "BypassRouting"
Interpretando a simulação -
CastaliaResults
● Ao executar o CastaliaResults sem nenhum argumento é
apresentada a lista de arquivos de resultados das simulações
presentes na pasta atual:
Interpretando a simulação -
CastaliaResults
● -i - permite trocar o arquivo de entrada do castaliaResults
● Ao executar, por exemplo, “CastaliaResults -i 150319-130527.txt”, o
results percorre o arquivo e encontra o que a simulação do Castalia gerou
nos diferentes módulos da simulação.
Interpretando a simulação -
CastaliaResults
● Cada saída tem uma dimensão NxM, onde N é o número de
módulos que produziram essa saída. Módulos que são
instanciados somente uma vez, como o canal sem fio, irão sempre
ter o N=1.
● M é o número de diferentes índices que uma saída de um único
módulo tem.
Interpretando a simulação -
CastaliaResults
● É possível especificar a saída desejada do Castalia Results com o
comando -s (caso deseje ver a informação referente a cada nó
acrescentar o comando -n ao final)
○ Exemplo: “CastaliaResults -i 150319-130527.txt”
● -p mostra porcentagens do total (sempre que possível)
Interpretando o CastaliaResults -
CastaliaPlot
● O CastaliaPlot imprime em gráficos as tabelas obtidas do CastaliaResults.
(Comando do Results | Comando do Plot);
● Colunas Determinam coordenadas do eixo X;
● Linhas (valores das células da tabela) determinam as coordenadas do eixo
Y;
● Os gráficos são coloridos automaticamente, bem como as legendas e
títulos (que são extraídos das informações da tabela).
Interpretando o CastaliaResults -
CastaliaPlot (Comandos)
● -o - seleciona o arquivo de saída, o default é plot.ps;
● -s - o comando usado para configurar o estilo de impressão, os estilos
suportados são: linespoints, histogram, stacked;
● -l - o comando configura a posição da legenda, a default é ‘top-right’,
procure por gnuplot’s para todas as opções possíveis;
● --invert - onde você inverte a tabela então as linhas se tornam colunas.
Parte III
Exercícios
Exercício 1
● Topologia: Linear
● Quantidade de nós: 10
● 1 nó fonte e um nó sink
● Objetivo: Interpretação de testes com diferentes
quantidades de pacotes enviados por segundo (5 e 10)
Exercício 2
● Topologia: Malha 5x5
● Quantidade de nós: 25
● 3 nós fonte e um nó sink
● Objetivo: Interpretação de testes com diferentes
quantidades de pacotes enviados por segundo (5 e 10)
Isso é Tudo!!!
Obrigado…
www.uefs.br/netmedia

Contenu connexe

Similaire à Introdução a Simulação de redes Sensores sem fio com Castalia

Clp automacao redes_protocolos
Clp automacao redes_protocolosClp automacao redes_protocolos
Clp automacao redes_protocolosWellington barbosa
 
Aplicações de Inteligência Artificial em Rádios Cognitivos
Aplicações de Inteligência Artificial em Rádios CognitivosAplicações de Inteligência Artificial em Rádios Cognitivos
Aplicações de Inteligência Artificial em Rádios CognitivosRamon Mayor Martins
 
Em Direção às Redes Programáveis na Internet do Futuro
Em Direção às Redes Programáveis na Internet do FuturoEm Direção às Redes Programáveis na Internet do Futuro
Em Direção às Redes Programáveis na Internet do FuturoMagnos Martinello
 
Presentation Regiment
Presentation RegimentPresentation Regiment
Presentation RegimentBimboJones
 
Redes de Computadores " Camada de Enlace"
Redes de Computadores " Camada de Enlace"Redes de Computadores " Camada de Enlace"
Redes de Computadores " Camada de Enlace"Reinaldo Barbosa
 
Componentes de uma Rede de computadores
Componentes de uma Rede de computadoresComponentes de uma Rede de computadores
Componentes de uma Rede de computadoresFelipe Silva
 
Aula 06 - Caracterizando fluxo de tráfego e Projeto de Topologia - Parte I - ...
Aula 06 - Caracterizando fluxo de tráfego e Projeto de Topologia - Parte I - ...Aula 06 - Caracterizando fluxo de tráfego e Projeto de Topologia - Parte I - ...
Aula 06 - Caracterizando fluxo de tráfego e Projeto de Topologia - Parte I - ...Dalton Martins
 
Redes de Sensores e Robôs: Um novo paradigma de Monitoramento e Atuação
Redes de Sensores e Robôs: Um novo paradigma de Monitoramento e AtuaçãoRedes de Sensores e Robôs: Um novo paradigma de Monitoramento e Atuação
Redes de Sensores e Robôs: Um novo paradigma de Monitoramento e AtuaçãoPET Computação
 
Redes de computadores
Redes de computadoresRedes de computadores
Redes de computadoresJakson Silva
 
Comunicação de Dados - Modulo 5
 Comunicação de Dados - Modulo 5 Comunicação de Dados - Modulo 5
Comunicação de Dados - Modulo 5Mariana Hiyori
 
Mini curso redes_computadores
Mini curso redes_computadoresMini curso redes_computadores
Mini curso redes_computadoreselgi.elgi
 
Gestão de Redes de Computadores e Serviços.pptx
Gestão de Redes de Computadores e Serviços.pptxGestão de Redes de Computadores e Serviços.pptx
Gestão de Redes de Computadores e Serviços.pptxHJesusMiguel
 

Similaire à Introdução a Simulação de redes Sensores sem fio com Castalia (20)

Clp automacao redes_protocolos
Clp automacao redes_protocolosClp automacao redes_protocolos
Clp automacao redes_protocolos
 
Introducao as rede de computadores
Introducao as rede de computadoresIntroducao as rede de computadores
Introducao as rede de computadores
 
Aplicações de Inteligência Artificial em Rádios Cognitivos
Aplicações de Inteligência Artificial em Rádios CognitivosAplicações de Inteligência Artificial em Rádios Cognitivos
Aplicações de Inteligência Artificial em Rádios Cognitivos
 
Modelo osi
Modelo osiModelo osi
Modelo osi
 
Frame Relay
Frame RelayFrame Relay
Frame Relay
 
Em Direção às Redes Programáveis na Internet do Futuro
Em Direção às Redes Programáveis na Internet do FuturoEm Direção às Redes Programáveis na Internet do Futuro
Em Direção às Redes Programáveis na Internet do Futuro
 
Aula 01 - Redes Wireless
Aula 01 - Redes WirelessAula 01 - Redes Wireless
Aula 01 - Redes Wireless
 
Presentation Regiment
Presentation RegimentPresentation Regiment
Presentation Regiment
 
Redes de Computadores " Camada de Enlace"
Redes de Computadores " Camada de Enlace"Redes de Computadores " Camada de Enlace"
Redes de Computadores " Camada de Enlace"
 
Componentes de uma Rede de computadores
Componentes de uma Rede de computadoresComponentes de uma Rede de computadores
Componentes de uma Rede de computadores
 
Conceitos de rede
Conceitos de redeConceitos de rede
Conceitos de rede
 
Aula 06 - Caracterizando fluxo de tráfego e Projeto de Topologia - Parte I - ...
Aula 06 - Caracterizando fluxo de tráfego e Projeto de Topologia - Parte I - ...Aula 06 - Caracterizando fluxo de tráfego e Projeto de Topologia - Parte I - ...
Aula 06 - Caracterizando fluxo de tráfego e Projeto de Topologia - Parte I - ...
 
Apresentacao cp2011
Apresentacao cp2011Apresentacao cp2011
Apresentacao cp2011
 
Introdução a Redes de Computadores
Introdução a Redes de ComputadoresIntrodução a Redes de Computadores
Introdução a Redes de Computadores
 
Redes de Sensores e Robôs: Um novo paradigma de Monitoramento e Atuação
Redes de Sensores e Robôs: Um novo paradigma de Monitoramento e AtuaçãoRedes de Sensores e Robôs: Um novo paradigma de Monitoramento e Atuação
Redes de Sensores e Robôs: Um novo paradigma de Monitoramento e Atuação
 
Redes de computadores
Redes de computadoresRedes de computadores
Redes de computadores
 
Firewall no linux
Firewall no linuxFirewall no linux
Firewall no linux
 
Comunicação de Dados - Modulo 5
 Comunicação de Dados - Modulo 5 Comunicação de Dados - Modulo 5
Comunicação de Dados - Modulo 5
 
Mini curso redes_computadores
Mini curso redes_computadoresMini curso redes_computadores
Mini curso redes_computadores
 
Gestão de Redes de Computadores e Serviços.pptx
Gestão de Redes de Computadores e Serviços.pptxGestão de Redes de Computadores e Serviços.pptx
Gestão de Redes de Computadores e Serviços.pptx
 

Plus de Lucas Vinícius

A Evolução das Distribuições de SistemaOperacional Linux Patrocinados pela Em...
A Evolução das Distribuições de SistemaOperacional Linux Patrocinados pela Em...A Evolução das Distribuições de SistemaOperacional Linux Patrocinados pela Em...
A Evolução das Distribuições de SistemaOperacional Linux Patrocinados pela Em...Lucas Vinícius
 
Como utilizar windows management instrumentation com a linguagem vb script
Como utilizar windows management instrumentation com a linguagem vb scriptComo utilizar windows management instrumentation com a linguagem vb script
Como utilizar windows management instrumentation com a linguagem vb scriptLucas Vinícius
 
Probabilidade e estatística - Variáveis Aleatórias
Probabilidade e estatística - Variáveis AleatóriasProbabilidade e estatística - Variáveis Aleatórias
Probabilidade e estatística - Variáveis AleatóriasLucas Vinícius
 
A robustez de circuitos sequenciais
A robustez de circuitos sequenciaisA robustez de circuitos sequenciais
A robustez de circuitos sequenciaisLucas Vinícius
 
Definição de marketing e suas implicações
Definição de marketing e suas implicaçõesDefinição de marketing e suas implicações
Definição de marketing e suas implicaçõesLucas Vinícius
 
Teorias da aprendizagem de Piaget: equilibração e fases de aprendizagem
Teorias da aprendizagem de Piaget: equilibração e fases de aprendizagemTeorias da aprendizagem de Piaget: equilibração e fases de aprendizagem
Teorias da aprendizagem de Piaget: equilibração e fases de aprendizagemLucas Vinícius
 
Gerenciamento ágil de processos - SCRUM
Gerenciamento ágil de processos - SCRUMGerenciamento ágil de processos - SCRUM
Gerenciamento ágil de processos - SCRUMLucas Vinícius
 
Ruído em higiene e segurança no trabalho
Ruído em  higiene e segurança no trabalhoRuído em  higiene e segurança no trabalho
Ruído em higiene e segurança no trabalhoLucas Vinícius
 
Rethinking main memory oltp recovery
Rethinking main memory oltp recoveryRethinking main memory oltp recovery
Rethinking main memory oltp recoveryLucas Vinícius
 
Gerenciamento de processos Linux
Gerenciamento de processos LinuxGerenciamento de processos Linux
Gerenciamento de processos LinuxLucas Vinícius
 
Problemas clássicos de comunicação interprocessos
Problemas clássicos de comunicação interprocessosProblemas clássicos de comunicação interprocessos
Problemas clássicos de comunicação interprocessosLucas Vinícius
 
Prevenção, proteção e combate ao incêndio de classe A
Prevenção, proteção e combate ao incêndio de classe APrevenção, proteção e combate ao incêndio de classe A
Prevenção, proteção e combate ao incêndio de classe ALucas Vinícius
 
Fases do desenvolvimento de acordo com a Teoria de Freud
Fases do desenvolvimento  de acordo com a Teoria de FreudFases do desenvolvimento  de acordo com a Teoria de Freud
Fases do desenvolvimento de acordo com a Teoria de FreudLucas Vinícius
 
Telefone sem fio - um problema de má comunicação
Telefone sem fio - um problema de má comunicaçãoTelefone sem fio - um problema de má comunicação
Telefone sem fio - um problema de má comunicaçãoLucas Vinícius
 
Pesquisas envolvendo seres humanos
Pesquisas envolvendo seres humanosPesquisas envolvendo seres humanos
Pesquisas envolvendo seres humanosLucas Vinícius
 
Complexidade do Algoritmo: Caminho mínimo Floyd Warshall
Complexidade do Algoritmo: Caminho mínimo Floyd WarshallComplexidade do Algoritmo: Caminho mínimo Floyd Warshall
Complexidade do Algoritmo: Caminho mínimo Floyd WarshallLucas Vinícius
 

Plus de Lucas Vinícius (17)

A Evolução das Distribuições de SistemaOperacional Linux Patrocinados pela Em...
A Evolução das Distribuições de SistemaOperacional Linux Patrocinados pela Em...A Evolução das Distribuições de SistemaOperacional Linux Patrocinados pela Em...
A Evolução das Distribuições de SistemaOperacional Linux Patrocinados pela Em...
 
Como utilizar windows management instrumentation com a linguagem vb script
Como utilizar windows management instrumentation com a linguagem vb scriptComo utilizar windows management instrumentation com a linguagem vb script
Como utilizar windows management instrumentation com a linguagem vb script
 
Probabilidade e estatística - Variáveis Aleatórias
Probabilidade e estatística - Variáveis AleatóriasProbabilidade e estatística - Variáveis Aleatórias
Probabilidade e estatística - Variáveis Aleatórias
 
A robustez de circuitos sequenciais
A robustez de circuitos sequenciaisA robustez de circuitos sequenciais
A robustez de circuitos sequenciais
 
Definição de marketing e suas implicações
Definição de marketing e suas implicaçõesDefinição de marketing e suas implicações
Definição de marketing e suas implicações
 
Teorias da aprendizagem de Piaget: equilibração e fases de aprendizagem
Teorias da aprendizagem de Piaget: equilibração e fases de aprendizagemTeorias da aprendizagem de Piaget: equilibração e fases de aprendizagem
Teorias da aprendizagem de Piaget: equilibração e fases de aprendizagem
 
Behaviorismo de Skinner
Behaviorismo de SkinnerBehaviorismo de Skinner
Behaviorismo de Skinner
 
Gerenciamento ágil de processos - SCRUM
Gerenciamento ágil de processos - SCRUMGerenciamento ágil de processos - SCRUM
Gerenciamento ágil de processos - SCRUM
 
Ruído em higiene e segurança no trabalho
Ruído em  higiene e segurança no trabalhoRuído em  higiene e segurança no trabalho
Ruído em higiene e segurança no trabalho
 
Rethinking main memory oltp recovery
Rethinking main memory oltp recoveryRethinking main memory oltp recovery
Rethinking main memory oltp recovery
 
Gerenciamento de processos Linux
Gerenciamento de processos LinuxGerenciamento de processos Linux
Gerenciamento de processos Linux
 
Problemas clássicos de comunicação interprocessos
Problemas clássicos de comunicação interprocessosProblemas clássicos de comunicação interprocessos
Problemas clássicos de comunicação interprocessos
 
Prevenção, proteção e combate ao incêndio de classe A
Prevenção, proteção e combate ao incêndio de classe APrevenção, proteção e combate ao incêndio de classe A
Prevenção, proteção e combate ao incêndio de classe A
 
Fases do desenvolvimento de acordo com a Teoria de Freud
Fases do desenvolvimento  de acordo com a Teoria de FreudFases do desenvolvimento  de acordo com a Teoria de Freud
Fases do desenvolvimento de acordo com a Teoria de Freud
 
Telefone sem fio - um problema de má comunicação
Telefone sem fio - um problema de má comunicaçãoTelefone sem fio - um problema de má comunicação
Telefone sem fio - um problema de má comunicação
 
Pesquisas envolvendo seres humanos
Pesquisas envolvendo seres humanosPesquisas envolvendo seres humanos
Pesquisas envolvendo seres humanos
 
Complexidade do Algoritmo: Caminho mínimo Floyd Warshall
Complexidade do Algoritmo: Caminho mínimo Floyd WarshallComplexidade do Algoritmo: Caminho mínimo Floyd Warshall
Complexidade do Algoritmo: Caminho mínimo Floyd Warshall
 

Introdução a Simulação de redes Sensores sem fio com Castalia

  • 1. Simulação de Redes Sensores com OMNET++ e Castalia Principais conceitos teóricos e aplicações
  • 2. Apresentadores/Pesquisadores ● Daniel G. Costa - Professor Doutor da Universidade Estadual de Feira de Santana (UEFS) ● Lucas Vinícius dos S. Assis - Graduando em Engenharia de Computação (UEFS)
  • 3. Laboratório de pesquisa - UEFS http://www2.uefs.br/netmedia/
  • 4. Introdução ● O avanço tecnológico na década de 1990 nas áreas de sensores, circuitos integrados e comunicação sem fio permitiu a criação das Redes de Sensores sem Fio (RSSF).
  • 5. Parte I Introdução às Redes de Sensores sem Fio (RSSF)
  • 6. RSSF - O que são? ● Sensores sem fio, com recursos energéticos e de processamento limitados, densamente distribuídos numa região de interesse e trabalhando em conjunto para obter informações sobre esse ambiente.
  • 7. RSSF - Deve-se levar em consideração ● Fenômeno: é o que a rede de sensores monitora; ● Sensor: é quem de fato monitora o fenômeno; ● Observador: é o usuário final, ou seja, quem deseja estudar o fenômeno.
  • 8. RSSF - Componentes principais ● Nós sensores: dispositivos que capturam e/ou retransmitem a informação capturada do ambiente; ● Sink: gateway que recebe as informações provenientes dos sensores e as repassa para o banco de dados do usuário da aplicação.
  • 9. RSSF - Componentes principais
  • 10. RSSF - Aplicações ● Ambiente: monitoramento de variáveis ambientais em locais internos ou externos; ● Controle: fornece mecanismos de controle automatizados para ambientes residenciais ou industriais; ● Tráfego: monitorar veículos em rodovias, malhas viárias urbanas dentre outros.
  • 11. RSSF - Aplicações ● Segurança: fornecendo segurança em centros comerciais, estacionamentos, dentre outros; ● Medicina/Biologia: ○ Monitoramento do funcionamento de órgãos no corpo humano ou animal; ○ Detectar substâncias que indiquem a presença ou surgimento de um problema biológico ou doenças.
  • 12. RSSF - Aplicações ● Militar: ○ Rastreamento e vigilância de alvos; ○ Detecção de material perigoso, como radiação e gases tóxicos; ○ Geralmente utilizam dados criptografados e de curto alcance para evitar interceptações clandestinas.
  • 13. RSSF - Camadas de rede ● A interação entre as camadas de RSSF deve levar em consideração fatores como energia, mobilidade e as tarefas da rede.
  • 14. RSSF - Restrições e desafios tecnológicos ● Algoritmos e protocolos em RSSFs devem levar em consideração a quantidade de energia consumida em cada nó (rádio, processador, bateria, etc); ● Processamento limitado nos nós sensores.
  • 15. RSSF - Restrições e desafios tecnológicos ● Devido a limitação do alcance da transmissão entre os nós, o envio da informação envolve caminhos multi-hop utilizando outros nós, uma topologia altamente variável.
  • 16. Por que deve-se usar simuladores? ● Em geral para RSSF a solução para um contexto não pode ser aplicada diretamente em outro cenário sem uma avaliação cuidadosa; ● Simulações permitem testar aplicações envolvendo RSSF antes de sua implantação em campo.
  • 17. Parte II Simulador de RSSF - Castalia
  • 18. Castalia - O que é? ● Simulador de RSSF, Body Area Network (BAN) e redes de dispositivos embarcados; ● Baseado na plataforma OMNeT++; ● Utilizado para testes de algoritmos e/ou protocolos de rede distribuídos em modelos realistas de acesso ao canal e rádio.
  • 19. Castalia - Características ● Modelo de Canal avançado (simulações baseadas em informações empíricas), que: ○ Define um map of path loss (diminuição da potência da onda eletromagnética com sua propagação); ○ Permite mobilidade de nós; ○ Trata interferência como potência do sinal recebido.
  • 20. Castalia - Características ● Modelo de transmissão baseado em rádios de baixa potência; ● Simulador permite adaptações e expansões de seu código fonte (Software livre).
  • 21. Castalia - Herança OMNet++ (Módulos e Mensagens) ● Módulo é a unidade básica de execução (OMNet++); ● Um módulo aceita mensagens de outro módulos ou dele mesmo; ● Módulos executam algoritmos diferentes dependendo da mensagem recebida;
  • 22. Castalia - Herança OMNet++ (Linguagem NED) ● Os módulos têm suas portas de entrada e saída mapeadas pela linguagem NED no OMNet++ (arquivos terminados em “.ned”); ● Linguagem usada para definir, por exemplo: ○ Nome; ○ Parâmetros; ○ Interface (Portas de entrada e saída); ○ Estrutura de submódulos (Para módulos compostos).
  • 23. Castalia - Módulos ● Conjunto de Módulos e Submódulos formam a estrutura do nó sensor; ● Conjunto de nós sensores formam uma RSSF.
  • 24. ● Mensagem enviada entre submódulos (Setas Cheias) Castalia - Estrutura do nó sensor
  • 25. ● Chamadas de função (Setas Tracejadas) Castalia - Estrutura do nó sensor
  • 26. ● A maioria dos módulos chamam funções de gerenciamento de recursos para indicar que energia foi consumida, por exemplo. Castalia - Estrutura do nó sensor
  • 27. ● Usuário pode modificar, para construir seus protocolos e aplicações, os módulos: ○ Aplicação; ○ Comunicação MAC; ○ Roteamento, dentre outros. Castalia - Criando protocolos e aplicações
  • 28. ● Nós sensores são conectados entre sí indiretamente pelo canal sem fio e pelos processos físicos monitorados. Castalia - Interação entre nós sensores
  • 29. Antes de instalar o Castalia... ● Necessita de instalações prévias: GnuPlot, G++, OMNet++; ● Instalação do OMNeT++ (comandos do terminal): ○ $ cd omnetpp (busca da pasta descompactada) ○ $ . setenv ○ $ ./configure ○ $ make
  • 30. Castalia - Instalação (Comandos terminal) ● $ cd castalia (busca da pasta descompactada) ● $ ./makemake ● $ make
  • 31. Scripts ● Castalia: executa as simulações; ● CastaliaResults: interpreta os resultados provenientes do Castalia; ● CastaliaPlot: cria gráficos (utilizando o GnuPlot) utilizando as tabelas de saída resultantes do CastaliaResults. Os scripts acima encontram-se na pasta: ~/Castalia/bin
  • 32. Antes de simular... 1. Criar uma pasta dentro do diretório ~/Castalia/Simulations para colocar o arquivo contendo a simulação a ser criada; 2. Dentro da pasta criada adicionar um arquivo denominado omnetpp.ini (arquivo padrão de simulações); 3. Escrever as simulações e executá-las utilizando os scripts.
  • 33. Antes de simular... ● Execução padrão do Castalia: $ ../../bin/Castalia; ● Para não precisar executar esse comando toda vez que for simular pode-se criar um alias; 1. Pelo terminal, vá à pasta /home e procure o arquivo .bashrc; 2. Abra-o com qualquer editor de texto; 3. Adicione o caminho dos scripts do Castalia ao final do arquivo como no exemplo a seguir: alias castalia=’~/caminhoqueseencontra/Castalia’ 4. Salve o arquivo e digite o comando $ bash para atualizar o terminal.
  • 34. Executando a Simulação - radioTest ● Ao executar o comando Castalia sem nenhum argumento o script irá realizar um parser no arquivo omnetpp.ini da pasta e imprimir na tela o nome das configurações válidas contidas no mesmo.
  • 35. Executando a Simulação - radioTest ● O comando -h exibe todas as opções válidas de execução para do script Castalia. (CastaliaResults e Plot também possuem esse comando)
  • 36. ● O comando -c permite selecionar qual das configurações dentro do arquivo do Castalia será executada. Executando a Simulação - radioTest
  • 37. ● Após a execução do script, um arquivo de saída padrão (contendo os dados da simulação) no formato YYMMDD- HHMMSS.txt será adicionado na mesma pasta que o omnetpp.ini. Executando a Simulação - radioTest
  • 38. ● Além do arquivo de saída padrão, um arquivo denominado Castalia-Trace.txt poderá ser criado caso a simulação solicite rastros (Traces) de algum módulo. Executando a Simulação - radioTest
  • 40. Conhecendo o arquivo de simulação - radioTest ● include ../Parameters/Castalia.ini - arquivo que contém alguns parâmetros básicos que toda simulação do Castalia irá precisar. (Necessário incluir no início das simulações) ● sim-time-limit = 100s - é o tempo que será simulado pelo Castalia.
  • 41. Conhecendo o arquivo de simulação - radioTest ● SN.field_x = 200 - Os eixos x, y e z ditam o tamanho do campo através de valores inteiros (como o eixo z, no exemplo, foi deixado vazio ele assume o seu valor padrão: 0). ● SN.numNodes = 3 - escolha do número de nós presentes na simulação ● # meters - O caractere ‘#’ indica comentário de linha
  • 42. Conhecendo o arquivo de simulação - radioTest ● SN.wirelessChannel.onlyStaticNodes = false - Indica que a simulação terá nós móveis. Os parâmetros abaixo foram desligados para que sejam desconsiderados os efeitos de sombreamento (atenuação da onda com a distância) na simulação. ● SN.wirelessChannel.sigma = 0. ● SN.wirelessChannel.bidirectionalSigma = 0.
  • 43. Conhecendo o arquivo de simulação - radioTest ● SN.node[*].Communication.Radio.RadioParametersFile = ".. /Parameters/Radio/CC2420.txt" - o RadioParameterFile é um arquivo especialmente formatado definindo propriedades básicas de operação de rádio. ● SN.node[*].Communication.Radio.TxOutputPower = "-5dBm" - configura a potência com que o rádio transmite os seus pacotes.
  • 44. Conhecendo o arquivo de simulação - radioTest ● SN.node[9].xCoor = 10.5 - modifica um parâmetro específico do nó com índice [9]. ● É possível modificar uma grande quantidade de nós de uma só vez da seguinte maneira: ○ [*] - todos os índices ○ [3..5] - índices 3, 4 e 5 ○ [..4] - índices 0, 1, 2, 3, 4 ○ [5..] - índices 5 até o último
  • 45. Conhecendo o arquivo de simulação - radioTest ● SN.node[*].Communication.Routing.maxNetFrameSize = 2500 ● SN.node[*].Communication.MAC.maxMACFrameSize = 2500 ● SN.node[*].Communication.Radio.maxPhyFrameSize = 2500 Os Parâmetros acima configuram o máximo tamanho permitido (em bytes) do pacote em todas as camadas de comunicação: roteamento, enlace e rádio.
  • 46. Conhecendo o arquivo de simulação - radioTest ● SN.node[*].ApplicationName = "ThroughputTest" - nome da aplicação. ● SN.node[*].Application.packet_rate = 5 - taxa de pacotes entregues por segundo. ● SN.node[*].Application.constantDataPayload = 2000 - quantidade de bytes entregues em um pacote. ● SN.node[0].Application.collectTraceInfo = true - ativando o trace para o nó destinatário (nó zero) pode-se ver o padrão de entregas de arquivos pelo protocolo de aplicação.
  • 47. Conhecendo o arquivo de simulação - radioTest ● SN.node[0].xCoor = 0 - caso o usuário queira configurar o posicionamento de nós individualmente, pode-se assinalar seus eixos x, y e z pelos parâmetros xCoor, yCoor, zCoor respectivamente.
  • 48. Conhecendo o arquivo de simulação - radioTest ● SN.deployment - posiciona todos os nós em campo de uma só vez utilizando uma string pré-definida, como nos exemplos abaixo: ○ “uniform” - os nós são colocados no campo usando uma distribuição randomica e uniforme ○ “NxM” - as variáveis N e M são número inteiros. Os nós so colocados na grade de N nós por M nós. ○ “NxNxK” - mesa coisa que o de cima para três dimensões ○ “center” - nós são colocados no centro do campo
  • 49. ● Configurando mobilidade no nó zero ○ SN.node[0].MobilityManagerName = "LineMobilityManager" ○ SN.node[0].MobilityManager.updateInterval = 100 ○ SN.node[0].MobilityManager.xCoorDestination = 200 ○ SN.node[0].MobilityManager.yCoorDestination = 200 ○ SN.node[0].MobilityManager.speed = 15 ● Pode-se escolher desativar mobilidade, como a seguir: ○ SN.node[0].MobilityManagerName = "NoMobilityManager" Conhecendo o arquivo de simulação - radioTest
  • 50. Conhecendo o arquivo de simulação - radioTest ● Por padrão os protocolos de roteamento e de enlace são configurados para deixar os pacotes passarem sem nenhuma interferência por essas camada, como os próprios nomes já sugerem: ○ SN.node[*].Communication.MACProtocolName = "BypassMAC" ○ SN.node[*].Communication.RoutingProtocolName = "BypassRouting"
  • 51. Interpretando a simulação - CastaliaResults ● Ao executar o CastaliaResults sem nenhum argumento é apresentada a lista de arquivos de resultados das simulações presentes na pasta atual:
  • 52. Interpretando a simulação - CastaliaResults ● -i - permite trocar o arquivo de entrada do castaliaResults ● Ao executar, por exemplo, “CastaliaResults -i 150319-130527.txt”, o results percorre o arquivo e encontra o que a simulação do Castalia gerou nos diferentes módulos da simulação.
  • 53. Interpretando a simulação - CastaliaResults ● Cada saída tem uma dimensão NxM, onde N é o número de módulos que produziram essa saída. Módulos que são instanciados somente uma vez, como o canal sem fio, irão sempre ter o N=1. ● M é o número de diferentes índices que uma saída de um único módulo tem.
  • 54. Interpretando a simulação - CastaliaResults ● É possível especificar a saída desejada do Castalia Results com o comando -s (caso deseje ver a informação referente a cada nó acrescentar o comando -n ao final) ○ Exemplo: “CastaliaResults -i 150319-130527.txt” ● -p mostra porcentagens do total (sempre que possível)
  • 55. Interpretando o CastaliaResults - CastaliaPlot ● O CastaliaPlot imprime em gráficos as tabelas obtidas do CastaliaResults. (Comando do Results | Comando do Plot); ● Colunas Determinam coordenadas do eixo X; ● Linhas (valores das células da tabela) determinam as coordenadas do eixo Y; ● Os gráficos são coloridos automaticamente, bem como as legendas e títulos (que são extraídos das informações da tabela).
  • 56. Interpretando o CastaliaResults - CastaliaPlot (Comandos) ● -o - seleciona o arquivo de saída, o default é plot.ps; ● -s - o comando usado para configurar o estilo de impressão, os estilos suportados são: linespoints, histogram, stacked; ● -l - o comando configura a posição da legenda, a default é ‘top-right’, procure por gnuplot’s para todas as opções possíveis; ● --invert - onde você inverte a tabela então as linhas se tornam colunas.
  • 58. Exercício 1 ● Topologia: Linear ● Quantidade de nós: 10 ● 1 nó fonte e um nó sink ● Objetivo: Interpretação de testes com diferentes quantidades de pacotes enviados por segundo (5 e 10)
  • 59. Exercício 2 ● Topologia: Malha 5x5 ● Quantidade de nós: 25 ● 3 nós fonte e um nó sink ● Objetivo: Interpretação de testes com diferentes quantidades de pacotes enviados por segundo (5 e 10)