Académique Documents
Professionnel Documents
Culture Documents
VERSO PROVISRIA
Resumo
Nos ltimos anos o uso da tecnologia de redes sem-fios tem tido um crescimento elevado.
Actualmente possvel encontrar infra-estruturas de redes Wi-Fi em diversos locais, com
tendncia para aumentarem em tamanho e complexidade. Devido a esta necessidade, esto a
emergir as Redes Mesh Sem-Fios que so compostas por vrios ns rdio que se comportam
como uma nica e grande rede. Os ns encaminham tramas e cada n est ligado a um ou
mais ns, possibilitando a transmisso de tramas por caminhos diferentes, oferecendo
redundncia rede.
Este trabalho visa analisar redes mesh e testar as que utilizam o protocolo IEEE 802.11s.
Este protocolo foi implementado no simulador Network Simulator, NS-3, de forma a medir o
seu desempenho em diferentes cenrios.
iii
iv
Resumo
Abstract
In recent years the use of wireless network technology had an enormous growth.
Nowadays it is possible to find Wi-Fi network infrastructures in many places. There is also a
tendency for these networks to increase in size and complexity. Due to this need, Wi-Fi Mesh
is emerging, and they consist of several radio nodes that behave like a single large network.
The nodes forward frames and each node is connected to one or more nodes, enabling the
transmission of frames through different paths, providing redundancy to the network.
This study aims to examine and test the mesh network using the IEEE 802.11s protocol.
This protocol was implemented in the simulator Network Simulator, NS-3 in order to
measure its performance in different scenarios.
vi
Abstract
Agradecimentos
Este espao dedicado a todas as pessoas que deram a sua contribuio para que este
trabalho fosse realizado.
Em primeiro lugar agradeo ao meu co-orientador, Eng. Pedro Fortuna, pela forma como
orientou o meu trabalho. Agradeo tambm o esforo desenvolvido na leitura e sugestes de
reviso deste documento. Agradecimento especial tambm ao meu orientador, Prof. Doutor
Manuel Ricardo, pelo apoio que sempre me disponibilizou, tanto na dissertao como no
laboratrio.
Agradeo tambm minha famlia por todo o apoio e pacincia.
Por ltimo, agradeo a todos aqueles que no foram mencionados, mas que de alguma
forma tambm contriburam para a elaborao deste trabalho.
Nuno Rodrigues
vii
viii
Agradecimentos
ndice
INTRODUO .............................................................................................. 1
1.1
1.2
OBJECTIVO ........................................................................................2
1.2.1
1.2.2
1.2.3
TOPOLOGIAS ....................................................................................... 3
1.2.4
1.2.5
1.3
CONTRIBUIES ...................................................................................3
1.4
2.1.1
ARQUITECTURA .................................................................................... 6
2.1.2
2.1.3
2.1.4
2.2
2.3
2.3.1
ARQUITECTURA ................................................................................... 15
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
OPERAES MESH................................................................................. 39
2.3.8
IMPLEMENTAO ....................................................................................... 47
ix
ndice
3.1
INTRODUO .................................................................................... 47
3.2
3.3
3.4
DESENVOLVIMENTO .............................................................................. 48
3.3.1
3.3.2
3.3.3
3.5
CONCLUSO ..................................................................................... 63
INTRODUO .................................................................................... 65
4.2
TESTES .......................................................................................... 65
4.3
RESULTADOS .................................................................................... 69
4.4
CONCLUSES .................................................................................... 74
CONCLUSES ............................................................................................ 75
5.1
5.2
5.3
CONTRIBUIES ................................................................................. 76
5.4
REFERNCIAS ............................................................................................ 77
Lista de figuras
xi
xii
Lista de figuras
Lista de tabelas
Tabela 2.1 Combinaes dos diversos campos de endereos na trama MAC da norma IEEE
802.11.......................................................................................................... 12
Tabela 2.2 - Combinaes e respectiva descrio do campo Address Extension Mode ..... 20
Tabela 2.3 Valores do campo Category do Action Field........................................ 21
Tabela 2.4 Valores do Campo Action Field Value do Action Field ........................... 21
Tabela 2.5 Formato do campo body numa trama Beacon ...................................... 22
Tabela 2.6 Formato do campo body numa trama Probe Request............................. 23
Tabela 2.7 Formato do campo body numa trama Probe Response ........................... 23
Tabela 2.8 Formato do campo body numa trama Peer Link Open............................ 24
Tabela 2.9 - Formato do campo body numa trama Peer Link Confirm ........................ 24
Tabela 2.10 - Formato do campo body numa trama Peer Link Close .......................... 25
Tabela 2.11 Formato do campo body numa trama Link Metric Request .................... 25
Tabela 2.12 - Formato do campo body numa trama Link Metric Request .................... 25
Tabela 2.13 - Formato do campo body numa trama Path Request............................. 26
Tabela 2.14 - Formato do campo body numa trama Path Reply ................................ 26
Tabela 2.15 - Formato do campo body numa trama Path Error ................................ 27
Tabela 2.16 - Formato do campo body numa trama Root Announcement .................... 27
Tabela 2.17 - Formato do campo body numa trama Portal Announcement .................. 27
Tabela 2.18 Principais Information elements necessrios para operar o protocolo IEEE
802.11s......................................................................................................... 30
Tabela 3.1 - Atribuies do subcampo subtype .................................................... 52
Tabela 3.2 Resumo das tramas usadas na implementao .................................... 53
Tabela 3.3 Variveis de uma entrada na tabela de routing ................................... 57
xiii
xiv
Lista de tabelas
ACK
Acknowledgment
AODV
AP
Access Point
API
BS
Base Station
BSS
CP
Contention Period
CSMA/CA
CSMA/CD
CTS
Clear To Send
DCF
DS
Distribution System
DSSS
ESS
FCS
FHSS
GSM
HWMP
IBSS
IEEE
IETF
IP
Internet Protocol
ISM
LAN
LLC
LWMP
Light Weight MP
MAC
MANET
Ad-Hoc NETwork
xv
xvi
MAP
MSDU
NS-3
Network Simulator 3
OFDM
OLSR
OSI
PC
Point Coordinator
PCF
PERR
Path Error
PHP
Hypertext Preprocessor
PHY
Physical Layer
PREP
Path Reply
PREQ
Path Request
RREQ
Route Request
RTS
Request To Send
SSID
STA
Station
TG
Task Group
TSF
TU
Time Units
WLAN
WMN
Captulo 1
Introduo
Este captulo oferece uma viso global do trabalho desenvolvido e reportado na presente
dissertao. Aps uma breve exposio do tema abordado, so descritos os objectivos e, por
ltimo, apresentada a estrutura da dissertao.
1.1
Tema e Contexto
Nestes ltimos anos o uso da tecnologia de redes sem-fios tem tido um grande
crescimento. Actualmente possvel encontrar infra-estruturas de redes Wi-Fi em
variadssimos locais, existindo a tendncia destas redes aumentarem em tamanho e
complexidade. Devido a esta necessidade, est a emergir uma nova tecnologia, denominada
por Wi-Fi Mesh ou Redes Mesh Sem-Fios (Wireless Mesh Network, WMN), que dita permitir
ao utilizador final acesso sem-fios contnuo s aplicaes de banda larga, virtualmente em
qualquer momento e em qualquer lugar.
As WMN podero mudar as nossas vidas ao longo dos prximos anos. A tecnologia mesh
sem-fios, apesar de existir j h algum tempo, nunca teve um papel to importante como
recentemente. medida que a popularidade das WMN aumenta, os utilizadores finais
solicitam uma maior largura de banda, melhor cobertura e uma melhor fiabilidade. Ainda no
h um standard oficial para as WMNs aprovado at data. Contudo, e devido ao forte
mercado que esta tecnologia est a atrair, o Institute of Electrical and Electronics Engineers
(IEEE) formou um grupo de trabalho para ajudar na criao de um standard. Esse grupo de
trabalho foi denominado Task Group (TG) S, cujo nome de cdigo 802.11s [1] para
reformular o IEEE 802.11. As redes mesh seguem os mesmos princpios de funcionamento das
Introduo
MANETs (redes Ad-Hoc), mas funcionam no nvel 2 da camada OSI, usando endereos MAC.
Para a descoberta de caminhos entre os ns, o 802.11s recorre a adaptaes de protocolos de
routing. Estas redes suportam tambm a interligao com redes estruturadas atravs de
gateways.
Na altura em que este documento foi escrito o TG criou um draft que responde maioria
dos pedidos que redes mesh sem-fios necessitam.
1.2
Objectivo
Introduo
1.2.3 Topologias
De forma a validar vrias topologias associadas ao problema de troca de tramas em redes
mesh, vo ser testados mltiplos cenrios, pois s assim ser possvel obter-se uma validao
consolidada relativamente implementao da rede mesh que est a ser desenvolvida.
1.3
Contribuies
Esta dissertao visa o estudo do desempenho do protocolo IEEE 802.11s. Neste momento
ainda no h nenhum estudo, pelo menos pblico, do mesmo. Os resultados que foram
obtidos desta implementao podero ser usados para futuras revises e anlises do protocolo
desenvolvido.
Introduo
1.4
Estrutura da dissertao
Captulo 2
Redes Locais Sem-Fios
Neste captulo realizada uma breve apresentao sobre as redes baseadas na norma IEEE
802.11 (Redes Wi-Fi). So tambm apresentadas as Redes Mesh Sem-Fios.
Este captulo apresenta uma descrio detalhada do protocolo IEEE 802.11s e descrito o
protocolo de routing Hybrid Wireless Mesh Protocol (HWMP).
2.1
A norma IEEE 802.11 [3], norma base das redes Wi-Fi, fornece as especificaes que
permitem a conectividade entre estaes sem-fios e infra-estruturas de redes cabladas. Tal
como as outras normas da famlia IEEE 802, esta norma tambm define as especificaes da
camada fsica (PHY), nvel 1 do modelo de referncia OSI, e as especificaes da camada de
controlo de acesso ao meio (MAC). O nvel 2 do modelo de referncia OSI, a camada de
ligao de dados, a combinao da camada de controlo de acesso ao meio e a camada de
controlo da ligao lgica (LLC), especificada na norma IEEE 802.2.
De forma a ilustrar a localizao da norma IEEE 802.11 no modelo de referncia OSI
segue-se a seguinte imagem.
2.1.1 Arquitectura
A arquitectura da norma IEEE 802.11 consiste em vrios componentes que interagem de
forma a que seja possvel a formao de uma rede local sem-fios com suporte de mobilidade
de estaes de uma forma transparente para as camadas superiores. Os seus componentes so
apresentados a seguir:
AP (Access Point) So estaes anlogas s estaes base das redes de
comunicao mveis, permitindo a operao da rede no modo de infraestrutura.
STA (Station) qualquer dispositivo que implemente as camadas fsica e de
acesso ao meio da norma IEEE 802.11. Por exemplo um interface de rede WiFi de um computador.
BSS (Basic Service Set) Representa um grupo de estaes que esto sob o
controlo de um AP, utilizando o modo de operao denominado de Infraestrutura.
IBSS (Independent Basic Service Set) Representa um grupo de estaes que
no utilizam a estrutura de comunicao fornecida pelo AP. As estaes
comunicam directamente umas com as outras. Este modo de operao
denominado de Ad-hoc.
DS (Distribution System) um meio pela qual os APs comunicam entre si. A
norma IEEE 802.11 no especifica a tecnologia deste sistema, podendo ser
baseado em qualquer tecnologia de rede, sendo a mais comum a tecnologia
Ethernet.
ESS (Extended Service Set) Representa um conjunto de BSSs interligados
atravs de um sistema de distribuio (DS). A possibilidade de interligar vrios
BSSs permite aumentar a rea de cobertura, levando a que seja possvel uma
maior mobilidade das estaes.
Portal a entidade que interliga o sistema de distribuio a outros tipos de
redes. Se a outra rede for da famlia IEEE 802.X, a funo desta entidade
semelhante a uma bridge.
Segue-se uma ilustrao de uma rede Wi-Fi em modo de infra-estrutura com dois BSSs
interligados por um sistema de distribuio, formando assim um ESS. Por sua vez o sistema de
distribuio est ligado a um portal que permite o acesso a uma rede da famlia IEEE 802.X.
BSS2
STA
STA
Access Point
(AP)
ESS
Portal
802.X
Access Point
(AP)
BSS1
STA
STA
STA
IBSS
STA
STA
STA
Em qualquer um dos modos de operao a rede identificada pelo nome dado pelo SSID
(Service Set Identifier).
Um n Ad-Hoc constri dinamicamente a tabela de encaminhamento para quando
necessrio calcular o caminho com a melhor mtrica entre ele e outros ns. As redes Ad-Hoc
tm alteraes frequentes na qualidade da ligao e a topologia pode alterar-se
frequentemente. Estas alteraes fazem com que os ns consumam mais energia por no
poderem entrar num estado de poupana de energia. Para resolver estes problemas, as
MANETs usam 2 tipos de protocolos routing Ad-Hoc: reactivo e proactivo.
Os protocolos de routing Ad-Hoc reactivo calculam as rotas a pedido inundando a rede
com pacotes Route Request (RREQ). Isto introduz um atraso porque os ns tm de calcular a
rota antes de enviar os pacotes, mas os ns apenas usam os recursos da rede quando
necessrio. O protocolo reactivo mais usado nas redes Ad-Hoc o Ad-Hoc On-Demand
Distance Vector (AODV) Routing [4].
Os protocolos de routing Ad-Hoc proactivo tentam manter, permanentemente, as rotas
usando trfico de controlo contnuo para calcular caminhos optimizados. Este protocolo
tambm detecta a ligao a ns vizinhos usando mensagens de HELLO, e inunda a rede
atravs dos MultiPoint Relaying (MPR) que um tipo de n que optimiza a ligao porque
limita o nmero de ns que tm que retransmitir pacotes. O protocolo proactivo mais usado
em redes Ad-Hoc o Optimized Link-State Routing protocol (OLSR). O OLSR efectua uma
10
2.1.4.1
11
Tramas MAC
A figura seguinte apresenta o formato de uma trama MAC, sendo esta composta por um
cabealho (MAC Header), pelo contedo (Frame Body) e por um campo utilizado para
verificao de redundncia cclica (Frame Check Sequence).
Octetos:
2
Frame
Control
2
6
6
6
2
6
Duration
Sequence
Address 1 Address 2 Address 3
Address 4
ID
Control
2
QoS
Control
0-2312
Body
FCS
Cabealho MAC
Cabealho MAC
Duration/ID Nas tramas do tipo Power Save Poll o campo contm a
identidade da associao da estao emissora. Nos outros tipos de tramas
indica a durao at transmisso da prxima trama.
Campos de Endereo (Address 1, Address 2, Address 3, Address 4)
Combinao dos seguintes tipos de endereos:
o
12
To DS
From DS
Address 1
Address 2
Address 3
Address 4
DA
SA
BSSID
N/D
DA
BSSID
SA
N/D
BSSID
SA
DA
N/D
RA
TA
DA
SA
Tabela 2.1 Combinaes dos diversos campos de endereos na trama MAC da norma IEEE 802.11
O Campo FCS (Frame Check Sequence) um CRC (Cyclic Redundancy Check) calculado
sobre todos os campos do cabealho e contedo da trama. utilizado para a estao
receptora verificar a integridade da trama.
Figura 2.6 Formato do campo de controlo de uma trama MAC da norma IEEE 802.11
13
Pwr Mgt Indica se a estao que enviou a trama est no modo de baixo
consumo (Power Save).
More Data Indica a uma estao que se encontra em modo de baixo
consumo (Power Save) que viro mais tramas.
WEP Indica que o contedo da trama est encriptado.
Order Indica que as tramas recebidas tero que ser processadas pelo seu
nmero de sequncia.
14
2.2
Rede Mesh Sem-Fios, em ingls WMN (Wireless Mesh Network) uma rede de
comunicaes feita a partir de ns rdio, nos quais tem que haver pelo menos dois caminhos
de comunicao para cada n. Deste modo possvel transmitir dados de um n para outro
por diferentes caminhos. A rea de cobertura dos ns torna-se uma nuvem Mesh (mesh cloud).
O acesso a esta nuvem mesh torna-se possvel porque os ns trabalham em harmonia uns com
os outros, tornando possvel a criao de uma rede rdio coesa. Portanto a rede fivel e
oferece redundncia.
A principal caracterstica das redes mesh sem-fios a comunicao sem-fios entre ns
atravs de um ou mais saltos, idntico a uma rede Ad-Hoc. Protocolos de routing eficientes
fornecem os melhores caminhos atravs da rede mesh e respondem eficazmente a alteraes
na topologia da rede. Isto permite que os ns mesh possam comunicar uns com os outros
mesmo que no estejam no seu alcance. No caminho, os ns intermdios, iro encaminhar as
tramas para o seu destino.
Ao contrrio das redes GSM, quando existe uma falha numa estao base (base station,
BS) pode disputar a uma indisponibilidade dos servios de comunicao numa determinada
rea geogrfica, no entanto as WMNs fornecem tolerncia falha, mesmo quando alguns ns
falham. Apesar dos protocolos e a arquitectura das redes sem-fios Ad-Hoc serem parecidas s
WMNs, estes tm um fraco desempenho quando aplicados s WMNs. Para alm do
considerado, factores como a ineficincia dos protocolos, interferncias de fontes externas
que partilham o mesmo espectro e a escassez de espectro electromagntico reduzem a
capacidade de comunicao de uma rede WMN que usa apenas uma frequncia rdio. Para
melhorar a capacidade das WMNs est actualmente em desenvolvimento a comunicao via
multi-radio, usando diversas frequncias simultaneamente.
2.3
15
Em 2003, devidos aos interesses do IEEE, foi formado um grupo de trabalho que levou
formao do Task Group (TG) S da norma 802.11. O IEEE 802.11s foi formado para
desenvolver um standard para as WMNs. O objectivo do grupo de trabalho do 802.11s
alterar o protocolo MAC IEEE 802.11 para permitir que as tramas broadcast/multicast e
unicast sejam entregues a servios na camada MAC usando mtricas radio-aware.
2.3.1 Arquitectura
Uma rede mesh sem-fios uma rede baseada inteiramente na rede sem-fios IEEE 802.11,
mas que usa comunicaes multi-hop para encaminhar trfego de e para pontos de Internet
com fio, entre ns e entre diferentes redes mesh. A rede mesh sem-fios usa a camada fsica e
o acesso ao meio (MAC) do protocolo 802.11 para fornecer funcionalidades de uma rede mesh.
Como demonstrado na Figura 2.7, estaes na mesma frequncia rdio partilham um
Basic Service Set (BSS) IEEE 802.11, que consiste num AP imvel e nas STAs. Para cobrir uma
maior rea necessrio um Extended Service Set (ESS). Um ESS formado por vrios APs
interligados por um Distribution Service (DS), normalmente uma rede cablada. O protocolo
IEEE 802.11s introduz novos elementos ao ESS: Mesh Point (MP), Mesh Access Point (MAP) e
Mesh Portal (MPP).
16
O AP 802.11, conhecido como MP quando usado numa rede mesh sem-fios, estabelece
ligaes sem-fios uns com os outros para permitir uma aprendizagem automtica da
topologia, assim como uma configurao dinmica dos caminhos para trocarem dados entre
si. As ligaes MP para MP criam um backbone sem-fios que fornecem aos utilizadores, a um
custo reduzido, largura de banda elevada e servios de interligao multi-salto sem falhas
com um nmero limitado de pontos de entrada de Internet e interligao com outros
utilizadores dentro da rede. Cada MP pode, opcionalmente, fornecer servios que permitam a
comunicao com as estaes 802.11 neste contexto denominadas legacy mobile stations
(STAs). Estes dispositivos so denominados por Mesh Access Points (MAPs). Os MAPs tm,
portanto, exactamente a mesma funcionalidade de um MP, mas fornecem servios BSS para
suportar a comunicao com os STAs. Os MAPs tm um papel fundamental no protocolo IEEE
802.11s porque so estes dispositivos que permitem a retro-compatibilidade.
Os MPPs so MPs que permitem bridging entre a rede mesh e a rede cablada. Existe um
dispositivo extra, de inferior relevo, chamado Light Weight MP (LWMP) que participa
principalmente na comunicao dos servios de ligao entre vizinhos.
A Figura 2.8 ilustra a relao entre os diferentes tipos de ns mesh.
O MP pode ser configurado como um root MP. Um root MP ir estabelecer uma poltica de
manuteno de rotas, enviando um Root Announcement periodicamente, para informar os
restantes MPs. Esses MPs podero responder-lhe permitindo assim ao root MP ter uma viso
global de toda a rede.
O protocolo IEEE 802.11s foi desenvolvido para permitir um tamanho de 32 MPs [8].
17
2.3.2.1
Trama de Dados
A trama de dados IEEE 802.11s estruturalmente igual trama do mesmo tipo IEEE
802.11 viabilizando assim a compatibilidade com o protocolo IEEE 802.11.
Octetos:
2
Frame
Control
2
6
6
6
2
6
2
Duration
Sequence
QoS
Address 1 Address 2 Address 3
Address 4
ID
Control
Control
Octetos:
0-2312
Body
FCS
5-23
Mesh
Header
Varivel
Dados
Figura 2.9 - Formato de uma trama MAC de dados na norma IEEE 802.11s
2.3.2.2
Trama de Controlo
18
2.3.2.3
Trama de Gesto
A trama de gesto IEEE 802.11s estruturalmente igual trama do mesmo tipo IEEE
802.11 viabilizando assim a compatibilidade entre protocolo IEEE 802.11.
Octetos:
2
Frame
Control
2
6
6
6
2
Duration
Sequence
Address 1 Address 2 Address 3
ID
Control
Octetos:
5-23
Mesh
Header
0-2312
Body
FCS
Varivel
Action Field
Figura 2.10 Formato de uma trama MAC de gesto na norma IEEE 802.11s
19
2.3.3.1
Mesh Header
A figura seguinte apresenta o formato do campo Mesh Header, sendo esta composta
por 4 subcampos. Este campo usado nas tramas de dados mesh assim como nas tramas mesh
de gesto.
Octetos:
Bits:
1
3
Mesh Time to Mesh Sequence
Mesh Flags
Live (TTL)
Number
2
Address Extension
(AE) Mode
0, 6, 12 ou 18
Mesh Address
Extension
6
Reserved
2.3.3.1.1
Descrio
Tamanho
Tipo de
(bytes)
trama
00
Dados
01
Gesto
20
Endereo 4
(Multihop
Action)
10
11
12
Dados
Gesto
18
(Multihop
Action)
2.3.3.2
Action Field
A figura seguinte apresenta o formato do campo Action Field, sendo esta composta
por 3 subcampos. Este campo permite estender as aces de gesto e portanto usado para
diferenciar as diferentes tramas e formatos da trama.
Octetos:
1
Category
1
Action field
value
Varivel
Action Details
2.3.3.2.1
21
Category
Valor do campo
Significado
Utilidade
30
31
32
Seleco de caminho
33
Mesh Interworking
Anunciar Portal
34
Category
35
Opes de segurana
(MSA)
2.3.3.2.2
Tipo de Trama
Action Field
Category
30
30
30
31
31
Path Request
32
Path Reply
32
Path Error
32
Root Announcement
32
Portal Announcement
33
34
34
34
34
MDAOP Advertisement
34
34
34
34
34
22
2.3.4.1
Beacon
Informao
Nmero de Octetos
Timestamp
8 octetos
Beacon interval
2 octetos
Capability Information
2 octetos
Notas
2 a 34 octetos
Supported rates
2 a 10 octetos
DS Parameter Set
3 octetos
MeshID
2 a 34 octetos
Mesh Configuration
21 octetos
12
Beacon Timing
7 a 7+n*10 octetos
n definido pelo
nmero de vizinhos
n definido peo
nmero de vizinhos
2.3.4.2
23
Probe Request
O Probe Request utilizado para o MP se dar a conhecer aos seus vizinhos, feito
portanto de forma activa.
Campo Body de uma trama Probe Request
Ordem
1
Informao
Service Set Identifier
(SSID)
Nmero de Octetos
Notas
2 a 34 octetos
Supported rates
2 a 10 octetos
MeshID
2 a 34 octetos
2.3.4.3
Probe Response
O Probe Response utilizado para responder ao Probe Request. portanto utilizado pelos
vizinhos do MP que emitiu o Probe Request para fornecer os dados da rede em que o vizinho
est.
Campo Body de uma trama Probe Response
Ordem
Informao
Nmero de Octetos
Timestamp
8 octetos
Beacon interval
2 octetos
Capability Information
2 octetos
Notas
2 a 34 octetos
Supported rates
2 a 10 octetos
DS Parameter Set
3 octetos
MeshID
2 a 34 octetos
Mesh Configuration
21 octetos
12
Beacon Timing
4 a 4 + 6*n + ceil(n/8)
n definido pelo
octetos
nmero de vizinhos
7 a 7+n*10 octetos
n definido pelo
nmero de vizinhos
24
2.3.4.4
A trama Peer Link Open usada para abrir uma ligao entre vizinhos.
Campo Body de uma trama Peer Link Open
Ordem
Informao
Nmero de Octetos
Category
1 octeto
Action Value
1 octeto
Capability Information
1 octeto
Supported rates
2 a 10 octetos
MeshID
2 a 34 octetos
Mesh Configuration
21 octetos
7 ou 9 octetos
Notas
Tabela 2.8 Formato do campo body numa trama Peer Link Open
2.3.4.5
A trama Peer Link Confirm usada para confirmar uma ligao entre vizinhos.
Campo Body de uma trama Peer Link Confirm
Ordem
Informao
Nmero de Octetos
Category
1 octeto
Action Value
1 octeto
Capability Information
1 octeto
Status Code
2 octetos
AID
2 octetos
Supported rates
2 a 10 octetos
2 octetos
MeshID
2 a 34 octetos
Mesh Configuration
21 octetos
7 ou 9 octetos
Tabela 2.9 - Formato do campo body numa trama Peer Link Confirm
2.3.4.6
A trama Peer Link Close usada para terminar uma ligao entre vizinhos.
Notas
25
Informao
Nmero de Octetos
Category
1 octeto
Action Value
1 octeto
Reason code
1 octeto
7 ou 9 octetos
Notas
Tabela 2.10 - Formato do campo body numa trama Peer Link Close
2.3.4.7
A trama Link Metric Request usada entre MPs para pedir a informao da mtrica
dessa mesma ligao.
Campo Body de uma trama Link Metric Request
Ordem
Informao
Nmero de Octetos
Category
1 octeto
Action Value
1 octeto
Notas
Tabela 2.11 Formato do campo body numa trama Link Metric Request
2.3.4.8
A trama Link Metric Response usada entre MPs para responder ao pedido da mtrica
dessa mesma ligao.
Campo Body de uma trama Link Metric Request
Ordem
Informao
Nmero de Octetos
Category
1 octeto
Action Value
1 octeto
2 a 130 octetos
Tabela 2.12 - Formato do campo body numa trama Link Metric Request
Notas
26
2.3.4.9
Path Request
A trama Path Request transmitida por um MP, fonte, para descobrir o caminho para um
outro MP, destino, usando o protocolo HWMP definido em 2.3.8. Pode ser transmitida para um
ou mais endereos MAC.
Campo Body de uma trama Path Request
Ordem
Informao
Nmero de Octetos
Category
1 octeto
Action Value
1 octeto
Varivel
Notas
Ordem
Informao
Nmero de Octetos
Category
1 octeto
Action Value
1 octeto
Varivel
Notas
Informao
Nmero de Octetos
Category
1 octeto
Notas
27
Action Value
1 octeto
Varivel
Informao
Nmero de Octetos
Category
1 octeto
Action Value
1 octeto
Root Announcement
element
Notas
19 octetos
2.3.4.13
Portal Announcement
A trama Portal Annouccement transmitida por um MPP para anunciar a sua presena na
rede mesh. Pode ser transmitida para um ou mais endereos MAC.
Campo Body de uma trama Portal Announcement
Ordem
Informao
Nmero de Bits/Octetos
Category
1 octeto
Action Value
1 octeto
Portal Announcement
element
Notas
19 octetos
28
Timestamp
2.3.5.2
Beacon interval
O elemento beacon interval representa o nmero de unidades de tempo (time units, TUs)
entre tempos de transmisso de beacons. O elemento ilustrado na Figura 2.14.
2.3.5.3
Capability Information
Este elemento contm um nmero de subcampos que so usados para indicar capacidades
opcionais. Podem ser usadas para pedir ou demonstrar uma determinada capacidade.
29
2.3.5.4
Reason Code
Este elemento usado nas respostas das tramas de gesto para indicar sucesso ou falha no
pedido de uma determinada operao.
2.3.5.5
Association ID (AID)
30
Information element
Element ID
2 at 34
Supported rates
3 at 10
DS Parameter Set
12
20
Mesh ID
<ANA 37>
2 at 34
Mesh Configuration
<ANA 36>
21
<ANA 42>
4 at 257
<ANA 40>
5 at 9
<ANA 38>
3 at 257
<ANA 51>
19
<ANA 52>
19
<ANA 53>
39 at 257
<ANA 54>
34 at 257
<ANA 55>
14
Tabela 2.18 Principais Information elements necessrios para operar o protocolo IEEE 802.11s
2.3.6.1
O subcampo SSID possui o nome da rede. O comprimento do subcampo SSID varia entre
0 e 32 octetos. Um comprimento nulo usado para indicar um wildcard SSID. Este ltimo
usado por ns mesh, para no permitem a ligao e possveis confuses com STAs.
2.3.6.2
31
Supported rates
O elemento Supported rates especifica at 8 taxas de transmisso. Este pode ter entre 1 a
8 octetos, em que cada octeto especifica uma nica taxa de transmisso. Se ultrapassar 8
taxas de transmisso, dever ser gerado um novo elemento, Extended Supported Rate, para
especificar as restantes taxas.
2.3.6.3
DS Parameter Set
Este elemento contm a informao sobre o nmero do canal permitido para ser usado
pelos MPs para usarem a DSSS PHY.
2.3.6.4
Este elemento fornece informao necessria por um MP para operar correctamente o QoS
durante o perodo de conteno (contention period, CP), perodo de tempo controlado pelo
mecanismo CSMA/CA.
32
2.3.6.5
Mesh ID
O subcampo Mesh ID possui o nome da rede mesh. Este elemento est contido em
tramas Beacon, Probe Request, Peer Link Open e Peer Link Confirm.
O Mesh ID similar ao SSID, mas o Mesh ID usado por ns mesh para descobrirem a
sua rede mesh, evitando assim eventuais confuses com os STAs.
2.3.6.6
Mesh Configuration
O elemento Mesh Configuration usado para anunciar os servios mesh. Est contido
em tramas Beacon, Peer Link Open e Peer Link Confirm.
2.3.6.7
33
Este elemento usado por um MP para anunciar os MPs a qual est ligado e os seus modos
de gesto de energia.
O elemento contm a lista de endereos MAC de todos os ns mesh a que est ligado.
Possui o subcampo MP Control que contm o informao do relatrio de conectividade, se
estiver a 0 significa que no est a ser usado.
2.3.6.8
Este elemento transmitido por um MP para gerir uma ligao com outro MP. O formato
deste elemento est ilustrado em baixo.
34
2.3.6.9
Flags Reservado.
Hopcount Indica o nmero de saltos desde o originador at ao MP.
Time to Live Nmero mximo de saltos permitidos.
Originator Address Endereo MAC do MPP que origina este elemento.
Sequence Number Nmero de sequncia especfico do MPP, sempre diferente
em cada PANN, e usada pelo MP para descobrir PANN repetidos.
Metric Indica a mtrica acumulada desde o originador at ao MP.
35
Flags Bit 0: Igual a 1 MPP, 0 no. O resto dos bits esto reservados.
Hopcount Indica o nmero de saltos desde o originador (root MP) at ao MP.
Time to Live Nmero mximo de saltos permitidos.
Originator Address Endereo MAC do MPP que origina este elemento.
Destination Sequence Number Nmero de sequncia especfico do root MP.
Metric Indica a mtrica acumulada desde o originador at ao MP.
36
37
38
39
Quando os MPs se ligam tm que executar uma sequncia de operaes antes de comear
a trocar informao. Uma das formas de perceber o mecanismo do IEEE 802.11s observar
essa sequncia.
MP 1
MP 2
Neighbor Discovery
(operao 1, 2 e 3)
2. Seleco do canal;
(operao 4)
3. Mesh beaconing;
Link State Discovery
(operao 5)
2.3.7.1
Os Mesh Points necessitam de ter informao suficiente sobre eles e sobre os potenciais
vizinhos. Este processo usa Beacons ou Probe Requests (se usar busca activa) para detectar
potenciais vizinhos mesh.
Para ser formar uma rede mesh necessrio que os MPs partilhem um mesmo perfil mesh,
perfil este que tem que ser nico nessa mesma rede. Um perfil consiste num Mesh ID e num
protocolo de routing. O Mesh ID tem o mesmo objectivo que o SSID, usado para agrupar MPs
para que eles possam formar uma rede mesh. usado o Mesh ID e no o SSID, para que no
40
exista confuso com ns no-mesh, STAs, sendo portanto o SSID colocado com um valor
denominado wildcard, nulo.
O objectivo primordial que o MP descubra as propriedades de um MP vizinho para que
possa avaliar se este pode pertencer rede mesh. O MP usa busca activa ou passiva para
descobrir os seus vizinhos e no caso da busca passiva (na busca activa o processo idntico),
um MP considerado vizinho se, e s se, as seguintes condies forem cumpridas:
1. Um beacon recebido desse MP.
MP 1
MP 2
Beacon
Beacon
2.3.7.2
41
O protocolo que gere as ligaes mesh responsvel por estabelecer e desligar as ligaes
entre MPs vizinhos. um processo contnuo que monitoriza os vizinhos para detectar e tratar
alteraes na conectividade.
Os MPs devero conseguir estabelecer pelo menos a ligao a um vizinho. Eles no
devero transmitir tramas de dados nem tramas de gesto, que no as necessrias, enquanto
no descobrirem e estabelecerem ligao com vizinhos. Se uma tentativa de ligao a um
vizinho MP falhar, o MP dever marcar esse vizinho como no sendo um candidato possvel na
sua tabela de vizinhos e ignor-lo.
O MP quando quer criar uma ligao com o MP vizinho envia uma trama Peer Link Open. O
MP vizinho dever responder com uma trama Peer Link Confirm se o Peer Link Open estiver
de acordo com o protocolo em vigor. A trama Peer Link Close usada para informar o
receptor que aquela ligao terminou. Uma ligao estabelecida com sucesso se os 2 MPs
enviaram, receberam e processaram correctamente um Peer Link Open e um Peer Link
Confirm.
Os MPs emitem beacons em broadcast para permitem aos vizinhos saber que estes esto
activos. Se um MP no receber beacons durante o perodo de tempo definido no protocolo
IEEE 802.11s, 10 segundos, a rota para o vizinho expira.
2.3.7.3
42
2.3.7.4
43
44
2.3.8.1
6
2
9
4
Ligao estabelecida
Sentido do PREQ
Sentido do PREP
O HWMP uma adaptao do AODV feito para trabalhar no nvel 2, da camada OSI, e
portanto troca todos os IPs e referncias a IP para MAC e endereos MAC. Para alm desta
adaptao, o HWMP, utiliza ainda alguns mecanismos do AODV original, como: descoberta de
45
caminhos, manuteno de rotas, guardar o melhor candidato para uma determinada rota,
confirmao de rotas e erros de rotas.
Para ser possvel a compatibilidade com dispositivos STA, os MAPs criam e administram as
mensagens criadas pelos STAs que esto associados ao mesmo. Esta funcionalidade similar
situao quando um MP tem mltiplos endereos. O endereo do STA associado pode ser
pensado como um endereo alias do MAP. No entanto os handoffs dos STAs, devido ao
roaming, podem tornar uma rota obsoleta.
2.3.8.2
46
tramas que vm de fora da rede mesh para o portal root MP para ele tratar do
encaminhamento.
root MP
6
2
9
4
Ligao estabelecida
Trama Inicial
Tramas depois da descoberta da rota
Figura 2.37 - Usando routing baseado em rvore, MP 2 precisa de rota para MP 9
Captulo 3
Implementao
3.1
Introduo
Este captulo oferece uma viso sobre o desenvolvimento do cdigo usado para responder
aos objectivos propostos. includa uma explicao da escolha da plataforma de simulao
NS-3 e as simplificaes feitas ao protocolo IEEE 802.11s para facilitar a implementao no
simulador.
3.2
Plataforma de desenvolvimento
Para criar um ambiente de testes eficiente e que reflectisse a realidade, foi usada a
plataforma de simulao NS-3. O NS-3 um simulador de redes desenvolvido para efeitos
acadmicos. Este simulador em vez de fazer a simulao em tempo real usa o conceito de
tempo da simulao, dado que as simulaes so por eventos discretos. O que caracteriza
este tipo de simulaes o facto do tempo da simulao ser descontnuo. Por exemplo se
acontecer um evento ea no instante ta do tempo da simulao e for sucedido pelo evento eb, o
qual acontece no instante tb do tempo da simulao, o tempo simulado salta de ta para tb.
Isto apenas acontece se no acontecer nenhum evento de interesse entre esses dois tempos.
O NS-3 uma ferramenta open-source, desenvolvida na linguagem C++, com interface em
Python opcional, que possui uma extensa documentao da Application Programming
Interface (API). Esta ferramenta possui facilidades na procura de eventuais erros, permite
47
48
Implementao
logging e estatsticas, tudo de importante valor para as simulaes que se pretendem nesta
dissertao.
3.3
Simplificaes no protocolo
3.4
Desenvolvimento
ns3::AdhocWifiMac
ns3::NqapWifiMac
ns3::NqstaWifiMac
ns3::MPMac
Implementao
49
A classe WifiMac usada para fornecer o nvel MAC a dispositivos Wi-Fi a simular e foi
usada com o mesmo fim para o MP. Essa mesma classe est inserida no modelo Wi-Fi do NS-3.
Point-to-Point Model
Devices
Wifi Models
Bridge
CSMA Model
O desenvolvimento teve 3 etapas principais: desenvolver novas tramas, criar o MP, e criar
e associar o routing HWMP ao MP. Na primeira etapa foram criados todos os elementos
necessrios para as tramas de forma a operar a rede mesh IEEE 802.11s. Na segunda etapa foi
desenvolvido o MP para este estabelecer ligaes sem-fios entre MPs e para permitir uma
aprendizagem automtica da topologia. Por fim, foi desenvolvido o routing para permitir aos
MPs adquirem rotas atravs do protocolo HWMP.
void
WifiMacHeader::SetTypeMeshData (void)
{
m_ctrlType = TYPE_802dot11s_DATA;
m_ctrlSubtype = SUBTYPE_802dot11s_DATA;
}
50
Implementao
bool
WifiMacHeader::IsMeshData (void) const
{
if (m_ctrlType == TYPE_802dot11s_DATA && m_ctrlSubtype == SUBTYPE_802dot11s_DATA)
return true;
else
return false;
}
Alterando o Frame Control para esse valor altera a trama para uma trama de dados
mesh. No entanto necessrio anexar ao Body o Mesh Header, definido em 2.3.3.1. O Mesh
Header foi criado da seguinte maneira:
class MeshHeader
{
public:
MeshHeader ();
~MeshHeader ();
void SetMeshFlags (uint8_t ae);
uint8_t GetMeshFlags (void);
void SetTTL (uint8_t TTL);
uint8_t GetTTL (void);
void SetMeshSequenceNumber (uint32_t MeshSequenceNumber);
uint32_t GetMeshSequenceNumber (void);
void SetMeshAddressExtension (MeshAddressExtension addext);
uint32_t GetLength (void) const;
uint32_t GetSerializedSize (void) const;
void Serialize (Buffer::Iterator start) const;
uint32_t Deserialize (Buffer::Iterator start);
private:
MeshFlags m_flags;
uint8_t m_TTL;
static uint32_t m_MeshSequenceNumber;
MeshAddressExtension m_addext;
uint32_t m_length;
};
Este novo elemento foi desenvolvido recorrendo criao de uma classe com os mtodos
e argumentos descritos no protocolo IEEE 802.11s. Os trs mtodos a negrito, uint32_t
GetSerializedSize
(void)
const, void
Serialize
(Buffer::Iterator
Implementao
51
Como possvel observar, o elemento Mesh Configuration, tambm possui os mesmos trs
mtodos, necessrios ao NS-3, com o mesmo intuito dos anteriores.
Em todos os elementos os argumentos foram mantidos como private e s os mtodos
que podem aceder-lhes. Foi implementado desta forma por dois motivos: manter a lgica de
programao do NS-3 e por motivo de heranas de classes.
Apesar do NS-3 j ter o nvel 1 implementado, foi necessrio fazer algumas alteraes em
classes desse mesmo nvel. Para que as tramas de dados mesh fossem tratadas como tal foi
necessrio adicionar as seguintes linhas de cdigo no mtodo da classe MacLow que gere esse
nvel 1, da camada OSI:
void
MacLow::ReceiveOk (Ptr<Packet> packet, double rxSnr, WifiMode txMode, WifiPreamble
preamble)
{
52
Implementao
NS_ASSERT (m_sendAckEvent.IsExpired ());
m_sendAckEvent = Simulator::Schedule (GetSifs (),
&MacLow::SendAckAfterData, this,
hdr.GetAddr2 (),
hdr.GetDuration (),
txMode,
rxSnr);
}
goto rxPacket;
}
else if (hdr.GetAddr1 ().IsBroadcast ())
{
if (hdr.IsData () || hdr.IsMgt () || hdr.IsMeshData())
{
MY_DEBUG ("rx broadcast from=" << hdr.GetAddr2 ());
goto rxPacket;
}
else
{
// DROP.
}
}
Isto necessrio, para que os mtodos da classe MacLow mandem um ACK, trama de
controlo que confirma recepo, caso contrrio, seria interpretada como uma trama de dados
mal recebida, e aguardaria uma retransmisso.
2
Protocol
Version
Protocol
Version
00
Subtype
Pwr Mgt
Type
Subtype
To DS
From DS
More
Frag
Retry
Pwr Mgt
More
Data
Protected
Frame
Order
Figura 3.3 - Campo Frame Control de uma trama de gesto IEEE 802.11s
Para definir todas as tramas de gesto o subcampo Subtype necessitada de ser alterado.
As possveis combinaes esto descritas na Tabela 3.1.
Subcampo Subtype
Tipo de Trama
1000
Beacon
0100
Probe Request
0101
Probe Response
1101
Action
1111
MultiHop Action
Tabela 3.1 - Atribuies do subcampo subtype
Implementao
53
Quando o Subtype do Frame Control igual a 1101 (valor em bits), significa que a
trama do subtipo Action. Se for igual a 1111 (valor em bits) uma trama do subtipo
Multihop Action. Nestes casos, existe a necessidade de substituir o campo Body pelo Mesh
Header, definido em 2.3.3.1, e o Action Field, para permitir a distino e utilizao das
diversas tramas Action e tambm Multihop Action.
Frame control
Tipo de Trama
Body
Mesh
Action Field
Type
Subtype
Outros
Beacon
00
1000
To/FromDs = 1
No tem
Probe Request
00
0100
To/FromDs = 1
No tem
Probe Response
00
0101
To/FromDs = 1
No tem
00
1101
To/FromDs = 1
Sim
30
00
1101
To/FromDs = 1
Sim
30
00
1101
To/FromDs = 1
Sim
30
00
1101
To/FromDs = 1
Sim
31
00
1101
To/FromDs = 1
Sim
31
Path Request
00
1101
To/FromDs = 1
Sim
32
Path Reply
00
1101
To/FromDs = 1
Sim
32
Path Error
00
1101
To/FromDs = 1
Sim
32
Root Announcement
00
1101
To/FromDs = 1
Sim
32
Portal Announcement
00
1101
To/FromDs = 1
Sim
33
Header
Category
A.F. Value
To/FromDs = 1
Data
11
0000
Sim
= 0/1
Tabela 3.2 Resumo das tramas usadas na implementao
No tem
54
Implementao
}
}
Implementao
55
iterator->m_prob_req_retry++;
SendProbeRequest (iterator->m_macaddress);
iterator->m_lifetime = Simulator::Now ().GetSeconds();
}
break;
case 2: //Peering
if (iterator->m_lifetime + m_dot11MeshRetryTimeout.GetSeconds() < time
)
{
if(iterator->m_peer_link_open == m_dot11MeshMaxRetries+1)
{
iterator = m_linklist.m_linklist.erase(iterator);
--iterator;
break;
}
iterator->m_peer_link_open++;
SendPeerLinkOpen (iterator->m_macaddress);
iterator->m_lifetime = Simulator::Now ().GetSeconds();
}
break;
case 3: //ok
break;
case 4: //nok
break;
}
}
if(!m_linklist.IsAllOk())
m_linkEvent = Simulator::Schedule (Seconds (3.0), &MPMac::TLinkPeer,
this);
}
Este mtodo funciona como uma mquina de estados que permite ao MP progredir desde a
descoberta dos vizinhos at ligao entre os mesmos. No final se alguma das ligaes ainda
no estiver operacional criado um evento para dai a 3 segundos (tempo de simulao), este
mtodo ser chamado novamente.
Todas as tramas recebidas, de gesto e dados, so recebidas pelo mtodo Receive, que
de uma forma sinttica tem a seguinte forma:
void
MPMac::Receive (Ptr<Packet> packet, WifiMacHeader const *hdr)
{
if(m_firsttime)
{
m_firsttime = false;
m_linkEvent = Simulator::Schedule (Seconds (3.0), &MPMac::TLinkPeer, this);
if(IsRootMP())
m_rannEvent = Simulator::Schedule (m_dot11MeshHWMPrannInterval, &MPMac::SendRANN,
this);
}
if (hdr->IsMeshData ()) // Tratar dados mesh
{}
else if (hdr->IsBeacon ()) // Tratar beacon
{}
else if (hdr->IsProbeReq ()) // Tratar Probe Resquest
{}
else if (hdr->IsProbeResp ()) // Tratar Probe Response
{}
else if (hdr->IsACTION ()) // Tratar tramas action
{
56
Implementao
if (hdr->IsPeerLinkOpen ()) // Tratar Peer Link Open
{}
else if (hdr->IsPeerLinkConfirm()) // Tratar Peer Link Confirm
{}
else if (hdr->IsPeerLinkClose ()) // Tratar Peer Link Close
{}
else if (hdr->IsLinkMetricRequest ()) // (no implementado)
{}
else if (hdr->IsLinkMetricReport ()) // (no implementado)
{}
else if (hdr->IsPathRequest ()) // Tratar Path Request
{}
else if (hdr->IsPathReply ()) // Tratar Path Reply
{}
else if (hdr->IsPathError ()) // Tratar Path Error
{}
else if (hdr->IsRootAnnouncement ()) // Tratar Root Announcement
{}
else if (hdr->IsPortalAnnouncement ()) // Tratar Portal Announcement
{}
}
Como possvel observar pelo cdigo anterior o mtodo Receive recebe como
argumento o Body da trama, no NS-3 denominado por packet, e o cabealho da mesma. O
cabealho testado para ver o tipo de trama que foi recebida e tratado em funo disso. A
primeira vez que este mtodo invocado, ele arranca um evento para chamar o mtodo
TLinkPeer, para tratar de possveis ligaes e ou geri-las. No caso de ser um root MP,
arrancado um evento para enviar Root Announcements para anunciar a sua presena como
root MP.
Como no mtodo Receive, que o MP recebe todas as tramas de gesto e de dados,
tambm l que so mandadas enviar as confirmaes a pedidos e no caso das tramas de
dados, l que se faz o pedido de rota, no caso de ser necessrio. Para enviar uma qualquer
trama no NS-3 necessrio adicion-la a uma fila que est no nvel 1, para depois esse
mesmo nvel tratar de transmiti-la para o meio quando for possvel. Como existe uma
necessidade constante de enviar tanto tramas de dados como de gesto, foi necessrio criar
duas filas com prioridades diferentes para enviar essas tramas. A ideia foi evitar um atraso
excessivo nas tramas de gesto. Ou seja, existe uma fila de prioridade superior para as
tramas de gesto, quando essa fila tem algo para ser enviado, sempre enviado antes de
olhar para a fila que possui as tramas de dados.
Implementao
57
Descrio
Mac48Address m_destAddr
uint32_t m_destSeqNumber
Nmero de sequncia
uint32_t m_destPreqID
Mac48Address m_nextAddr
uint32_t m_destHops
double m_airtime
double m_lifetime
uint8_t m_retry
uint8_t m_flags
PREP
no
foi
recebido,
necessrio
retransmitir PREQ.
4 - Nmero de retransmisses expirou.
5 - A rota j no actualizada muito tempo,
lifetime expirou.
Uint8_t m_rt_to_root
A tabela de routing pode ter um nmero ilimitado de entradas. Cada MP tem a sua tabela
de routing que iniciada quando o MP tem pelo menos uma ligao estabelecida a um
vizinho. O diagrama da Figura 3.4 usado quando a tabela de routing iniciada, quando no
h um root MP ou quando um MP est a usar a rota via um root MP, mas quer um caminho
melhor.
58
Implementao
Enviar PREQ
Espera do PREP
Tempo expirou
PREP recebido
Atingiu o
limite de
tentativas?
Rota actual
No
Sim
Recebe PERR
Rota expirou
Recebe PREP
para este
MP?
No
Reenviar PREP para destino
Sim
Implementao
59
Recebe PREQ
Tenho as
rotas
pedidas?
No
Reenviar PREQ
Sim
Enviar PREP
No
Respondeu
a todas as
rotas do
PREQ?
Sim
Todo este processo gerido pelo mtodo TRouting que est brevemente descrito em
baixo:
void
MPMac::TRouting (void)
{
std::list<RoutingTableEntry>::iterator iterator;
for (iterator=m_rtable.m_table.begin(); iterator!=m_rtable.m_table.end(); ++iterator)
{
double time = Simulator::Now ().GetSeconds();
switch (iterator->m_flags) {
case 0: // Initial state of rtable entry
break;
case 1: // The PREQ was sent, waiting for PREP
if ((iterator->m_lifetime + m_dot11MeshHWMPpreqMinInterval) < time )
iterator->m_flags = 3;
break;
case 2: // The PREP was received and the table is actual
if ((iterator->m_lifetime + m_dot11MeshHWMPpreqMinInterval) < time )
{
iterator->m_flags = 5;
iterator->m_lifetime = Simulator::Now().GetSeconds();
}
60
Implementao
SendPERR(perr);
}
break;
}
}
m_routingEvent = Simulator::Schedule (Seconds (2.0), &MPMac::TRouting, this);
}
Os principais elementos usados pela tabela de routing, e portanto pelo routing so: Path
Request (PREQ), Path Reply (PREP), Path Error (PERR), Root Annoucement (RANN) e o Portal
Annoucement (PANN). Como j foi referido anteriormente, todos os elementos foram
desenvolvidos a partir da especificao do IEEE. Outro exemplo o Path Reply cuja classe foi
denominada por PREPInformation, descrita abaixo:
class PREPInformation
{
public:
PREPInformation ();
void SetID (uint8_t id);
uint8_t GetID(void) const;
void SetFlags (uint8_t flags);
uint8_t GetFlags (void);
void SetHopcount (uint8_t hopcount);
uint8_t GetHopcount (void);
void SetTTL (uint8_t ttl);
uint8_t GetTTL (void);
void SetDestinationMAC (Mac48Address originatormac);
Mac48Address GetDestinationMAC (void);
void SetDestinationSequenceNumber (uint64_t destinationsequencenumber);
uint64_t GetDestinationSequenceNumber (void);
void SetProxiedAddress (Mac48Address proxiedaddress);
Mac48Address GetProxiedAddress (void);
Implementao
61
Este elemento, tal como o PREQ, tem um tamanho varivel. O tamanho, neste caso,
determinado pelo nmero de rotas que o MP que vai o PREP possui do PREQ que recebeu. Em
termos de cdigo esse valor reflectido no tamanho do array cujo tipo PREPOriginator. O
tipo PREPOriginator responsvel pelo segmento do elemento PREP descrito na Figura 3.7.
Foi desenvolvida uma outra classe, denominada PREPOriginator para tratar do segmento
varivel. Esta classe descrita a seguir:
62
Implementao
class PREPOriginator
{
public:
PREPOriginator ();
void SetDependentMPMACAddress(Mac48Address dependentmpmacaddress);
Mac48Address GetDependentMPMACAddress(void);
void SetDependentMPDSN(uint64_t dependentmpdsn);
uint64_t GetDependentMPDSN(void);
uint32_t GetSerializedSize (void) const;
void Serialize (Buffer::Iterator &i) const;
uint32_t Deserialize (Buffer::Iterator &i);
private:
Mac48Address m_dependentmpmacaddress;
uint64_t m_dependentmpdsn;
};
Quando existe uma classe que usada por outra, necessrio alterar os mtodos Serialize
e Deserialize para receberem no o iterador mas a posio do iterador. Isto necessrio
porque os dois mtodos chamam esses outros mtodos, com o mesmo nome, mas da outra
classe, como demonstrado aqui:
void
PREPInformation::Serialize (Buffer::Iterator start) const
{
Buffer::Iterator i = start;
uint8_t j = 0;
i.WriteU8 (m_id);
i.WriteU8 (m_length);
i.WriteU8 (m_flags);
i.WriteU8 (m_hopcount);
i.WriteU8 (m_ttl);
WriteTo (i, m_destinationmac);
i.WriteU64 (m_destinationsequencenumber);
if(m_proxiedaddresson)
WriteTo (i, m_proxiedaddress);
i.WriteU64 (m_lifetime);
i.WriteU64 (m_metric);
WriteTo (i, m_originatormac);
i.WriteU64 (m_originatorsequencenumber);
i.WriteU8 (m_dependentMPCount);
while (j != m_dependentMPCount)
{
m_preporiginator[j].Serialize (i);
j++;
}
}
Se no fosse alterado, o iterador iria apenas colocar no buffer o ltimo elemento do array
m_preporiginator porque o iterador nunca era incrementado, escrevendo j+1 vezes, no
mesmo local no buffer, ficando o elemento j por ser o ltimo.
Implementao
3.5
63
Concluso
Descobrir MPs
Vizinhos encontrados
No
Necessrio enviar dados
Dados recebidos
Tudo
tratado?
Dados
Destinados
a este MP?
Existe rota?
No
No
Provm de
um vizinho
conhecido?
Sim
Sim
No
Tratar da rota
64
Implementao
gesto. Quando no existe uma rota na tabela de routing feito um pedido para a mesma ser
actualizada. O mtodo que trata da tabela de routing encarrega-se de tentar encontrar a rota
e f-lo segundo a Figura 3.4. Enquanto a rota encontrada, essa trama colocada numa fila
temporria. Os dados que esto nesta fila so tratados sempre que necessrio enviar dados,
ou seja, so verificadas todas as tramas que se encontram na fila temporria para ver se j
existe uma rota para elas e so enviadas.
Quando o MP recebe dados ele verifica que tipo so. No caso de ter recebido uma trama
de gesto esta gerida em funo do que , por exemplo, se tiver recebido um PREQ, o MP
verifica se tem a(s) rota(s) no PREQ e envia o PREP ou reenvia o PREQ conforme for
necessrio. No caso de serem tramas de dados e forem para ele, ele encaminha o body da
trama para o nvel superior. No entanto, se as tramas de dados no forem destinadas a ele, o
MP verifica se tem rota para o destino e envia-as, ou coloca-as na fila temporria para
posterior envio.
A descoberta de MPs, gesto de ligaes, tratamento de rotas, envio e recepo de
tramas foi criado para ocorrer em simultneo, para simular um MP o mais real possvel.
Captulo 4
Experimentao e Resultados
4.1
Introduo
4.2
Testes
65
66
Experimentao e Resultados
d = 90
metros
Figura 4.1 Comunicaes entre ns (tipo 1)
A topologia escolhida para o cenrio 2 para permitir descobrir diferenas entre o uso ou
no de um root MP est apresentada na Figura 4.3.
Experimentao e Resultados
67
root MP
Figura 4.4 Cenrio 3 idntico ao cenrio 1, mas com espaamento de 100 metros
68
Experimentao e Resultados
d = 110
metros
Figura 4.5 Comunicaes entre ns (tipo 2)
Por fim, para tirar concluses sobre o impacto que a densidade de ns tem na
escalabilidade foi criado um quarto cenrio com 64 ns IEEE 802.11s. Esse cenrio est
tambm ilustrado na Figura 4.6. A comunicao entre ns igual ao do cenrio 1, ou seja,
segundo a Figura 4.1.
Os testes foram executados 10 vezes para cada nmero de emissores, feita a mdia dos
valores e os resultados apresentados na prxima seco.
Experimentao e Resultados
4.3
69
Resultados
Os resultados foram obtidos atravs do tratamento do ficheiro de sada gerado pelo NS-3.
Foi utilizada a linguagem PHP (Hypertext Preprocessor) para efectuar o tratamento de todos
os dados relativos aos ficheiros de sada. A aplicao obtm os seguintes valores de cada
experincia realizada:
Atraso.
Jitter.
Nmero total de tramas transmitido.
Nmero total de bytes transmitido.
Trfego transportado pela rede.
Percentagem de retransmisses.
Foi calculado atraso mdio das tramas. O atraso o intervalo de tempo que o MP envia
uma trama para a fila para ser tratada pelo nvel 1, at a trama chegar ao receptor.
Tempo (segundos)
Atraso
18,0000
16,0000
14,0000
12,0000
10,0000
8,0000
6,0000
4,0000
2,0000
0,0000
Cenrio 1
Cenrio 2
Cenrio 3
Cenrio 4
16
32
64
Nmero de ns emissores
Figura 4.7 Atraso
70
Experimentao e Resultados
Para saber a variao do atraso mdio na entrega dos dados, foi calculado o Jitter. O
jitter mdulo da diferena entre o atraso de duas tramas consecutivas Esta medida
estatstica demonstrada na Figura 4.8.
Jitter
Tempo (segundos)
3,5000
3,0000
2,5000
Cenrio 1
2,0000
Cenrio 2
1,5000
Cenrio 3
1,0000
Cenrio 4
0,5000
0,0000
2
16
32
64
Nmero de ns emissores
Figura 4.8 Jitter
O grfico anterior permite concluir que o jitter considervel. Isto implica que para
aplicaes de tempo real produza uma recepo no regular das tramas, ou seja, as tramas
podero ser recebidas no pela ordem que so enviadas. O jitter varia entre 0 a 2,9
segundos.
Foi criado o grfico da Figura 4.9 para ver a evoluo das tramas e bytes recebidos com
sucesso com o aumento de ns emissores.
Experimentao e Resultados
71
100000
Cenrio 1
80000
Cenrio 2
60000
Cenrio 3
40000
Cenrio 4
20000
0
2
16
32
64
Nmero de ns emissores
Figura 4.9 Tramas recebidos com sucesso
50000000
Cenrio 1
40000000
Cenrio 2
30000000
Cenrio 3
20000000
Cenrio 4
10000000
0
2
16
32
64
Nmero de ns emissores
Figura 4.10 Bytes recebidos com sucesso
Os dois grficos de cima, Figura 4.9 e Figura 4.10, apresentam forma de curva
semelhantes com valores diferentes. Esta observao permite concluir que as tramas tm um
tamanho mdio constante, no sendo os grficos exactamente iguais porque as tramas de
gesto, ao contrrio das de dados, no tm um tamanho fixo. possvel observar que os trs
primeiros cenrios possuem um nmero superior e crescente de tramas e bytes recebidos
medida que o nmero de emissores aumenta comparando com o cenrio 4. Este ltimo
cenrio apresenta um decrscimo significativo tanto de tramas como de bytes recebidos com
sucesso.
72
Experimentao e Resultados
De modo a ter uma ideia do trfego transportado pela rede foi criado o grfico da Figura
4.11.
Mbit/s
Cenrio 1
Cenrio 2
Cenrio 3
Cenrio 4
16
32
64
Nmero de ns emissores
Figura 4.11 Trfego transportado pela rede
O trfego transportado pela rede para 2 e 4 ns emissores muito baixo, mas a partir de
8 ns emissores j se pode observar um trfego de cerca de 15 Mbit/s para os quatro
cenrios. Todos os cenrios atingiram mais de 16 Mbit/s aos 32 ns. Uma importante
observao que o cenrio 4 chegou ao limite de 17,6 MBit/s aos 32 ns mantendo esse valor
para 64 ns. Esta observao permite concluir que o cenrio 4 foi ao limite da escalabilidade
da rede.
Para aferir a validade das comunicaes nos diferentes cenrios foi calculada a
percentagem de retransmisses demonstrada na Figura 4.12.
Experimentao e Resultados
73
Percentagem de retransmisses
Percentagem de Retransmisses
50,00%
45,00%
40,00%
35,00%
30,00%
25,00%
20,00%
15,00%
10,00%
5,00%
0,00%
Cenrio 1
Cenrio 2
Cenrio 3
Cenrio 4
16
32
64
Nmero de ns emissores
Figura 4.12 Percentagem de Retransmisses
74
Experimentao e Resultados
4.4
Concluses
Captulo 5
Concluses
Este ltimo captulo apresenta uma sntese do trabalho reportado neste documento,
referindo
as
concluses
retidas.
So
tambm
apresentadas
as
perspectivas
de
desenvolvimento futuro.
5.1
75
76
Concluses
5.2
Resultados obtidos
No mbito do presente trabalho, para que fosse possivel alcanar os objectivos propostos,
foi efectuada a implementao do protocolo IEEE 802.11s, adaptando-o de forma a que fosse
possivel o seu funcionamento em NS-3.
5.3
Contribuies
5.4
Desenvolvimento futuro
Referncias
[1].
IEEE
802.11s.
D1.07.
Draft
STANDARD
for
Information
Technology-
78
Referncias
Referncias
79
[28]. Faccin, Stefano M.; Wijting, Carl; Kneckt, Jarkko; Damle, Ameya. Mesh Wlan
Networks: Cpncept and System Design. 2006.
[29]. Lee, Myung J.; Zheng, Jianliang; Ko, Young-Bar; Shrestha, Deepesh Man.
Emerging Standards For Wireless Mesh Technology. 2006.