You are on page 1of 16

Desenvolvimento de aplicaes adaptativas para

redes IEEE 802.11


Arlindo Flvio da Conceio1 , Fabio Kon1
1 Grupo

de Sistemas Distribudos Departamento de Cincia da Computao


Instituto de Matemtica e Estatstica Universidade de So Paulo (DCC - IME/USP)
http://gsd.ime.usp.br
{arlindo,kon}@ime.usp.br

Abstract. This work explores the development of adaptive applications for widely used IEEE 802.11 wireless networks. We describe the most challenging
problems of programming for these networks and present useful techniques to
solve them. We propose a novel adaptive algorithm that improves the efficiency
of datagram streaming over IEEE 802.11 networks. It uses the signal quality
information to adapt the transmission and, by doing this, improves the network
utilization. In addition, this work presents the methods to interact, at the application layer, with IEEE 802.11 interfaces in the Linux and Windows operational
systems.
Resumo. Devido ao crescente uso do protocolo IEEE 802.11 nos dias atuais,
este trabalho explora o desenvolvimento de aplicaes adaptativas para redes
IEEE 802.11. Com essa finalidade, apontamos os principais novos desafios
e problemas relacionados ao desenvolvimento de aplicaes para essas redes,
assim como tcnicas teis para resolv-los. Apresentamos um novo algoritmo
adaptativo baseado na qualidade do sinal para adaptar a transmisso de fluxos
contnuos s condies da conexo, aumentando assim a eficincia de utilizao
da rede. Alm disso, descrevemos os mtodos para, na camada de aplicao,
interagir com as interfaces IEEE 802.11 em sistemas Linux e Windows.

1. Introduo
As redes sem fio IEEE 802.11 (Wi-Fi) firmaram-se como o padro de facto para redes
locais sem fio por oferecem mobilidade e alta capacidade de vazo a custos relativamente
baixos. Trazem, porm, novos desafios ao desenvolvimento de aplicaes, como a ocorrncia de migraes (handoffs) e a alta variabilidade da qualidade da conexo.
Apesar das diferenas entre as redes sem fio e as redes cabeadas tradicionais, do
ponto de vista do desenvolvimento de aplicaes, as redes sem fio IEEE 802.11 tm sido
muitas vezes tratadas como redes Ethernet. Alm disso, os protocolos UDP e TCP, que
geralmente so utilizados na camada de transporte, no foram projetados levando em considerao as caractersticas das redes sem fio, mas sim das redes Ethernet cabeadas. A fim
de adequar esses protocolos s redes sem fio, foram feitas propostas para a otimizao de
TCP [Balakrishnan et al. 1997, Pilosof et al. 2003] e de UDP [Larzon et al. 2004], mas
essas otimizaes, em geral, no foram amplamente adotadas.
Dado que as abstraes providas por TCP e UDP no so plenamente capazes de
lidar com as peculiaridades das redes IEEE 802.11, uma das alternativas a implementao de tcnicas adaptativas na camada de aplicao. Deste modo, este artigo tem dois

objetivos: prover uma referncia aos desenvolvedores interessados em desenvolver aplicaes adaptativas para redes IEEE 802.11 e, principalmente, apresentar uma estratgia
adaptativa que, implementada na camada de aplicao, seja capaz de aumentar a eficincia de transmisso em redes IEEE 802.11. Para cumprir esses objetivos, o contedo aqui
exposto est organizado da seguinte maneira: a Seo 2 discute os trabalhos relacionados
e contextualiza este trabalho em relao a essas referncias. A Seo 3 apresenta os novos
desafios e problemas referentes ao desenvolvimento para redes IEEE 802.11. A Seo 4
descreve algumas prticas e tcnicas teis para a soluo desses problemas. A Seo 5
introduz os mtodos que podem ser utilizados para interagir com as interfaces de rede sem
fio a partir da camada de aplicao e, sobretudo, mostra como podem ser obtidas e interpretadas as informaes sobre a qualidade de sinal e de conexo em redes IEEE 802.11.
A Seo 6 descreve os princpios e a implementao de uma estratgia adaptativa que,
baseada na qualidade do sinal, aumenta significativamente a eficincia das transmisses
sobre redes IEEE 802.11. Por fim, a Seo 7 traz as consideraes finais deste trabalho.

2. Trabalhos relacionados
O nmero de trabalhos que abordaram IEEE 802.11 a partir da camada de aplicao
relativamente pequeno, pois a maioria concentra-se em camadas inferiores; por exemplo, na otimizao da camada MAC [Tan and Guttag 2005], dos protocolos de transporte [Pilosof et al. 2003], ou na caracterizao do trfego [Muoz et al. 2001].
Ao observar as pesquisas realizadas pode-se notar uma lacuna na qual se esquece
que na camada de aplicao que residem as maiores possibilidades para adaptao, pois
nela que se podem aplicar tcnicas adaptativas baseadas nos requisitos das aplicaes,
o que no poderia ser feito nos elementos de rede e protocolos subjacentes, sem prejuzo
generalidade dos mesmos. Contudo, olhando para o passado recente, possvel ver
algumas razes para a escassez de pesquisa nessa rea. A principal foi, sem dvida,
a limitada capacidade de interao entre a aplicao e as interfaces de rede. Mas essa
limitao foi muito reduzida com as novas verses de NDIS (Network Driver Interface
Specification) e com a incorporao ao ncleo do Linux de ferramentas para redes sem
fio (Wireless Tools). Outra razo para a lacuna, mas que ainda persiste, a dificuldade
de conduo de experimentos prticos sobre redes IEEE 802.11, especialmente daqueles
relacionados mobilidade, pois a alta variabilidade intrnseca s redes sem fio dificulta a
execuo de experimentos representativos e reprodutveis.
A fim de tentar sanar essa lacuna, este trabalho concentra-se na camada de aplicao, apontando no apenas os principais problemas vinculados programao para redes
IEEE 802.11, mas tambm algumas tcnicas que podem ser teis sua soluo. Veremos
que, apesar de ainda ser difcil conduzir pesquisas empricas em redes sem fio, possvel implementar estratgias adaptativas capazes de otimizar o desempenho das aplicaes
executadas sobre redes IEEE 802.11.

3. Novos desafios impostos pelas redes IEEE 802.11


Os novos desafios para o desenvolvimento de aplicaes adaptativas trazidos pelas redes
IEEE 802.11 podem ser classificados em trs grupos:

3.1. Problemas intrnsecos s redes sem fio


