Slide Mestre INF

Preview:

Citation preview

Implantação de um Modelo de Mobilidade de Grupos no

Network Simulator 3

Sandino B. Jardim

sandinojardim@gmail.com

Introdução•Redes sem fio

–Infra-estruturadas;

–Ad hoc;

•Avaliação;

•Simulação computacional;

•Modelos de mobilidade

•Network Simulator 3

Redes sem fio infra-estruturadas

Rede Ad Hoc

Avaliação• Cenário

–Nós se movimentando;

–Padrões variam de acordo com ambiente

• Representação dos movimentos

–Traces;

–Modelos de Mobilidade

Traces

• Captura de movimentos reais de entidades móveis

• Posterior avaliação sobre tal padrão de movimentação;

• Usado para cenários específicos

Modelos de Mobilidade

• Cada modelo procura representar um padrão de mobilidade;

• Permite a variação de elementos como:

–Número de nós;

–Velocidade;

–Densidade;

–Entre outros, de acordo com o modelo.

Modelos de Mobilidade no NS-3

•MobilityHelper

–Helper que facilita a instalação de um ou mais modelos em um ou mais nós

•MobilityModel

–Classe da qual derivam todas as outras classes que representam os MM.

MobilityHelper

MobilityModel

Exemplo uso

Objetivos

• Implantar o modelo de mobilidade proposto em [1] no ambiente de simulação do NS-3;

• Submeter o modelo a comparações entre os já implantados com base nas métricas de [2];

Motivação

• Oferecer uma nova opção de modelo de mobilidade para testes em cenários que o modelo se propõe a simular

Modelo de Mobilidade de Movimento Coordenado

•Modelo de Mobilidade de grupos;

•Entidades se movem aleatoriamente pelo cenário;

•Outras entidades as seguem, até que as primeiras parem.

•As seguidoras buscam outra entidade a seguir, ou podem seguir a mesma, se esta voltou a caminhar;

Coordenadores

Padrão de movimento idêntico ao Random Waypoint Mobility Model, descrito em [3].

Random Waypoint

Nó RWP

Random Waypoint

Destino sorteado

aleatoriamente

Random Waypoint

Velocidade sorteada aleatoriamente

v

Random Waypoint

NM Caminha em direção ao destino, na velocidade sorteada

Random Waypoint

NM Caminha em direção ao destino, na velocidade sorteada

Random Waypoint

NM Caminha em direção ao destino, na velocidade sorteada

Random Waypoint

NM Caminha em direção ao destino, na velocidade sorteada

Random Waypoint

NM Caminha em direção ao destino, na velocidade sorteada

Random Waypoint

Atingido o ponto de destino, espera um tempo de pausa também randômico

Random Waypoint

Atingido o ponto de destino, espera um tempo de pausa também randômico

tp = 3

Random Waypoint

Atingido o ponto de destino, espera um tempo de pausa também randômico

tp = 2

Random Waypoint

Atingido o ponto de destino, espera um tempo de pausa também randômico

tp = 1

Random Waypoint

Esgotado o tempo, reinicia o processo

tp = 0

Random Waypoint

Esgotado o tempo, reinicia o processo

Coordenados

•Devem escolher um coordenador a seguir;

•Critérios de escolha:

–Coordenadores dentro de um raio de alcance;

–Coordenadores em movimento (simulação em andamento)

Coordenado

raio

d1

d2

d3

Coordenador

Movimento do Coordenado

•A cada passo do coordenador, o coordenado seta seu vetor em direção a ele;

•Aceleração do Coordenado é proporcional à distância do Coordenador;

CMMM no NS-3

•Criação de um helper para viabilizar a instalação do modelo proposto, chamado de CoordinatedMovimentMobilityHelper

•Criação da Classe CoordinatedMovimentMobilityModel, bem como os métodos que implementar a movimentação

Estrutura do Helper

•SetMobilityModel;

•SetPositionAllocator;

•Install;

•EscolherCoordenador;

Install

•Instalar o Random Waypoint numa porcentagem dos nós, considerados Coordenadores;

•Instalar o modelo proposto no restante dos nós, os Coordenados;

•Chamar o método EscolherCoordenador;

