You are on page 1of 46

Implantao de um Modelo de Mobilidade de Grupos no Network Simulator 3

Sandino B. Jardim

sandinojardim@gmail.com

Introduo
Redes sem fio Infra-estruturadas; Ad hoc; Avaliao; Simulao computacional; Modelos de mobilidade Network Simulator 3

Redes sem fio infra-estruturadas

Rede Ad Hoc

Avaliao
Cenrio Ns se movimentando; Padres variam de acordo com ambiente Representao dos movimentos Traces; Modelos de Mobilidade

Traces
Captura de movimentos reais de entidades mveis Posterior avaliao sobre tal padro de movimentao; Usado para cenrios especficos

Modelos de Mobilidade
Cada modelo procura representar um padro de mobilidade; Permite a variao de elementos como: Nmero de ns; Velocidade; Densidade; Entre outros, de acordo com o modelo.

Modelos de Mobilidade no NS-3


MobilityHelper Helper que facilita a instalao de um ou mais modelos em um ou mais ns 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 simulao do NS-3; Submeter o modelo a comparaes entre os j implantados com base nas mtricas de [2];

Motivao
Oferecer uma nova opo de modelo de mobilidade para testes em cenrios que o modelo se prope a simular

Modelo de Mobilidade de Movimento Coordenado


Modelo de Mobilidade de grupos; Entidades se movem aleatoriamente pelo cenrio; 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

Padro de movimento idntico ao Random Waypoint Mobility Model, descrito em [3].

Random Waypoint

N RWP

Random Waypoint
Destino sorteado aleatoriamente

Random Waypoint

v Velocidade sorteada aleatoriamente

Random Waypoint

NM Caminha em direo ao destino, na velocidade sorteada

Random Waypoint

NM Caminha em direo ao destino, na velocidade sorteada

Random Waypoint

NM Caminha em direo ao destino, na velocidade sorteada

Random Waypoint

NM Caminha em direo ao destino, na velocidade sorteada

Random Waypoint

NM Caminha em direo ao destino, na velocidade sorteada

Random Waypoint

Atingido o ponto de destino, espera um tempo de pausa tambm randmico

Random Waypoint

tp = 3

Atingido o ponto de destino, espera um tempo de pausa tambm randmico

Random Waypoint

tp = 2

Atingido o ponto de destino, espera um tempo de pausa tambm randmico

Random Waypoint

tp = 1

Atingido o ponto de destino, espera um tempo de pausa tambm randmico

Random Waypoint

tp = 0

Esgotado o tempo, reinicia o processo

Random Waypoint

Esgotado o tempo, reinicia o processo

Coordenados
Devem escolher um coordenador a seguir; Critrios de escolha: Coordenadores dentro de um raio de alcance; Coordenadores em movimento (simulao em andamento)

raio d 1 d 2 Coordenador

d 3

Coordenado

Movimento do Coordenado
A cada passo do coordenador, o coordenado seta seu vetor em direo a ele; Acelerao do Coordenado proporcional distncia do Coordenador;

CMMM no NS-3
Criao de um helper para viabilizar a instalao do modelo proposto, chamado de CoordinatedMovimentMobilityHelper
Criao da Classe CoordinatedMovimentMobilityModel, bem como os mtodos que implementar a movimentao

Estrutura do Helper
SetMobilityModel; SetPositionAllocator; Install; EscolherCoordenador;

Install
Instalar o Random Waypoint numa porcentagem dos ns, considerados Coordenadores; Instalar o modelo proposto no restante dos ns, os Coordenados; Chamar o mtodo EscolherCoordenador;

Install
void
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)

{
(Idntico 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 posio do Coordenado e do Coordenador e calcula a distncia 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 Mtodos: DoStart( ); DoWalk( );

DoStart
Atualiza posio e velocidade, com relao distncia do Coordenador; Chama DoWalk, passando o tempo que levar para alcanar o Coordenador;

DoWalk
Verifica o estado do Coordenador (Parado ou no); Caso parado, inicia processo de escolha de um novo (ou o mesmo) Coordenador; Caso em movimento, volta DoStart;

Modificaes
Mobility Helper Seta ID para cada n RWP; RWP Identificao individual; Vetor de posies; Constant Position UpdateCoordinated;

Consideraes Finais
Embora inconcluso para a cadeira, o projeto seguir na busca pela soluo dos problemas apresentados; Melhorias na estrutura e em pequenas anomalias observadas no projeto original; Gerando resultados, buscar publicao;

Referncias Bibliogrficas;
[1] Jardim, S. Um Modelo de Mobilidade de Grupos para Redes Mveis Ad Hoc. TCC de Lic. Em Informtica, sob orientao de Linder Cndido. 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 Criao de um helper para viabilizar a instalao do modelo proposto Implementao do modelo de mobilidade segundo o projeto final de curso realizado em 2008[1]. 2 Fase Submisso do modelo avaliao com base nas mtricas utilizadas no artigo[2].