As redes IEEE 802.11 esto sujeitas aos problemas intrnsecos das redes sem fio, dentre
os quais esto a maior susceptibilidade a interferncias externas, o desvanecimento do
sinal devido mobilidade e distncia ao ponto de acesso, a propagao do sinal por
dois ou mais caminhos (efeito multipath fading) e a existncia de ns invisveis (hidden
nodes) [Schiller 2000].
Uma das razes para a maior susceptibilidade a interferncias externas o fato de
outros dispositivos eletrnicos, que vo desde fornos microondas at interfaces Bluetooth,
usarem a mesma freqncia de rdio que IEEE 802.11. Alm dos dispositivos eletrnicos,
existem tambm outros fatores capazes de interferir na qualidade de uma conexo sem
fio, sendo alguns deles obviamente no gerenciveis pela camada de aplicao, como a
orientao e alturas das antenas, o enfraquecimento do sinal devido a sobreposio de
objetos, a umidade do ar etc. Desse modo, a qualidade do sinal nessas redes devido
ao grande nmero de fontes de interferncia pode variar substancialmente e em curtos
intervalos de tempo, o que dificulta o projeto de algoritmos adaptativos.
Alm disso, em redes sem fio devido a existncia de hidden nodes invivel aplicar deteco de coliso (CSMA/CD), por isso IEEE 802.11 usa CSMA/CA,
que tem implicaes na latncia e taxa de perdas. Outro problema que pode ser considerado intrnseco s redes sem fio so os handoffs. Presentes apenas nas redes sem
fio, os handoffs podem acarretar perodos de desconexo da ordem de alguns segundos [Ramani and Savage 2005].
3.2. Problemas intrnsecos s redes IEEE 802.11
Os mecanismos IEEE 802.111 tambm dificultam o projeto de aplicaes adaptativas.
Por exemplo, o mecanismo de Automatic Repeat reQuest (ARQ) reenvia um quadro de
transmisso caso a sua entrega no tenha sido confirmada [Gast 2002]. Em suma, devido
atuao do ARQ, um quadro reenviado pelo menos quatro vezes antes que a sua perda
seja notificada ao protocolo de nvel superior. Desse modo, ao usar retransmisses para
melhorar a confiabilidade da transmisso, IEEE 802.11 faz com que as taxas de perda de
pacotes no reflitam fielmente a real condio do canal. Na prtica, observamos que, em
redes IEEE 802.11, a qualidade da conexo j se encontra bastante deteriorada quando as
perdas de pacotes comeam a ser percebidas.
Assim como o mecanismo de ARQ, outros mecanismos internos ao protocolo
IEEE 802.11 afetam fortemente as mtricas de adaptao. Dentre eles podemos citar:
Automatic Rate Control (ARC), Power Saving Mode (PSM) e Request to Send / Clear to
Send (RTS/CTS). Por exemplo, o mecanismo de RTS/CTS, ao tentar eliminar o problema
de hidden-nodes, agrega alta variao latncia. PSM, por sua vez, pode gerar perodos de inatividade que podem ser interpretados como congestionamentos pelo protocolo
TCP. Por fim, o mecanismo de ARC o piv de dois problemas: a m distribuio da
capacidade de transmisso em redes IEEE 802.11 [Tan and Guttag 2005] e a reduo da
1 Cabe

dizer que no contestamos a importncia dos mecanismos adaptativos de IEEE 802.11, pois eles
foram e so fundamentais, cada um a seu modo, para a ampla utilizao dessas redes. Mas importante
chamar a ateno para as conseqncias negativas que esses mecanismos trazem para o projeto de aplicaes
adaptativas para redes IEEE 802.11.

capacidade de vazo total do sistema em funo da degradao da qualidade de sinal de


apenas uma unidade mvel [Heusse et al. 2003].
3.3. Problemas relacionados diversidade de implementao
Outro desafio atualmente imposto pelas redes IEEE 802.11 a diversidade de comportamento entre dispositivos Wi-Fi, o que advm do uso, tanto de dispositivos IEEE 802.11
de diferentes fabricantes, quanto de diferentes configuraes. Por questes de simplicidade, mas tambm para no invadir o espao de diferenciao competitiva entre os fabricantes de dispositivos de rede, o padro IEEE 802.11 deixa em aberto alguns pontos
da especificao; uma parte destes, porm, possui forte influncia no comportamento das
transmisses sobre essas redes. Por exemplo, o padro IEEE 802.11 no especifica como
o mecanismo de ARC deve escolher a modulao (taxa de transmisso) a ser usada em
caso de degradao do sinal. Ao no definir quais, nem como essas mtricas de adaptao
devem ser usadas pelo mecanismo de ARC, o padro IEEE 802.11 delega aos fabricantes
essa definio; sendo assim, cada fabricante define os algoritmos e limiares de adaptao
segundo as peculiaridades de seus dispositivos; ou seja, mediante a degradao do sinal,
mecanismos ARC de dispositivos de fabricantes diferentes atuam de maneira diversa e,
em funo disso, experimentam diferentes taxas de perda de pacotes, latncia, jitter etc.
O padro IEEE 802.11 tambm deixa em aberto como as interfaces de rede (Network Interface Cards, ou NICs) reportam a qualidade do sinal. NICs de diferentes fabricantes, quando submetidos a uma mesma condio de conexo, podem reportar diferentes
nveis de qualidade de sinal. Por exemplo, os NICs IEEE 802.11 dos fabricantes Atheros,
Symbol e Cisco usam escalas diferentes para reportar a qualidade do sinal: de 0 a 60, de
0 a 31 e de 0 a 100, respectivamente. Alm disso, o valor mdio da qualidade do sinal
nesses NICs (30, 16 e 50, respectivamente) corresponde a diferentes valores de fora do
sinal (-65 dBm, -70 dBm e -58 dBm, respectivamente). Outro fator que tambm contribui
para a diversidade de comportamentos em IEEE 802.11 a existncia de variantes interoperantes do padro; por exemplo, NICs IEEE 802.11g podem acessar redes 802.11b e g,
mas submetidos a redes com capacidades de vazo diferentes.
Desse modo, o uso de diferentes NICs e configuraes implica a utilizao de conexes com diferentes taxas de perda de pacotes, latncia, jitter, qualidade do sinal etc.
Essa diversidade de comportamentos, por sua vez, dificulta o desenvolvimento de aplicaes adaptativas, pois a interpretao das mtricas de adaptao pode variar em funo
dos ambientes utilizados. Resta observar que a diversidade de implementao um problema necessariamente exclusivo das redes IEEE 802.11: afinal, tambm existem diversos
fabricantes para interfaces Ethernet. Mas ela mais perceptvel nas redes IEEE 802.11,
pois a mobilidade leva a uma maior interao entre interfaces de diferentes fabricantes,
com possibilidade de interao entre interfaces diferentes durante uma nica conexo.
Portanto, no desenvolvimento para IEEE 802.11 existem novos problemas que
por no serem devidamente tratados pelas abstraes de transporte so percebidos na
camada de aplicao atravs de:
maiores taxas de perda de pacotes;
maior incidncia de perda de pacotes em rajadas;
maior variao na latncia;

