You are on page 1of 46

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

–Modelos de Mobilidade . –Padrões variam de acordo com ambiente • Representação dos movimentos –Traces.Avaliação • Cenário –Nós se movimentando.

• Usado para cenários específicos .Traces • Captura de movimentos reais de entidades móveis • Posterior avaliação sobre tal padrão de movimentação.

–Densidade.Modelos de Mobilidade • Cada modelo procura representar um padrão de mobilidade. de acordo com o modelo. • Permite a variação de elementos como: –Número de nós. . –Entre outros. –Velocidade.

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 .

• Submeter o modelo a comparações entre os já implantados com base nas métricas de [2]. .Objetivos • Implantar o modelo de mobilidade proposto em [1] no ambiente de simulação do NS-3.

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

se esta voltou a caminhar. ou podem seguir a mesma. •Entidades se movem aleatoriamente pelo cenário. •As seguidoras buscam outra entidade a seguir. •Outras entidades as seguem. até que as primeiras parem.Modelo de Mobilidade de Movimento Coordenado •Modelo de Mobilidade de grupos. .

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 v Velocidade sorteada aleatoriamente .

Random Waypoint NM Caminha em direção ao destino. na velocidade sorteada .

Random Waypoint NM Caminha em direção ao destino. na velocidade sorteada .

na velocidade sorteada .Random Waypoint NM Caminha em direção ao destino.

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 tp = 3 Atingido o ponto de destino. espera um tempo de pausa também randômico .

espera um tempo de pausa também randômico .Random Waypoint tp = 2 Atingido o ponto de destino.

Random Waypoint tp = 1 Atingido o ponto de destino. espera um tempo de pausa também randômico .

Random Waypoint tp = 0 Esgotado o tempo. reinicia o processo .

Random Waypoint Esgotado o tempo. reinicia o processo .

•Critérios de escolha: –Coordenadores dentro de um raio de alcance. –Coordenadores em movimento (simulação em andamento) .Coordenados •Devem escolher um coordenador a seguir.

raio d 1 d 2 Coordenador d 3 Coordenado .

•Aceleração do Coordenado é proporcional à distância do Coordenador. .Movimento do Coordenado •A cada passo do coordenador. o coordenado seta seu vetor em direção a ele.

bem como os métodos que implementar a movimentação . chamado de CoordinatedMovimentMobilityHelper •Criação da Classe CoordinatedMovimentMobilityModel.CMMM no NS-3 •Criação de um helper para viabilizar a instalação do modelo proposto.

•Install. •EscolherCoordenador. •SetPositionAllocator.Estrutura do Helper •SetMobilityModel. .

Install •Instalar o Random Waypoint numa porcentagem dos nós. . os Coordenados. •Instalar o modelo proposto no restante dos nós. •Chamar o método EscolherCoordenador. considerados Coordenadores.

i++){ mobility.Install void CoordinatedMovimentMobilityHelper::Install (NodeContainer c) { MobilityHelper mobility. "PositionAllocator". Int NCoord = ((PercentCoord / 100) * int(c. Coordinator. RandomVariableValue (ConstantVariable (2. mobility.GetN())).Get(i)). RandomVariableValue (ConstantVariable (5.Install(c. mobility. } . i < NCoord. "Speed". PointerValue (m_position)).SetPositionAllocator (m_position).Get(i)).SetMobilityModel ("ns3::RandomWaypointMobilityModel".0)).0)). for (int i = 0. "Pause".Add(c.

EscolherCoordenador (Node. i < int(c.Get(i).GetN()).GetN()). ++i) { (Idêntico ao MobilityHelper) Coordinated. } .for (int i = NCoord+1.NCoord). } for (int i = NCoord+1. Ptr<CoordinatedMovimentMobilityModel> Cmmm = object->GetObject<CoordinatedMovimentMobilityModel>(). Cmmm->SetCoordinators(Coordinator). ++i) { Ptr<Node> Node = c.Get(i)).Add(c. i < int(c.c.

. for (int i = 0. i < NCoord. Ptr<MobilityModel> mobility = Coordenador->GetObject<MobilityModel> (). Ptr<CoordinatedMovimentMobilityModel> mobility2 = Coordenado->GetObject<CoordinatedMovimentMobilityModel> ().EscolherCoordenador (Ptr<Node> Node. int NCoord) { .0. double raio = 50. i++) { Ptr<Object> Coordenador = Coordn.Get(i). (Captura a posição do Coordenado e do Coordenador e calcula a distância entre eles) .. NodeContainer Coordn.

0/distance)*dr). double vx = v*csx. Vector vel = Vector(vx.if (distance <= raio) { double dr = drand48(). double vy = v*csy. mobility2->SetDistance(distance). . double csy = abs(dy)/distance. if ( ((1.Get(j)).0). mobility2->SetVelocity(vel). mobility2->SetFollowing(Coordn. double csx = abs(dx)/distance.vy.0.0/distance)*dr) > dc ) { dc=((1.

A Classe CMMM Principais Métodos: DoStart( ). . DoWalk( ).

Chama DoWalk. com relação à distância do Coordenador.DoStart Atualiza posição e velocidade. passando o tempo que levará para alcançar o Coordenador. .

•Caso parado. . volta à DoStart.DoWalk •Verifica o estado do Coordenador (Parado ou não). inicia processo de escolha de um novo (ou o mesmo) Coordenador. •Caso em movimento.

RWP Identificação individual. .Modificações Mobility Helper Seta ID para cada nó RWP. Vetor de posições. Constant Position UpdateCoordinated.

•Gerando resultados. o projeto seguirá na busca pela solução dos problemas apresentados. •Melhorias na estrutura e em pequenas anomalias observadas no projeto original. .Considerações Finais •Embora inconcluso para a cadeira. buscar publicação.

T. Simulation Based Performance Comparison of Community Model. TCC de Lic. Basavaraju. 2009. Em Informática. [3] Tracy Camp. RPGM.S. Journal of Wireless Communications and Mobile Computing.G. Trends and Applications. 2002. [1] Jardim. UFMT. . GFMM. Manhattan Model and RWP-SS Mobility Models in MANET.Referências Bibliográficas. [2] Gowrishankar. Special Issue on Mobile Ad hoc Networking: Research. sob orientação de Linder Cândido.” A Survey of Mobility Models for Ad hoc Network Research”. S. Um Modelo de Mobilidade de Grupos para Redes Móveis Ad Hoc. 2009 First International Conference on Networks & Communications. Jeff Boleng and Vanessa Davies.

• .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].