Primeiro Trabalho:
Desempenho de protocolos de encaminhamento
em redes ad hoc móveis
Rodolfo Oliveira e Luís Bernardo
[email protected]
Redes Móveis e Ad Hoc
2011/2012
1. Objectivos
Neste trabalho pretende-‐se realizar uma análise comparativa do desempenho de quatro protocolos de encaminhamento propostos para redes ad hoc. Os protocolos a caracterizar são o AODV (“Ad hoc On Demand Distance Vector”), o DSDV (“Destination-‐Sequenced Distance-‐Vector”), o DSR (“Dynamic Source Routing”) e o OLSR (“Optimized Link State Routing”).
A análise é baseada em simulação, efectuada utilizando o simulador ns-‐2 (ler informação disponível no sítio da cadeira). Pretende-‐se simular uma rede ad hoc onde os nós utilizam o nível físico e o sub-‐ nível MAC da norma IEEE 802.11, tendo cada nó um alcance de rádio de 100 metros. Os nós movimentam-‐se numa área de 600 x 200 metros de acordo com o modelo de mobilidade “random-‐ waypoint”.
A análise caracteriza o comportamento dos quatro protocolos face ao número de vizinhos de cada nó (densidade de nós) e face à mobilidade dos nós. Para testar os protocolos, cada nó gera pacotes destinados aos seus vizinhos (o endereço de destino é gerado aleatoriamente), percebendo-‐se através do trace se o pacote foi recebido e, caso seja, qual o tempo que demorou até atingir o destino. A geração desses pacotes é realizada de acordo com a média de geração definida pelo utilizador. A Tabela 1 especifica os parâmetros a usar nos diferentes cenários de simulação.
Tabela 1 – Número total de nós e média de geração de pacotes; nº total de nós [nós] nº médio de vizinhos
[nós] Média de geração de pacotes [pacote/s/nó]
10 1.62 1.0000 15 2.93 0.6667 20 4.24 0.5000 30 6.85 0.3333 40 9.47 0.2500
Quanto à mobilidade dos nós, pretendem-‐se simular os cinco cenários caracterizados na tabela 2, a qual apresenta a parametrização do modelo de mobilidade “random waypoint” para atingir os valores de velocidade média representados.
Tabela 2 – Parametrização dos cenários de mobilidade utilizando o modelo de mobilidade “random waypoint”;
Velocidade
média [m/s] Pausa [s] Velocidade mínima [m/s] Velocidade máxima [m/s]
0 2 0.00001 0.0001 1 2 0.5 1.72 2 2 0.5 5.3 10 2 5.0 19.75 28 1 20.0 45.0
3
2. Metodologia para a realização das simulações
Nesta secção assume-‐se que a versão do simulador se encontra instalada na pasta ns-‐allinone-‐ 2.34/ns-‐2.34/. Para melhor organizar os ficheiros saídos da simulação, é facultada uma pasta denominada t1 a qual define sub-‐pastas e scripts necessários à simulação. De seguida, apresentam-‐ se algumas descrições relativas à constituição da pasta t1, na qual se recolhem os dados de saída (ficheiros de trace) das simulações.
Geração dos padrões de mobilidade
O primeiro passo para definir as simulações consiste em gerar os padrões de mobilidade dos nós. Os padrões de mobilidade são configurados com o tempo de pausa e com as velocidades mínimas e máximas apresentadas na Tabela 2.
Na pasta ns-‐allinone-‐2.34/ns-‐2.34/indep-‐utils/cmu-‐scen-‐gen/setdest/ encontram-‐se 5 scripts contendo as parametrizações dos cinco padrões (radhoc_mob_0; radhoc_mob_1; radhoc_mob_2; radhoc_mob_10; radhoc_mob_28).
Para realizar os padrões de mobilidade devem ser executados os scripts para cada número de nós considerado (10, 15, 20, 30 e 40). Para isso, pode-‐se usar o parâmetro opcional que indica o número de nós considerado no padrão. Os vinte e cinco padrões (5 velocidades x 5 valores de nós) devem ser denominados “scen_vX_nY”, onde X representa o valor da velocidade média e Y o número de nós considerados. Os scripts geram automaticamente um ficheiro de saída com um nome compatível. Como exemplo, executa-‐se o comando no terminal:
./radhoc_mob_1 20
quando se efectua a realização do padrão de mobilidade com 20 nós e velocidade média 1, gerando-‐ se um ficheiro com o nome “scen_v1_n20”.
Após os cenários terem sido todos gerados, devem ser copiados para a pasta t1/mob_scen/ (consultar o anexo no final deste enunciado para operações básicas da linha de comando linux).
Geração dos padrões de pedidos de encaminhamento
Para gerar os 5 padrões de pedidos de encaminhamento deve utilizar-‐se a ferramenta offline_query_generator contida na pasta ns-‐allinone-‐2.34/ns-‐2.34/mst/offline_query_generator/. Os padrões de pedidos são parametrizados de acordo com o conteúdo da Tabela 1.
Os cinco padrões devem ser denominados “load_nY”, onde Y representa o número de nós considerados. Quando se invoca um comando em Unix (no caso, o script offline_query_generator), é possível redirecionar o output da execução do script para um ficheiro de saída utilizando o sinal >. Por exemplo, para redireccionar o output da execução do script offline_query_generator para o ficheiro load_n10, poder-‐se-‐ia usar o comando
./offline_query_generator [parâmetros] > load_n10
Após os cenários terem sido todos gerados, devem ser copiados para a pasta t1/load_scen/ (consultar o anexo no final deste enunciado para operações básicas da linha de comando linux).
Execução das simulações
Após terem sido gerados os padrões de mobilidade e de pedidos de encaminhamento, devem executar-‐se os scripts Tcl para realizar as simulações. A realização dos scripts Tcl está automatizada, bastando completar o script make_scripts contido na pasta t11. O script make_scripts cria novos
scripts Tcl alterando os parâmetros do script Tcl “my_first_routing_script.tcl” (é alterado o número de nós, o valor de velocidade média, o tipo de fila de espera e o tipo de protocolo a simular). O ficheiro “my_first_routing_script.tcl” apresenta uma variável denominada semente, a qual deverá tomar o maior número do aluno que constitui o grupo de trabalho. Como a semente é a sequência que inicia o gerador de número aleatório, e para que as simulações tenham significado estatístico, pretende-‐se que para cada cenário a simular se repitam as simulações com valores de sementes diferentes (semente, semente + 10, semente + 20, semente + 30, semente + 40). Dessa forma, o script make_scripts deverá ser devidamente alterado de forma a automatizar este caso.
Após a realização dos scripts Tcl, estes podem ser executados para um determinado protocolo, executando para isso o script run_X, onde X representa o protocolo. Os ficheiros de trace são guardados na pasta t1/traces, à medida que as simulações vão terminando, com o nome “out_X_nY_vZ.tr”, onde X representa o nome do protocolo de encaminhamento, Y o número de nós considerado e Z o cenário de mobilidade. Sugere-‐se que no decorrer do trabalho acrescente uma extensão ao nome dos ficheiros para lidar com as várias sementes.
3. Análise dos dados
Após terem sido executadas todas as simulações, os ficheiros de trace das simulações devem encontrar-‐se na pasta t1/traces. Os ficheiros de trace “out_X_nY_vZ.tr” (ou com mais um campo) contêm a informação da aplicação de geração de pedidos de encaminhamento. Para que a informação contida nestes ficheiros seja tratada, deve-‐se apagar um conjunto de linhas que reportam casos extraordinários ocorridos durante a simulação, os quais não contém informação importante para a análise. Para apagar as linhas indesejadas, é fornecido um filtro no script “filter_tr” na pasta t1/traces. Este filtro apaga as linhas do ficheiro *.tr, transformando-‐o num ficheiro do tipo *.trm.
O ficheiro de trace filtrado pode depois ser analisado utilizando a aplicação Octave. São facultados os ficheiros “make_routing_statistics.m” e “make_all_stats.m” na pasta t1/traces. Estes ficheiros, a utilizar no Octave (o script também é executável em Matlab), analisam todos os pedidos de encaminhamento, verificando quais os pedidos que são executados com sucesso e qual o motivo do insucesso na constituição do caminho. Daí se calcula a taxa média de sucesso do protocolo nas condições simuladas. Nos pedidos com sucesso, o Octave analisa ainda o tempo entre o instante em que o pacote é enviado até ao instante em que é recebido pelo nó de destino. Este tempo é designado de tempo de entrega, sendo também apresentada a sua média. O ficheiro “make_routing_statistics.m” está realizado para tratar um só ficheiro (uma simulação). Como são utilizadas 5 simulações diferentes com as diferentes sementes, o ficheiro
1 As simulações do protocolo AODV necessitam de utilizar uma fila de espera “ifq” do tipo Queue/DropTail/PriQueue,
5
“make_routing_statistics.m” deverá ser alterado para calcular as estatísticas das 5 sementes para cada cenário simulado.
4. Apresentação dos resultados
Os resultados simulados e analisados devem ser apresentados e discutidos num pequeno relatório. Pretende-‐se que o relatório seja muito objectivo, não podendo ultrapassar as 5 páginas úteis. O relatório deve conter somente duas secções com a seguinte informação:
Secção de resultados
-‐ 5 gráficos (um por cada conjunto de nós, 10, 15, etc.) onde é comparado o sucesso médio de entrega obtido pelos 4 protocolos nos diversos cenários (cada gráfico é composto por 4 curvas representando cada protocolo; o eixo dos x deve representar os valores de mobilidade 0, 1, 2,…, 28, m/s, e o eixo dos y o sucesso médio de entrega obtido nas diversas simulações);
-‐ 5 gráficos (um por cada conjunto de nós, 10, 15, etc.) onde é comparado o tempo médio de entrega obtido pelos 4 protocolos nos diversos cenários (cada gráfico é composto por 4 curvas representando cada protocolo; o eixo dos x deve representar os valores de mobilidade 0, 1, 2,…, 28, m/s, e o eixo dos y o tempo médio de entrega);
Figura 1 – Proposta para o gráfico de sucesso de entrega.
-‐ para todos os resultados apresentados devem ser exibidos os respectivos intervalos de confiança (através de uma tabela) utilizando a distribuição de t-‐student com nível de confiança a 95%.
Secção de justificação dos resultados
Nesta secção deverá ser dada uma justificação para os diferentes comportamentos dos protocolos face aos valores de mobilidade e de densidade de nós adoptados neste trabalho. Deverá utilizar-‐se informação acerca do funcionamento dos protocolos (da parte teórica da disciplina) para justificar os resultados apresentados nos 5 gráficos.
5. Desenvolvimento do trabalho
O desenvolvimento deste trabalho decorre durante cinco semanas, sendo a aula da primeira semana dedicada à introdução ao simulador de redes ns-‐2. Enumera-‐se de seguida uma orientação cronolágica dos objectivos a atingir no final de cada semana:
Semana 1 -‐ deve ler a documentação sobre o simulador ns-‐2 (disponível no sítio da cadeira) e realizar o exemplo proposto no documento. Após a realização da simulação deve observar os ficheiros de trace, interpretando-‐os com a ajuda do documento sobre o simulador; Semana 2 -‐ deve ter obtido os vinte e cinco ficheiros dos padrões de mobilidade dos nós para os diferentes cenários a simular; Deve ter obtido os padrões de pedidos de encaminhamento e constituído o scripts tcl para as simulações de cada protocolo; Deve ainda ter iniciado as simulações do protocolo DSDV;
Semana 3 -‐ deve ter simulado os protocolos DSR, AODV e OLSR; Semana 4 -‐ deve ter finalizado a análise de todas as simulações;
Semana 5 -‐ deve ter realizado um pequeno documento onde são apresentados os resultados e retiradas as devidas conclusões;
A data para entrega do trabalho é dia 23 de Outubro, às 12:00
Deverá ser entregue o documento com os resultados, e um ficheiro comprimido contendo os ficheiros de trace tcl e .m utilizados.
7
Anexo I – operações básicas na linha de comando Linux
Apagar o ficheiro “a”: rm a
Mudar o nome do ficheiro “a” para ficheiro “b”: mov a b Exibir o conteúdo do ficheiro “a” na linha de comandos: cat a
Exibir as últimas 10 linhas do conteúdo do ficheiro “a” na linha de comandos: tail –n 10 a Exibir o conteúdo do ficheiro “a” no editor gedit: gedit a&
Criar uma pasta “b”: mkdir b Mover-‐se para uma pasta a: cd a Mover-‐se para a pasta anterior: cd .. Listar o conteúdo de uma pasta: ll Listar o conteúdo de uma pasta: ls
Pode encontrar várias páginas na Internet com uma lista mais exaustiva de comandos. Por exemplo:
http://www.unixguide.net/linux/linuxshortcuts.shtml