Installvoid

CoordinatedMovimentMobilityHelper::Install (NodeContainer c)

{

MobilityHelper mobility;

mobility.SetMobilityModel ("ns3::RandomWaypointMobilityModel",

"Speed", RandomVariableValue (ConstantVariable (5.0)),

"Pause", RandomVariableValue (ConstantVariable (2.0)),

"PositionAllocator", PointerValue (m_position));

mobility.SetPositionAllocator (m_position);

Int NCoord = ((PercentCoord / 100) * int(c.GetN()));

for (int i = 0; i < NCoord; i++){

mobility.Install(c.Get(i));

Coordinator.Add(c.Get(i));

}

for (int i = NCoord+1; i < int(c.GetN()); ++i)

{

(Idêntico ao MobilityHelper)

Coordinated.Add(c.Get(i));

Ptr<CoordinatedMovimentMobilityModel> Cmmm =

object->GetObject<CoordinatedMovimentMobilityModel>();

Cmmm->SetCoordinators(Coordinator);

}

for (int i = NCoord+1; i < int(c.GetN()); ++i)

{

Ptr<Node> Node = c.Get(i);

EscolherCoordenador (Node,c,NCoord);

}

EscolherCoordenador (Ptr<Node> Node, NodeContainer Coordn, int NCoord)

{

...

Ptr<CoordinatedMovimentMobilityModel> mobility2 =

Coordenado->GetObject<CoordinatedMovimentMobilityModel> ();

for (int i = 0; i < NCoord; i++)

{

Ptr<Object> Coordenador = Coordn.Get(i);

Ptr<MobilityModel> mobility = Coordenador->GetObject<MobilityModel> ();

double raio = 50.0;

(Captura a posição do Coordenado e do Coordenador e calcula a distância entre eles)

if (distance <= raio)

{

double dr = drand48();

if ( ((1.0/distance)*dr) > dc )

{

dc=((1.0/distance)*dr);

double csx = abs(dx)/distance;

double csy = abs(dy)/distance;

double vx = v*csx;

double vy = v*csy;

Vector vel = Vector(vx,vy,0.0);

mobility2->SetVelocity(vel);

mobility2->SetDistance(distance);

mobility2->SetFollowing(Coordn.Get(j));

A Classe CMMM

Principais Métodos:

DoStart( );

DoWalk( );

DoStart

Atualiza posição e velocidade, com relação à distância do Coordenador;

Chama DoWalk, passando o tempo que levará para alcançar o Coordenador;

DoWalk

•Verifica o estado do Coordenador (Parado ou não);

•Caso parado, inicia processo de escolha de um novo (ou o mesmo) Coordenador;

•Caso em movimento, volta à DoStart;

ModificaçõesMobility Helper

Seta ID para cada nó RWP;

RWP

Identificação individual;

Vetor de posições;

Constant Position

UpdateCoordinated;

Considerações Finais

•Embora inconcluso para a cadeira, o projeto seguirá na busca pela solução dos problemas apresentados;

•Melhorias na estrutura e em pequenas anomalias observadas no projeto original;

•Gerando resultados, buscar publicação;

Referências Bibliográficas;[1] Jardim, S. Um Modelo de Mobilidade de Grupos para Redes Móveis

Ad Hoc. TCC de Lic. Em Informática, sob orientação de Linder Cândido. UFMT, 2009.

[2] Gowrishankar.S, Basavaraju, T.G. Simulation Based Performance Comparison of Community Model, GFMM, RPGM, Manhattan Model and RWP-SS Mobility Models in MANET. 2009 First International Conference on Networks & Communications.

[3] Tracy Camp, Jeff Boleng and Vanessa Davies,” A Survey of Mobility

Models for Ad hoc Network Research”, Special Issue on Mobile Ad hoc Networking: Research, Trends and Applications, Journal of Wireless Communications and Mobile Computing, 2002,

Etapas• 1ª Fase

• Criação de um helper para viabilizar a instalação do modelo proposto

• Implementação do modelo de mobilidade segundo o projeto final de curso realizado em 2008[1].

• 2ª Fase

– Submissão do modelo à avaliação com base nas métricas utilizadas no artigo[2].