Sei sulla pagina 1di 101

COPPE/UFRJ

ESTUDO DO TEMPO DE ACESSO AO MEIO EM REDES EM MALHA SEM FIO

Jorge Luiz Silva Peixoto

Dissertao de Mestrado apresentada ao Programa de Ps-graduao em Engenharia de Sistemas e Computao, COPPE, da Universidade Federal do Rio de Janeiro, como parte dos requisitos

necessrios obteno do ttulo de Mestre em Engenharia de Sistemas e Computao.

Orientadores: Lus Felipe Magalhes de Moraes Marcial Porto Fernandez

Rio de Janeiro Setembro de 2009

ESTUDO DO TEMPO DE ACESSO AO MEIO EM REDES EM MALHA SEM FIO

Jorge Luiz Silva Peixoto

DISSERTAO ALBERTO

SUBMETIDA COIMBRA DA

AO DE

CORPO

DOCENTE E

DO

INSTITUTO DE DE A

LUIZ

PS-GRADUAO

PESQUISA DO RIO PARA

ENGENHARIA JANEIRO

(COPPE) PARTE

UNIVERSIDADE REQUISITOS

FEDERAL

COMO

DOS

NECESSRIOS

OBTENO DO GRAU DE MESTRE EM CINCIAS EM ENGENHARIA DE SISTEMAS E COMPUTAO.

Aprovada por:

Prof. Lus Felipe Magalhes de Moraes, Ph. D.

Prof. Marcial Porto Fernandez, D. Sc.

Prof. Claudio Luis de Amorim, D. Sc.

Prof. Mrcio Portes de Albuquerque, Ph. D.

RIO DE JANEIRO, RJ  BRASIL SETEMBRO DE 2009

Peixoto, Jorge Luiz Silva Estudo do Tempo de Acesso ao Meio em Redes em Malha sem Fio/Jorge Luiz Silva Peixoto.  Rio de Janeiro: UFRJ/COPPE, 2009. XV, 86 p.: il.;

29, 7cm.

Orientadores: Lus Felipe Magalhes de Moraes Marcial Porto Fernandez Dissertao (mestrado)  UFRJ/COPPE/Programa de Engenharia de Sistemas e Computao, 2009. Referncias Bibliogrcas: p. 63  72. 1. 3. Redes em Malha sem Fio. 2. IEEE 802.11e.

Tempo de Acesso ao Meio.

I. Moraes, Lus Felipe

Magalhes de

et al..

II. Universidade Federal do Rio de

Janeiro, COPPE, Programa de Engenharia de Sistemas e Computao. III. Ttulo.

iii

Aos meus pais, Edmar e Marli; a minha namorada, Marianna; a minha amiga, Juliana e; ao meu irmo mais velho, Henrique.
iv

Agradecimentos
A Deus por ter me dado sade e fora para concluir este trabalho. Ao professor Lus Felipe pelos seus ensinamentos, orientao acadmica e conana. Ao professor Marcial Fernandez por sua dedicao, disponibilidade, presteza e orientao acadmica. Ao meu orientador de graduao, professor Marcos Negreiros, que me incentivou a fazer mestrado na COPPE. Aos colegas e amigos do Laboratrio de Redes de Alta Velocidade (RAVEL) pelos momentos de companheirismo, estudo e alegria. Em especial ao Beto, Paulo, Bruno, Rafael Bezerra, Rafael Fernandes, Tiago e Jlio. Aos colegas e amigos da UECE que participaram indiretamente da elaborao desta dissertao. Em especial a Juliana, Marcos, Aclio, Jeandro e Lisse. Armina por suas palavras de incentivo e motivao. Ao SERPRO pela liberao de tempo parcial para o desenvolvimento deste trabalho de ps-graduao. Aos meus colegas de trabalho do SERPRO: Cadu, pela parceria nos trabalhos de simulao; e minha ex-chefe, Socorro Alves, pelo seu apoio e compreenso.

Resumo da Dissertao apresentada COPPE/UFRJ como parte dos requisitos necessrios para a obteno do grau de Mestre em Cincias (M.Sc.)

ESTUDO DO TEMPO DE ACESSO AO MEIO EM REDES EM MALHA SEM FIO

Jorge Luiz Silva Peixoto

Setembro/2009 Orientadores: Lus Felipe Magalhes de Moraes Marcial Porto Fernandez Programa: Engenharia de Sistemas e Computao

As Redes Locais sem Fio baseadas no padro IEEE 802.11 podem operar em dois modos: infraestruturado e ad hoc. No modo infraestruturado, as estaes No modo

sem o se comunicam por intermdio do Ponto de Acesso.

ad hoc,

as

estaes sem o se comunicam diretamente ou por mltiplos saltos, dependendo da distncia entre elas. As Redes em Malha sem Fio, exploradas nesta dissertao, so basicamente uma mistura entre os modos infraestruturado e ad hoc. So compostas por ns sem o do tipo cliente e roteador. Os roteadores so dispostos em locais xos conectados rede eltrica formando uma malha ou tronco sem o e cumprem o papel fundamental de rotear pacotes. Os ns do tipo cliente usam essa malha para estabelecerem comunicao entre si e, principalmente, com a rede cabeada (para isso, pelo menos um roteador sem o deve estar conectado rede cabeada). Em

particular, essas redes sem o multissaltos baseadas no padro IEEE 802.11 resultam em baixo desempenho e, em alguns casos, inanio de recursos para ns clientes que esto a alguns saltos de distncia da rede cabeada. O mecanismo proposto nesta dissertao visa minimizar esse problema causado pela exausto do recurso

tempo

de acesso ao meio,
os ns roteadores.

provendo uma utilizao justa do recurso compartilhado entre Ao nal, atravs de experimentos de simulaes, verica-se a

eccia do mecanismo.

vi

Abstract of Dissertation presented to COPPE/UFRJ as a partial fulllment of the requirements for the degree of Master of Science (M.Sc.)

STUDY OF MEDIUM ACCESS TIME IN WIRELESS MESH NETWORKS

Jorge Luiz Silva Peixoto

September/2009

Advisors: Lus Felipe Magalhes de Moraes Marcial Porto Fernandez Department: Systems Engineering and Computer Science

Wireless Local Area Network based on IEEE 802.11 standard operates in two modes: infrastructured and ad hoc. On infrastructure mode, wireless stations communicate themselves through Access Point. On ad hoc mode, wireless stations

communicate themselves either straightly or by multiple hops, depending on the distance among them. Wireless Mesh Networks, covered in this dissertation, are

essentially a mix between infrastructured and ad hoc modes. These networks are composed by client and router nodes. Wireless routers are located in steady position connected to electricity network forming a mesh or wireless backhaul and play a fundamental role for the maintenance of connectivity of the network: routing packets. The client nodes use this mesh to establish communication themselves and, mainly, to wired network (at least one wireless router should be connect to wired network). In particular, these multihop wireless networks based on IEEE 802.11 standard results in poor performance and, in some cases, starvation of resources to the clients that are some hops from wired network. The objective of proposed mechanism is to minimize this problem caused by starvation of the access medium time resource and to provide a fair application of the shared resource among routers. At the end, through simulation experiments, we verify the eciency of the mechanism.

vii

Sumrio
Lista de Figuras Lista de Tabelas Lista de Abreviaturas 1 Introduo
1.1 1.2 1.3 1.4 Motivao e Problema . . . . . . . . . . . . . . . . . . . . . . . . . . Objetivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Contribuies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

x xii xiii 1
2 4 4 5

Organizao do texto . . . . . . . . . . . . . . . . . . . . . . . . . . .

2 Fundamentao terica
2.1 Padro IEEE 802.11 2.1.1 2.1.2 2.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . Topologias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Controle de Acesso ao Meio, Camada MAC . . . . . . . . . .

6
6 8 10 16

Adendo QoS ao padro IEEE 802.11 2.2.1 EDCA (

. . . . . . . . . . . . . . . . . .  Acesso

Enhanced Distribution Coordinate Access

Aprimorado de Coordenao Distribuda) . . . . . . . . . . . . 2.2.2 HCF

17

Controlled Channel Access

(HCCA  Acesso de Canal 19 19 21 23 26

Controlado do HCF) 2.3 Redes em malha sem o 2.3.1 2.3.2 2.4

. . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . .

Arquitetura de rede . . . . . . . . . . . . . . . . . . . . . . . . Padronizao . . . . . . . . . . . . . . . . . . . . . . . . . . .

Equidade em redes sem o multissaltos . . . . . . . . . . . . . . . . .

viii

3 Mecanismo de priorizao
3.1 3.2 3.3 3.4 Viso Geral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Suposies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Soluo tima . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Mecanismo de Priorizao . . . . . . . . . . . . . . . . . . . . . . . .

30
30 31 32 33

4 Estudo de caso: implementao do mecanismo em NS-2


4.1 4.2 4.3 4.4 Plataformas de simulao . . . . . . . . . . . . . . . . . . . . . . . . NS-2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . IEEE 802.11 MAC no NS-2 . . . . . . . . . . . . . . . . . . . . . . .

35
35 36 38 41 42 47

Suporte EDCA para NS-2.28 . . . . . . . . . . . . . . . . . . . . . . . 4.4.1 Implementao do EDCA para NS-2.28 por TKN . . . . . . .

4.5

Adaptaes no TKN EDCA

. . . . . . . . . . . . . . . . . . . . . . .

5 Resultados de simulao
5.1 5.2 5.3 5.4 Materiais Cenrio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

48
48 49 51 56 56 58

Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Outros cenrios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.4.1 5.4.2 Em linha . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Estrela . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6 Concluso
6.1 Trabalhos futuros . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

60
61

Referncias Bibliogrcas A Cdigo Tcl de simulao

63 73

ix

Lista de Figuras
1.1 Desproporo do nmero de uxo encaminhado por n roteador. . . . 3

2.1 2.2 2.3

IEEE 802.11 e o modelo OSI.

. . . . . . . . . . . . . . . . . . . . . .

7 7

Logomarca Wi-Fi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Um grupo de ns formando duas redes redes

ad hoc :

IBSS 1 e IBSS 2. Em

ad hoc, ns formam clulas chamadas IBSS (Independent Basic


. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 9 10

Service Set ). .
2.4 2.5 2.6

Um BSS infraestruturado.

ESS formado pelos BSS 1 e BSS 2.

Problema do terminal escondido. C transmiste para B. A, que est escondido (em relao a C), transmite para B causando uma coliso em B. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C transmite para D. B, que est 11

2.7

Problema do terminal exposto.

exposto (em relao a C), tentar transmitir para A, mas sente o canal ocupado, adiando a transmisso. . . . . . . . . . . . . . . . . . . . . . 2.8 2.9 RTS/CTS em funcionamento. . . . . . . . . . . . . . . . . . . . . . . 12 13

Exemplo do funcionamento do IEEE 802.11 DCF com RTS/CTS habilitado. Dois quadro

Data

so transmitidos logo aps o meio car 14 16

livre. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.10 Relao de espaamento entre quadro do IEEE 802.11e. . . . . . . . . 2.11 A estao ganha acesso ao meio uma vez e envia dados enquanto o TXOPLimit no expirar. . . . . . . . . . . . . . . . . . . . . . . . . . 2.12 A gura mostra as quatro instncias da funo de coordenao EDCA de uma estao. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.13 Topologia de rede WAN composta por quatro roteadores. . . . . . . .

17

18 19

2.14 Classicao das redes sem o multissaltos. . . . . . . . . . . . . . . . 2.15 RMSF de arquitetura hierrquica, onde os ns A, B, C, D e E so do tipo roteador e 1, 2, 3, 4, 5 e 6, do tipo cliente. A e B fazem interface com RSMF e a Internet. . . . . . . . . . . . . . . . . . . . . . . . . .

20

22

2.16 A gura mostra uma RMSF de arquitetura plana. Os ns A, B e C agem ora como cliente, ora como roteador, enquanto 1, 2 e 3 agem apenas como cliente. . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

2.17 A gura mostra uma RMSF de arquitetura hbrida formada pela combinao de uma RMSF de arquitetura hierrquica, uma rede WiMAX, Wi-Fi e uma rede de celular GSM. . . . . . . . . . . . . . . . . . . . 24

3.1

Soluo tima.

Ns clientes estariam

virtualmente

a um salto de 32 34

distncia do roteador de borda. 3.2

. . . . . . . . . . . . . . . . . . . . .

Esquematizao da alocao de recurso. . . . . . . . . . . . . . . . . .

4.1 4.2 4.3

Arquitetura do NS-2. . . . . . . . . . . . . . . . . . . . . . . . . . . . Simulao em NS-2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . Comunicao entre camadas de rede no NS-2. . . . . . . . . . . . . .

37 38 39

5.1 5.2 5.3 5.4 5.5 5.6 5.7 5.8 5.9

Cenrio da RMSF simulada no NS-2. . . . . . . . . . . . . . . . . . . Vazo em Mbps por uxo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

49 52 53 55 55 56 57 57

Vazo e oportunidades de transmisso por n.

Descarte de pacotes devido a la cheia. . . . . . . . . . . . . . . . . . Descarte de pacotes devido a coliso. . . . . . . . . . . . . . . . . . .

Cada n cliente (5, 4, 3, 2 e 1) gera um uxo destinado ao n A. . . . Vazo em Mbps por uxo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Vazo e oportunidades de transmisso e por n.

Relao entre as mtricas Oportunidades de transmisso (sem asterisco) e Vazo (com asterisco). . . . . . . . . . . . . . . . . . . . . . . 58

5.10 Topologia em estrela. destinados a A.

Os ns 1, 2, 3, 4, 5, 6, 7 e 8 geram uxos 59 59 59

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

5.11 Vazo em Mbps por uxo.

5.12 Vazo e oportunidades de transmisso e por n.

xi

Lista de Tabelas
1.1 Exemplos de padres de rede sem o. . . . . . . . . . . . . . . . . . . 2

4.1

Parmetros padro de priorizao. . . . . . . . . . . . . . . . . . . . .

43

5.1 5.2

Principais parmetros de simulao. . . . . . . . . . . . . . . . . . . . Parmetros de simulao estendidos. . . . . . . . . . . . . . . . . . .

50 51

xii

Lista de Abreviaturas
AIFS Arbitration Inter-Frame Space, p. 18

BSS

Basic Service Set, p. 8

CA

Categoria de Acesso, p. 17

CBR

Constante Bit Rate, p. 49

CFB

Contention Free Period, p. 15

CP

Contention Period, p. 15

CSMA/CA

Carrier Sense Multiple Access with Collision Avoidance, p. 10

CTS

Clear-to-Send, p. 12

DAB

Digital Audio Broadcasting, p. 1

DCF

Distributed Coordination Function, p. 12

DIFS

DCF Interframe Space, p. 13

DSSS

Direct Sequence Spread Spectrum, p. 6

EDCA

Enhanced Distribution Coordinate Access, p. 16

ESS

Extended Service Set, p. 9

FHSS

Frequency Hopping Spread Spectrum, p. 6

GNU

GNU is not Unix, p. 48

GPS

Global Positioning System, p. 1

GSM

Global System for Mobile Communication, p. 1

xiii

HCCA

HCF Controlled Channel Access, p. 16

HCF

Hybrid Coordination Function, p. 16

HC

Hybrid Coordinator

 Coordenador Hbrido, p. 19

HWMP

Hybrid Wireless Mesh Protocol, p. 25

IEEE

Institute of Electrical and Electronics Engineers, p. 2

JC

Janela de Conteno, p. 13

LLC

Logical Link Control, p. 6

MAC

Medium Access Control, p. 6

MAP

Mesh Access Point, p. 24

MPP

Mesh Portal, p. 24

MP

Mesh Point, p. 23

MSDU

MAC Service Data Unit, p. 12

NAV

Network Allocation Vector, p. 12

NS-2

Network Simulator 2, p. 36

OSI

Open Systems Interconection, p. 6

PA

Ponto de Acesso, p. 1

PCF

Point Coordination Function, p. 12

PC

Point Coordinator, p. 15

PDA

Personal Digital Assistant, p. 1

PIFS

PCF Interframe Space, p. 15

RM-AODV

Radio Metric Ad Hoc On Demand Distance Vector, p. 25

RMSF

Redes em Malha sem Fio, p. 2

RTS

Request-to-Send, p. 12

xiv

SIFS

Short Interframe Space, p. 13

SSID

Service Set Identier, p. 8

STP

Spanning Tree Protocol, p. 25

TCP

Transmission Control Protocol, p. 49

TG

Task Group, p. 6

TXOP

Transmission Opportunity, p. 16

UDP

User Datagram Protocol, p. 49

WECA

Wireless Ethernet Compatibility Alliance, p. 7

WLAN

Wireless Local Area Network, p. 1

WMAN

Wireless Metropolitan Area Network, p. 2

WMN

Wireless Mesh Network, p. 2

WPAN

Wireless Personal Area Network, p. 2

WWAN

Wireless World Area Network, p. 2

xv

Captulo 1 Introduo
As redes sem o oferecem muitas vantagens em relao as redes cabeadas. A principal delas a exibilidade, permitindo que dispositivos mveis (computador porttil, PDA

ou telefone, por exemplo) se comuniquem dentro de uma rea de cobertura

onde os os muitas vezes no podem chegar. O advento dessas redes abriu precedentes jamais imaginveis pelo homem. Os carros j oferecem vrios sistemas de comunicao sem o. Msicas, notcias, previso do tempo e outras informaes transmitidas por rdio-difuso so recebidas por DAB (

Digital Audio Broadcasting

 Difuso de udio Digital). Para comunicao

pessoal, um sistema de comunicao global para dispositivos mveis pode estar disponvel (GSM 

Global System for Mobile Communication

 Sistema Global para

Comunicao Mvel).

Adicionalmente, para reas remotas, comunicao pessoal

via satlite pode ser usada, enquanto a posio atual do carro determinada via o sistema de posicionamento global (GPS  Posicionamento Global).

Global Positioning System

 Sistema de

Essa vasta gama de aplicaes foi concebida atravs do

desenvolvimento de diferentes padres de tecnologia de rede sem o. A Tabela 1.1 exemplica padres de rede sem o classicados por rea de cobertura. As Redes Locais sem Fio (

Wireless Local Area Network

 WLAN) baseadas no

padro IEEE 802.11 [1] podem operar em dois modos: infraestruturado e

ad hoc.

No modo infraestruturado (Seo 2.1.1), as estaes sem o se comunicam por intermdio de um dispositivo, geralmente, disposto num ponto central da WLAN, chamado Ponto de Acesso (PA), que, por sua vez, conectado outras redes (In-

Personal Digital Assistant

(Assistente Digital Pessoal):

pequeno computador porttil que

oferece ferramentas para trabalhos rotineiros de escritrio.

ternet, por exemplo) por cabos. No modo

ad hoc

(Seo 2.1.1), as estaes sem o

se comunicam diretamente ou por mltiplos saltos, dependendo da distncia entre elas. Entretanto, nesse tipo de comunicao no h garantia de conectividade, j que os ns so mveis e dependem da colaborao [2] de outras estaes sem o para entregar os pacotes de dados corretamente.

Tabela 1.1: Exemplos de padres de rede sem o. Classicao WWAN WMAN WLAN WPAN Raio de cobertura Centenas/milhares de quilmetros Dezenas de quilmetros Centenas de metros At 10 metros GPS 3G, GSM, WiMAX Wi-Fi, HiperLAN Bluetooth, ZigBee Protocolos

As Redes em Malha sem Fio (RMSF) 

Wireless Mesh Networks (WMN) [3][4][5]

(Seo 2.3), exploradas nesta dissertao, so basicamente uma mistura entre os modos infraestruturado e

ad hoc

(Figura 1.1). So compostas por ns sem o do tipo

cliente e roteador. Os roteadores sem o so dispostos em locais xos conectados rede eltrica formando uma malha ou tronco sem o e executam um papel fundamental para manuteno da conectividade da rede: o roteamento de pacotes. Os ns do tipo cliente usam essa malha para estabelecerem comunicao entre si e, principalmente, com a rede cabeada (para isso, pelo menos um roteador sem o deve estar conectado rede cabeada).

1.1 Motivao e Problema


As redes locais sem o baseadas no padro IEEE 802.11 esto crescentemente sendo utilizadas para o provimento de acesso Internet em lugares pblicos. Com o objetivo de estender a rea de cobertura de tais redes de maneira economicamente vivel, arquitetos de rede vem estudando as RMSF, caracterizadas pelo baixo custo de equipamentos (rdio e plataforma), facilidade de congurao, instalao e manuteno. Em particular, essas redes sem o multissaltos baseadas no IEEE 802.11 [6] resultam em baixo desempenho e, em alguns casos, inanio de recursos para ns

Figura 1.1: Desproporo do nmero de uxo encaminhado por n roteador.

clientes que esto a alguns saltos de distncia da rede cabeada. caractersticas presentes em tais redes, entre elas, podemos citar:

Isso deve-se a

Terminal escondido e terminal exposto (Seo 2.1.2);

Algoritmo de Recuo Exponencial Binrio [7][8][9] (Seo 2.1.2);

DCF (Seo 2.1.2) prov oportunidades aproximadamente iguais de acesso ao meio compartilhado entre as estaes em conteno;