maior incidncia de entrega de pacotes em rajada;


variaes abruptas na qualidade da conexo;
perodos de desconexo;
menor previsibilidade da conexo.

4. Desenvolvimento para redes IEEE 802.11: prticas recomendadas e


tcnicas teis
A seguir, apontamos algumas recomendaes e tcnicas que devem ser consideradas no
desenvolvimento de aplicaes para redes IEEE 802.11.
4.1. Tamanhos dos pacotes
A primeira recomendao para o desenvolvimento de aplicaes para redes IEEE 802.11
relativa ao tamanho dos pacotes. De maneira geral, a utilizao de pacotes pequenos
implica menores taxas de erros, mas, por outro lado, reduz a eficincia de utilizao da
rede devido maior insero de sobrecargas. Estas advm, por exemplo, da transmisso de um maior nmero de cabealhos e do maior nmero de troca de mensagens de
confirmao de entrega de quadros (mensagens ACK). Alm disso, importante que os
pacotes no sejam maiores do que os limites de fragmentao da camada Ethernet, que
de 1.500 octetos. Ou seja, os pacotes UDP e TCP no devem ser maiores do que 1.472
e 1.460 octetos, respectivamente. Ultrapassar esses limites de tamanho implica um nmero maior de fragmentaes e desfragmentaes, o que deve ser evitado. Alm disso,
escolha do tamanho ideal dos pacotes tambm depende fortemente da natureza da aplicao [Ikkurthy and Labrador 2002].
4.2. Novas mtricas de adaptao
Em redes IEEE 802.11, alm das mtricas de adaptao tradicionais, tais como a taxa de
perda de pacotes e a latncia, existem novos fatores a serem monitorados e que tambm
podem ser utilizados como mtricas de adaptao. Dentre essas novas mtricas destacamse: a qualidade do sinal e o nmero de retransmisses executadas pela camada MAC. A
qualidade do sinal, como veremos adiante, oferece bons indicadores sobre a necessidade
de adaptao e pode tambm indicar a necessidade de execuo de handoffs. Por sua vez,
o nmero de retransmisses executadas pela camada MAC complementa com vantagens
a informao de perda de pacotes, pois esta ltima, como foi mencionado anteriormente,
mascarada pelas retransmisses automticas.
Outro fator importante a ser monitorado a taxa de conexo. Dispositivos IEEE
802.11 diferentemente das interfaces Ethernet podem conectar-se a diferentes taxas
de transmisso. A escolha da taxa mais apropriada feita pelo mecanismo de ARC, que
pode reduzir significativamente a capacidade de transmisso sem qualquer notificao
aplicao. Em redes IEEE 802.11b, por exemplo, a taxa de conexo pode ser reduzida
de 11 Mbps para 5,5 Mbps, o que diminui a vazo efetiva de 5,6 Mbps para 1,6 Mbps,
aproximadamente. Portanto, as aplicaes devem estar preparadas para redues abruptas
na capacidade de vazo. Mas atualmente, apesar do impacto da atuao do mecanismo de
ARC nas aplicaes, no h mtodos simples para a monitorao da taxa de transmisso.
Em outro trabalho propomos um mecanismo para auxiliar a disponibilizao das escolhas
feitas pelo mecanismo ARC camada de aplicao [da Conceio and Kon 2006].

A importncia de monitorar as taxas de transmisso reside tambm na interpretao confivel das mtricas de adaptao, pois as mesmas taxas de erro no podem ser
interpretadas da mesma forma, quando obtidas usando-se diferentes taxas de transmisso;
essa mesma lgica aplica-se tambm a outras mtricas de adaptao, tais como a latncia
e a vazo.
Tambm importante observar que diferentes ambientes de execuo (computadores, NICs, pontos de acesso e as respectivas configuraes) podem implicar diferentes
comportamentos de perdas de pacotes e de latncia. A latncia, por exemplo, pode variar
significativamente aps a execuo de um handoff. Sendo assim, algoritmos adaptativos
robustos no devem usar limiares de adaptao fixos (hard coded), mas devem valer-se
de mecanismos de calibrao capazes de determinar dinamicamente os limiares de adaptao.
A carga total na rede seria uma mtrica importante para o controle de admisso em
redes IEEE 802.11, porm esta mtrica no est disponvel para as aplicaes. Nas redes
IEEE 802.11, a capacidade dos pontos de acesso compartilhada pelas unidades mveis,
de tal sorte que uma unidade mvel pode exceder a capacidade do sistema e, dessa forma,
interferir negativamente no trfego de outras unidades [da Conceio and Kon 2003]. Na
ausncia de mtodos eficientes para controle de admisso de fluxos, preciso que as aplicaes faam uso moderado dos recursos de rede; por exemplo, adotando estratgias incrementais de utilizao dos recursos. Isso se aplica especialmente aos sistemas baseados
em UDP que, por no possurem mecanismos integrados para controle de congestionamentos, podem facilmente exceder a capacidade de transmisso da rede.
4.3. Recuperao de erros
Devido s razes expostas anteriormente, as redes IEEE 802.11 esto sujeitas a taxas
maiores de perdas de pacotes do que as redes cabeadas tradicionais, mas o impacto dessas perdas pode ser minimizado pela utilizao, na camada de aplicao, de tcnicas para
recuperao de erros, tais como: Automatic Repeat reQuest (ARQ) e Forward Error Correction (FEC). Os mecanismos de ARQ [Sinha and Papadopoulos 2004] baseiam-se no
reenvio de pacotes2 e os de FEC, por sua vez, transmitem informao redundante nos pacotes, de tal forma que, perdido um deles, este pode ser reconstrudo [Muoz et al. 2001].
Em termos de uso de banda, FEC costuma ser menos eficiente do que ARC, mas
em geral capaz de recuperar as perdas mais rapidamente do que ARQ. Nas redes IEEE
802.11, entretanto, comum que a perda de pacotes ocorra em rajada (em seqncia),
especialmente quando a conexo j se encontra bastante deteriorada; nessas situaes,
ARQ mais adequado do que FEC [Vandalore et al. 2001], pois, ao se perderem pacotes
em seqncia, normalmente perdem-se tambm as informaes usadas para reconstrulos. As tcnicas para minimizao das perdas de pacotes podem ser aplicadas a todos os
pacotes da transmisso, ou podem ser aplicadas apenas para evitar a perda dos pacotes
considerados mais importantes. Por exemplo, na transmisso de fluxos de vdeo H.264,
normalmente feita sobre UDP, existem pacotes do tipo parameter set que so essenciais
para a decodificao do vdeo. Recomenda-se que a transmisso desses pacotes seja protegida [Etoh and Yoshimura 2005], quer pela aplicao de FEC, de ARQ, pela simples
duplicao de envio desses pacotes, quer pelo uso de canais confiveis.
2 A prpria camada MAC de IEEE 802.11, ao fazer retransmisses, implementa um mecanismo de ARQ.