Fluxos de dados originados em estaes distantes (em nmero de saltos) da rede cabeada disputam acesso ao canal um maior nmero de vezes e isso eleva a probabilidade de perdas ou colises, acarretando uma menor vazo do uxo.

A Figura 1.1 ilustra o problema citado no segundo pargrafo dessa seo. Suponha que A, B e C so roteadores sem o que formam um tronco sem o. Todos esto conectados energia eltrica. Apenas A est diretamente conectado Internet. Os roteadores A, B e C esto congurados com rotas estticas [10] e no geram trfego, apenas encaminham os dados gerados pelos ns clientes 1, 2, 3, 4 e 5. Agora, suponha que 1, 2, 3, 4 e 5 iniciaram (cada um) um uxo de dados com a Internet. O uxo iniciado por 4, antes de chegar a A, deve passar por C e depois B. O uxo do n 2, antes de chegar a A, passa por B. O n 1 comunica-se diretamente com A e, esse, por sua vez, com a Internet.

Atravs de experimentos de simulao, observamos que ao incrementarmos gradativamente a velocidade/frequncia que os ns clientes (1, 2, 3, 4 e 5) inserem quadros na rede, a vazo do uxo gerado por 1 continua a crescer em detrimento da vazo dos uxos dos outros ns clientes 2, 3, 4 e 5. Isso se deve as caractersticas listadas a partir do terceiro pargrafo desta seo. Alm dessas, um outro fator

preponderante a desproporo do nmero de uxos encaminhados pelos ns. No exemplo da Figura 1.1, enquanto o ns clientes encaminham apenas um uxo cada, A encaminha cinco uxos (oriundos de 1, 2, 3, 4 e 5), B encaminha quatro uxos (oriundos de 2, 3, 4 e 5) e C encaminha trs uxos (oriundos de 3, 4 e 5).

1.2 Objetivo
Compartilhar, de forma justa, o recurso

tempo de acesso ao meio entre os roteadores


E, tambm,

do tronco sem o. O compartilhamento do recurso deve ser proporcional ao nmero de ns clientes

descendentes ao roteador sem o em questo (Seo 3.1).

maximizar o uso do recurso disponibilizado para cada roteador, de modo que o recurso disponibilizado no seja desperdiado.

1.3 Contribuies
As contribuies deste trabalho embasam-se em dois pontos:

Apontar as causas do problema de desbalanceamento do recurso tempo de acesso ao meio que ocorre em redes sem o multissaltos baseadas no IEEE 802.11, em particular nas RMSF;

Mitigar o problema por meio da proposio, implementao e avaliao de um mecanismo voltado a minimizar o problema de desbalanceamento de recurso entre os ns da rede. Este mecanismo foi viabilizado por meio de modicaes feitas ao cdigo-fonte da plataforma de simulao de redes de computadores adotada neste trabalho.

1.4 Organizao do texto


Este trabalho est organizado em cinco captulos descritos a seguir. O Captulo 2 faz uma reviso geral sobre os temas mais importantes necessrios para o entendimento do trabalho. O Captulo 3 descreve detalhes do mecanismo proposto para a execuo dos objetivos deste trabalho. O Captulo 4 apresenta detalhes de implementao da soluo. O Captulo 5 traz detalhes de congurao, resultados, comentrios e concluses a respeito das simulaes realizadas neste trabalho, incluindo a RMSF da Figura 1.1. O Captulo 6 traz as concluses gerais do trabalho e descreve possveis extenses do mecanismo proposto e as investigaes futuras relacionadas.

Captulo 2 Fundamentao terica


Este captulo visa embasar o leitor, apresentando-lhe os conceitos bsicos necessrios para o entendimento do trabalho descrito nesta dissertao. Sero cobertos pontoschave do padro IEEE 802.11 e das Redes em Malha sem Fio (RMSF). Para uma referncia completa sobre o padro 802.11, vide [1] [11] [12]. Para uma referncia mais ampla sobre as RMSF, vide [5].

2.1 Padro IEEE 802.11


O primeiro padro de comunicao sem o a ser sancionado por um rgo internacional foi o IEEE 802.11, aprovado em 1997. O IEEE 802.11 especica apenas as camadas fsica e de enlace do modelo OSI (

Open Systems Interconection ).

A ca-

mada fsica dene as tcnicas de transmisso empregadas. Trs foram inicialmente denidas: uma usa infravermelho e emprega a tcnica de Modulao por Posio de Pulso (

Pulse Position Modulation ); as outras duas usam ondas curtas de rdio e Frequency Hopping Spread Spectrum ) e
A camada de enlace dividida em duas:

empregam as tcnicas de modulao FHSS ( DSSS (

Direct Sequence Spread Spectrum ).

uma parte comum entre vrios tipos de rede, a camada LLC; e outra especca das redes sem o, a camada MAC (Figura 2.1). A primeira camada fsica nunca foi implementada comercialmente e todas elas possuam uma baixa taxa de transmisso (at 2 Mbps). Antes mesmo do padro ser nalizado, percebeu-se que as taxas de transmisso eram muito baixas para a tecnologia obter sucesso no mercado, assim os grupos de trabalho (TG 

Task Group )

Figura 2.1: IEEE 802.11 e o modelo OSI.

A e B foram criados para explorar alternativas de transmisso a taxas maiores. O TG A conseguiu alcanar taxas de 54 Mbps explorando a banda de frequncia 5 GHz, porm o custo de produo dos dispositivos e as limitaes do uso dessa banda em alguns pases barraram a implantao em larga escala do padro. O TG B desenvolveu uma camada fsica explorando tcnicas mais sosticadas de espalhamento espectral em 2,4 GHz, alcanando taxas de at 11 Mbps. Ambos os adendos , 802.11a e 802.11b, foram publicados em Outubro de 1999. Um outro adendo, 802.11g, nalizada em 2003 suporta a mesma taxa de transmisso do 802.11a, mas trabalha em 2,4 GHz.

Figura 2.2: Logomarca Wi-Fi.

O termo Wi-Fi comumente usado para descrever a tecnologia de redes sem os baseada no padro IEEE 802.11. Esse termo vem do programa de certicao mantido pela

Wi-Fi Alliance.

Wi-Fi Alliance, antigamente conhecida como Wireless


(WECA), uma associao de fabricantes de pro-

Ethernet Compatibility Alliance

dutos que implementam o padro IEEE 802.11. Seu propsito padronizar, testar e certicar os produtos compatveis. Os produtos aprovados nos testes recebem a marca Wi-Fi (Figura 2.2).

1 Atualizao feita ao padro. Adendos so criadas por grupos de trabalho.

2.1.1

Topologias

Estaes que implementam o padro IEEE 802.11 so dispositivos computacionais equipados com interface de rede sem o. Podem ser mveis ou estacionrias. Essas estaes formam uma rede atravs de clulas chamadas

Basic Service Set

(BSS). As

estaes podem se comunicar, uma vez que estejam numa mesma BSS. Dois tipos de BSSs so suportados pela camada MAC do IEEE 802.11, permitindo a criao tanto de redes

ad hoc

(independentes), quanto de redes infraestruturas.

Redes Independentes ou

ad hoc
A rede

Nesse tipo de rede, os ns se comunicam diretamente, assim devem estar a um distncia que possibilite a comunicao direta entre eles (Figura 2.3).

ad

hoc

criada e mantida sob demanda, dispensando qualquer preparo administrativo

prvio. So bastante exveis, ideais para formaes temporrias, como uma reunio e utilizadas para ns especcos, como transferncia de arquivos.

ad hoc : IBSS 1 e IBSS 2. Em redes ad hoc, ns formam clulas chamadas IBSS (Independent Basic Service Set ).
Figura 2.3: Um grupo de ns formando duas redes

Infraestruturada
Nas redes sem o IEEE 802.11, a topologia mais comumente utilizada a infraestruturada (Figura 2.4). Esse tipo de topologia possibilita a interconexo entre a

rede sem o e a rede cabeada. Uma clula de BSS infraestruturada sempre possui pelo menos um identicador, chamado SSID (

Service Set Identier ) e um Ponto de

Acesso (PA). Esse dispositivo um ponto estacionrio central de trfego que opera num canal xo. Suas principais funes so (1) servir de ponte entre os ns sem o e

a rede cabeada e (2) encaminhar quadros entre os ns sem o da BSS. Dessa forma, os ns associados se comunicam apenas atravs do PA. Num BSS infraestruturado, as estaes sem o devem se associar antes de obter acesso rede. Associao o processo no qual os ns mveis se ligam logicamente a rede 802.11. estar associado apenas a um PA por vez. Um n pode

Figura 2.4: Um BSS infraestruturado.

Infraestruturada Estendida
BSSs podem ser congurados de modo a prover acesso a uma pequena rea, como um escritrio ou residncia, mas no para uma rea maior, como um andar de um prdio. Pensando nisso, o 802.11 criou o ESS (

Extended Service Set )

consistindo

de um conjunto de BSSs conectados atravs de um tronco de rede nvel 2. Como ilustrado na Figura 2.5, usurios de BSSs diferentes se comunicam atravs dos PAs e esses, por sua vez, atravs da conexo cabeada. Os PAs que compem um ESS compartilham SSIDs idnticos, dessa forma, o usurio se abstrai da existncia de vrios BSSs. Idealmente, cada PA deve trabalhar em um canal diferente, de modo a evitar interferncias. Se for necessrio o reuso de algum canal, esses devem ser atribudos aos PAs mais distantes entre si. Um ESS permite que redes locais sem o se estendam o bastante para prover conectividade em uma grande rea, como o

campus

de uma

universidade. PAs devem estar dispostos de maneira que seus BSSs se sobreponham,

provendo uma cobertura contnua a um n que se desloca (Figura 2.5).

Figura 2.5: ESS formado pelos BSS 1 e BSS 2.

Quando um usurio se desloca entre clulas ou BSSs, o dispositivo mvel cuidar de encontrar o PA com o melhor sinal. Dessa maneira um n pode se mover sem perder sua conexo. Esse procedimento de transio do n entre clulas chamado de

hando.
O padro IEEE 802.11 uma tecnologia de rede e, por conseguinte, prove vrios Entre eles destacam-se:

servios de redes.

varredura, autenticao

associao.

A varredura permite que o n mvel descubra os BSSs existentes ao seu alcance. Para que isso ocorra, os PAs transmitem quadros em intervalos regulares que so utilizados pelas estaes mveis para detectar a existncia de um BSS. Antes de ingressar em um BSS, o n precisa estar autenticado. Somente se o resultado for positivo, o n se associa ao BSS. Um n pode estar autenticado em vrios PAs, mas somente pode estar associado a um por vez. Uma estao em

roaming

inicia o

hando

atravs de reassociao, que consiste em enviar um quadro de reassociao

que serve aos dois PAs em questo, desassociando-se de um e associando-se ao outro.

2.1.2
lhantes.

Controle de Acesso ao Meio, Camada MAC


Ethernet
(IEEE 802.3) so semeAmbas utilizam o esquema de controle de acesso

A camada do MAC dos padres IEEE 802.11 e

Carrier Sense Multiple

Access

(CSMA  Mltiplo Acesso com Vericao de Portadora). Entretanto, em

vez de utilizar a Deteco de Coliso (CSMA/CD) do

Ethernet, a camada MAC do

10

802.11 utiliza a Preveno de Coliso (CSMA/CA). Essa diferenciao motivada pela diculdade da deteco de coliso em canais de comunicao sem o. Uma

estao transmissora no consegue detectar colises de forma convel devido ao sinal transmitido ser consideravelmente mais forte que o sinal recebido. As redes sem o esto sujeitas a dois problemas: terminal escondido e terminal exposto. O problema de terminal escondido exemplicado na Figura 2.6. Observe que C est transmitindo para B. Se A vericar o canal, erroneamente concluir que poder transmitir, pois em seu raio de alcance ningum est transmitindo. Dessa forma, ao iniciar a transmisso, causar uma coliso em B.

Figura 2.6:

Problema do terminal escondido.

C transmiste para B. A, que est

escondido (em relao a C), transmite para B causando uma coliso em B.

O problema de terminal exposto ocorre quando C transmite para D e B quer transmitir para A (Figura 2.7). B no consegue transmitir, pois percebe a transmisso de C para D. Porm, a transmisso de B para A poderia ocorrer sem problema de coliso, j que A est fora de alcance de D. A camada MAC do IEEE 802.11 foi projetada para tratar essas questes e prover um meio de comunicao sem o robusto e seguro. Com o intudo de promover uma comunicao mais convel, o padro IEEE 802.11 permite o uso de

positive acknowledgments.

Esse um mtodo de controle de

erro para transmisso de dados no qual o receptor envia uma mensagem de conrmao para o transmissor a cada mensagem recebida. Caso haja falha no envio da mensagem ou no recebimento da conrmao, a mensagem original retransmitida. Algum sobrecarga (

overhead ) causado por esse mecanismo, mas ele assegura que

o pacote foi recebido corretamente a despeito de qualquer condio de erro (interfe-

11

Figura 2.7: Problema do terminal exposto. C transmite para D. B, que est exposto (em relao a C), tentar transmitir para A, mas sente o canal ocupado, adiando a transmisso.

rncia ou coliso, por exemplo). A m de prevenir colises, o 802.11 prever o uso do mecanismo RTS/CTS (

Request-To-Send/Clear-To-Send

 Solicitao-de-Envio/Aprovao-de-Envio), que

aumenta a robustez do protocolo minimizando os problemas de terminal escondido e terminal exposto. Antes de enviar uma mensagem ao destino, o n deve enviar um RTS. Estando habilitado a receber o pacote, o n de destino deve responder com um CTS. Ao receber o CTS, o n de origem pode ento seguir com a transmisso da mensagem (Figura 2.8). Os quadros RTS e CTS possuem informaes relevantes sobre o tamanho do MSDU e do ACK que sero trocados. Outras estaes da rede utilizam essas informaes para congurar um contador interno chamado

Network

Allocation Vector

(NAV  Vetor de Alocao de Rede) e postergar suas transmis-

ses at que esse contador expire. Mesmo que um n escondido no possa perceber um RTS enviado, ele receber o CTS de resposta e poder atualizar seu contador. O mecanismo RTS/CTS minimiza a interferncia de um n escondido durante a transmisso entre duas estaes, assim como de um n exposto. O IEEE 802.11 dene dois mtodos de acesso ao canal: o DCF (

Distributed Point Co-

Coordination Function ordination Function

 Funo de Coordenao Distribuda) e o PCF (

 Funo de Coordenao Centralizada).

12

Figura 2.8: RTS/CTS em funcionamento.

DCF (Distributed tribuda)

Coordination Function  Funo de Coordenao Dis-

Baseado no CSMA/CA, o DCF de implementao obrigatria e atualmente o mtodo de acesso ao meio mais utilizado. usado para transmisso de trfego

assncrono e funciona tanto em redes independentes, como infraestruturadas. A deteco de portadora (

carrier sense ) dar-se atravs da camada fsica ou uti-

lizando mecanismos virtuais. No primeiro caso, quando um transmissor est pronto para transmitir, ele checa se o meio est ocupado, caso esteja, ele espera at o m da transmisso em andamento. Essa parte faz do DCF um protocolo CSMA. Quando o canal torna-se disponvel, em vez de transmitir imediatamente, o transmissor espera um intervalo de tempo DIFS (DCF

Interframe Space

 Espao entre Quadro

do DCF) mais um intervalo de tempo escolhido aleatoriamente do intervalo [0, JC), onde JC (Janela de Conteno) incrementado exponencialmente a cada tentativa de retransmisso do quadro. Esse comportamento faz do DCF um protocolo de Preveno de Coliso (CA 

Collision Avoidance ).

Se o quadro recebido com sucesso,

o receptor espera um intervalo de tempo SIFS (

Short Interframe Space  Espao enAcknowledgement

tre Quadro Curto) e logo em seguida transmite um quadro ACK (  Conrmao).

O mecanismo virtual utiliza o contador NAV, mencionado no penltimo pargrafo da Seo 2.1.2. Esse contador armazena o tempo (em microsegundos) que

13

o meio estar reservado para transmisso. Cada estao mantm atualizado o seu NAV atravs de informaes contidas nos cabealhos dos quadros RTS/CTS. Isso preveni que as outras estaes acessem o meio, enquanto a transmisso corrente no se completa. O NAV pode ser interpretado como um pedido de reserva de transmisso. Assim, somente quando o NAV estiver zerado, a estao iniciar o processo de transmisso. O intervalo SIFS menor que o DIFS, permitindo que o quadro ACK tenha maior prioridade de acesso ao meio. Isso garante que nenhuma estao ir transmitir, enquanto um ACK estiver sendo aguardado. Se o transmissor no receber o ACK durante um intervalo de tempo SIFS, assume-se que ocorreu uma coliso. O transmissor deve ento realizar uma nova tentativa de transmisso. Para reduzir a probabilidade de coliso (de acordo o algoritmo de Recuo Exponencial Binrio), a janela de conteno JC dobrada a cada tentativa de retransmisso at que atinja um valor mximo sucesso, JC reiniciado com o valor

JCmax .

Havendo uma transmisso com

JCmin .

O transmissor tenta enviar o quadro

at que se alcance o nmero mximo de retransmisses, caso isso ocorra, o quadro descartado. Devido as altas taxas de erro causadas por interferncias no meio de comunicao sem o, quadros menores tem maiores chances de serem transmitidos com sucesso que quadros maiores. Isso motivou a especicao de um mecanismo de fragmentao na camada MAC do 802.11. Quadro grandes so fragmentados quando ul-

trapassam um determinado limiar. A cada fragmento transmitido com sucesso, um quadro de conrmao (ACK) enviado. Aps uma estao ganhar acesso ao meio, a sequncia de quadros

Data -ACK transmitida intercalada por quadros SIFS. Isso

evita que outras estaes tentem acesso ao meio antes que a transmisso da de quadros

Data -ACK encerre-se.

Figura 2.9: Exemplo do funcionamento do IEEE 802.11 DCF com RTS/CTS habilitado. Dois quadro

Data

so transmitidos logo aps o meio car livre.

A Figura 2.9 ilustra uma sequncia de mensagens trocadas segundo o DCF. As

14

mensagens do transmissor esto localizados na parte superior da gura, enquanto as mensagens do receptor na parte inferior. O transmissor, antes de enviar, escuta o meio ocupado, assim atrasa sua transmisso at o meio car livre. Quando isso ocorre, espera o tempo DIFS. Encerrando DIFS, inicia-se a disputa ao meio, ganha acesso aps expirar o tempo de

backo

(recuo). Ao ganhar acesso ao meio, a troca

de mensagens iniciada seguindo o mtodo RTS/CTS. As estaes prximas ao escutarem o envio do RTS ou CTS atualizam seu contadores NAV.

PCF (Point zada)

Coordination Function

 Funo de Coordenao Centrali-

O PCF utiliza o mtodo de acesso baseado em

polling

(interrogao) provendo um

acesso livre de conteno. Nesse mtodo de acesso, necessria a presena de um PC (

Point Coordinator polling

 Coordenador Central), geralmente o PA, responsvel por

realizar o

das estaes. Esse mtodo no pode ser utilizado em redes inde-

pendentes. Foi projetado para servios/aplicaes sensvel ao retardo. No IEEE 802.11, o tempo pode ser segmentado em

superframes

(superquadros),

com um tamanho varivel e delimitados por quadros especiais denominados quadros de

beacon.

Os superquadros so compostos pela combinao do Perodo Livre de

Conteno (

Contention Free Period

 CFP) e do Perodo de Conteno (

Contention

Period

 CP). Logo aps a transmisso de um quadro de

beacon,

feita pelo PA,

inicia-se o Perodo Livre de Conteno (nesse perodo o PCF usado). Aps o CFP, inicia-se o perodo de conteno, no qual utilizado o DCF. Durante o CFP, o PC responsvel por enviar mensagens s estaes, que podem ser do tipo CF-Poll ( (transmisso de dados e

polling ), Data (transmisso de dados), ou Data + CF-Poll


As estaes, por sua vez, respondem com men+ CF-ACK. O CFP termina quando esgota-se

polling ). Data

sagens do tipo CF-ACK ou

o tempo mximo de durao indicado no quadro de acesso transmite uma mensagem do tipo CF-END.

beacon

ou quando o ponto de

Durante o CFP no h disputa de acesso ao meio entre as estaes. Um CFP inicia quando o PA obtem acesso ao meio aps esperar um intervalo de tempo PIFS (PCF de

Interframe Space

 Espao entre Quadro do PCF) seguido de um quadro

beacon.

O PIFS menor que o DIFS que, por sua vez, maior que o SIFS.

15

Dessa maneira o PCF tem maior prioridade sobre o DCF, mas no interrompe uma transmisso DCF em andamento. Uma vez que o PCF obtem acesso ao meio, o

SIFS continua a ser utilizado para a troca de quadros (Figura 2.10).

Figura 2.10: Relao de espaamento entre quadro do IEEE 802.11e.

2.2 Adendo QoS ao padro IEEE 802.11


O TG E aprimorou a camada MAC original do 802.11 com o objetivo de inserir suporte Qualidade de Servio (QoS) [13] [14] [15] [16]. O adendo 802.11e deniu o HCF (

Hybrid Coordination Function

 Funo de Coordenao Hbrida), no qual

combina as funcionalidades do DCF e PCF com mecanismos especcos de provimento QoS [17] [18] [19]. O HCF possui duas funes de coordenao ou modos de operao: o EDCA (

Enhanced Distribution Coordinate Access  Acesso Aprimorado Con Acesso de Canal Controlado do HCF), que uma melhoria

de Coordenao Distribuda), que uma extenso do DCF e o HCCA (HCF

trolled Channel Access

do PCF. As funes de coordenao EDCA e HCCA operam concorrentemente. Assim como no PCF, o HCF divido em perodos com e sem conteno, nos quais o EDCA e o HCCA so usados, respectivamente. O 802.11e possibilita o HCCA ser usado durante o perodo com conteno. O HCF aloca as estaes o direito de transmitir atravs de TXOP (

Transmission

Opportunity

 Oportunidade de Transmisso) [20]. O direito de transmitir pode ser

concebido durante uma disputa (perodo com conteno), sendo chamado de EDCA TXOP; ou pode ser obtida quando uma estao recebe um quadro QoS CF-Poll do PA, sendo chamado de HCCA-TXOP. O TXOP dene o intervalo de tempo no

16

qual uma estao tem o direito de transmitir um ou mais quadros.

Uma estao

ao ganhar acesso ao meio poder transmitir enquanto o tempo denido pelo TXOP no tiver expirado. O PA determina o limite do TXOP (TXOPLimit).

Figura 2.11: A estao ganha acesso ao meio uma vez e envia dados enquanto o TXOPLimit no expirar.

A TXOP possibilita que uma estao, durante o perodo denido pelo TXOPLimit, envie vrios quadros em srie sem precisar entrar em conteno a cada quadro transmitido (Figura 2.11). A estao continua a transmitir aps passado o tempo de SIFS se for possvel enviar o prximo quadro durante intervalo de TXOPLimit restante. O envio de quadros em srie pode melhorar signicativamente o desempenho, visto que no necessrio esperar o tempo de DIFS + enviado.

backo

a cada quadro

2.2.1

EDCA (Enhanced

Distribution Coordinate Access

Acesso Aprimorado de Coordenao Distribuda)


O EDCA uma extenso do DCF que objetiva prover priorizao de acesso ao meio s estaes sem o [21]. So denidas quatro Categorias de Acesso (CA) baseadas no padro IEEE 802.1D : voz, vdeo, melhor esforo e trfego de fundo.

Pacotes

vindos das camadas superiores devem ser mapeados para a sua respectiva CA de acordo com as marcaes de prioridade feitas pelo usurio. Cada CA se comporta como uma entidade de conteno independente (Figura 2.12), possuindo parmetros diferentes de priorizao que so anunciados periodicamente atravs de quadros de

beacon enviados pelo PA. Os quatro parmetros chave usados para diferenciao [22]
2 Padro de ponte (
atualizao em 2004, incorporando entre outras extenses o 802.1w (

bridge ) para camada de controle de acesso (MAC) de LANs/MANs. ltima Rapid Spanning Tree Protocol )
17

so:

Figura 2.12: A gura mostra as quatro instncias da funo de coordenao EDCA de uma estao.

Tamanho Mnimo de Janela de Conteno (JCmin ): tamanho mnimo que a JC pode assumir. Quanto menor esse valor, maior a prioridade;

Tamanho Mximo de Janela de Conteno (JCmax ): tamanho mximo que a JC pode assumir. Quanto menor esse valor, maior a prioridade;

Limite TXOP: especica a tempo mximo que uma estao pode monopolizar o acesso ao canal para transmitir um ou mais quadros;

Espao entre Quadro Arbitrrio (AIFS 

Arbitration Inter-Frame Space ):

es-

pecica o intervalo de tempo entre o momento em que o meio ca livre e o incio de uma disputa de acesso ao meio. Uma vez que uma CA escuta o canal livre por um perodo de tempo AIFS[ onde

CA],

CA

o ndice que representa uma categoria de acesso, ela inicia a contagem

regressiva determinada pela funo de recuo (similar ao DCF). Se ocorrer uma coliso entre ACs numa determinada estao, a CA de maior prioridade ganha o acesso. J as outras, se comportam como se tivesse ocorrido uma coliso externa. Similar ao DCF, uma falha de transmisso leva a um incremento da com o algoritmo de Recuo Exponencial Binrio.

JCmax

da CA de acordo

18

2.2.2

HCF

Controlled Channel Access


Hybrid Coordinator

(HCCA  Acesso de

Canal Controlado do HCF)


O HCCA utiliza um HC (  Coordenador Hbrido) para cenQoS tralizar o controle de acesso ao meio a m de prover QoS parametrizado.

parametrizado refere-se a capacidade de prover QoS a uxos de dados com parmetros de QoS especcos, como taxa de transmisso, latncia, tamanho do pacote e intervalo de servio. O HCCA baseado no PCF estendendo suas funcionalidades. Assim como o PCF, o HCCA prov acesso ao meio baseado em chave entre o HCCA e o PCF que o HCCA pode fazer

polling.

As diferenas

polling

da estaes durante

o CP e suporta o escalonamento de pacotes baseados em requerimentos especcos de trfego.

2.3 Redes em malha sem o


Um Rede em Malha sem Fio (RMSF) [23] , por denio, qualquer rede sem o com topologia de ligao-parcial ( 2.13).

partial mesh ) ou ligao-total (full mesh ) (Figura

(a) Topologia de ligao-parcial.

(b) Topologia de ligao-total.

Figura 2.13: Topologia de rede WAN composta por quatro roteadores.

Na prtica, as RMSF so compostas por ns sem o do tipo roteador e cliente. Os ns roteadores tipicamente so dispostos em locais xos, no sofrem limitao de energia, formam um tronco ou malha sem o parcialmente ligada e, o mais importante, cumprem o papel fundamental de roteamento de pacotes. Os ns do

tipo cliente so mveis e usam essa malha para estabelecerem comunicao entre si e, principalmente, com a rede cabeada (para isso, pelo menos um roteador sem

19

o deve estar conectado rede cabeada, chamado roteador de borda).

Devido a

presena de uma topologia em malha sem o parcialmente ligada, as RMSF utilizam o encaminhamento multissalto de maneira similar s redes

ad hoc.
Elas compartilham a

As redes sem o multissaltos podem ser classicadas em quatro categorias [5]:

ad hoc,

RMSF, redes de sensores e hbridas (Figura 2.14).

caracterstica principal de usarem o encaminhamento multissalto sem o.

Figura 2.14: Classicao das redes sem o multissaltos.

Redes

ad hoc

sem o so essencialmente redes sem infraestrutura com topologia

altamente dinmica. Redes de sensores sem o so formadas por pequenos ns equipados com sensores capazes de medir parmetros fsicos do ambiente no qual esto inseridos e transmiti-los para um n central de monitoramento, para isso, podem usar comunicao de nico-salto ou multissalto. Redes hbridas usam comunicao de nico salto ou multissalto simultaneamente dentro de uma rede tradicional de nico salto como rede de celular ou WLAN. Embora as redes jetados para as redes

ad hoc

sejam similares s RMSF, arquitetura e protocolos pro-

ad hoc apresentam desempenho insatisfatrio quando aplicados ad hoc


so projetadas para comuni-

s RMSF. Isso deve-se a diferenas em requisitos chave de projeto, como restries de recursos e posicionamento dos ns. As redes

cao multissalto e alta mobilidade dos ns, por outro lado as RMSF so projetadas para ns de mobilidade limitada ou xos. protocolo desenvolvido para redes Assim, a probabilidade alta que um tenha um desempenho insatisfatrio em

ad hoc

RMSF. Alm disso, as RMSF so menos limitadas em termos de recursos (energia e processamento) quando comparados as redes

ad hoc.

Em determinadas solues

implantadas, as RMSF podem ter uma congurao especca de topologia (Seo

20

2.3.1), dessa forma, protocolos e algoritmos podem ser projetados para explorar tal congurao. As RMSF vm emergindo como um conceito promissor de rede sem o da prxima gerao. Por causa de suas vantagens sobre outras redes sem o, dentre elas, baixo custo, fcil manuteno, robustez, cobertura convel de servios, etc., as RMSF esto sofrendo uma rpida evoluo e inspirando numerosas aplicaes, como, redes domsticas de banda larga, redes comunitrias, automao predial, redes metropolitanas de alta velocidade e redes corporativas. Entretanto, para que as RMSF possam render o seu mximo potencial, considerveis esforos de pesquisa ainda so necessrios [24]. Por exemplo, os protocolos MAC e de roteamento disponveis no so escalveis [25]. A vazo decai signiDessa forma, os Os pesquisadores

cativamente com o aumento do nmero de ns ou de saltos [8]. protocolos existentes precisam ser melhorados ou reinventados.

tm comeado a reanalisar os modelos de protocolos das redes sem o existentes, especialmente das redes IEEE 802.11 [26] [9], redes

ad hoc

e redes de sensores sem

o com uma perspectiva para as RMSF. Grupos de padronizao da indstria, como IEEE 802.11, IEEE 802.15, IEEE 802.16 e IEEE 802.20 [27] esto trabalhando ativamente numa nova especicao para as RMSF (Seo 2.3.2).

2.3.1

Arquitetura de rede

Baseado na topologia de rede, as RMSF podem ser classicadas em trs diferentes arquiteturas: plana, hierrquica e hbrida.

Hierrquica
Na arquitetura hierrquica, a rede possui vrios nveis nos quais os ns clientes ocupam o nvel mais baixo. Os ns roteadores sem o formam um tronco ou malha de ligao-parcial sem o com o objetivo de prover uma infraestrutura de comunicao para os ns clientes (Figura 2.15). Usualmente, os ns que formam o tronco sem o so dedicados e no originam, nem terminal trfego de dados como os ns clientes. A funcionalidade de auto-organizao e manuteno do tronco desempenhada pelos roteadores. Alguns dos ns roteadores que compem o tronco podem interfacear

com redes externas, como a Internet.

21

Figura 2.15: RMSF de arquitetura hierrquica, onde os ns A, B, C, D e E so do tipo roteador e 1, 2, 3, 4, 5 e 6, do tipo cliente. A e B fazem interface com RSMF e a Internet.

Plana
Nas RMSF de arquitetura plana, a rede formada por ns que agem ora como cliente, ora como roteador. Assim, cada n est no mesmo nvel do seus vizinhos. Os ns sem o se auto-coordenam, provem roteamento, congurao da rede e provisionamento de servios ou aplicaes. Essa arquitetura a mais prxima de uma rede

ad hoc

sem o e o caso mais simples entre as trs arquiteturas.

Sua

principal vantagem a simplicidade.

Entre as desvantagens, inclu-se a falta de Os pontos primordiais no projeto de

escalabilidade e as restries de recursos.

uma RMSF de arquitetura plana so o esquema de endereamento, roteamento e a descoberta de servios. Em uma rede plana, o endereamento pode ser um gargalo para a escalabilidade. Nessa arquitetura os ns so equipados com o mesmo tipo de radiotransmissor.

Hbrida
Esse o caso especial de rede RMSF que combina caractersticas das arquiteturas Hierrquica e Plana com outras redes sem o, como, por exemplo, GSM, Wi-Fi ou

22

Figura 2.16: A gura mostra uma RMSF de arquitetura plana. Os ns A, B e C agem ora como cliente, ora como roteador, enquanto 1, 2 e 3 agem apenas como cliente.

WiMAX (Figura 2.17). Devido ao fato que o crescimento das RMSF est fortemente ligado a capacidade de interoperar com solues de redes existentes, essa arquitetura torna-se bastante importante para o desenvolvimento das RMSF. Ns clientes equipados com interfaces de rede de mesma tecnologia de radiotransmisso que os ns roteadores podem usar a malha sem o hierrquica para se comunicar entre si e com outras redes conectadas a essa malha. Ns clientes no equipados com interface de rede sem o podem se conectar aos ns roteadores atravs de cabos, desde que esse esteja equipado com uma interface compatvel. Assim, as RMSF iro ajudar enormemente usurios a estarem sempre conectados.

2.3.2

Padronizao

O advento das RMSF permitiu que reas maiores fossem cobertas alm dos limites impostos pela tradicional tecnologia de WLAN. Solues proprietrias j esto disponveis h alguns anos, mas o padro IEEE 802.11s, atualmente em desenvolvimento, permitir a implantao de solues multi-fornecedor. Terminologia denida pelo 802.11s:

N Cliente: um usurio da rede, no encaminha quadros, no participa da descoberta de rotas. No suporta o padro IEEE 802.11s;

Mesh Point

(MP): um n 802.11s. Estabelece comunicao com outros ns

802.11s. Faz encaminhamento de quadros e descoberta de rotas;

23

Figura 2.17: A gura mostra uma RMSF de arquitetura hbrida formada pela combinao de uma RMSF de arquitetura hierrquica, uma rede WiMAX, Wi-Fi e uma rede de celular GSM.

Mesh Access Point

(MAP): um n 802.11s que possibilita aos ns clientes

(sem suporte a 802.11s) acessarem a RMSF, ou seja, o n tipo MAP atua como um PA para ns cliente;

Mesh Portal

(MPP): um n 802.11s equipado com interface de rede cabeada

alm das funcionalidades de um MP. Prov acesso a rede cabeada.

Uma rede 802.11s pode operar usando qualquer um dos padres: 802.11b, 802.11g e 802.11n.

802.11a,

A camada MAC e os formatos de quadros foram re-

modelados a m de prevenir interferncias entre as redes 802.11s e as tradicionais 802.11. Todas as funcionalidades denidas pelo 802.11s operam nas subcamadas

MAC ou LLC. Nenhuma das camadas superiores da pilha de protocolos TCP/IP foi modicada. O TG S est prevendo a denio de novas funcionalidades ao padro em variadas reas, dentre elas, as principais so:

Seleo de melhor caminho [28] [29] e encaminhamento;

24

Descoberta de topologia;

Segurana [30];

Alocao de canal [31];

Gerenciamento de trfego;

Gerenciamento de rede.

O 802.11s substitui o STP (

Spanning Tree Protocol ), comumente usado em redes Hybrid Wireless Mesh Protocol
 Protocolo de

cabeadas Ethernet, pelo HWMP (

Rede em Malha sem Fio Hbrido). De forma similar ao STP, que objetiva eliminar possveis laos innitos na rede atravs da criao de um estrutura baseada em rvore, o HWMP cria tabelas usando tcnicas de roteamento proativo e sobdemanda. A especicao do padro prev que fornecedores possam adotar outros protocolos de seleo de melhor caminho. A tcnica de roteamento proativo prov um mtodo eciente de roteamento baseado no fato que na maioria das RMSF existe pelo menos um

Mesh Portal

e que

a maioria do trfego encaminhado a ele. J a tcnica de roteamento sobdemanda usada para encontrar o n destino, caso no exista rota denida pelo roteamento proativo. O protocolo de roteamento RM-AODV (

Radio Metric Ad Hoc On Demand DisRM-AODV uma

tance Vector ) usado para a seleo entre os possveis caminhos.

verso modicada do AODV. No RM-AODV, inclu-se uma mtrica que se baseia na taxa de transmisso observada, quantidade de trfego e interferncias ao longo de um caminho na rede. Diferentemente das WLAN convencionais, nas RMSF, os ns podem manter caminhos para vrios ns vizinhos, no apenas para o PA, isso acarreta uma complexidade extra ao processo de estabelecimento de um canal de comunicao seguro. O 802.11s usa os padres de segurana 802.11i e 802.1X. Em janeiro de 2006, dois grupos de padronizao, SEEMesh (formado por Intel, Nokia, Motorola e outros) e Wi-Mesh Alliance (formado por Nortel, Philips, Thomson, entre outros), combinaram suas propostas de padronizao do IEEE 802.11s num nico documento. A nova proposta foi usada como ponto de partida para o pa-

25

dro 802.11s. Segundo informaes publicadas no stio eletrnico Internet do IEEE 802.11 TG S, datado em Maio de 2009, o 802.11s est na verso

Draft D3.0.

2.4 Equidade em redes sem o multissaltos


Em redes sem o multissaltos, o tema equidade pode assumir signicados diferentes dependo do trabalho. Nesta dissertao, equidade est associdada ao compartilhamento do tempo de acesso ao meio entre os roteadores que formam o tronco sem o. Em [32], a equidade associada ao tempo chamada de equidade temporal ou equidade baseada no tempo. Como o nome j diz, trata-se da diviso igualitria do tempo de acesso ao meio entre as estaes. O adendo 802.11e do padro de redes sem o IEEE 802.11, que dene suporte QoS na camada MAC, criou o conceito de TXOP a m de limitar tempo de posse do meio entre as estaes em conteno (disputa). A equidade do DCF deve ser entendida como uma oportunidade estatisticamente igual de incio de transmisso de um quadro entre todas as estaes que tem um quadro pronto para transmitir. A equidade de transmisso normalmente atestada entre duas ou mais estaes numa mesma BSS, quando essas demandam uxos de mesmo perl e ainda, a vazo agregada est abaixo da capacidade mxima do canal. Sob tais condies, a alocao equitativa de banda esperada. Entretanto, se as

estaes transmitem uxos de trfegos gerados por aplicaes diferentes, com taxas de gerao e o tamanho de pacotes diferentes, a expectativa de alocao equitativa de banda precisa ser revisada, especialmente num cenrio de sobrecarga de uxos de dados. Com isso, o padro de trfego de diferentes uxos tm um profundo impacto na alocao de banda entre as estaes [33] [34]. Fluxos de dados gerados

por aplicativos VoIP, caracterizados por pequenos quadros e frequentes requisies de acesso tendem a dominar o uso do meio compartilhado quando comparado a uxos caracterizados pela transmisso de quadros grandes e com menor frequncia. Raciocnio anlogo vlido para uma situao onde existem mltiplos uxos de aplicaes distintas (por exemplo, VoIP e FTP) numa mesma estao. Numa situao de sobrecarga, o

buer

da la de sada estar cheio (ou quase cheio) a maior parte

26

do tempo, no oferecendo espao a novos quadro gerados pelas aplicaes.

Com

a liberao de espao (depois de envio ou descarte) a tendncia ser a ocupao dos espaos liberados por quadros de tamanho menores. Como resultado, quadros pequenos e com maior freqncia predominaro no Em [35] e [36], um novo algoritmo de

buer.

backo

quantitativo proposto em substi-

tuio ao Recuo Exponencial Binrio convencional do DCF. De um forma resumida, cada estao continuamente estima sua vazo e das outras estaes com o qual ela disputa o acesso ao meio e calcula um ndice de equidade usado para o ajuste da janela de conteno. As simulaes mostram que o algoritmo alcana um equidade bem melhor que o algoritmo original usado pelo padro IEEE 802.11. Xu et al. algumas redes [8] mostra que embora o protocolo MAC do IEEE 802.11 suporte

ad-hoc,

ele no foi projetado para o uso em redes dessa natureza, So apresentados diversos

nas quais a conectividade multissalto predominante.

problemas (injustia de acesso ao meio e instabilidade em TCP), suas respectivas causas e algumas solues. Ao nal, conclui-se que o protocolo MAC do padro

IEEE 802.11 no funciona bem em redes multissalto. Na proposta em [37], so apresentados mecanismos de garantia a atraso m-am de aplicaes em redes locais multissaltos sem o. Devido a mobilidade dos ns e o acesso ao meio distribudo, essas redes sofrem variaes de atrasos substanciais (

jitter ).

Dessa forma, uma percepo de equidade de atraso essencial para prover

a todos os ns as mesma garantias de atraso numa rede WLAN multissaltos. proposto um

framework

para garantia de atrasos baseado em trs entidades: uma

responsvel pelo provimento de informaes de atraso nas classes de servios, outra, pela seleo adaptativa entre as classes de servios disponveis e a ltima responsvel pela monitorao do atraso mdio de cada n da rede e seleo de uma prioridade MAC. Em redes em malha sem o, onde o destino preferencial do trfego o roteador de borda, a diviso da vazo se torna injusta devido ao aumento no nmero de acessos ao meio com o aumento da proposto o mecanismo RLF ( distncia ao roteador de borda. Em [38],

Route Length based Fairness ) para atribuir prioridade

a pacotes na camada MAC. Pacotes que percorrem um nmero grande de saltos, chamados pacotes de vida longa, recebem uma maior prioridade no acesso ao meio.

27

As informaes de roteamento necessrias so obtidas na camada MAC usando tcnicas de otimizao entre camadas. Mltiplas las so usadas para separar os

pacotes de acordo com o comprimento das rotas. Comparado ao IEEE 802.11g, o RLF promove melhor distribuio de vazo pelos ns da rede. Em redes sem o multissaltos, alocao de banda de forma justa entre os diferentes ns um problema crtico que afeta a usabilidade de todo o sistema. Nesse contexto, Jun et al. [39] estuda vrios esquemas de la para redes sem o multissaltos e examina a equidade e o desempenho de vazo de cada esquema. Cada esquema oferece um grau de equidade. mostrado que a m de alcanar uma tima utilizao de banda, o protocolo MAC deve suportar diferentes prioridades. So mostrados os prs e os contras de cada esquema de las. Hsieh et al. [40] estuda o impacto da camada de acesso ao meio e roteamento no desempenho de redes sem o multissaltos. Discute-se os motivos que levam ao IEEE802.11 no ser adequando a redes onde os uxos passam por mltiplos saltos. proposto um novo protocolo MAC que suporta priorizao por n que melhora signicativamente o desempenho em termos de vazo e equidade. Na camada de

roteamento, mostrado que roteamento com balanceamento de carga melhora o desempenho no importando o protocolo usado na camada MAC. Duy et al. [41] introduz um modelo analtico tratvel de desempenho de vazo para redes IEEE802.11 multissalto. O modelo usado para explorar o problema No contexto de aplicaes de voz,

de injustia que surge em redes multissaltos.

demonstrado que a injustia causada pelo IEEE802.11 impe mais limitao na capacidade da rede do que a falta de banda. proposto e analisado um esquema que usa o adendo 802.11e (especicamente, TXOP e janela de conteno) para restaurar a equidade. Existem muitos conitos entre equidade e vazo que surgem em muitos cenrios de rede. Muitos pesquisadores tem estudado esse problema no contexto das redes sem o de nico salto (WLAN). Dong et al. [42] separa o objetivo de garantir a

equidade de vazo em dois subproblemas. Primeiro, foi desenvolvido um algoritmo que organiza os clientes em uma estrutura multissalto, no qual a alocao de banda de forma equitativa leva a uma melhor vazo. Depois, proposto um algoritmo que executa a alocao de banda dentro da determinada estrutura multissalto.

28

O TXOP pode ser usado para minimizar o efeito chamado

anomalia de desem-

penho

descoberto experimentalmente pelo autores de [43]. Uma degradao de de-

sempenho considervel ocorre quando numa rede WLAN infraestrutura, alguns ns esto muito longe do ponto de acesso e, dessa forma, a qualidade da sua transmisso baixa. Nesse caso, os dispositivos baseados no protocolo IEEE 802.11b degradam a taxa de transmisso nominal de 11 Mb/s para 5,5, 2 ou 1 Mb/s, quando o n detecta repetidas tentativas de transmisses sem sucesso. Se existe pelo menos um n com uma taxa baixa, a BSS apresenta a anomalia de desempenho: a vazo de todos os ns transmitindo a taxas altas degradada ao nvel do n transmitindo a taxa baixa. Tal comportamento penaliza os ns que transmitem a taxa altas e privilegia os ns transmitindo a taxas baixas. A razo para essa anomalia o mtodo de acesso ao canal, CSMA/CA, que garante que num longo perodo de tempo a probabilidade de acesso ao meio igual para todos os ns. Quando um n captura o canal por um longo perodo de tempo devido a sua baixa taxa, ele penaliza os outros ns que usam o canal com uma taxa alta. Gambiroza et al. [44] propem o IFA (

Inter-transit access points Fairness AlCom o IFA, cada n

gorithm )

para aumentar a justia em redes de multissaltos.

calcula por enlace a quantidade de tempo que pode usar para efetuar suas transmisses, aumentando a justia. O clculo requer troca de informaes de controle sobre a carga oferecida e a capacidade de cada enlace. Os ns enviam aos seus vizinhos a quantidade de recursos da rede que eles precisam para encaminhar o trfego recebido. Aps a troca de informaes de controle, cada n executa um algoritmo para calcular a mxima vazo permitida.

29

Captulo 3 Mecanismo de priorizao


Neste captulo, apresentado o mecanismo que viabiliza o compartilhamento do recurso

tempo de acesso ao meio

entre os ns roteadores da RMSF. Inicialmente, a

Seo 3.1 aborda de uma forma geral o funcionamento do mecanismo. A Seo 3.2 caracteriza a rede em malha sem o alvo e descreve as suposies que serviram de base para o desenvolvimento do esquema proposto. A Seo 3.3 apresentada uma soluo tima hipottica. Em seguida na Seo 3.4, esquematiza-se o mecanismo de atribuio de prioridades ao ns que compem o tronco da RMSF.

3.1 Viso Geral


O mecanismo proposto neste trabalho visa compartilhar, de forma justa, o recurso

tempo de acesso ao meio

entre os ns do tronco sem o. A funcionalidade bsica

do mecanismo designar uma certa quantidade limitada do recurso compartilhado supracitado a cada n roteador sem o que forma o tronco da RMSF. Para isso, preciso saber o nmero de ns clientes

descendentes 1 [45] por roteador.

Assim, a par-

tir dessa informao, o mecanismo calcula a quantidade de recurso disponibilizado para cada roteador.

1 O termo n

Tv

descendente

o mesmo usado em Estrutura de Dados e assim denido: seja

uma rvore no vazia de raiz

ancestral de

x.

v.

Se

pertence subrvore de

Tv ,

descendente de

v, e v,

30

3.2 Suposies
O desenvolvimento do mecanismo proposto neste trabalho foi realizado com base em um conjunto de suposies relacionadas as caractersticas das RMSF. As RMSF, tratadas neste trabalho, caracterizam-se por possurem seus ns dispostos em rvore. Os ns folha

(ou externos) so do tipo cliente, enquanto os ns

no-folha (ou internos) so do tipo roteador. Os ns clientes cumprem o papel de gerar uxos destinados a outros clientes ou rede externa, de modo oposto, a rede externa tambm pode gerar uxos destinados aos clientes. J os roteadores tem o papel bvio de rotear pacotes. O n raiz interno, portanto do tipo roteador e responsvel por fazer o interfaceamento entre os ns da RMSF e a rede externa. As seguintes premissas foram assumidas no desenvolvimento do mecanismo:

Os roteadores no geram trfego: nenhum servio de rede ou aplicao executado no n roteador;

Os roteadores so congurados com rota esttica [10]: os roteadores so congurados com rota padro de sada para a rede cabeada e rotas entre as redes dos ns clientes;

O trfego ui, preferencialmente, entre a rede externa e os clientes: os ns clientes so caracterizados por acessarem informaes presentes na rede externa;

A topologia da RMSF em rvore: o n raiz o roteador de borda que faz interface com a rede externa;

Todos os ns esto equipados com o mesmo rdio, sintonizados na mesma frequncia: os ns compartilham um nico canal;

As antenas so capazes de detectar portadora em qualquer ponto da RMSF: visa minimizar o problema de terminal escondido e terminal exposto;

A antena dos ns clientes so capazes de transmitir apenas para o n roteador mais prximo: os ns foram dispostos de forma a maximizar a rea de cobertura da RMSF;

2 N que no possui descendente.

31

Todos os ns possuem antena de transmisso omnidirecionais;

Lanamos mo do TXOPLimit para alocar o recurso tempo de acesso ao meio entre os roteadores do tronco da RMSF: o TXOPLimit parte integrante do adendo 802.11e.

As suposies acima no invalidam a generalidade da soluo.

3.3 Soluo tima


Uma soluo tima proveria a todos os ns clientes o mesmo nvel de servio, no importando a distncia em nmeros de saltos at o roteador de borda. Os ns

clientes estariam virtualmente a uma mesma distncia do roteador de borda. Para exemplicar, a RMSF da Figura 1.1 tornaria-se a RMSF ilustrada em 3.1, onde R1 o n roteador de borda e N1, N2, N3, N4 e N5 so os ns clientes. Certamente, essa soluo impraticvel para algumas mtricas de desempenho de rede, como, por exemplo, atraso. Mas em contra partida, possvel a elaborao de mecanismos que maximizem a equidade do compartilhamento da banda de acesso a rede externa. Esse o propsito do esquema apresentado na seo seguinte.

Figura 3.1: Soluo tima. Ns clientes estariam tncia do roteador de borda.

virtualmente

a um salto de dis-

32

3.4 Mecanismo de Priorizao


Quando incrementarmos gradativamente a velocidade de transmisso dos ns clientes, a velocidade de transmisso daqueles prximos ao roteador de borda continua a crescer em detrimento da velocidade de transmisso daqueles mais distantes. Quando a rede chega ao nvel mximo de saturao, observamos, por intermdio de experimentos de simulao (Captulo 5), que os ns clientes mais distantes do roteador de borda sofrem de inanio (

starvation 3 ).

O mecanismo descrito nesta

seo visa minimizar esse problema que est associado as propriedades das RMSF (Seo 1.1). Um outro fator importante est associado a topologia da RMSF. Devido a esse fator, podemos inferir que existe apenas um

caminho 4 entre dois ns.

Como os uxos

de dados uem preferencialmente entre a rede externa e os ns clientes, quanto mais prximo um n roteador estiver do roteador raiz, mais uxos so encaminhados por esse n. Isso resulta numa desproporo do nmero de uxos encaminhados pelos ns roteadores (Figura 1.1). E para minimizar essa desproporo, mais do recurso

tempo de acesso ao meio

deve ser alocado aos ns roteadores.

O mecanismo de priorizao aloca o recurso

tempo de acesso ao meio aos ns do

tronco da RMSF atravs de um artifcio que limita a um valor mximo o tempo de transmisso de cada acesso ao meio feito por um n. Esse conceito denido como Oportunidade de Transmisso ( 802.11e. O clculo de alocao de recursos dar-se seguinte forma: cada n cliente receber uma quantidade xa do recurso. Os ns roteadores recebero um quantidade que varia de acordo com o nmero de clientes descendentes do roteador em questo. A Figura 3.2 mostra um exemplo de como funciona a alocao de recursos. A RMSF do Captulo 1 tomanda como referncia. Suponhamos que para cada n cliente (1, 2, 3, 4 e 5) seja congurado um TXOP no valor de 1. No roteador C congurado um TXOP igual a 3, pois C possui trs ns clientes descendentes (5, 4 e 3). B recebe um TXOP igual a 4, pois possui quatro ns clientes descendente (5,

Transmission Opportunity

 TXOP) pelo adendo

3 Termo usado em Sistemas Operacionais quando um processo nunca executado (morre de


fome), pois processos de prioridade maior sempre o impedem de ser executado.

sempre entre ns consecutivos (v1 e

Caminho a denominao dada a uma sequncia de ns distintos v1 , v2 , ..., vk , tal que existe
v2 , v2
e

v3 ,

...

v k 1

vk )

a relao  lho de ou  pai de.

33

Figura 3.2: Esquematizao da alocao de recurso.

4, 3 e 2). Por m, A recebe um TXOP igual a cinco, pois possui cinco ns clientes descendente (5, 4, 3, 2 e 1). Durante a avaliao do mecanismo, percebeu-se que os ns roteadores estavam subutilizando os recursos alocados. Isso acontecia porque todos os pacotes da la do roteador eram transmitidos antes de acabar o recurso alocado, dessa forma, a cada oportunidade de transmisso uma quantidade considervel de recurso era desperdiada. Para minimizar esse desperdcio, adicionamos ao mecanismo a inteligncia de dinamicamente alterar o AIFS dos quadros 802.11e transmitidos pelos ns roteadores em funo do comprimento da la. Quando est prxima de zero, o AIFS aumentado e consequentemente:

1. Diminui a probabilidade do n acessar o meio;

2. Cresce o nmero de pacotes na la e, por m;

3. Maximiza-se a utilizao do recurso, pois o recurso alocado esgota-se antes do comprimento da la chegar a zero.

Quando o comprimento da la ultrapassa um dado limiar, o valor do AIFS restaurado.

34

Captulo 4 Estudo de caso: implementao do mecanismo em NS-2


Neste captulo, so descritos as implementaes: mecanismo proposto (Seo 4.5), camada MAC do IEEE 802.11 para NS-2 (Seo 4.3), adendo 802.11e implementado pelo grupo TKN para NS-2 (Seo 4.4) e tambm, as plataformas de simulao testadas (Seo 4.1), em especial, o NS-2 (Seo 4.2).

4.1 Plataformas de simulao


Inicialmente, duas plataformas de simulao [46] foram escolhidas para testes de simulao: NCTUns e NS-2. Ambos usam a tcnica de simulao baseada em

eventos, so de cdigo-fonte aberto, rodam no sistema operacional GNU/Linux e so capazes de simular redes cabeadas e sem o. O NCTUns [47] um simulador de redes desenvolvidos no departamento de Cincias da Computao da Universidade Nacional de Chiao Tung (NCTU) localizado em Hsinchi, Taiwan. Esse simulador apresenta algumas vantagens que so nicas com relao aos simuladores tradicionais de redes (NS-2, GloMoSim

e OPNET )

Global Mobile Information Systems Simulation Library

[48] um simulador de redes sem

o desenvolvido no Laboratrio de Computao Paralela da Universidade da Califrnia em Los Angeles (UCLA) composto por uma coleo de mdulos de biblioteca implementados em PARSEC (

PARallel Simulation Environment for Complex Systems ),

uma linguagem baseada em C para

descrio de simulaes sequenciais e paralelas. cdigo-fonte aberto.

2 Simulador de redes de interface grca intuitiva que possibilita uma fcil congurao de

cenrios e visualizao de resultados. cdigo-fonte proprietrio. Devido ao seu alto custo, mais utilizado por grandes empresas.

35

devido a uma nova metodologia de simulao que utiliza a pilha de protocolos do

kernel

do Linux. Esse fato possibilita, por exemplo, a emulao de redes e o uso da

pilha de protocolos TCP/IP do Linux para gerao de resultados de alta delidade, assim como o uso de ferramentas de redes presentes em sistemas UNIX tradicionais:

ifconfig, netstat, tcpdump, route, traceroute.


A histria do NCTUns comeou com a da tese de doutorado do professor S. Y. Wang pela Universidade de Harvard em 1999. Mais tarde, Wang fundou o Laboratrio de Redes e Sistemas na NCTU. Desde ento, por mais de nove anos o NCTUns vem sendo desenvolvido pelo professor Wang e seus estudantes. Hoje, a plataforma de simulao est na verso 6.0. O NS-2 foi a plataforma escolhida devido a existncia de uma vasta documentao detalhada da ferramenta [49] [50] [51] [52] [53] [54] [55]. Por este motivo, ser abordada em maiores detalhes na seo seguinte.

4.2 NS-2
Concebido em 1989 a partir de uma variao do projeto da Universidade de Cornell, EUA, o NS (

REAL Network Simulator,

um

Network Simulator ) tem evoludo

desde ento, sempre com suporte e apoio de vrias organizaes. Atualmente, o desenvolvimento do NS suportado pelo DARPA (

Defense Advanced Research Projects National Science Founda-

Agency,

EUA) atravs do projeto SAMAN e pela NSF (

tion, EUA) atravs do projeto CONSER, em colaborao com outros pesquisadores


como o centro ICIR. O simulador j recebeu apoio do Laboratrio Nacional Lawrence Berkeley, do Xerox PARC, da Universidade da Califrnia em Berkeley, Sun Microsystems e tambm agrega diversos mdulos desenvolvidos por pesquisadores independentes. Uma lista de discusso mantida pelos desenvolvedores, onde os

pesquisadores de diversas partes do mundo podem trocar idias e experincias, e tambm propor correes para o cdigo do simulador que aps avaliadas podem ser incorporadas. O NS-2 um simulador de eventos discreto. A idia abstrata de passagem do tempo deve-se a manuteno do agendamento de eventos mantidos numa lista pelo escalonador. Um evento um objeto que possui: identicador nico, horrio para

36

ser escalonado e ponteiro para o objeto que trata esse evento. O escalonador matem uma lista encadeada com todos os eventos escalonados para execuo e executa cada um deles invocando o objeto tratador respectivo a cada evento. O ncleo do simulador escrito em C++ [56], conferindo velocidade, enquanto a interface de usurio em linha de comando e escrita em OTcl (linguagem interpretada baseada em Tcl [57]), conferindo manutenabilidade, agilidade e exibilidade. A linguagem OTcl, por ser interpretada, consideravelmente mais lenta, porm pode ser facilmente alterada. Os objetos compilados em C++ so disponibilizados para o interpretador OTcl por ligao (

linkage ), o que virtualmente cria um objeto OTcl

para cada objeto C++ que pode ser manipulado atravs das facilidades do OTcl. Segundo os desenvolvedores, a diviso em duas linguagens (OTcl e C++) objetiva dar ao simulador tanto velocidade quanto exibilidade.

Figura 4.1: Arquitetura do NS-2.

A Figura 4.1 mostra a arquitetura do NS-2. O usurio interage com NS-2 escrevendo

scripts

em Tcl/OTcl. Os escalonadores de eventos e os componentes de rede

so implementados em C++ e disponibilizados ao interpretador atravs de uma replicao feita pela camada TclCl, que recria os objetos C++ em objetos OTcl. Todo o conjunto constitui o NS-2, que um interpretador de OTcl com bibliotecas de simulao para redes de computadores. Para montar e simular uma rede, o usurio deve primeiro escrever um

script

em OTcl que inicializa o escalonador de eventos, congura e interliga os objetos de rede que compem o cenrio e informa quando os objetos comeam e terminam de transmitir. O processo de simulao em NS-2 (Figura 4.2) pode ser assim resumido:

1. Codicar

script

Tcl/OTcl;

37

Figura 4.2: Simulao em NS-2.

2. Executar

script.

Durante execuo, arquivos de

tracing sero gerados contendo

o registro de cada evento;

3. Ao concluir a simulao:

(a) Analisar arquivos de

tracing
awk

atravs de ferramentas de manipulao de

cadeias (por exemplo,

[58],

grep, sed

[58]);

(b) Visualizar eventos com o NAM (

Network Animator ).
Para isso,

O NS-2 no fornece estatsticas de simulao de modo automtico.

usa-se ferramentas de manipulao de cadeias para processar os arquivos de

tracing

gerados durante a simulao. Existe tambm a possibilidade do usurio instanciar objetos especiais chamados monitores. O animador NAM pode ser usado para analisar visualmente a simulao e obter algumas estatsticas, mas ele no apropriado para anlises mais profundas. Para instalao do NS-2, existem vrios tutorial na Internet, consultar [49] [50] [51] [53].

4.3 IEEE 802.11 MAC no NS-2


Um pacote que percorre a pilha de protocolos do NS-2 no sentido descendente, passa pela subcamada LLC (composta pelo objeto (composta pelos objetos

LL), depois pela subcamada MAC

Queue

Mac)

e nalmente chega a camada fsica (objetos A Figura 4.3 ilustra as camadas de rede no

Antenna, Channel e Propagation) [52].


NS-2.

38

Figura 4.3: Comunicao entre camadas de rede no NS-2.

A camada LLC entrega os pacotes a camada MAC atravs de uma la de prioridades que emprega a tcnica de descarte

drop-tail.

Ao chegar um pacote de

roteamento, este encaminhado para a cabea da la. Das funes de coordenao especicadas na camada MAC do IEEE 802.11, apenas o DCF implementado no NS-2. Existem

patches na Internet que implementam

o PCF, mas nenhum foi incorporado ao NS-2 (verso 2.28 [59]). O modelo de simulao do DCF implementado no NS-2 suporta:

Quadros de controle RTS/CTS/ACK;

Deteco de portadora fsica e virtual;

Espao entre quadros SIFS, PIFS, DIFS e EIFS. O EIFS usado depois que detecta-se uma tentativa de transmisso no sucedida.

Devido a no implementao do PCF pelo NS-2, os quadros de

beacon e os super-

quadros no so implementados. Para suprir essa carncia, mecanismo semelhante utilizado por meio do envio de mensagens de atualizao de rotas transmitidos em intervalos.

39

Na camada MAC do NS-2 esto presentes vrios objetos

timers

(cronmetros):

defer timer :
SIFS;

usado quando o meio est inativo por um perodo de DIFS ou

backo timer :

decrementa o tempo que resta de

backo ;

interface timer :

registra o tempo que uma interface car no estado de trans-

misso quando enviando um quadro;

nav timer :

iniciado com o tempo de durao de uma troca da sequncia

quadros RTS/CTS/DADOS/ACK ou com o tempo EIFS quando uma coliso detectada;

rx timer :

iniciado quando o primeiro bit de um quadro recebido com o

valor do tempo requerido para o completo recebimento do quadro. Esse

timer

necessrio porque para o simulador o quadro est disponvel assim que o primeiro bit recebido, mas na prtica a subcamada MAC no deve acessar o pacote at que ele tenha sido completamente recebido. coliso, o No caso de uma

timer

congurado para expirar aps o ltimo quadro que colidiu. chamado indiretamente por

Ao expirar,

recv_timer()

recvHandler();

tx timer :

usado para indicar o tempo esperado de recebimento de um quadro

CTS/ACK. pelo funo

Tx timer (mhSend_)
transmit(),

iniciado quando um pacote transmitido

exceto quando um quadro ACK transmitido, pois

no h espectativa de resposta para esse tipo de quadro (alguns quadros geram uma expectativa de resposta ao serem enviados, por exemplo, ao enviar um RTS espera-se receber um CTS).

Tx timer

parado quando quadros do tipo

CTS, DADOS ou ACK so recebidos.

Quando

tx timer

expira,

sender_-

timer()
Todos os

chamado indiretamente por

sendHandler().

timers implementam os mtodos start, stop, pause, resume e handle.


start
e

Os mais importante so

handle

que servem, respectivamente, para inserir

um evento na lista de escalonamento e tratar um evento quando o tempo do expira.

timer

40

4.4 Suporte EDCA para NS-2.28


Durante o processo de padronizao do IEEE 802.11e, pesquisadores desenvolveram modelos para o NS-2 [54] baseando-se em vrias verses

draft

do 802.11e. Esse tra-

balho explorou trs desses modelos. O grupo Mosquito da Universidade de Stanford foi o primeiro a implementar um modelo que considerasse o EDCF Qiang [60] implementou os modelos EDCF [61] (

e o HCF. Ni

Enhanced Distributed Coordination

Function ) e o HCF, assim como, vrios melhoramentos para anao adaptativa de


parmetros de conteno e alocao equitativa de recursos. Mathieu Lacage [62] desenvolveu um modelo incluindo as funcionalidades do EDCA e HCCA, assim como, suporte multi-taxa de transmisso. O TKN (

Telecommunication Networks Group ) draft

desenvolveu um modelo com suporte ao EDCA [63] baseado na ltima verso

do 802.11e, no qual apresenta uma melhoria no algoritmo de recuo exponencial binrio e que foi aprovada como verso nal. Neste trabalho, foram testadas trs implementaes do adendo 802.11e para NS2:

TKN

Mathieu Lacage

Ni Qiang

Todas implementam o EDCA. A primeira e a terceira implementam tambm o HCCA. Uma clara vantagem das implementaes do TKN e de Mathieu Lacage em relao ao do Ni Qiang, que as duas primeiras so compilveis, enquanto a ltima, nem passou no primeiro teste (compilao). Acho que isso se deve a verso antiga do NS, no qual o modelo do Ni Qiang baseada: 2.1b7-snapshot-20000808. Com relao a verso do TKN e de Mathieu Lacage, a primeira apresenta dois diferenciais relevantes:

A implementaao do 802.11 foi baseada na implementao de CMU/Monarch [64] bastante difundido e reconhecido pela comunidade, enquanto o segundo foi baseado num modelo novo;

3 Equivalente ao EDCA. Termo usado antes da nalizao do adendo 802.11e pelo IEEE.

41

Mathieu Lacage utiliza um modelo de

trace

novo diferente do padro NS. No

existe uma legenda ou documentao para o entendimento do o mesmo ser inteligvel.

trace, apesar de

Dos modelos apresentados e testados, foi escolhida a implementao provida pelo TKN. As principais razes foram:

Boa documentao: na pgina do grupo existem artigos tcnicos explicando o modelo [63];

Ecincia de funcionamento comprovada (atravs de testes comparativos) [65];

Quantidade de trabalhos publicados referenciando o modelo;

Implementa a verso nal do adendo 802.11e aprovada mais tarde pelo IEEE;

Experincia que o grupo j havia adquirido ao implementar o EDCF verso 2 para o NS-2.26 [66].

draft

4.4.1
partes:

Implementao do EDCA para NS-2.28 por TKN

A contribuio do TKN para a implementao do EDCA pode ser dividida em duas

1. Escalonador virtual: faz o escalonamento de eventos entre as las da subcamada MAC do 802.11e (Figuras 2.12 e 4.3);

2. CFB (

Contention Free Burst

 Rajada Livre de Conteno): permite o envio

de quadros em rajadas separados pelo intervalo SIFS durante um perodo livre de conteno, denido por TXOPLimit (Figura 2.11).

Ao modelo WLAN 802.11 do NS-2 foram introduzidas quatro las na subcamada MAC. Dependendo da prioridade, os pacotes so armazenados em uma dessas las. O campo

prio

contido no cabealho do pacote IP especica a prioridade. A priori-

dade zero a maior e trs, a menor. Assim como no DCF, as las so de prioridade e empregam a tcnica de descarte

drop-tail.

Ao chegar um pacote de roteamento,

esse encaminhado para a cabea da la de prioridade zero.

42

Os parmetros das las so congurados no procedimento Tcl gundo os dados da tabela 4.1 denidos pelo IEEE 802.11e. chamado por

priority{}

se-

Esse procedimento

ns-mobilenode_802_11e.tcl

no momento em que as interfaces dos

ns so criadas.

Tabela 4.1: Parmetros padro de priorizao. CA

JCmin

JCmax

AIFS

TXOPLimit (ms) 802.11b 802.11a/g 0 0 3,008 1,504

Fundo Melhor esforo Vdeo Voz

31 31 15 7

1023 1023 31 15

7 3 2 2

0 0 6,016 3,264

Em vez de implementar uma instncia EDCA por la, o que requereria uma entidade de resoluo de coliso para cada, foi usado um vetor que armazena informaes como estados de transmisso,

timers

e outros parmetros relativos a resoluo de

conteno. Essa uma abordagem mais simples, pois evita instncias EDCA paralelas, ao mesmo tempo que permite fazer uma resoluo de conteno entre as las [66]. Assim, no caso de coliso entre duas ou mais las (coliso virtual), apenas aquela de maior prioridade escalonada e as informaes das outras las armazenadas no vetor so atualizadas. Descreverei mais detalhadamente a segunda parte da implementao do TKN, pois nesse trecho de cdigo-fonte, foi implementado parte do mecanismo proposto descrito no captulo 3. Em alto nvel, a implementao do CFB pode ser assim resumida:

1. Ao receber uma ACK, vericar se esse foi o primeiro recebido durante o perodo de CFB, caso verdade:

(a) Contabilizar durao da transmisso.

2. Se existe prximo pacote na la (caso no exista ir para passo 4):

(a) Retirar pacote da la; (b) Contabilizar durao da transmisso.

43

3. Se o tempo de durao contabilizado no tiver ultrapassado TXOPLimit da prioridade correspondente da la:

(a) Enviar prximo pacote (volta para o passo 1).

4. Recuar.

A nvel de programao, para implementar o CFB a classe as seguintes modicaes:

Mac802_11e

sofreu

1. Insero do segundo bloco da estrutura de seleo mtodo

if/else

(linha 36 a 49)

recvACK(); cfb(). recv_timer(),


que por sua vez chamado por

2. Criao do mtodo

recvACK()

chamado por

recvHandler(),

quando um ACK recebido indicando que uma transmisso de

dados obteve xito. O mtodo

recvACK()

(cdigo-fonte 4.1), primeiramente, checa

se a estao acabou de enviar um quadro de dados (estado de transmisso igual a

MAC_SEND),

caso contrrio descarta o ACK. Depois, reinicia os contadores de tenta-

tivas. Se o RTS foi usado, reinicia o contador de tentativa de pacotes longos; se no, reinicia o contador de tentativa de pacotes curtos. Em seguida, se o CFB estiver habilitado, vai para o bloco de cdigo 28.

else da estrutura de seleo if/else da linha cfb_dur.

Se o ACK recebido foi o primeiro durante o perodo de CFB, o tempo gasto Depois, libera

requerido para transmisso do pacote atribudo a varivel o pacote (linhas 43, 45 e 46), chama de transmisso para

rx_resume(),

que basicamente muda o estado Se o CFB no

MAC_IDLE, e nalmente chama o mtodo cfb(). MAC_IDLE

estiver habilitado (equivale a desabilitar o EDCA), ento libera o pacote, reinicializa a JC, muda o estado de transmisso para e inicia

backo timer.

Cdigo-fonte 4.1: Mtodo


1 2 3 4 5 6 7 8 9

recvACK()

alterado para comportar o CFB.

void Mac802_11e :: recvACK ( Packet * p ) { int pri = LEVEL ( p ) ; struct hdr_cmn * ch = HDR_CMN ( p ) ; if ( tx_state_ [ pri ] != MAC_SEND ) { discard (p , DROP_MAC_INVALID_STATE ) ; return ; }

44

10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51

mhSend_ . stop () ; /* * ACK recebido com sucesso implica que o quadro de DADOS foi * transmitido com sucesso . Ento , zerar " Short / Long Retry * Count " do DCF e Janela de Conteno . */ if (( u_int32_t ) ch - > size () <= macmib_ . RTSThreshold ) ssrc_ [ pri ] = 0; else slrc_ [ pri ] = 0; sending = 0; check_backoff_timer () ; /* * Testa se CFB est habilitado , se no executa o primeiro * bloco do if que idntico ao cdigo original do NS . */ if (! cfb_ || ch - > size () > macmib_ . RTSThreshold ) { assert ( mhBackoff_ . backoff ( pri ) == 0) ; rst_cw ( pri ) ; mhBackoff_ . start ( pri , getCW ( pri ) , is_idle () ) ; assert ( pktTx_ [ pri ]) ; Packet :: free ( pktTx_ [ pri ]) ; pktTx_ [ pri ] = 0; tx_resume () ; } else { // Verificar se esse foi o primeiro quadro de dados enviado // durante o perodo de CFB . Caso verdade , contabilizar // durao da transmisso e chamar cfb () . if ( cfb_dur == 0) { cfb_dur = txtime ( pktTx_ [ pri ]) + sifs_ + txtime ( phymib_ . getACKlen () , basicRate_ ) ; } pktRx_ = 0; rx_resume () ; assert ( pktTx_ [ pri ]) ; Packet :: free ( pktTx_ [ pri ]) ; pktTx_ [ pri ] = 0; cfb ( pri ) ; } mac_log ( p ) ;

O cerne do CFB est implementado no mtodo

cfb(). cfb()

retira o prximo

pacote da la e calcula sua durao. Mas antes de calcul-la, testa se o pacote do tipo

unicast

ou

multicast.

Pacotes de

multicast

no so conrmados com ACK,

consequentemente o tempo de transmisso menor. Depois, o pacote retirado da la deve ser enviado (na verdade, agendando para envio) se o TXOPLimit no tiver sido ultrapassado (cfb_dur

<= txop_limit_[pri]).

45

Cdigo-fonte 4.2: Mtodo


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33

cfb().

void Mac802_11e :: cfb ( int pri ) { double timeout ; struct hdr_mac802_11e * mh ; // Prximo pacote da fila retirada . // Calcula - se o tempo de durao de transmisso do pacote . // Pode parece bvio , mas o mtodo sendDATA () no // envia o pacote . Dentre outras coisas , ele monta a estrutura // do quadro ( cabealho , define tipo , calcula durao do // quadro , etc ) deixando o pacote pronto para transmitir . if ( queue_ - > pri_ [ pri ]. getLen () > 0) { Packet * p = queue_ - > pri_ [ pri ]. deque () ; sendDATA ( pri , p ) ; hdr_cmn * ch = HDR_CMN ( pktTx_ [ pri ]) ; mh = HDR_MAC802_11E ( pktTx_ [ pri ]) ; if (( u_int32_t ) ETHER_ADDR ( mh - > dh_da ) != MAC_BROADCAST ) { cfb_dur += sifs_ + txtime ( pktTx_ [ pri ]) + sifs_ + txtime ( phymib_ . getACKlen () , basicRate_ ) ; cfb_broadcast = 0; } else { cfb_dur += sifs_ + txtime ( pktTx_ [ pri ]) ; cfb_broadcast = 1; } } else cfb_dur = txop_limit_ [ pri ] + 1; // Pacote transmitido caso ainda reste tempo de TXOP , caso // contrrio recuar . if ( cfb_dur <= txop_limit_ [ pri ]) { // Envia pacote . Na verdade , aqui agendado o horrio // esperado para rececbimento de uma confirmao ( quadro // ACK ) . if (( u_int32_t ) ETHER_ADDR ( mh - > dh_da ) != MAC_BROADCAST ) timeout = txtime ( pktTx_ [ pri ]) + DSSS_EDCA_MaxPropagationDelay + sifs_ + txtime ( phymib_ . getACKlen () , basicRate_ ) + DSSS_EDCA_MaxPropagationDelay ; else timeout = txtime ( pktTx_ [ pri ]) ; cfb_active = 1; mhSifs_ . start ( pri , sifs_ ) ; } else { cfb_dur = 0; cfb_broadcast = 0; assert ( mhBackoff_ . backoff ( pri ) == 0) ; rst_cw ( pri ) ; mhBackoff_ . start ( pri , getCW ( pri ) , is_idle () ) ; tx_resume () ; }

34 35 36 37 38 39 40 41 42 43 44 45 46

46

4.5 Adaptaes no TKN EDCA


O cdigo-fonte 4.3 foi inserido ao nal da primeira estrutura de seleo do mtodo

if/else

cfb()

(cdigo-fonte 4.2), mais especicamente entre as linhas 22 e 23.

Esse cdigo responsvel por alterar o AIFS dos quadros enviados em funo do comprimento da la. mtodos Essa alterao somente realizada nos ns roteadores. Os

getLen()

getMinLength()

retornam, respectivamente, o comprimento

da la e um liminar congurvel pelo usurio. Se o comprimento da la inferior a esse limiar, o AIFS aumentado para 4, caso contrrio mantem-se em 1. O mtodo

getMinLength()

foi adicionado a classe

Dtail

objetivando criar um comando Tcl

para alterao do limiar pelo usurio. Por esse mesmo motivo, a classe foi alterada.

PriQ tambm

Cdigo-fonte 4.3: Estrutura de seleo

if/else

adicionada ao mtodo

cfb()

res-

ponsvel pela alterao do AIFS em funo do comprimento da la.


1 2 3 4 5 6 7 8 9 10

if (( ETHER_ADDR ( mh - > dh_sa ) == 5 || ETHER_ADDR ( mh - > dh_sa ) == 6) && LEVEL ( p ) == 2) { int aifs_antes = queue_ - > pri_ [2]. getAIFS () ; if ( queue_ - > pri_ [ pri ]. getLen () < queue_ - > pri_ [ pri ]. getMinLength () ) { AIFSset = false ; queue_ - > pri_ [2]. setAIFS (4) ; } else { AIFSset = false ; queue_ - > pri_ [2]. setAIFS (1) ; } }

47

Captulo 5 Resultados de simulao


Neste captulo so descritos os detalhes de congurao dos experimentos de simulao realizado para validao do mecanismo de priorizao proposto. simulados trs cenrios descritos nas Sees 5.2, 5.3 e 5.4. Foram

5.1 Materiais
Ferramentas usadas no laboratrio de simulao:

Sistema Operacional: GNU/Linux Ubuntu Hardy 8.04

Simulador de rede: NS-2 verso 2.28, por Vivek [67]

patch EDCA por TKN, patch ns-manual

Compilador: GNU C/C++

Compiler

verso 3.33 ou 2.95

Linguagem de

shell script :

bash, Tcl verso 8.4.15-1build1

Manipulador de cadeias: awk, grep

Plotagem de grcos: gnuplot

Editor de cdigo: gedit, Eclipse CDT

Para reproduo deste ambiente, atentar para a verso das ferramentas. O uso de outras verses no invalida os resultados, mas pode dicultar a montagem do laboratrio por causa, por exemplo, de incompatibilidade entre ferramentas.

48

5.2 Cenrio
A Figura 5.1 ilustra a RMSF simulada. Os ns 1, 2, 3, 4 e 5 geram trfego a uma taxa constante (CBR) sobre o protocolo de transporte UDP. Esses uxos gerados so compostos por pacotes de dados de 500 bytes destinado ao n A. O TCP no foi utilizado porque seu controle de congestionamento afetaria a avaliao do mecanismo de priorizao proposto [68] [69] [70] [71] [72]. Os ns A, B e C so roteadores

congurados com rotas estticas [67] que formam o tronco sem o. O n A est a 100 metros de B e B a 100 metros de C. Os ns 5, 4 e 3 esto a 100 metros de C, a mesma distncia, 2 est de B, e 1 de A.

Figura 5.1: Cenrio da RMSF simulada no NS-2.

As baterias de simulaes so compostas por duas etapa:

a primeira com o

mecanismo desabilitado e a segunda, habilitado. Cada etapa composta por vrias baterias e cada bateria composta por 10 rotadas de 240 segundos cada. A rodada consiste em executar o programa simulador de rede. A cada rodada utilizada uma semente de gerao de nmeros aleatrios diferente. De cada bateria calculado um ponto no grco com intervalo de conana de 95%. O que varia de uma etapa para outras o mecanismo est habilitado ou no, j entre as baterias, o que varia a velocidade que os ns clientes insere quadros na rede, enquanto para as rodadas, o que varia a semente.

49

Na primeira etapa foi utilizado o IEEE 802.11b [73] DCF a 11 Mbps para dados (dataRate_) e 1 Mbps para RTS/CTS/ACK (basicRate_), enquanto na segunda etapa foi utilizado o IEEE 802.11b EDCA com as mesmas taxas da primeira. Os ns possuem antenas omnidirecionais com a mesma potncia de transmisso, raio de transmisso de 100,1 metros e raio de deteco de portadora de 500 metros. Para calcular o raio de deteco e de transmisso, usou-se o comando localizado na pasta

threshold

indep-utils/propagation

do NS-2. No foi usado RTS/CTS.

Em ambas as etapas os ns foram congurados com

JCmin

JCmax

igual 31 e 1023,

respectivamente. Na segunda etapa, atribuiu-se o valor 1 para o AIFS. A quantidade de recurso reservado (TXOPLimit) para os ns C e B 3 onde

e 4 , respectivamente,

o tempo em milissegundos gasto para transmitir um quadro de 500 bytes

e receber um quadro de conrmao (ACK). Esse valor de 0,915 ms. O limiar de comprimento mnimo da la dos ns C e B de 2 vezes o nmero de ns descendentes. Para o n C, o limiar vale 6 e para o n B, 8.

Tabela 5.1: Principais parmetros de simulao. Parmetro Modelo de propagao Antena Raio de deteco de port. Raio de transmisso MAC (etapa 1) MAC (etapa 2) TwoRayGround Omnidirecional 500 m 100 m DCF 11 Mbps (dataRate_) / 1 Mbps (basicRate_) EDCA 11 Mbps (dataRate_) / 1 Mbps (basicRate_) 31 1023 50 pacotes CBR UDP Valor

JCmin JCmax
Comprimento da la (LL) Aplicao Transporte

50

Pacote Tempo de simulao Rodadas

500 bytes 240 s 10 De 0 a 100 (pacotes por segundo), incremento de 10. A partir da, incremento de 25.

Baterias

Intervalo de conana

95%

Tabela 5.2: Parmetros de simulao estendidos. Parmetro Recurso reservado (n C) Recurso reservado (n B) Limiar de comprimento mnimo da la (n C) Limiar de comprimento mnimo da la (n B) AIFS (quando maior que limiar) AIFS (quando menor que limiar) Valor 2,745 ms 3,66 ms 6 8 1 4

5.3 Resultados
Para avaliao do mecanismo de priorizao foram utilizadas mtricas de desempenho separadas em dois grupos: um formado por uxos, o outro por ns. Para o grupo dos uxos:

Vazo em Mbps: mede o nmero de bytes recebido pela camada de aplicao do n destinatrio do uxo a cada segundo;

Descarte de pacotes: afere o nmero de pacotes enviados pelo n origem do uxo menos o nmero de pacotes recebidos no n destinatrio do uxo a cada segundo.

Para o grupo dos ns:

51

Vazo em pacotes por segundo:

mede o nmero de pacotes enviados pela

camada de acesso ao meio por segundo;

Nmero de oportunidades de transmisso (TXOP): o nmero de oportunidades de transmisso obtidos por segundo;

Descarte de pacotes devido a la cheia: o nmero de pacotes descartados devido a la cheia por segundo;

Descarte de pacotes devido a coliso: o nmero de pacotes descartados devido a coliso por segundo.

Plotou-se dois grcos para cada mtrica: um com o mecanismo de priorizao desabilitado (posicionado no lado esquerdo) e outro habilitado (posicionado no lado direito). Em todos os grcos, o eixo x representa a carga oferecida (trfego), denida pela quantidade de bytes (ou pacotes) gerados por segundo pelo agente na camada de aplicao.

2.5

Fluxo 5 Fluxo 4 Fluxo 3 Fluxo 2 Fluxo 1 Fluxos agregados Vazo (Mbps)

1.8 1.6 1.4 1.2 1 0.8 0.6

Fluxo 5 Fluxo 4 Fluxo 3 Fluxo 2 Fluxo 1 Fluxos agregados

Vazo (Mbps)

1.5

0.5

0.4 0.2

0 0 50 100 150 200 250 300 Carga oferecida (pct/s) 350 400 450

0 0 25 50 75 100 125 Carga oferecida (pct/s) 150 175 200

(a) Mecanismo de priorizao desabilitado.

(b) Mecanismo de priorizao habilitado.

Figura 5.2: Vazo em Mbps por uxo.

O grco esquerdo da Figura 5.2 demostra o que foi escrito no ltimo pargrafo da Seo 1.1 no que concerne ao incremento da velocidade do uxo 1 em detrimento aos demais uxos. A vazo dos uxos atingem a vazo mxima a partir de 400 A partir dessa taxa, a rede est

pct/s (pacotes por segundo) de carga oferecida.

52

completamente saturada e todos os ns mantm sua vazo mesmo com o incremento da carga oferecida. O sistema comea a demostrar sinais de saturao em 70 pct/s, quando os uxos oriundos dos ns mais distantes comeam a diminuir a vazo. O uxo 2 que possui um salto a menos de distncia em relao aos uxos 3, 4 e 5 comea a diminuir a vazo em 125 pct/s. O grco direito da Figura 5.2 mostra o comportamento da mtrica vazo com o mecanismo habilitado. Percebe-se uma maior equidade da vazo dos uxos. Quando o sistema est saturado, o uxo 1 no mais monopoliza o acesso. Mas mesmo com o mecanismo habilitado, h uma pequena diferena entre os uxos de nmero de saltos distintos: 1 cou um pouco melhor que 2 e esse, um pouco melhor que os uxos 3, 4 e 5. Em contrapartida, o mecanismo trouxe uma queda considervel da vazo total dos uxos.

400 350 300 Vazo (pct/s) 250 200 150 100 50 0 0

200 Oportunidades de transmisso por segundo N 5 N 4 N 3 N 2 N 1 N C N B 180 160 140 120 100 80 60 40

200 150 100 50

20 0 0 20 40 60 80 100 120 140 Carga oferecida (pct/s) 160 180 0 200

50

100

150

200

250

300

350

400

450

Carga oferecida (pct/s)

(a) Mecanismo de priorizao desabilitado.

(b) Mecanismo de priorizao habilitado.

Figura 5.3: Vazo e oportunidades de transmisso por n.

Nos grcos da Figura 5.3, o eixo y representa o nmero de oportunidades de transmisso por segundo do n. Os ns clientes somente podem enviar um quadro a cada oportunidade, assim para ns desse tipo, o eixo y tambm representa o nmero de quadros enviados por segundo (vazo em pct/s). J os roteadores podem enviar vrios quadros a cada oportunidade de transmisso. A quantidade mxima de quadros que podem ser enviados por n roteador est denido na tabela 5.2. Por exemplo, no caso especco do cenrio de simulao de Figura 5.1, ao n C, foi atribudo o valor 2,745 ms. Isso signica que a cada oportunidade de transmisso

53

Vazo (pct/s)

N 5 N 4 N 3 N 2 N 1 N C N B N C* N B*

350 300 250

ganha por C, o canal estar reservado para C por uma tempo mximo de 2,745 ms (tempo necessrio para o encaminhamento de at 3 quadros de 500 bytes). Com o mecanismo desabilitado, todos os ns enviam um quadro a cada oportunidade de transmisso. As ltimas duas linhas (N C* e N B*) do grco da direito da Figura 5.3 representam a vazo (pct/s) dos ns roteadores C e B. O grco esquerdo da Figura 5.3 tambm demostra que o sistema d sinais de saturao a partir de 70 pct/s. At esse pontos os ns B e C demandam uma

vazo num ritmo mais acelerado que os outros ns, isso porque eles so os ns que desempenham o papel de roteamento (C encaminha 3 uxos e B, 4 uxos). A partir de 70 pct/s, o grco mostra o incio da monopolizao de acesso por 1. No grco direito da Figura 5.3 podemos observar o rendimento de utilizao dos recursos disponibilizados para os roteadores. Rendimento a razo do nmero de quadro pelo nmero de oportunidades de transmisso. Quando o sistema est sob baixa demanda (at 70 pct/s), o rendimento baixo, pois no h pacotes em la sucientes para preencher por completo o recurso disponibilizado. Quando o

sistema d sinais de saturao (a partir de 70 pct/s), o rendimento aumenta. Veja que quando a vazo oferecida est em 70 pct/s, o rendimento do n C de aproximadamente 220 / 180 = 1,22 (41%), enquanto que a 90 pct/s, o rendimento de 250 / 90 = 2,77 (93%). O rendimento mximo para o roteador C aconteceria quando ele sempre transmitisse 3 quadros a cada oportunidade de transmisso. Vemos tambm que entre 70 e 90 pct/s de carga oferecida as oportunidades de transmisso de B e C diminuem, mas ao mesmo tempo a taxa de transmisso de pacotes aumenta, indicando uma melhora no rendimento de utilizao dos recursos. Aps anlise dos resultados, percebemos que as razes que motivam o descarte de pacotes so: la cheia (Figura 5.4) e coliso (Figura 5.5). Os clientes quase no descartam pacotes devido a coliso, predomina o descarte devido a la cheia. Isso ocorre porque os clientes so geradores de pacote. E como a taxa de gerao de

pacote maior que a taxa de insero de pacotes no sistema na camada de acesso ao meio, h um grande descarte de pacotes devido a la cheia a partir da taxa de 80

54

450 400 Descarte por fila cheia (pct/s) 350 300 250 200 150 100 50 0 0

Descarte por fila cheia (pct/s)

N 5 N 4 N 3 N 2 N 1 N C N B

140 120 100 80 60 40 20 0

N 5 N 4 N 3 N 2 N 1 N C N B

50

100

150

200

250

300

350

400

450

20

40

60

80

100

120

140

160

180

200

Carga oferecida (pct/s)

Carga oferecida (pct/s)

(a) Mecanismo de priorizao desabilitado.

(b) Mecanismo de priorizao habilitado.

Figura 5.4: Descarte de pacotes devido a la cheia.

25

Descarte por coliso (pct/s)

Descarte por coliso (pct/s)

20

15

N 5 N 4 N 3 N 2 N 1 N C N B N A

40 35 30 25 20 15 10 5

N 5 N 4 N 3 N 2 N 1 N C N B N A

10

0 0 50 100 150 200 250 300 350 400 450 Carga oferecida (pct/s)

0 0 20 40 60 80 100 120 140 160 180 200 Carga (pct/s)

(a) Mecanismo de priorizao desabilitado.

(b) Mecanismo de priorizao habilitado.

Figura 5.5: Descarte de pacotes devido a coliso.

pct/s. Os roteadores descartam mais pacotes devido a coliso. J que os roteadores no so geradores de pacotes, apenas encaminhadores, h uma menor utilizao de la e consequentemente melhor descarte por la cheia. O que explica uma elevada taxa de descarte por coliso comparado-se aos clientes o fato que os roteadores compartilham o seu raio de transmisso com um maior nmero de ns. Enquanto o cliente 1 compartilha sua rea de transmisso com apenas com o n A, o n roteador C compartilha com os ns B, 3, 4 e 5. Somado a isso, est o fato dos clientes no recebem quadros de dados. A probabilidade de haver coliso sempre maior para o quadro de dados, pois seu comprimento (tempo de transmisso) maior. Alm disso, para o NS-2 quando quadros colidem, a contabilizao dessa estatstica feita nos ns destinatrios dos quadros que participaram da coliso. Assim, como os ns

55

roteadores passam mais tempo recebendo que os ns clientes, pois os ns clientes s recebem quadros curtos (ACK), enquanto os ns roteadores recebem tanto quadros curtos, quanto longo (de dados), mais predominantemente o ltimo, ento haver um nmero consideravelmente maior de colises no lado dos roteadores. O roteador A no foi includo nos grcos da Figura 5.4 porque A no envia quadros de dados. Quando, por exemplo, 1 tenta enviar um quadro para A e esse colide, tal contabilizao feita em A, pois esse motivo, foi includo o n A nos grcos da Figura 5.5.

5.4 Outros cenrios


Nesta seo, avaliamos o mecanismo simulando dois cenrios adicionais. No primeiro (Seo 5.4.1), apresentamos uma RMSF de topologia ideal para o uso do mecanismo de priorizao. No segundo (Seo 5.4.2), simulamos uma RMSF de topologia ruim, pois no apresenta melhora quando o mecanismo est habilitado.

5.4.1

Em linha

Figura 5.6: Cada n cliente (5, 4, 3, 2 e 1) gera um uxo destinado ao n A.

A Figura 5.6 ilustra uma RMSF com 5 ns clientes e 5 ns roteadores. A congurao do cenrio semelhante ao da seo 5.2. Os ns 1, 2, 3, 4 e 5 geram trfego CBR sobre o protocolo UDP. Os pacotes so de 500 bytes destinado ao n A. Os

56

ns A, B, C, D e E so roteadores congurados com rotas estticas que formam o tronco sem o. A distncia entre os ns nos eixos x ou y de 100 metros.

2.5

Fluxo 5 Fluxo 4 Fluxo 3 Fluxo 2 Fluxo 1 Fluxos agregados Vazo (Mbps)

1.6 1.4 1.2 1 0.8 0.6 0.4

Fluxo 5 Fluxo 4 Fluxo 3 Fluxo 2 Fluxo 1 Fluxos agregados

Vazo (Mbps)

1.5

0.5 0.2 0 0 50 100 150 200 250 300 350 400 450 Carga oferecida (pct/s) 0 0 25 50 75 100 125 150 175 200 Carga oferecida (pct/s)

(a) Mecanismo de priorizao desabilitado.

(b) Mecanismo de priorizao habilitado.

Figura 5.7: Vazo em Mbps por uxo.

400 350 300 Vazo (pct/s) 250 200 150 100 50 0

Oportunidades de transmisso por segundo

70 60 50 40 30 20 10 0 20 40 60 80 100 120 140 Carga oferecida (pct/s) 160 180

70 60 50 40 30 20 10 200

50

100

150 200 250 300 Carga oferecida (pct/s)

350

400

450

(a) Mecanismo de priorizao desabilitado.

(b) Mecanismo de priorizao habilitado.

Figura 5.8: Vazo e oportunidades de transmisso e por n.

Na Figura 5.7(a), a vazo mxima da rede ocorre em 375 pct/s de carga oferecida. J em 50 pct/s de carga oferecida h uma queda de vazo do uxo 5. A Figura 5.7(b) mostra que com o mecanismo habilitado houve uma melhora na equidade de vazo entre os uxos. Na Figura 5.8(a) foi plotada a vazo por n. No eixo y do grco ler-se Vazo (pct/s), mas pode ler-se Oportunidades de transmisso por segundo, pois somente um pacote enviado a cada oportunidade de transmisso. Quando o mecanismo est habilitado (Figuras 5.8(b)), percebemos uma equalizao das oportunidades de transmisso entre os grupos de ns clientes e roteadores.

57

Vazo (pct/s)

N 5 N 4 N 3 N 2 N 1 N E N D N C N B

110 100 90 80

N 5 N 4 N 3 N 2 N 1 N E N D N C N B

110 100 90 80

110 Oportunidades de transmisso por segundo 100 90 80 70 60 50 40 30 20 10 0

N D N C N B N D* N C* N B*

300

250

200 Vazo (pct/s)

150

100

50

20

40

60 80 100 120 140 Carga oferecida (pct/s)

160

180

0 200

Figura 5.9: Relao entre as mtricas Oportunidades de transmisso (sem asterisco) e Vazo (com asterisco).

Isso ocorre porque os roteadores so priorizados em detrimento dos clientes. Sem essa priorizao o n cliente mais prximo monopoliza as oportunidades de transmisso (5.8(a)). Os roteadores B, C e D passam a enviar um nmero de pacotes maior que um a cada oportunidade de transmisso. A Figura 5.9 mostra a relao entre as mtricas Oportunidades de transmisso (sem asterisco) e Vazo (com asterisco), ou seja, mostra a relao entre o nmero de quadros enviados por oportunidade de transmisso. Quando a carga oferecida 100 pct/s, o nmero de oportunidades de transmisso de D aproximadamente 79 e a vazo de 130 pct/s.

5.4.2

Estrela

A Figura 5.10 ilustra uma RMSF com 8 ns clientes e 1 n roteador. Os ns 1, 2, 3, 4, 5, 6, 7 e 8 geram trfego CBR sobre o protocolo UDP. Os pacotes so de 500 bytes destinado ao n A. A distncia entre os ns clientes e o n A de 100 metros. Neste cenrio, o mecanismo de priorizao proposto no inuencia os resultados quando o mecanismo est habilitado. Isso porque todos os ns clientes esto a um salto de distncia do roteador de borda (n A).

58

Figura 5.10:

Topologia em estrela.

Os ns 1, 2, 3, 4, 5, 6, 7 e 8 geram uxos

destinados a A.

4 3.5 3 Vazo (Mbps) 2.5 2 1.5 1 0.5 0 0

Vazo (Mbps)

Fluxo 1 Fluxo 2 Fluxo 3 Fluxo 4 Fluxo 5 Fluxo 6 Fluxo 7 Fluxo 8 Fluxos agregados

4 3.5 3 2.5 2 1.5 1 0.5 0

Fluxo 1 Fluxo 2 Fluxo 3 Fluxo 4 Fluxo 5 Fluxo 6 Fluxo 7 Fluxo 8 Fluxos agregados

50

100

150 200 250 300 Carga oferecida (pct/s)

350

400

450

20

40

60

80 100 120 140 Carga oferecida (pct/s)

160

180

200

(a) Mecanismo de priorizao desabilitado.

(b) Mecanismo de priorizao habilitado.

Figura 5.11: Vazo em Mbps por uxo.

140 120 100 Vazo (pct/s) 80 60 40 20 0

Oportunidades de transmisso por segundo

N 1 N 2 N 3 N 4 N 5 N 6 N 7 N 8

160 140 120 100 80 60 40 20 0

N 1 N 2 N 3 N 4 N 5 N 6 N 7 N 8

50

100

150 200 250 300 Carga oferecida (pct/s)

350

400

450

20

40

60

80 100 120 140 Carga oferecida (pct/s)

160

180

200

(a) Mecanismo de priorizao desabilitado.

(b) Mecanismo de priorizao habilitado.

Figura 5.12: Vazo e oportunidades de transmisso e por n.

59

Captulo 6 Concluso
As redes locais sem o baseadas no padro IEEE 802.11 esto crescentemente sendo utilizadas para o provimento de acesso Internet em lugares pblicos. Com o

objetivo de estender a rea de cobertura de tais redes de maneira economicamente vivel, arquitetos de rede vem estudando as Redes em Malha sem Fio, caracterizadas pelo baixo custo de equipamentos (rdio e plataforma), facilidade de congurao, instalao e manuteno. Essas redes so basicamente formadas por ns sem o do tipo cliente e roteador. Os roteadores so dispostos em locais xos conectados rede eltrica formando uma malha ou tronco sem o e executam um papel fundamental para manuteno da conectividade da rede: o roteamento de pacotes. Os ns clientes usam essa malha para estabelecerem comunicao entre si e, principalmente, com uma rede cabeada externa. Quando incrementarmos gradativamente a velocidade de transmisso dos ns clientes, a velocidade de transmisso daqueles prximos ao roteador de borda continua a crescer em detrimento da velocidade de transmisso daqueles mais distantes. Quando a rede chega ao nvel mximo de saturao, observamos, por intermdio de experimentos de simulao, que os ns clientes mais distantes do roteador de borda da Rede em Malha sem Fio sofrem de inanio (causado pelo esgotamento do recurso

tempo de acesso ao meio ).

Este trabalho apresentou um mecanismo de priorizao dos ns (roteadores) que formam o tronco da Rede em Malha sem Fio. Seu objetivo compartilhar, de forma

60

justa, o recurso

tempo de acesso ao meio

entre os ns roteadores e maximizar o uso

do recurso disponibilizado pelo mecanismo de priorizao. O funcionamento bsico desse dar-se pela designao de uma certa quantidade do recurso supracitado a cada n roteador sem o que forma o tronco da Rede em Malha sem Fio baseado no nmero de ns clientes descendentes por roteador. Os experimentos de simulao mostraram que o mecanismo ecaz, visto que ele alocou o recurso proporcionalmente ao nmero de uxos encaminhados por n roteador, minimizando o problema de desbalanceamento de recurso entre os ns da Rede em Malha sem Fio. A ecincia foi avaliada atravs de comparaes entre o desempenho da Rede em Malha sem Fio de referncia com o mecanismo de priorizao desabilitado e habilitado.

6.1 Trabalhos futuros


Com base no trabalho desenvolvido, apresentado nesta dissertao, listo algumas sugestes para trabalhos futuros:

Alocao dinmica de recurso:

como dito no Captulo 3, o mecanismo de

priorizao alocar uma quantia de recurso em funo do nmero de ns clientes descendentes. Se o nmero de ns clientes variar dinamicamente, necessrio a alocao de recurso seja dinmica.

Protocolo de troca de informaes entre ns roteadores: tal protocolo seria necessrio, visto que a alterao dinmica na quantidade de recurso reservado por um dado roteador implica na necessidade de atualizao dessa informao nos roteados antecedentes.

Mltiplas las e poltica de escalonamento [74] por n roteador: quando um roteador ganha uma disputa de acesso ao meio, ele envia pacotes em srie at seu recurso acabar. Uma poltica de escalonamento de pacotes implementado no roteador objetivaria maximizar a equidade de alocao de pacotes

61

pertencentes a uxos oriundos de clientes distintos.

Dependendo do padro

de trfego de uxos, pode haver um profundo impacto na alocao de banda entre os ns clientes. Por exemplo, uxos de dados gerados por aplicativos

de voz, caracterizados por pequenos pacotes e frequentes requisies de acesso tendem a dominar o uso do meio compartilhado quando comparado a uxos de dados gerados por aplicativos de compartilhamento de arquivos.

62

Referncias Bibliogrcas
[1] TODOR COOKLEV,

Wireless Communication Standards: a study of IEEE


2004.

802.11, 802.15 and 802.16 .

[2] MARCOS ORTIZ, ACLIO SOUSA, DIOGO LIMA, MARCIAL FERNANDEZ, JOS NEUMAN DE SOUZA,  Anlise, Implementao e Teste de uma Estratgia Autnoma de Incentivo Cooperao em Redes Ad-Hoc. In:

XXV Simpsio Brasileiro de Redes de Computores (SBRC 2007) , pp.

235248, Belm, Brasil, 2007.

[3] IAN F. AKYILDIZ, XUDONG WANG, WEILIN WANG,  Wireless mesh networks: a survey, 487, 2004.

Comput. Netw. ISDN Syst.,

v. 47, n. 4, pp. 445

[4] IVAN

F.

AKYILDIZ,

XUDONG

WANG,

A

Survey

on

Wireless

Mesh

Networks, 2005.

IEEE Communication Magazine ,

v. 43, n. 9, pp. S23S30,

[5] YAN ZHANG, JIJUN LUO, HONGLIN HU,

Wireless Mesh Networking - Archi-

tectures, Protocols and Standards . Wireless Networks and Mobile Communications Series , 2007.
[6] SEONGKWAN KIM, SUNG-JU LEE, SUNGHYUN CHOI,  The Impact of IEEE 802.11 MAC Strategies on Multi-Hop Wireless Mesh Networks,

WiMesh 2006. 2nd IEEE Workshop on Wireless Mesh Networks , pp. 38
47, 2006.

63

[7] VADUVUR BHARGHAVAN, ALAN DEMERS, SCOTT SHENKER, LIXIA ZHANG,  MACAW: A Media Access Protocol for Wireless LAN's. In:

Proceedings of the Conference on Communications Architectures, Protocols and Applications , pp. 212225, 1994.
[8] SHUGONG XU, TAREK SAADAWI,  Does IEEE 802.11 MAC Protocol Work Well in Multi-hop Wireless Ad Hoc Networks?

IEEE Communications

Magazine , v. 39, n. 6, pp. 130137, 2001.


[9] HUNG-YUN HSIEH, RAGHUPATHY SIVAKUMAR,  IEEE 802.11 over Multihop Wireless Networks: Problems and New Perspectives. In:

Proceedings

of the 56th IEEE Vehicular Technology Conference ,


September 2002.

v. 2, pp. 748752,

[10] KAROL KOWALIK, MARK DAVIS,  Why Are There So Many Routing Protocols for Wireless Mesh Networks? 2006.

Irish Signal and Systems Conference ,

[11] MATTHEW GAST, Edition ed.

802.11 R Wireless Networks The Denitive Guide . Second

1005 Gravenstein Highway North, Sebastopol, CA 95472,

O'Reilly, 2005.

[12] ANDREW S. TANENBAUM, 2003.

Computer Networks .

Fourth ed.

Prentice Hall ,

[13] DANIEL CAVAS OTERO,

Alternativas para Diferenciao de Servios em Re-

des Locais sem Fio , Dissetao de Mestrado, Universidade Federal do Rio


de Janeiro, Rio de Janeiro, RJ, Brasil, 2004.

[14] MARCELO G. RUBINSTEIN, JOS FERREIRA DE REZENDE,

Qualidade

de Servio em Redes 802.11 , Relatrio tcnico, Depto. de Eng. Eletrnica


e Telecomunicaes, Universidade Estadual do Rio de Janeiro; Grupo de Teleinformtica e Automao, Universidade Federal do Rio de Janeiro, 2002.

64

[15] HUA ZHU, MING LI, IMRICH CHLAMTAC, B. PRABHAKARAN,  A Survey of Quality of Service in IEEE 802.11 Networks,

IEEE Wireless Commu-

nications , v. 11, n. 4, pp. 614, 2004.


[16] QIANG NI, LAMIA ROMDHANI, THIERRY TURLETTI,  A survey of QoS enhancements for IEEE 802.11 wireless LAN: Research Articles,

Wirel.

Commun. Mob. Comput., v. 4, n. 5, pp. 547566, 2004.


[17] INTEL R ,

Providing QoS in WLANs ,

Relatrio tcnico, 2004, How the IEEE

802.11e Standard QoS Enhancements Will Aect the Performance of WLANs.

[18] DAQING GU, JINYUN ZHANG ,  QoS Enhancement in IEEE 802.11 Wireless Local Area Networks, pp. 120124, 2003.

IEEE Communications Magazine , v. 41, n. 6,

[19] NAOMI RAMOS, DEBASHIS PANIGRAHI, SUJIT DEY,  Quality of Service Provisioning in 802.11e Networks: Challenges, Approaches, and Future Directions,

IEEE Network , v. 19, n. 4, pp. 1420, 2005.

[20] ADLEN KSENTINI, ABDELHAK GUROUI, MOHAMED NAIMI,  Adaptive Transmission Opportunity with Admission Control for IEEE 802.11e Networks. In:

Proceedings of the 8th ACM International Symposium on


pp.

Modeling, Analysis and Simulation of Wireless and Mobile Systems ,


234241, 2005.

[21] LAMIA ROMDHANI, QIANG NI, THIERRY TURLETTI,  Adaptive EDCF: Enhanced Networks. Service In: Dierentiation for IEEE 802.11 Wireless Ad-Hoc v. 2,

IEEE Wireless Communications and Networking ,

n. 16-20, pp. 13731378, 2003.

[22] IMAD AAD, CLAUDE CASTELLUCCIA,  Dierentiation mechanisms for IEEE 802.11,

INFOCOM 2001. Twentieth Annual Joint Conference of

65

the IEEE Computer and Communications Societies ,


2001.

v. 1, pp. 209218,

[23] XUDONG WANG, SUNGHYUN CHOI, JEAN-PIERRE HUBAUX,  Wireless Mesh Networking Theories, Protocols and Systems,

IEEE Wireless Com-

munications , v. 13, n. 2, pp. 89, 2006.


[24] LUCIANA ESTEVES NEVES HILARIO,

Qualidade de Servio em Redes

Mesh , Dissetao de Mestrado, Universidade Federal Fluminense, 2006.


[25] BHASKARAN RAMAN, KAMESWARI CHEBROLU,  Revisiting MAC Design for an 802.11 based Mesh Network, 2004.

[26] TZU-JANE TSAI AND JU-WEI CHEN,  IEEE 802.11 MAC protocol over wireless mesh networks: 2005. problems and perspectives. v. 2, pp. 6063,

[27] GUSTAVO G. DA

FERNANDES TRINDADE,

BARBOSA,  IEEE

MARCELA 802.20 

RIBEIRO Mobile Fi,

http://www.gta.ufrj.br/rezende/cursos/eel879/trabalhos/80220/, 2004, ltimo acesso em Setembro de 2008.

[28] WEI ZHOU, DONGBO ZHANG, DAJI QIAO,  Comparative study of routing metrics for multi-radio multi-channel wireless networks. In:

Wireless

Communications and Networking Conference, 2006. WCNC 2006. IEEE ,


v. 1, pp. 270275, 2006.

[29] RICHARD DRAVES, JITENDRA PADHYEA, BRIAN ZILL,  Comparison of routing metrics for static multi-hop wireless networks. In:

SIGCOMM
pp. 133144,

'04: Proceedings of the 2004 conference on Applications, technologies, architectures, and protocols for computer communications ,
New York, NY, USA, ACM, 2004.

[30] NAOUEL BEN SALEM, JEAN-PIERRE HUBAUX,  Securing Wireless Mesh Networks,

IEEE Internet Computing , v. 12, n. 4, pp. 3036, 2008.


66

[31] ASHISH RANIWALA, TZI-CKER CHIUEH,  Architecture and Algorithms for an IEEE 802.11-Based Multi-Channel Wireless Mesh Network,

INFO-

COM 2005. 24th Annual Joint Conference of the IEEE Computer and Communications Societies. Proceedings IEEE., v. 3, pp. 22232234, March
2005.

[32] ILENIA TINNIRELLO, SUNGHYUN CHOI,  Temporal Fairness Provisioning in Multi-Rate Contention-Based 802.11e WLANs. pp. 220230, 2005.

[33] LI ZHENG, ARKADIUSZ (AREK) DADEJ, STEVEN GORDON,  Fairness of IEEE 802.11 Distributed Coordination Function for multimedia applications. 2003.

[34] DAJIANG HE, CHARLES Q. SHEN,  Simulation Study of IEEE 802.11e EDCF,

Vehicular Technology Conference , v. 1, pp. 685689, 2003.

[35] BRAHIM BENSAOU, YU WANG, CHI CHUNG KO,  Fair Medium Access in 802.11 based Wireless Ad-Hoc Networks,

Mobile and Ad Hoc Networking

and Computing (MobiHOC) , pp. 99106, 2000.


[36] YU WANG, BRAHIM BENSAOU,  Achieving Fairness in IEEE 802.11 DFWMAC with Variable Packet Lengths,

Global Telecommunications Confe-

rence , v. 6, pp. 35883593, 2001.


[37] KUANG-CHING WANG, PARAMESWARAN RAMANATHAN,  End-to-End Delay Assurances in Multihop Wireless Local Area Networks. In:

Glo-

bal Telecommunications Conference (GLOBECOM) , v. 5, pp. 29622966,


2003.

[38] MIGUEL ELIAS M. CAMPISTA, LUS HENRIQUE M. K. COSTA, OTTO CARLOS M. B. DUARTE,  Um Mecanismo para Privilegiar Pacotes de Vida Longa em Redes Sem Fio de Mltiplos Saltos,

XXV Simpsio Bra-

sileiro de Redes de Computadores (SBRC) , pp. 14, 2007.

67

[39] JANGEUN JUN, MIHAIL L. SICHITIU,  Fairness and QoS in Multihop Wireless Networks. In:

Proceedings of the 58th IEEE Vehicular Technology

Conference , v. 5, pp. 2936 2940, 2003.


[40] HUNG-YUN HSIEH, RAGHUPATHY SIVAKUMAR,  Improving Fairness and Throughput in Multi-hop Wireless Networks. In:

Proceedings of the First


v. 2093, pp. 569578,

International Conference on Networking - Part 1 ,


2001.

[41] K. DUFFY, D.J. LEITH, T. LI AND D. MALONE,  Improving Fairness in Multi-Hop Mesh Networks Using 802.11e,

4th International Symposium

on Modeling and Optimization in Mobile, Ad Hoc and Wireless Networks ,


pp. 18, 2006.

[42] QUNFENG DONG, SUMAN BANERJEE, BENYUAN LIU,  Throughput Optimization and Fair Bandwidth Allocation in Multi-Hop Wireless LANs. In:

Proceedings of the 25th IEEE International Conference on Computer

Communications , pp. 112, 2006.


[43] MARTIN HEUSSE, FRANCK ROUSSEAU, GILLES BERGER-SABBATEL, ANDRZEJ DUDA,  Performance anomaly of 802.11b. March-April 2003.

[44] VIOLETA GAMBIROZA, BAHAREH SADEGHI, EDWARD W. KNIGHTLY,  End-to-end performance and fairness in multihop wireless backhaul networks. In:

MobiCom '04: Proceedings of the 10th annual international

conference on Mobile computing and networking , pp. 287301, New York,


NY, USA, ACM Press, 2004.

[45] JAYME LUIZ SZWARCFITER, LILIAN MARKENZON,

Estrutura de Dados

e seus Algoritmos .

2o. Edio ed.

LTC , 1994.

[46] DR. JUERGEN ROCHOL, LARA D. SOUZA, LEONARDO SEWALD, RICARDO HERNANDES FERNANDES,  Plataformas de Simulao de

68

Software Livre para Redes Fixas e Mveis: Caractersticas, Suporte, Instalao e Validao, 2001.

[47] WANG,

 NCTUns

5.0

Network

Simulator 2009,

and

Emulator, em Ja-

http://nsl.csie.nctu.edu.tw/nctuns.html, neiro de 2009.

ltimo

acesso

[48] JAHANZEB FAROOQ, BILAL RAUF,

Implementation and Evaluation of


Dissetao de Mestrado,

IEEE 802.11e Wireless LAN in GloMoSim ,


Umea University, Sweden, 2006.

[49]  NS-2 Wiki, http://nsnam.isi.edu/nsnam/index.php/Main_Page, 2009, ltimo acesso em Janeiro de 2009.

[50] EITAN ALTMAN, TANIA JIMNEZ,

NS Simulator for Beginners ,

Mrida,

Venezuela; Sophia-Antipolis, France, 2003, Lecture notes, 2003-2004.

[51] JAE

CHUNG,

MARK

CLAYPOOL,

 NS

by

Example,

http://nile.wpi.edu/NS/, ltimo acesso em Janeiro de 2009.

[52] JOSHUA

ROBINSON,

 802.11

MAC

code

in

NS-2

(version

2.28),

http://www.joshuarobinson.net/docs/802_11.html, 2005, ltimo acesso em Outubro de 2009.

[53] MARC

GREIS,

 Tutorial

for

the

Network ltimo

Simulator acesso em

ns , Janeiro

http://www.isi.edu/nsnam/ns/tutorial/, de 2009.

[54] SYSTEMS SITY

ARCHITECTURE BERLIN,  General

GROUP, 802.11 and

HUMBOLDT 802.11e support

UNIVERin NS-2, 2007,

http://sarwiki.informatik.hu-berlin.de/Network_Simulator_ns2, ltimo acesso em Agosto de 2008.

[55] CHIH-HENG over

KE, DCF-based

 Examples and

for

CBR

trac wireless

transmission networks,

EDCF-based

69

http://hpds.ee.ncku.edu.tw/smallko/ns2/EDCF_example.htm, ltimo acesso em Outubro de 2009.

2006,

[56] GREGORY SATIR, DOUG BROWN, 1995.

C++: The Core Language .

First ed.

[57] BRENT B. WELCH, KEN JONES, JEFFREY HOBBS,

Practical Program-

ming in Tcl and Tk .

Fourth ed. 2003.

[58] DALE DOUGHERTY, ARNOLD ROBBINS,

sed & awk .

2nd ed. 1997.

[59]  NS-2.28

all-in-one

download,

http://www.isi.edu/nsnam/dist/ns-allinone-

2.28.tar.gz, ltimo acesso em Fevereiro de 2008.

[60] NI QIANG,  NS-2 implementation codes for IEEE 802.11e QoS-enahnced wireless LAN. http://www-sop.inria.fr/planete/qni/Research.html, ltimo acesso em Fevereiro de 2008.

[61] QIANG NI,  NS-802.11e EDCF for IEEE 802.11e Wireless LAN, ftp://ftpsop.inria.fr/rodeo/qni/ns-edcf.tar.gz, 2000, ltimo acesso em Janeiro de 2008.

[62] MATHIEU

LACAGE,

 NS-2

802.11e

support,

http://yans.inria.fr/ns-2-

80211/, ltimo acesso em Janeiro de 2008.

[63] SVEN

WIETHLTER, CFB

CHRISTIAN Model

HOENE, for

 IEEE

802.11e

EDCA

and

Simulation

NS-2,

http://www.tkn.tu-

berlin.de/research/802.11e_ns2/, 2007, On this web page, we present an open-source, veried simulation model of IEEE 802.11e's EDCF / EDCA mode for the network simulator (ns-2.26 / ns-2.28). ltimo acesso em Dezembro de 2007.

[64]  The

Rice

Monarch

Project:

Mobile

Networking

Architectures,

http://www.monarch.cs.rice.edu/.

70

[65] SVEN

WIETHOELTER,

MARC

EMMELMANN,

CHRISTIAN

HOENE,

ADAM WOLISZ,

TKN EDCA Model for ns-2.28 , Technical Report, Te-

lecommunication Networks Group, Technical University Berlin, 2006.

[66] SVEN WIETHOELTER, CHRISTIAN HOENE,

Design and Verication of an

IEEE 802.11e EDCF Simulation Model in ns-2.26 , Technical Report, Telecommunication Networks Group, Technical University Berlin, 2003.

[67] VIVEK,  NS Static Routing, http://decision.csl.uiuc.edu/vivek/software/nsmanual/, ltimo acesso em Janeiro de 2008.

[68] KEN TANG, MARIO GERLA,  Fair Sharing of MAC under TCP in Wireless Ad Hoc Networks,

IEEE MMT (Multiaccess, Mobility and Teletrac for

Wireless Communications) , 1999.


[69] GERLA, MARIO AND TANG, KEN AND BAGRODIA, RAJIVE,  TCP Performance in Wireless Multi-hop Networks. In:

E-WIND '05: Proceedings

of the 2005 ACM SIGCOMM workshop on Experimental approaches to wireless network design and analysis , p. 41, New York, NY, USA, ACM,
1999.

[70] SAAR PILOSOF, RAN RAMJEE, YUVAL SHAVITT, PRASUN SINHA,  Understanding TCP fairness over wireless LAN. In: 863872, 2003.

IEEE INFOCOM , pp.

[71] ANTHONY C. H. NG, DAVID MALONE, DOUGLAS J. LEITH,  Experimental evaluation of TCP performance and fairness in an 802.11e test-bed. In:

E-WIND '05: Proceedings of the 2005 ACM SIGCOMM workshop

on Experimental approaches to wireless network design and analysis , pp.


1722, New York, NY, USA, ACM, 2005.

[72] D. J. LEITH, P. CLIFFORD,  Using the 802.11e EDCF to Achieve TCP Upload Fairness over WLAN Links. In:

WiOpt '05: Proceedings of the Third

International Symposium on Modeling and Optimization in Mobile, Ad


71

Hoc, and Wireless Networks , pp. 109118, Washington, DC, USA, IEEE
Computer Society, 2005.

[73] JOSHUA

ROBINSON,

 Making

NS-2

simulate

an

802.11b 2005,

link, ltimo

http://www.joshuarobinson.net/docs/ns-802_11b.html, acesso em Outubro de 2009.

[74] DAVIDE ASTUTI,  Packet Handling, Seminar on Transport of Multimedia Streams in Wireless Internet at University of Helsinki Helsinki, Finland, 2001.

72

Apndice A Cdigo Tcl de simulao


Cdigo-fonte A.1:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37

# =========================================================== # Definio de constantes # =========================================================== # Exemplo : # 0 ,0 10 # 0 ,1 20 # N 0 , x =10 e y =20 array set nodePosition { 0 ,0 100 0 ,1 200 1 ,0 0 1 ,1 100 2 ,0 100 2 ,1 0 3 ,0 200 3 ,1 0 4 ,0 300 4 ,1 0 5 ,0 100 5 ,1 100 6 ,0 200 6 ,1 100 7 ,0 300 7 ,1 100 8 ,0 0 8 ,1 0 9 ,0 200 9 ,1 200 10 ,0 300 10 ,1 200 } set numberOfNodes [ expr [ array size nodePosition ] / 2] set greatestX 0 set greatestY 0 for { set i 0} { $i < $numberOfNodes } { incr i } {
73

Script

Tcl de congurao da simulao

38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88

if { $nodePosition ( $i ,0) > $greatestX } { set greatestX $nodePosition ( $i ,0) } if { $nodePosition ( $i ,1) > $greatestY } { set greatestY $nodePosition ( $i ,1) }

# Definio de fluxo # Uso : ndice [ udp | tcp ] n_origem n_destino [ prioridade ] array set flowDefinition { 0 { udp 0 7 2} 1 { udp 1 7 2} 2 { udp 2 7 2} 3 { udp 3 7 2} 4 { udp 4 7 2} 5 { udp 4 7 2} } set numberOfFlows [ array size flowDefinition ] set numberOfFlows 5 # Ns monitorados set monitoredNodes {0 1 2 3 4 5 6} # Tratamentos de argumentos passados por linha de comando # Uso : - time [ TEMPO ( s ) ] # - prate [ TAXA EM PACOTES ] # - brate [ TAXA EM bps ] # - psize [ TAMANHO DO PACOTE ( bytes ) ] # - seed [ SEMENTE ] lappend optlist time prate brate psize seed for { set i 0} { $i < $argc } { incr i } { set arg [ lindex $argv $i ] if {[ string range $arg 0 0] != " -" } continue set name [ string range $arg 1 end ] set opt ( $name ) [ lindex $argv [ expr $i +1]]

# Parmetros passados ao NS set opt ( mac ) Mac /802 _11 set opt ( rp ) Manual roteamento set opt ( ll ) LL set opt ( ifqlen ) 50 fila set opt ( ant ) Antenna / OmniAntenna set opt ( prop ) Propagation / TwoRayGround propagation model set opt ( netif ) Phy / WirelessPhy interface type set opt ( chan ) Channel / WirelessChannel set opt ( rxthr ) 1.42111 e -08 transmisso (= 100 m ) set opt ( csthr ) 2.28289 e -11 de portadora (= 500 m )

; # MAC type ; # Protocolo de ; # link layer type ; # Tamanho mx . da ; # antenna model ; # radio ; # network ; # channel type ; # raio de ; # raio de deteco

74

89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137

set opt ( rtsthr ) 6000 mecanismo de RTS / CTS if {![ info exists opt ( time ) ]} { set opt ( time ) 20.0 simulao } if {![ info exists opt ( psize ) ]} { set opt ( psize ) 500 pacote } if {![ info exists opt ( prate ) ]} { set opt ( prate ) 1 segundo } if {![ info exists opt ( seed ) ]} { set opt ( seed ) 0 zero para semente aleatria } if { $opt ( mac ) == " Mac /802 _11e " } { set opt ( ifq ) Queue / DTail / PriQ for 802.11 e } else { set opt ( ifq ) Queue / DropTail / PriQueue type }

; # limiar do ; # tempo de

; # Tamanho do

; # pacotes por

; # semente . Use

; # priority queue ; # interface queue

# Nome deste aquivo / script set thisScript [ exec echo $argv0 | sed -r s /\. tcl$ // ] set set set set set set set set set throughputTraceFileName " $thisScript vazao . tr " throughputTraceId [ open $throughputTraceFileName w ] meanThroughputTraceFileName " $thisScript vazao media . tr " meanThroughputTraceId [ open $meanThroughputTraceFileName w ] dropRateTraceFileName " $thisScript descarte por fluxo . tr " dropRateTraceId [ open $dropRateTraceFileName w ] dropRateIfqTraceFileName " $thisScript descarte IFQ . tr " dropRateIfqTraceId [ open $dropRateIfqTraceFileName w ] dropRateCollisionTraceFileName " $thisScript descarte colisao . tr

" set dropRateCollisionTraceId [ open $dropRateCollisionTraceFileName w] set txopTraceFileName " $thisScript txop . tr " set txopTraceFileNameId [ open $txopTraceFileName w ]

# =========================================================== # Procedimentos # =========================================================== proc createTcp { from to { prio 3}} { global node flow numberOfFlows opt set ns [ Simulator instance ] set flowId [ expr [ array size flow ] / 4] set flow ( $flowId , src ) [ new Agent / TCP / Newreno ] set flow ( $flowId , sink ) [ new Agent / TCPSink / Sack1 ] $flow ( $flowId , src ) set fid_ [ expr $flowId + 1]
75

138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194

$flow ( $flowId , src ) set prio_ $prio $ns attach - agent $node ( $from ) $flow ( $flowId , src ) $ns attach - agent $node ( $to ) $flow ( $flowId , sink ) $ns connect $flow ( $flowId , src ) $flow ( $flowId , sink ) set flow ( $flowId , app ) [ new Application / FTP ] $flow ( $flowId , app ) set packetSize_ $opt ( psize ) $flow ( $flowId , app ) attach - agent $flow ( $flowId , src ) } set flow ( $flowId , totalSinkBytes ) 0

proc createUdp { from to { prio 3}} { global node flow numberOfFlows opt set ns [ Simulator instance ] set flowId [ expr [ array size flow ] / 4] puts " Tamanho de flow [ array size flow ] " puts " flowId : $flowId , from : $from , to : $to " set flow ( $flowId , src ) [ new Agent / UDP ] set flow ( $flowId , sink ) [ new Agent / LossMonitor ] $flow ( $flowId , src ) set fid_ [ expr $flowId + 1] $flow ( $flowId , src ) set prio_ $prio $ns attach - agent $node ( $from ) $flow ( $flowId , src ) $ns attach - agent $node ( $to ) $flow ( $flowId , sink ) $ns connect $flow ( $flowId , src ) $flow ( $flowId , sink ) set flow ( $flowId , app ) [ new Application / Traffic / CBR ] $flow ( $flowId , app ) set packetSize_ $opt ( psize ) if {![ info exists opt ( brate ) ]} { $flow ( $flowId , app ) set interval_ [ expr 1.0 / $opt ( prate ) ] } else { $flow ( $flowId , app ) set rate_ $opt ( brate ) } $flow ( $flowId , app ) set maxpkts_ 10 $flow ( $flowId , app ) attach - agent $flow ( $flowId , src ) set flow ( $flowId , totalSinkBytes ) 0

proc scheduleFlows {} { global numberOfFlows flow ns opt for { set i 0} { $i < $numberOfFlows } { incr i } { $ns at [ expr $i * 0.002] " $flow ( $i , app ) start " $ns at [ expr $opt ( time ) + 0.1 - ( $numberOfFlows - 1 - $i ) * 0.002] " $flow ( $i , app ) stop " } }
76

195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244

# Calcula vazo ( em Mbit / s ) e escreve num arquivo proc recordThroughput {} { global flow throughputTraceId numberOfFlows node set set set set set for ns [ Simulator instance ] tick 1.0 now [ $ns now ] line $now aggregateBytes 0 { set i 0} { $i < $numberOfFlows } { incr i } { set bytes ( $i ) [ $flow ( $i , sink ) set bytes_ ] set line " $line [ expr $bytes ( $i ) *8/ $tick /1000000] " set aggregateBytes [ expr $aggregateBytes + [ $flow ( $i , sink ) set bytes_ ]] set flow ( $i , totalSinkBytes ) [ expr $flow ( $i , totalSinkBytes ) + [ $flow ( $i , sink ) set bytes_ ]] $flow ( $i , sink ) set bytes_ 0

} set line " $line [ expr ( $aggregateBytes * 8) / ( $tick * 1000000) ]" puts $throughputTraceId $line # Chamada recursiva aps $tick segundos $ns at [ expr $now + $tick ] " recordThroughput "

# Plota grfico de vazo dos fluxos proc plotThroughput {} { global numberOfFlows throughputTraceFileName set plotCode " set encoding iso_8859_15 \ n \ set terminal postscript color \ n \ set output \ " [ string trimright $throughputTraceFileName " . tr " ]. eps \ " \ n \ set style data linesp \ n \ set grid y \ n \ set xlabel \ " Tempo ( segundos ) \ " \ n \ set ylabel \ " Vaz \\343 o ( Mbps ) \ " \ n \ plot " for { set i 0} { $i < $numberOfFlows } { incr i } { set plotCode " $plotCode \ " $throughputTraceFileName \ " using 1:[ expr $i + 2] title \ " Fluxo [ expr $i + 1]\ " ," } set plotCode " $plotCode \ " $throughputTraceFileName \ " using 1:[ expr $i + 2] title \ " Fluxos agregados \ " " exec echo $plotCode > [ string trimright $throughputTraceFileName " . tr " ]. plot exec echo -e $plotCode | nice gnuplot - persist & } # Calcula vazo mdia dos fluxos proc recordMeanThroughput {} { global meanThroughputTraceId numberOfFlows flow opt set line " " for { set i 0} { $i < $numberOfFlows } { incr i } { set line " $line [ expr $i + 1] [ expr $flow ( $i , totalSinkBytes ) * 8.0 / ( $opt ( time ) * 1000000) ] " }
77

245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265

puts $meanThroughputTraceId $line close $meanThroughputTraceId

266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294

proc plotMeanThroughput {} { global meanThroughputTraceFileName numberOfFlows set plotCode " set encoding iso_8859_15 \ n \ set terminal postscript color \ n \ set output \ " [ string trimright $meanThroughputTraceFileName " . tr " ]. eps \ " \ n \ set style data boxes \ n \ set xtics 1\ n \ # set ytics 0.2\ n \ set xrange \[0.5: $numberOfFlows .5\]\ n \ set yrange \[0:\]\ n \ set boxwidth 0.5\ n \ set xlabel \ " Fluxo \ " \ n \ set ylabel \ " Vaz \\343 o M \\351 dia ( Mbps ) \ " \ n \ set style fill solid \ n \ plot " for { set i 0} { $i < $numberOfFlows } { incr i } { set plotCode " $plotCode \ " $meanThroughputTraceFileName \ " using [ expr $i * 2 + 1]:[ expr $i * 2 + 2] title \ " Fluxo [ expr $i + 1]\ " ," } set plotCode [ string trimright $plotCode " , " ] exec echo -e $plotCode | nice gnuplot - persist & } # Calcula taxa de descarte de pacotes por fluxo proc recordDropRate { } { global numberOfFlows traceFileName dropRateTraceFileName thisScript flowDefinition set awkCode " BEGIN \{\ n \ \ ttick = 2.0\ n \ \ tnextStop = 0\ n \ \}\ n \ \ $1 == \ " s \ " \&\& ( " for { set i 0} { $i < $numberOfFlows } { incr i } { set awkCode " $awkCode \ $5 == \ " [ lindex $flowDefinition ( $i ) 1]\ " \|\| " } set awkCode [ string trimright $awkCode " || " ] set awkCode " $awkCode ) \&\& \ $19 == \ " MAC \ " \&\& \ $30 != \ " \ " \{\ n " for { set i 0} { $i < $numberOfFlows } { incr i } { if { $i > 0 } { set awkCode " $awkCode else " } set awkCode " $awkCode if ( \ $39 == [ expr $i + 1] ) numberOfPacketsSent \[ $i \] +=1\ n " } set awkCode " $awkCode \}\ n \ $1 == \ " r \ " \&\& \ $19 == \ " AGT \ " \{\ n" for { set i 0} { $i < $numberOfFlows } { incr i } { if { $i > 0 } { set awkCode " $awkCode else " }
78

295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345

} set awkCode " $awkCode \}\ n \ \{\ n \ if ( \ $3 >= nextStop ) \{\ n \ printf ( \ " %.1 f \ " , nextStop ) \ n \ for ( i = 0; i < $numberOfFlows ; i ++ ) \{\ n \ drop = numberOfPacketsSent \[ i \] numberOfPacketsReceived \[ i \]\ n \ printf ( \ " % d \ " , drop ) \ n \ numberOfPacketsSent \[ i \] = numberOfPacketsReceived \[ i \] = 0\ n \ \}\ n \ printf ( \ " \\ n \ " ) \ n \ nextStop += tick \ n \ \}\ n \ \}\ n " puts " Generating drop trace ... " exec echo $awkCode > [ string trimright $dropRateTraceFileName " . tr " ]. awk exec nice awk $awkCode $traceFileName > $dropRateTraceFileName

set awkCode " $awkCode if ( \ $39 == [ expr $i + 1] ) numberOfPacketsReceived \[ $i \] +=1\ n "

proc plotDropRate {} { global dropRateTraceFileName numberOfFlows set plotCode " set encoding iso_8859_15 \ n \ set terminal postscript color \ n \ set output \ " [ string trimright $dropRateTraceFileName " . tr " ]. eps \ " \ n \ set data style linesp \ n \ set grid y \ n \ set xlabel \ " Tempo ( segundos ) \ " \ n \ set ylabel \ " Taxa de descarte ( pacotes por segundos ) \ " \ n \ plot " for { set i 0} { $i < $numberOfFlows } { incr i } { set plotCode " $plotCode \ " $dropRateTraceFileName \ " using 1:[ expr $i + 2] title \ " Fluxo [ expr $i + 1]\ " ," } set plotCode [ string trimright $plotCode " , " ] exec echo -e $plotCode | nice gnuplot - persist & } # Calcula taxa de descarte de pacotes por n na fila proc recordDropRateIfq { nodes } { global numberOfFlows traceFileName dropRateIfqTraceFileName set awkCode " BEGIN \{\ n \ \ ttick = 1.0\ n \ \ tnextStop = 0\ n \ \}\ n \ \ $1 == \ " d \ " \&\& \ $19 == \ " IFQ \ " \{\ n " foreach i $nodes { if { [ lsearch $nodes $i ] > 0 } { set awkCode " $awkCode else " } set awkCode " $awkCode if ( \ $9 == $i ) drop \[[ lsearch $nodes $i ]\] +=1\ n " }
79

346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395

set awkCode " $awkCode \}\ n \ \{\ n \ if ( \ $3 >= nextStop ) \{\ n \ printf ( \ " %.1 f \ " , nextStop ) \ n \ for ( i = 0; i < [ llength $nodes ]; i ++ ) \{\ n \ printf ( \ " % d \ " , drop \[ i \] ) \ n \ drop \[ i \] = 0\ n \ \}\ n \ printf ( \ " \\ n \ " ) \ n \ nextStop += tick \ n \ \}\ n \ \}\ n " puts " Generating drop ifq trace ... " exec echo $awkCode > [ string trimright $dropRateIfqTraceFileName " . tr " ]. awk exec nice awk $awkCode $traceFileName > $dropRateIfqTraceFileName

proc plotDropRateIfq { nodes } { global dropRateIfqTraceFileName numberOfFlows set plotCode " set encoding iso_8859_1 \ n \ set terminal postscript color \ n \ set output \ " [ string trimright $dropRateIfqTraceFileName " . tr " ]. eps \ " \ n \ set data style linesp \ n \ set grid y \ n \ set xlabel \ " Tempo ( segundos ) \ " \ n \ set ylabel \ " Taxa de descarte ( pacotes por segundos ) \ " \ n \ plot " foreach i $nodes { set plotCode " $plotCode \ " $dropRateIfqTraceFileName \ " using 1:[ expr [ lsearch $nodes $i ] + 2] title \ " N \\363 $i \ " ," } set plotCode [ string trimright $plotCode " , " ] exec echo $plotCode > [ string trimright $dropRateIfqTraceFileName " . tr " ]. plot exec echo -e $plotCode | nice gnuplot - persist & } # Calcula taxa de descarte devido a coliso de pacotes por n proc recordDropRateCollision { nodes } { global numberOfFlows traceFileName dropRateCollisionTraceFileName set awkCode " BEGIN \{\ n \ \ ttick = 1.0\ n \ \ tnextStop = 0\ n \ \}\ n \ \ $1 == \ " d \ " \&\& \ $19 == \ " MAC \ " \&\& \ $21 == \ " COL \ " \{\ n " foreach i $nodes { if { [ lsearch $nodes $i ] > 0 } { set awkCode " $awkCode else " } set awkCode " $awkCode if ( \ $9 == $i ) drop \[[ lsearch $nodes $i ]\] +=1\ n " } set awkCode " $awkCode \}\ n \
80

396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423

\{\ n \ if ( \ $3 >= nextStop ) \{\ n \ printf ( \ " %.1 f \ " , nextStop ) \ n \ for ( i = 0; i < [ llength $nodes ]; i ++ ) \{\ n \ printf ( \ " % d \ " , drop \[ i \] ) \ n \ drop \[ i \] = 0\ n \ \}\ n \ printf ( \ " \\ n \ " ) \ n \ nextStop += tick \ n \ \}\ n \ \}\ n " puts " Generating drop collision trace ... " exec echo $awkCode > [ string trimright $dropRateCollisionTraceFileName " . tr " ]. awk exec nice awk $awkCode $traceFileName > $dropRateCollisionTraceFileName

424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445

proc plotDropRateCollision { nodes } { global dropRateCollisionTraceFileName numberOfFlows set plotCode " set encoding iso_8859_1 \ n \ set terminal postscript color \ n \ set output \ " [ string trimright $dropRateCollisionTraceFileName " . tr " ]. eps \ " \ n \ set data style linesp \ n \ set grid y \ n \ set xlabel \ " Tempo ( segundos ) \ " \ n \ set ylabel \ " Taxa de descarte ( pacotes por segundos ) \ " \ n \ plot " foreach i $nodes { set plotCode " $plotCode \ " $dropRateCollisionTraceFileName \ " using 1:[ expr [ lsearch $nodes $i ] + 2] title \ " N \\363 $i \ " ," } set plotCode [ string trimright $plotCode " , " ] exec echo $plotCode > [ string trimright $dropRateCollisionTraceFileName " . tr " ]. plot exec echo -e $plotCode | nice gnuplot - persist & } proc recordTxop { nodes } { global flowDefinition numberOfFlows traceFileName txopTraceFileName set awkCode " BEGIN \{\ n \ tick = 1.0\ n \ nextStop = 0\ n \ SIFS = 0.00001\ n " foreach i $nodes { set awkCode " $awkCode nFrame \[ $i \] = nTxop \[ $i \] = 0\ n " } set awkCode " $awkCode \}\ n \ \ $1 == \ " r \ " \&\& ( " foreach i $nodes { set awkCode " $awkCode \ $5 == \ " $i \ " \|\| " } set awkCode [ string trimright $awkCode " || " ] set awkCode " $awkCode ) \&\& \ $19 == \ " MAC \ " \&\& \ $30 == \ " \ " \{\ n \
81

446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491

start_time = \ $3 \ n \ \}\ n \ n \ \ $1 == \ " s \ " \&\& ( " foreach i $nodes { set awkCode " $awkCode \ $5 == \ " $i \ " \|\| " } set awkCode [ string trimright $awkCode " || " ] set awkCode " $awkCode ) \&\& \ $19 == \ " MAC \ " \&\& \ $23 == \ " 13 a \ " \{\ n \ interarrival = \ $3 - start_time \ n \ if ( interarrival >= ( SIFS * 1.1) ) \{\ n \ nTxop \[\ $5 \] += 1\ n \ \}\ n \ nFrame \[\ $5 \] += 1\ n \ \}\ n \ n \ \{\ n \ if ( \ $3 >= nextStop ) \{\ n \ printf ( \ " %.1 f \ " , nextStop ) \ n \ print " foreach i $nodes { set awkCode " $awkCode nTxop \[ $i \] \ " \ " nFrame \[ $i \] \ " \" " } set awkCode " $awkCode \ n " foreach i $nodes { set awkCode " $awkCode nTxop \[ $i \] = nFrame \[ $i \] = 0\ n " } set awkCode " $awkCode nextStop += tick \ n \ \}\ n \ \} " puts " Generating TXOP trace ... " exec echo $awkCode > [ string trimright $txopTraceFileName " . tr " ]. awk exec nice awk $awkCode $traceFileName > $txopTraceFileName

492 493 494 495

proc plotTxop { nodes } { global txopTraceFileName numberOfFlows set plotCode " set encoding iso_8859_1 \ n \ set terminal postscript color \ n \ set output \ " [ string trimright $txopTraceFileName " . tr " ]. eps \ " \ n \ set data style linesp \ n \ set grid y \ n \ set xlabel \ " Tempo ( segundos ) \ " \ n \ set ylabel \ " Pacotes por segundos \ " \ n \ plot " for { set i 0} { $i < [ llength $nodes ]} { incr i } { set plotCode " $plotCode \ " $txopTraceFileName \ " using 1:[ expr $i * 2 + 2] title \ " TXOP N \\363 [ lindex $nodes $i ]\ " ,\ \ " $txopTraceFileName \ " using 1:[ expr $i * 2 + 3] title \ " Quadros N \\363 [ lindex $nodes $i ]\ " ," } set plotCode [ string trimright $plotCode " , " ] exec echo $plotCode > [ string trimright $txopTraceFileName " . tr " ]. plot
82

496 497 498 499 500 501

exec echo -e $plotCode | nice gnuplot - persist ; # &

502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549

# Define a ' finish ' procedure proc finish {} { global ns traceFileId namFileId namFileName throughputTraceId meanThroughputTraceId monitoredNodes dropRateIfqTraceId dropRateCollisionTraceId $ns flush - trace close $traceFileId close $namFileId close $throughputTraceId close $meanThroughputTraceId close $dropRateIfqTraceId close $dropRateCollisionTraceId # exec nam $namFileName & # plotThroughput # recordMeanThroughput # plotMeanThroughput recordDropRate # plotDropRate recordTxop $monitoredNodes # plotTxop $monitoredNodes recordDropRateIfq $monitoredNodes # plotDropRateIfq $monitoredNodes recordDropRateCollision [ lappend monitoredNodes 7] # plotDropRateCollision $monitoredNodes exit 0 } # ========================================================= # Simulao # ========================================================= # Create a simulator object set ns [ new Simulator ] # O nome dos arquivos de registro o mesmo * deste * script tcl com exceo da # extenso (. tr e . nam ) . # Habilita registro geral set traceFileName $thisScript . tr set traceFileId [ open $traceFileName w ] $ns trace - all $traceFileId $ns use - newtrace # Habilita registro NAM set namFileName $thisScript . nam set namFileId [ open $namFileName w ] $ns namtrace - all - wireless $namFileId $greatestX $greatestY # Os valores de dataRate_ e basicRate_ sobrepem o valor de bandwidth_ se um dos # dois estiver sido configurado eval $opt ( mac ) set dataRate_ 11 Mb eval $opt ( mac ) set basicRate_ 1 Mb # Mac set bandwidth_ 11 Mb

83

550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603

# O preambulo um padro de bits que possibilita ao receptor sincronizar - se antes # da recepo de um quadro # Long preamble = 144 ( NS default ) # Short preamble = 72 # eval $opt ( mac ) set PreambleLength_ 72 set topo [ new Topography ] $topo load_flatgrid $greatestX $greatestY set god [ create - god $numberOfNodes ] # Cria / reserva um canal ( faixa de freqncia ) para comunicao entre ns set channel [ new $opt ( chan ) ] # Limiar de potncia de recebimento de um quadro ( watt ) Phy / WirelessPhy set RXThresh_ $opt ( rxthr ) # Limiar de potncia de deteco de portadora ( watt ) Phy / WirelessPhy set CSThresh_ $opt ( csthr ) # Limiar de ativao do mecanismo de RTS / CTS ( byte ) eval $opt ( mac ) set RTSThreshold_ $opt ( rtsthr ) $ns node - config - adhocRouting - llType - macType - ifqType - ifqLen - antType - propType - phyType - channel # - channelType - topoInstance - agentTrace - routerTrace - macTrace - movementTrace $opt ( rp ) \ $opt ( ll ) \ $opt ( mac ) \ $opt ( ifq ) \ $opt ( ifqlen ) \ $opt ( ant ) \ $opt ( prop ) \ $opt ( netif ) \ $channel \ $opt ( chan ) \ $topo \ ON \ OFF \ ON \ OFF

# Instancia ns for { set i 0} { $i < $numberOfNodes } { incr i } { set node ( $i ) [ $ns node ] $node ( $i ) set X_ $nodePosition ( $i ,0) $node ( $i ) set Y_ $nodePosition ( $i ,1) $ns initial_node_pos $node ( $i ) 15 ; # Define o tamanho do n . Usado pelo NAM . } if { $opt ( mac ) == " Mac /802 _11e " } { # Ns clientes transmissores for { set i 0} { $i < $numberOfFlows } { incr i } { set queue [ $node ([ lindex $flowDefinition ( $i ) 1]) set ifq_ (0) ] $queue Prio 2 TXOPLimit 0 $queue Prio 2 AIFS 1 $queue Prio 2 CW_MIN 31
84

604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658

$queue Prio 2 CW_MAX 1023 } set queue [ $node (5) set ifq_ (0) ] $queue Prio 2 TXOPLimit [ expr 0.00183 * 1.5] $queue Prio 2 AIFS 1 $queue Prio 2 CW_MIN 31 $queue Prio 2 CW_MAX 1023 $queue Prio 2 MinLength 3 set queue [ $node (6) set ifq_ (0) ] $queue Prio 2 TXOPLimit [ expr 0.00183 * 2.0] $queue Prio 2 AIFS 1 $queue Prio 2 CW_MIN 31 $queue Prio 2 CW_MAX 1023 $queue Prio 2 MinLength 4 set queue [ $node (1) set ifq_ (0) ] $queue Prio 2 TXOPLimit [ expr 0.00183 * 0.5] $queue Prio 2 AIFS 1 $queue Prio 2 CW_MIN 31 $queue Prio 2 CW_MAX 1023 $queue Prio 2 MinLength 1

# Configurao de rotas source " $thisScript - routes . tcl " # Colore fluxos . Usado pelo NAM . $ns color 1 red $ns color 2 green $ns color 3 blue $ns color 4 pink $ns color 5 deepskyblue $ns color 6 gold $ns color 7 black $ns color 8 orange $ns color 9 gray # Cria fluxos for { set i 0} { $i < $numberOfFlows } { incr i } { if {[ lindex $flowDefinition ( $i ) 0] == " tcp " } { eval createTcp [ lrange $flowDefinition ( $i ) 1 [ llength $flowDefinition ( $i ) ]] } else { eval createUdp [ lrange $flowDefinition ( $i ) 1 [ llength $flowDefinition ( $i ) ]] } } # Eventos escalonados $ns at 0.0 " recordThroughput " scheduleFlows $ns at [ expr $opt ( time ) + 0.3] " finish " puts " ## DEBUG AREA ( incio ) ## " puts " MAC bandwidth [ Mac set bandwidth_ ] " puts " $opt ( mac ) basicRate [ eval $opt ( mac ) set basicRate_ ] " puts " $opt ( mac ) dataRate [ eval $opt ( mac ) set dataRate_ ] " puts " $opt ( mac ) PreambleLength_ [ eval $opt ( mac ) set PreambleLength_ ]"
85

659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675

puts " Prioridade fluxo 0 = [ $flow (0 , src ) set prio_ ] " puts " Tipo de fila = $opt ( ifq ) " puts " Mac /802 _11e slotTime_ = [ Mac /802 _11e set slotTime_ ] " puts " Mac /802 _11e SlotTime_ = [ Mac /802 _11e set SlotTime_ ] " puts " Mac /802 _11e ShortRetryLimit_ = [ Mac /802 _11e set ShortRetryLimit_ ] " puts " Mac /802 _11e difs_ = [ Mac /802 _11e set difs_ ] " puts " Mac /802 _11e sifs_ = [ Mac /802 _11e set sifs_ ] " puts " Mac /802 _11e SIFS_ = [ Mac /802 _11e set SIFS_ ] " puts " ## DEBUG AREA ( fim ) ## " # awk '{ if ( NR != 1) { resul = $5 / $4 ; print resul ; total += resul ; i += 1;}} END { print " mdia : " total / i } ' mesh \ txop . tr # Semeia o gerador de nmeros pseudo - aleatrio global defaultRNG $defaultRNG seed $opt ( seed ) # Run the simulation $ns run

86

Potrebbero piacerti anche