4.4. Perodos de desconexo


Uma das principais diferenas de IEEE 802.11 em relao s outras redes a maior incidncia de perodos de desconexo, que podem ocorrer por vrias razes, tais como handoffs, interferncias, sombreamento etc. E eles normalmente ocorrem de maneira abrupta,
sem que haja tempo hbil para o acionamento de mecanismos capazes de notific-las ou
de amenizar seus efeitos. Tomemos como exemplo uma aplicao de vdeo sob demanda
em que uma unidade mvel requisita um vdeo a um servidor na Internet. Nessas aplicaes, os fluxos de vdeo so geralmente implementados usando-se UDP e, em geral, os
servidores no possuem mecanismos adaptativos para interromper a entrega dos quadros
de vdeo quando a unidade mvel estiver experimentando perodos curtos de desconexo.
Sem tais mecanismos, os quadros de vdeo enviados pelo servidor continuaro chegando
ao ponto de acesso que, por sua vez, tentar transmiti-los para a unidade mvel mas
obviamente sem sucesso. Isso acarreta, antes de tudo, o desperdcio da capacidade do
ponto de acesso, o que pode afetar negativamente a transmisso para outras unidades
mveis por ele servidas. Em suma, as aplicaes para redes IEEE 802.11 precisam implementar mecanismos capazes de lidar com perodos de desconexo. Isso pode ser feito
atravs de mecanismos para operao desconectada, ou mesmo atravs da implementao
de mecanismos mais simples mas muito teis como a troca de mensagens KeepAlive, que permitem verificar constantemente a conectividade de uma unidade mvel. Uma
vantagem adicional de implementar as mensagens KeepAlive que elas podem tambm
carregar informaes teis adaptao, como por exemplo a qualidade da conexo, servindo desse modo como uma forma de sinalizao.
Na Seo 6, apresentaremos a implementao de um novo algoritmo que ilustra
o uso das mensagens KeepAlive, mas antes, vejamos rapidamente como pode ser obtida,
entre outras informaes, a qualidade do sinal em redes IEEE 802.11.

5. Interao entre aplicaes e interfaces IEEE 802.11


importante lembrar que as conexes IEEE 802.11 no precisam ser necessariamente tratadas como caixas-pretas: diversos NICs disponveis no mercado possibilitam a alterao
de suas configuraes a partir da camada de aplicao, permitindo, entre outras coisas, a
alterao de parmetros como o limiar de fragmentao e o uso do mecanismo RTS/CTS.
5.1. Em sistemas Windows: Network Driver Interface Specification (NDIS)
Nos sistemas operacionais da famlia Windows, a forma mais simples para interagir
com os NICs a partir da camada de aplicao3 atravs de NDIS. Para cada tecnologia de rede, tais como Ethernet ou IEEE 802.11, NDIS especifica um conjunto de Object IDentifiers (OIDs), cujo formato OID_XXX_YYY, onde XXX a tecnologia de
rede e YYY o objeto desejado. Por exemplo, OID_802_3_YYY representa o objeto
YYY das redes Ethernet e OID_802_11_RSSI representa a qualidade do sinal (Received Signal Strength Indication ou RSSI) de um NIC para redes IEEE 802.11. A lista
completa de OIDs pode ser encontrada em http://msdn.microsoft.com. Contudo,
3 Apesar

de ser executado no espao do ncleo do sistema operacional, NDIS pode ser acessado pela
camada de aplicao atravs de chamadas IOCTL ao driver NDISPROT, que se encontra disponvel na
Web.

NDIS define trs classes de OIDs: obrigatrios, recomendados e opcionais. Os OIDs


obrigatrios so aqueles considerados essenciais interao com o NIC, como por exemplo OID_802_11_RSSI. Os OIDs recomendados so aqueles considerados importantes,
mas no essenciais, como por exemplo OID_802_11_STATISTICS, que fornece estatsticas sobre a conexo. Por fim, existem tambm os OIDs opcionais, como a requisio OID_802_11_RTS_THRESHOLD, que permite alterar o valor do RTS Threshold. A
principal implicao da classificao dos OIDs nesses trs grupos que nem todo OID
funciona para todo NIC. Por exemplo, em nossos experimentos, dentre quatro NICs testados, a requisio de OID_802_11_STATISTICS, cuja implementao no obrigatria,
funcionou em apenas um deles.
A melhor fonte de informao sobre como usar o NDIS so os cdigos-fonte da
Wireless Research API (WRAPI), que esto disponveis em http://ramp.ucsd.edu/
pawn/wrapi; porm essa biblioteca pode no funcionar corretamente nas verses mais
novas do sistema operacional Windows. Os passos necessrios para o uso de NDIS e um
programa-exemplo, escrito em linguagem C, que chama o objeto OID_802_11_RSSI, podem ser encontrados em http://gsd.ime.usp.br/software/WirelessMultimedia/
ndis. A partir desse programa exemplo, do cdigo fonte de WRAPI e da documentao
de NDIS contendo a funcionalidade de cada OID, relativamente simples criar suas prprias DLLs para interao com as interfaces de rede. Para as futuras verses dos sistemas
operacionais da Microsoft, por exemplo o Windows Vista, algumas das funes de NDIS
sero preferencialmente realizadas usando-se Native Wi-Fi.
5.2. Em sistemas Linux: /proc/net/wireless
Nos sistemas baseados em Linux deve-se usar as ferramentas para redes sem fio (Wireless
Tools4 ). Em particular as aplicaes iwconfig e iwspy e a biblioteca iwlib.o, que
pode ser usada de dentro das aplicaes. As principais informaes sobre a qualidade
da conexo sem fio, contudo, esto resumidas no pseudo-arquivo /proc/net/wireless,
cujo formato apresentado na Figura 1.
Inter-|
face |
wlan0:
wlan1:

sta-|
Quality
|
tus | link level noise |
0000 100
224
0
0000
55. 218. 163.

Discarded packets
nwid crypt
frag
0
0
0
0
0
0

| Missed | WE
retry
misc | beacon | 16
6 122829
0
1
0
0

Figura 1. O pseudo-arquivo /proc/net/wireless.

A Figura 1 mostra as informaes referentes a duas interfaces IEEE 802.11, wlan0


e wlan1, e as respectivas estatsticas sobre a qualidade da conexo. Para detalhes sobre
o significado de cada informao fornecida no pseudo-arquivo /proc/net/wireless,
consulte o manual da aplicao iwconfig. No contexto deste trabalho, os parmetros mais
relevantes so:

link: qualidade do sinal;


level: fora do sinal (signal strength);
noise: fora do rudo;
retry: nmero de retransmisses.

4 Vide

http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Wireless.html.

Na Figura 1, observe que os NICs reportam a qualidade do sinal de maneiras


distintas; wlan0 reporta a qualidade como um indicador relativo (100%) e wlan1 a relao
entre a fora do sinal e do rudo (ou seja, link=levelnoise). Em suma, os valores de
link, level e noise obedecem a uma aritmtica de oito bits, podendo assumir valores
entre 0 e 255; porm, cada fabricante estabelece como os valores de qualidade de sinal
so informados. Na prxima seo, usamos essas informaes para implementar um novo
algoritmo adaptativo para otimizao de transmisses sobre redes IEEE 802.11.

6. Adaptao de fluxos contnuos baseada na qualidade do sinal


Vimos nas sees anteriores os principais desafios para o desenvolvimento de aplicaes
adaptativas para redes IEEE 802.11, as principais tcnicas para ajudar nesse desenvolvimento e as formas para obteno de informaes sobre a qualidade das conexes sem fio.
Esta seo, por sua vez, apresenta uma nova estratgia adaptativa que, baseada na qualidade do sinal das redes IEEE 802.11, adequou os fluxos de dados capacidade da rede,
aumentando assim a eficincia das transmisses. Mas, antes de apresentar os algoritmos,
necessrio entender o comportamento das transmisses sobre redes IEEE 802.11 em
condies de mobilidade.
A Figura 2 apresenta o comportamento de um fluxo contnuo enviado de uma
mquina servidora para a unidade mvel atravs de um ponto de acesso, na presena de
mobilidade. Ou seja, durante o experimento, a unidade mvel levada de um ponto prximo do ponto de acesso para um ponto mais afastado e trazida de volta. Da Figura 2(a)
podem-se extrair algumas observaes iniciais sobre o comportamento de um fluxo e de
seus indicadores em funo da mobilidade:
a qualidade do sinal varia significativamente;
o rudo apresenta pequenas variaes, e;
a capacidade de recepo afetada pela mobilidade.
4

210

3.5

200

190

2.5

180

170

1.5

160
0

20

40

60

80
100
Tempo (s)

120

140

160

(a) Comportamento do sinal e da taxa de transmisso

2.5
Taxa de transmisso (Mbps)

Taxa de recepo
Sinal
Rudo

Taxa de recepo (Mbps)

Fora do sinal e do rudo

220

1.5

0.5

0
1

1.05

1.1

1.15
1.2
1.25
SignaltoNoise Ratio (SNR)

1.3

1.35

1.4

(b) Relao entre o sinal e a taxa de transmisso

Figura 2. Qualidade do sinal e taxa de transmisso na presena de mobilidade.

No experimento apresentado na Figura 2(a), a taxa de recepo, que inicialmente


de 2 Mbps, reduzida quando a unidade mvel afastada do ponto de acesso. Essa
reduo deve-se atuao do mecanismo de ARC do ponto de acesso, que reduz a taxa

de conexo ao identificar a degradao do sinal em funo da mobilidade. Quando o


ponto de acesso escolhe transmitir usando uma modulao mais robusta e, portanto, de
menor capacidade de vazo, a taxa de recepo de 2 Mbps j no mais alcanada pela
unidade mvel. Usando como indicador da qualidade do sinal a razo entre a fora do
sinal e do rudo (Signal-to-Noise Ratio ou SNR), a Figura 2(b) oferece uma visualizao
da relao entre a qualidade do sinal e a taxa de recepo efetivamente alcanada pela
unidade mvel.
O grfico apresentado na Figura 2(b) pode ser dividido em trs partes: a primeira,
direita, onde o valor de SNR alto e a recepo normalmente alcana 2 Mbps. A segunda,
ao centro, onde a taxa de recepo mais instvel, mas, em mdia, ainda alcana 2 Mbps.
Outra, por fim, esquerda, onde o valor de SNR baixo e a taxa de recepo raramente
atinge 2 Mbps. Baseados nesses trs patamares de operao, podem ser definidos trs
limiares de adaptao , e , onde: o menor valor de SNR, de tal modo que a taxa
de transmisso desejada alcanada; o menor valor de SNR, de forma que a taxa
de transmisso aceitvel; e o menor valor de SNR, para o qual ainda se observa
transmisso. Por exemplo, analisando-se a Figura 2(b), , e poderiam ser 1.15, 1.1 e
1.05, respectivamente.
6.1. Estratgia adaptativa baseada nos limiares de adaptao , e
Partindo da observao de que no se atingem taxas elevadas de transmisso quando a
qualidade do sinal est degradada, os valores de SNR, e podem ser usados em um
algoritmo adaptativo da seguinte maneira:
nvel 0: se SNR , a transmisso continua normalmente, pois a transmisso
deve estar transcorrendo normalmente;
nvel 1: se > SNR , o servidor deve transmitir de maneira conservadora.
Um exemplo de estratgia conservadora reduzir o tamanho dos pacotes, mas
sem reduzir a taxa de transmisso, pois dessa forma reduz-se a probabilidade de
perda de pacotes [Schiller 2000];
nvel 2: se > SNR , o servidor deve reduzir a taxa de transmisso, pois, como
mostra a Figura 2(b), nessas condies a transmisso raramente atinge altas taxas
de transmisso;
nvel 3: se SNR < , a transmisso interrompida at que SNR volte a ser maior
ou igual a , pois, para valores de SNR menores do que , a rede sem fio normalmente estar inoperante.
A estratgia adaptativa organizada em nveis para que os clientes possam definir
os valores de , e em funo da qualidade de sua recepo. Dessa forma, no preciso reportar ao servidor a qualidade do sinal e os limiares de adaptao; basta enviar o
nvel de operao. Em situaes de uso real do algoritmo, as estratgias apropriadas para
cada nvel de operao devem ser implementadas em funo da aplicao e da natureza
dos dados. Por exemplo, para aplicaes de transmisso de fluxos contnuos de vdeo, as
estratgias poderiam ser: no nvel 1, o envio redundante dos pacotes mais importantes ou
o uso de cdigos corretores; no nvel 2, a reduo da qualidade de compresso e, conseqentemente, da taxa de transmisso ou o descarte de quadros; no nvel 3, resta pouco a

fazer alm de interromper a transmisso, mas pode-se ainda tentar notificar o usurio das
condies de conexo ou tentar, quando disponveis, outras formas de conexo.
Os valores de , e podem ser encontrados de maneira analtica e com interveno humana, como fizemos em carter ilustrativo na Seo 6, ou podem ainda ser
descobertos automaticamente.
6.1.1. Descoberta automtica de , e
A definio automtica de trivial; para faz-lo, basta armazenar o menor valor de SNR
dentre os valores de SNR medidos a cada recepo de pacotes. Os valores de e podem
ser definidos a partir da correlao entre a taxa de perda de pacotes e o valor de SNR. Podemos definir e como os menores valores de SNR, de tal modo que as taxas de perdas
de pacotes sejam, por exemplo, inferiores a 1% e 25%, respectivamente. Para fazer essa
correlao, a cada segundo de transmisso, medimos a Taxa de Perdas de Pacotes (TPP)
e o valor de SNR e atualizamos e segundo o pseudocdigo apresentado na Figura 3.
se [(T PP < 1%) e (SNR < )] ento
[( SNR)/16]
fim se
se [(T PP < 25%) e (SNR < )] ento
[( SNR)/16]
fim se
Figura 3. Algoritmo para atualizao de e .

Os valores de e so inicializados com os primeiros valores obtidos de SNR.


A fim de aumentar a estabilidade do algoritmo, os valores de TPP e SNR utilizados para
atualizao de e so, na verdade, a mdia das ltimas cinco medies de TPP e
SNR. Para evitar que casos excepcionais afetem demasiadamente os valores de e , a
diferena entre os coeficientes e o SNR amortizada; em nossa implementao, usamos
um fator de amortizao 16.
Realizamos experimentos com diferentes valores de amortizao. Se o fator de
amortizao for pequeno demais, por exemplo 2, a convergncia de e mais rpida,
mas, em contrapartida, os valores de e absorvem casos excepcionais na transmisso
(casos em que valores excepcionalmente baixos de SNR conseguem mesmo que por
curtos espaos de tempo taxas altas de transmisso). Se o fator de amortizao for
grande demais, a convergncia dos valores de e torna-se lenta.
A amortizao tambm poderia ser implementada usando-se, ao invs de apenas
um fator de amortizao fixo, funes mais complexas em que a convergncia dos
valores de e fosse rpida e as excees fossem evitadas. Em nossos experimentos,
avaliamos a utilizao de diferentes funes de amortizao, testamos funes lineares
e no lineares. No entanto, a estratgia de usar um fator de amortizao de valor 16
mostrou-se mais estvel e de aplicao mais geral, alm de ser mais simples.
A Figura 4 demonstra o processo de busca automtica de e . Nesta execuo,

2
Taxa de recepo (Mbps)

1.35

Taxa de recepo
SNR
Alfa
Beta

1.3

1.25
1.5
1.2

1.15

1.1

SignaltoNoise Ratio (SNR)

2.5

0.5
1.05
0
0

100

200

300
Tempo (s)

400

500

Figura 4. Convergncia de e (TPPs 1% e 25% e fator de amortizao 16).

usamos o algoritmo apresentado na Figura 3 (com fator de amortizao 16) para correlacionar os valores de e s taxas de perda de pacotes de 1% e 25%, respectivamente.
Na figura, a variao do valor de SNR ilustra a mobilidade presente no experimento, que
foi a razo principal das quedas na taxa de recepo. A figura mostra ainda que os valores de e convergem para 1,13 e 1,09, respectivamente. Observe que a transmisso
sofre quedas bruscas na taxa de recepo e que essas quedas ocorrem no por acaso
quando o valor de SNR cai ao patamar de . Repare tambm que o instante da queda
na taxa de transmisso e o instante em que SNR cruza aproximam-se conforme o
algoritmo ajusta os valores de . Em outras palavras, a aproximao de SNR do valor de
um indcio forte de problemas futuros na conexo. Note tambm que a transmisso
normalmente est comprometida quando SNR cai ao patamar de .
Resta mencionar que, dado que a funo usada para atualizao de e monotonicamente decrescente, preciso estabelecer um critrio de parada para o algoritmo;
caso contrrio, a acuidade dos limiares ser deteriorada pela sutil mas contnua
absoro dos casos excepcionais que podem ocorrer ao longo da transmisso. Recomendamos que se use apenas a estabilidade do valor de como critrio de parada; pois, em
nossos experimentos, verificamos que normalmente pode-se parar o algoritmo quando as
atualizaes de forem da ordem de 1% do seu valor absoluto. Alm disso, usamos apenas no critrio de parada, pois na faixa de operao de a transmisso menos estvel,
o que dificulta a definio de um critrio de convergncia.
Contudo, apesar da utilidade da determinao automtica dos limiares de adaptao, notamos que na maioria das situaes prticas os valores para , e precisam ser
determinados apenas uma vez para cada ambiente de execuo. Aps terem sido determinados esses limiares de adaptao, uma nova busca s se faz necessria caso ocorram
mudanas no ambiente, tais como a execuo de handoffs ou o uso de um NIC diferente.
6.2. Implementao
Na implementao da nova estratgia adaptativa proposta neste trabalho, a unidade mvel
monitora os valores de SNR e (a cada segundo) notifica ao servidor o nvel de operao.
O servidor, por sua vez, ajusta a taxa de transmisso de acordo com o nvel de opera-

o. Para aumentar a estabilidade das adaptaes (histerese), o servidor altera o modo de


transmisso apenas aps receber duas notificaes consecutivas contendo o mesmo valor
de operao. O mecanismo de troca de mensagens entre o servidor e a unidade mvel
implementado usando-se datagramas UDP. Escolhemos usar UDP e no TCP, como seria
natural para mensagens de controle, devido ao comportamento normalmente bloqueante
das chamadas TCP.
Entretanto, se SNR < , como podemos notificar o servidor? Quando o valor de
SNR menor do que , a rede provavelmente est inoperante. Sendo assim, preciso
implementar no servidor mecanismos que permitam adaptar os fluxos mesmo durante
esses perodos de desconexo. Desse modo, implementamos um mecanismo de timeout
em que, caso o servidor no receba nenhuma notificao do cliente durante trs segundos,
o servidor assume o nvel trs de operao e interrompe a transmisso, at que uma nova
notificao de operao seja recebida.
Em suma, a unidade mvel periodicamente envia datagramas UDP notificando
o seu nvel de operao e o servidor interrompe a transmisso caso no receba essas
notificaes. As estratgias de adaptao implementadas foram: no nvel de operao 0, o
servidor transmite 125 pacotes de 2.000 octetos5 por segundo (totalizando 2 Mbps de taxa
de transmisso); no nvel 1, 250 pacotes de 1.000 octetos por segundo (ainda 2 Mbps); no
nvel 2, 125 pacotes de 1.000 octetos por segundo (a taxa de transmisso reduzida para
1 Mbps); e, no nvel 3, como dito anteriormente, a transmisso interrompida.
6.3. Ambiente experimental
Os experimentos apresentados a seguir foram executados em um ambiente composto por:
um computador servidor (Dual-Pentium III, com 2 processadores de 1 GHz e 512 MB
de memria; sistema operacional Debian, distribuio Woody), um computador porttil
(Pentium III 800 MHz com 128 MB de memria; sistema operacional Debian, distribuio Sarge) e um ponto de acesso IEEE 802.11 (Samsung, modelo SWL-4000 AP). A
conectividade entre o computador mvel e o ponto de acesso foi realizada utilizando-se,
principalmente, um carto PCMCIA IEEE 802.11b (Lucent, modelo WaveLAN Silver
PC24E-H-FC, chipset Orinoco). Tambm fizemos avaliaes utilizando diferentes NICs
e pontos de acesso, inclusive avaliamos redes 802.11g, mas, para maior consistncia dos
resultados, todos os experimentos apresentados neste artigo foram obtidos usando-se o
ambiente experimental acima descrito. Apesar da dificuldade para realizar experimentos
prticos sobre questes de mobilidade, nossos testes foram conduzidos exaustivamente:
os resultados apresentados foram obtidos de pelo menos 12 execues dos algoritmos,
sendo que todas as execues foram consistentes entre si.
6.4. Desempenho do algoritmo adaptativo
A Figura 5 mostra a comparao entre um fluxo de dados adaptativo e outro no adaptativo. Na execuo do algoritmo adaptativo, foram usados valores de = 1.13 e = 1.09.
A figura mostra que, durante a fase inicial do experimento, aproximadamente at os 30s,
5 Como

mencionado na Seo 4.1, o tamanho dos pacotes, quando possvel, no deve superar 1.472
octetos. Entretanto, para gerar fluxos de 2 Mbps, ou mais, tais como os necessrios para transmisso de
TV Digital, preciso utilizar pacotes maiores do que esse valor; por essa razo utilizamos pacotes de 2.000
octetos. Alm disso, a utilizao de valores redondos simplifica apresentao dos algoritmos, sem, no
entanto, afetar a sua generalidade.

ambos os algoritmos alcanam a taxa de recepo de 2 Mbps. Aos 30s, porm, os algoritmos comeam a sofrer os efeitos da mobilidade e da queda na qualidade do sinal. Mas,
durante essa fase, o algoritmo adaptativo opera uma srie de adaptaes com o objetivo de
reduzir o desperdcio da capacidade da rede. Quando a qualidade da conexo volta a ser
alta, entretanto, uma questo mostra-se fundamental para a diferena de comportamento
entre os algoritmos: o algoritmo adaptativo retoma mais rapidamente as taxas normais de
recepo do que o algoritmo no adaptativo.
3.5

4
Taxa de recepo do algoritmo no adaptativo
Taxa de recepo do algoritmo adaptativo
Nvel de adaptaao

3
3

1.5

Nvel de adaptao

Taxa de recepo (Mbps)

2.5

1
0
0.5

0
20

30

40

50

60

70

80

Tempo (s)

Figura 5. Comparao entre o algoritmo adaptativo e o no adaptativo.

O algoritmo adaptativo recupera-se mais rapidamente do que o no adaptativo por


duas razes. Primeiro, porque o algoritmo no adaptativo mantm a taxa de transmisso
em 2 Mbps e, desse modo, sobrecarrega a capacidade de transmisso do ponto de acesso.
Segundo, e mais importante, as adaptaes executadas pelo algoritmo adaptativo reduzem as perdas de pacotes, evitando assim a necessidade de atuao do mecanismo ARC
e, conseqentemente, a reduo da taxa de transmisso. importante lembrar que as mtricas usadas pelo mecanismo de ARC para adaptao da taxa de transmisso baseiam-se
principalmente na qualidade da transmisso e da recepo em termos de perda de quadros
e pacotes, nmero de mensagens ACK perdidas, vazo etc. [Haratcherev et al. 2005]; e
no na qualidade do sinal. A qualidade do sinal apenas uma mtrica auxiliar para o
mecanismo de ARC, porque difcil estabelecer uma relao apenas entre a qualidade do
sinal e a respectiva taxa tima de transmisso; afinal, isso depende tambm de outros fatores, como a sensibilidade dos NICs usados, o tamanho dos pacotes e o volume de dados
trafegados. Portanto, ao adaptar os fluxos, mesmo no interferindo diretamente na fora
do sinal, reduzimos a necessidade de atuao dos mecanismos de ARC.
Alm disso, a fim de evitar excessivas alteraes na taxa de transmisso, que poderiam levar instabilidade do sistema, o mecanismo de ARC aguarda certo perodo de
tempo antes de retomar as taxas mais altas de transmisso [Haratcherev et al. 2005] e, por
essa razo, o fluxo no adaptativo continua sofrendo os efeitos da mobilidade, mesmo j
estando prximo ao ponto de acesso.
A Tabela 1 resume os resultados obtidos pelos algoritmos adaptativo e no adaptativo. O cliente do algoritmo adaptativo recebeu efetivamente mais dados do que o no
adaptativo, mesmo tendo o servidor enviado mais dados para o algoritmo no adaptativo

Algoritmo
No adaptativo
Adaptativo

Transmitido
1.848 Mbits
1.659 Mbits

Recebido
1.390 Mbits
1.604 Mbits

Taxa Mdia
1,505 Mbps
1,736 Mbps

Eficincia
0,75
0,96

Tabela 1. Comparao entre o algoritmo adaptativo e o no adaptativo.

do que para o adaptativo. Em nmeros, o algoritmo adaptativo alcanou 96% de eficincia6 contra apenas 75% do algoritmo no adaptativo. Alm disso, atingiu taxas mdias
de recepo 15% maiores do que o algoritmo no adaptativo (1,736 Mbps contra 1,505
Mbps). Ademais, poderamos traar cenrios em que essa diferena seria ainda mais
acentuada, como por exemplo experimentos sujeitos a longos perodos de desconexo.

7. Concluses
Neste artigo apresentamos os principais problemas relacionados ao desenvolvimento de
aplicaes adaptativas para redes IEEE 802.11, assim como as tcnicas que podem ser
usadas para resolver esses problemas.
A contribuio central deste trabalho, contudo, foi a proposta de uma nova estratgia adaptativa que, ao adequar as transmisses qualidade do sinal, reduz o desperdcio
de recursos da rede e, conseqentemente, aumenta a eficincia das transmisses. Destacamos que o algoritmo adaptativo proposto obteve 96% de eficincia nas transmisses
sujeitas mobilidade, enquanto transmisses no adaptativas atingiram apenas 75% de
eficincia. Alm disso, a estratgia adaptativa proposta suficientemente genrica para
ser aplicada em diferentes ambientes de redes sem fio, sendo que grande parte dessa generalidade deve-se ao algoritmo para a descoberta automtica dos limiares de adaptao
, e .
As redes IEEE 802.11, at o presente momento, foram erroneamente tratadas
como redes Ethernet; isso deve-se principalmente ao fato de que no existiam formas
padronizadas de interao entre as aplicaes e as interfaces para essas redes. Entretanto,
esta pesquisa demonstrou, por meio de implementaes concretas, que as peculiaridades
das redes IEEE 802.11 podem e por vezes devem ser tratadas pelos desenvolvedores
na camada de aplicao. Alguns servidores de fluxos j implementam estratgias adaptativas, porm estas estratgias so inadequadas s redes sem fio; preciso adequar essas
implementaes. Ademais, este trabalho tambm foi elaborado com o objetivo de servir
como referncia para o desenvolvimento de aplicaes cada vez mais adequadas s novas
realidades trazidas pelas redes sem fio e, em especial, pelas redes IEEE 802.11. Desse
modo, esperamos incentivar a pesquisa e o desenvolvimento de tcnicas adaptativas para
redes IEEE 802.11, cujo aprimoramento nos parece um tema urgente.

Referncias
Balakrishnan, H., Padmanabhan, V. N., Seshan, S., and Katz, R. H. (1997). A comparison of
mechanisms for improving TCP performance over wireless links. IEEE/ACM Transactions on
Networking (TON), 5(6):756769.
6 Eficincia

definida como a quantidade de dados transmitida dividida pela quantidade de dados recebida. Desse modo, a eficincia to melhor quanto mais prxima for de 1.

da Conceio, A. F. and Kon, F. (2003). Adaptao de fluxos contnuos UDP sobre redes IEEE
802.11b. In V Workshop de comunicao sem fio e computao mvel (WCSF), pages 91101,
So Loureno-MG, Brazil.
da Conceio, A. F. and Kon, F. (2006). O uso de pares de pacotes para monitorao da taxa de
transmisso e da capacidade de vazo em redes IEEE 802.11. In 24th Brazilian Symposium on
Computer Networks (SBRC), Curitiba-PR, Brazil.
Etoh, M. and Yoshimura, T. (2005). Advances in wireless video delivery. Procedings of the IEEE,
93(1):111122.
Gast, M. S. (2002). 802.11 Wireless Networks. The definitive guide. OReilly Media.
Haratcherev, I., Taal, J., Langendoen, K., Lagendijk, R., and Sips, H. (2005). Automatic IEEE
802.11 rate control for streaming applications. Wireless Communications and Mobile Computing, 5:421427. Special issue on Radio Link and Transport Protocol Engineering for FutureGeneration Wireless Mobile Data Networks.
Heusse, M., Rousseau, F., Berger-Sabbatel, G., and Duda, A. (2003). Performance anomaly of
802.11b. In 22nd Conference on Computer Communications (INFOCOM), volume 2, pages
836843, San Francisco, USA.
Ikkurthy, P. and Labrador, M. A. (2002). Characterization of MPEG-4 traffic over IEEE 802.11b
wireless LANs. In Annual IEEE Conference on Local Computer Networks (LCN), volume 27,
pages 421430, Tampa, USA.
Larzon, L.-A., Degermark, M., Pink, S., Jonsson (Ed.), L.-E., and Fairhurst (Ed.), G. (2004). RFC
3828 - The Lightweight User Datagram Protocol (UDP-Lite).
Muoz, L., Garcia, M., Choque, J., and Mhnen, R. A. P. (2001). Optimizing internet flows over
IEEE 802.11b wireless local area networks: A performance-enhancing proxy based on forward
error correction. IEEE Communication Magazine, 39(12):6067.
Pilosof, S., Ramjee, R., Raz, D., Shavitt, Y., and Sinha, P. (2003). Understanding TCP fairness over
wireless LAN. In 22nd Conference on Computer Communications (INFOCOM), volume 2,
pages 863872, San Francisco, USA.
Ramani, I. and Savage, S. (2005). SyncScan: Practical fast handoff for 802.11 infrastructure
networks. In 24th Conference on Computer Communications (INFOCOM), Miami, USA.
Schiller, J. (2000). Mobile Communications. Addison Wesley.
Sinha, R. and Papadopoulos, C. (2004). An adaptive multiple retransmission technique for continuous media streams. In 14th International Workshop on Network and Operating Systems
Support for Digital Audio and Video (NOSSDAV), pages 1621, Kinsale, Ireland.
Tan, G. and Guttag, J. (2005). The 802.11 MAC protocol leads to inefficient equilibria. In 24th
Conference on Computer Communications (INFOCOM), Miami, USA.
Vandalore, B., chi Feng, W., and Raj Jain, S. F. (2001). A survey of application layer techniques
for adaptive streaming of multimedia. Real-Time Imaging, 7(3):221235.