ESTUDO DE CASO NA PLATAFORMA WINDOWS Dissertao apresentada como requisito parcial obteno do grau de Mestre em Informtica no P. P. G. Informtica da Universidade Federal do Paran. Orientador: Carlos A. Picano de Carvalho CURITIBA 2 0 0 0 UFPR Mi ni s t r i o da Ed u c a o Un i v e r s i d a d e Feder al do Pa r a n Me s t r a d o e m I nf or m t i c a PARECER Ns. abaixo assinados, membros da Comisso Examinadora da defesa de Dissertao de Mestrado em Informtica, do aluno Parahuari Solnowski Branco, avaliamos o trabalho intitulado " I mpl ement ao de uma Rede sem Fio: Estudo de um Caso no Sistema Operacional Windows". cuja defesa foi realizada no dia 10 de maio de 2000. Aps a Avaliao, decidimos pela Aprovao do Candidato. Curitiba. 10 de maio de 2000. roL_Pr- Carlos Alberto Picano de Carvalho Pre'sTdente - DINF/UFPR p Prof. Dr. Wilson .Arnaldo Artuzi Jr. Membro Externo - ELETR/UFPR J ^ o V . -krrx^e^r^ Pr of . Dra. Keiko Vernica Ono Fonseca Membro Externo - CEFET-PR/ CPGEI Prof 1 . Dra. Cristina Duarte Murta Membro - DINF/UFPR PARAHUARI SOLNOWSKI BRANCO IMPLEMENTAO DE UMA REDE SEM FIO: ESTUDO DE CASO NO SISTEMA OPERACIONAL WINDOWS CURITIBA 2000 AGRADECIMENTOS Ao meu orientador Carlos Picano, Joo Fbio, Paulo Otsuka e ao Rogrio da Logitech pelo apoio na realizao deste trabalho. A professora Cristina Duarte pela pacincia e compreenso. A professora Keiko Fonseca por suas sugestes. Aos professores Elias e Slvia pelas sugestes apresentadas no incio deste trabalho. A toda a minha famlia pelo carinho, apoio e compreenso. 111 SUMRIO LISTA DE FIGURAS X RESUMO x n ABSTRACT XFFL 1. INTRODUO 1 1.1 MOT I VAO: QU A L O P ROB L E MA? 1 1. 2 A DISSERTAO 2 2. COMUNICAO SEM FIO - HISTRIAS E TECNOLOGIAS 4 2. 1 INVENO DO RDIO 4 2. 2 LINHA DO TEMPO 6 2. 3 REDES SEM FIO 8 2.3.1 O QUE ? : 8 2.3.2 POR QUE UTILIZAR UMA REDE SEM FIO? 9 2.3.3 COMO AS REDES SEM FIO SO UTILIZADAS NO MUNDO REAL? 11 2.3.4 PREOCUPAES SOBRE O USO DA COMUNICAO SEM FIO 13 2. 4 TECNOLOGIAS PARA COMUNICAO SEM FIO 15 2.4.1 COMUNICAO CELULAR 15 2.4.2 CELULAR ANALGICO 16 2.4.3 CDPD (CELLULAR DIGITAL PACKET DATA) 17 2.4.4 TDMA (TIME DIVISION MULTIPLE ACCESS) 17 2.4.5 GSM (GLOBAL SYSTEM FOR MOBILE COMURRICATION) 18 2.4.6 OUTROS TIPOS DE COMUNICAO 18 2. 5 COMO UMA REDE SEM FIO FUNCIONA 18 2 . 6 MERCADO ATUAL 2 0 2.6.1 COMUNICAO DE DADOS VIA CELULAR 20 viii 2.6.2 ACESSO WEB VIA CELULARES, PAGERS E COMPUTADORES DE MO 23 2.6.3 REDES LOCAIS SEM FIO 25 2 . 7 FUTURO DO MERCADO SEM NO 2 6 3. PESQUISAS NA REA 29 3. 1 INTRODUO 2 9 3. 2 O SISTEMA A L OHA DA UNIVERSIDADE DO HAVA 2 9 3. 3 REAS DE PESQUISA NA COMPUTAO SEM FIO 31 3.3.1 DESCONEXO 33 3.3.2 LARGURA DE BANDA 34 3.3.3 GRANDE VARIABILIDADE NA LARGURA DA BANDA 36 3.3.4 REDES HETEROGNEAS 36 3.3.5 RISCOS DE SEGURANA 37 3.3.6 MIGRAO DE ENDEREO 38 3.3.7 DIFUSO SELETIVA 38 3.3.8 SERVIOS CENTRAIS 39 3.3.9 HOME BASES 39 3.3.10 TRANSFERNCIA DE PONTEIROS 39 3.3.11 INFORMAES DEPENDENTES DE LOCALIZAO 40 3.3.12 LOW POWER 40 3.3.13 RISCO PARA OS DADOS 40 3.3.14 A CONFIABILIDADE NA TRANSMISSO 41 3. 4 ESPECIFICAO BLUETOOTH 41 4. MODELO PROPOSTO 43 4. 1 INTRODUO 43 4. 2 MODELO DE REFERNCIA 4 3 4.2.1 O MODELO OSI 45 4.2.2 O PADRO IEEE 802 46 viii 4.2.3 O PADRO IEEE 802.11 48 4.2.4 IEEE 802.11 WIRELESS LOCAL AREA NETWORK 48 4.2.5 TOPOLOGIA 50 4. 2. 5. 1 IBSS 50 4. 2. 5. 2 ESS 51 4. 3 ARQUITETURA DE REDE DO WINDOWS 51 4.3.1 NDIS DRIVERS 54 4. 3. 1. 1 NIC DRIVERS 55 4. 3. 1. 2 INTERMEDIATE PROTOCOL DRIVERS 55 4. 3. 1. 3 UPPER LEVEL PROTOCOL DRIVER 56 4 . 4 COMPONENTES "DE PRATELEIRA" 5 6 4. 5 RESTRIES 5 7 4. 6 ARQUITETURA DA SOLUO 58 4 . 7 DESENVOLVENDO O NDI S MINIPORT NI C DRIVER 6 1 4.7.1 NVEL FSICO - NIC 61 4.7.2 ROTINAS PARA A MANIPULAO DO NIC 62 4.7.3 DELIMITAO DOS PACOTES 62 4.7.4 NVEL DE ENLACE - CONTROLE DE ACESSO 63 4.7.5 CONTROLE DE ERROS/FLUXO 65 4. 7. 5. 1 CRC 66 4. 7. 5. 2 PACOTES ESPECIAIS 66 4. 7. 5. 3 PACOTES DE DADOS 68 4.7.6 TOPOLOGIA 69 5. IMPLEMENTAO 70 5. 1 COMO A PLACA FUNCIONA? 72 5. 3 COMUNICANDO ATRAVS DE CABOS 73 5. 4 ENTENDENDO O FUNCIONAMENTO DE UM NDI S MINIPORT NI C DRIVER 75 5.4.1 NDIS MINIPORT NIC DRIVER 75 5.4.2 CDIGO FONTE NE2000 77 vi 5. 5 ENVIANDO E RECEBENDO PACOTES 7 8 5. 6 PRIMEIRA VERSO DO NDI S MINIPORT NI C DRIVER 7 9 5. 7 ENVIANDO E RECEBENDO PACOTES ATRAVS DO RDIO 81 5. 8 SEGUNDA VERSO DO NDI S MINIPORT NI C DRIVER 82 5.8.1 TESTE ATRAVS DO AMBIENTE DE REDE 84 5.8.2 COMUNICAO UTILIZANDO O PADRO INTERNET 85 5. 9 TERCEIRA VERSO DO NDI S MINIPORT NI C DRIVER 8 6 6. CONCLUSO E TRABALHOS FUTUROS 89 APNDICE A - DESCRIO DO HARDWARE UTILIZADO NO PROJETO 91 AL PLACA BAY 9 6 US CC 9 2 A2 Z8 5 3 0 93 A 2.1 REGISTRADORES 93 A2.2 MODOS DE OPERAO 94 A2. 2. 1 MODO ASSNCRONO 94 A2. 2. 2 MODO SNCRONO 95 A2. 2. 3 MODO SDLC 95 A3 PINAGEM 9 5 A4 USO COM O RDIO 9 6 A5 ENDEREAMENTO 9 6 A6 ACESSO AOS REGISTRADORES 9 9 A7 PROGRAMAO DA US CC 102 AL. 1 POLLING 102 AL.2 INTERRUPO 102 A8 INICIALIZAO DA PLACA 103 A9 CONTROLE DAS INTERRUPES 107 A9.1 RECEPO 108 A 9.2 TRANSMISSO 108 viii A9.3 EXTERNAL/STATUS 109 A9.4 IDENTIFICANDO O MOTIVO DA INTERRUPO 109 AL O ENVIO DE DADOS 111 A 10.1 POLLING 112 A 10.2 INTERRUPO 113 AL 1 RECEPO DE DADOS 113 A 11.1 POLLING U4 AL 1.2 INTERRUPO 114 A1 2 MODO LOOPBACK 115 APNDICE B - ETHERNET 116 B1 ETHERNET 116 B2 CAMADAS ETHERNET 117 B3 ETHERNET X I EEE 8 0 2 . 3 117 B4 FORMATO DO PACOTE 119 B5 ENDEREO ETHERNET 120 B6 CDIGOS N T 121 APNDICE C - FERRAMENTAS UTILIZADAS NO PROJETO 122 CL MICROSOFT S DK/ DDK 122 C2 SOFTICENUMEGA 122 C3 BORLAND C + + 3 . 1 123 C4 VISUAL C+ + 6. 0 124 C5 WORD 9 7 124 C6 NDISCOPE FOR WINDOWS 124 C7 BAYCOM 124 C8 JNOS 125 C9 SOURCER 125 CIO ADOBE ACROBAT READER 125 viii CL 1 GS V I E W3 2 2. 1 - A GHOSTSCRIPT GRAPHICAL INTERFACE 1 2 5 C1 2 TERMINAL DO WINDOWS 126 APNDICE D - SCRIPT PARA INSTALAO DO DRIVER DE REDE 127 APNDICE E - REPRODUO DO EXPERIMENTO PRTICO 129 REFERNCIAS BIBLIOGRFICAS 130 viii LISTA DE FIGURAS FIGURA 2. 1 EXEMPLO DE UM AMBIENTE DE REDE SEM FIO USANDO PONTOS DE ACESSO 2 0 FIGURA. 3. 1 ELEMENTOS B.SICOS DO SISTEMA AL OHA. 3 0 FIGURA 3 . 2 COLISO NA TRANSMISSO DO SISTEMA A L O H A 3 0 FIGURA 3 . 3 DIAGRAMA DE TRANSMISSO E RECEPO DO SISTEMA A L O H A 3 1 FIGURA 4. 1 USANDO O SISTEMA OPERACIONAL PARA DISPONIBILIZAR ACESSO TRANSPARENTE A REDE SEM FIO 4 5 FI GURA4. 2 MODELO OSI X MODELO I EEE 4 7 FIGURA 4 . 3 PADRO 8 0 2 . 1 1 ACRESCENTADO AO I EEE 4 8 FIGURA 4 . 4 MEIOS FSICOS ABRANGIDOS PELO PADRO 8 0 2 . 1 1 4 8 FIGURA 4 . 5 3SS O TIPO MAIS BSICO DE REDE SEM FIO 8 0 2 . 1 1 51 FIGURA 4 . 6 E S S SATISFAZ A NECESSIDADE DAS REDES DE GRANDE ABRANGNCIA E MAIOR COMPLEXIDADE 51 FIGURA 4 . 7 MODELO OSI E A ARQUITETURA DE REDE DO WINDOWS 5 2 FIGURA 4 . 8 COMPONENTES EXISTENTES NA ARQUITETURA DE REDE DO WINDOWS 5 4 FIGURA 4 . 9 ARQUITETURA GERAL DA SOLUO 6 0 FIGURA 4 . 1 0 COMPONENTES A SEREM PROGRAMADOS NO N D I S MINIPORT N I C DRIVER 6 1 FIGURA 4 . 1 1 IDENTIFICAO DO PACOTE 6 2 FIGURA 4 . 1 2 RESUMO DO FUNCIONAMENTO DO C S MA / C A 6 4 FIGURA 4 . 1 3 DIAGRAMA DAS OPERAES DE TRANSMISSO E RECEPO 6 7 FIGURA 5. 1 PROGRAMA BAYCOM CONECTANDO COM OUTRO COMPUTADOR ( PULHF) UTILIZANDO CABOS 7 4 FIGURA 5. 2 PROGRAMA D OS QUE TROCA BYTES ENTRE DOIS COMPUTADORES CONECTADOS COM A PLACA LIGADA ATRAVS DE UM CABO 7 5 FIGURA 5. 3 PACOTE ETHERNET 7 8 FIGURA 5 . 4 PACOTE USADO NO EXPERIMENTO 7 9 FIGURA 5. 5 ORGANIZAO DA PRIMEIRA VERSO DO NDI S MINIPORT 8 0 FIGURA 5. 6 PROGRAMA D OS QUE TROCA PACOTES ENTRE DOIS COMPUTADORES LIGADOS POR RDIO 8 2 FIGURA 5 . 7 ORGANIZAO DA SEGUNDA VERSO DO N D I S MINIPORT 83 viii FIGURA 5. 8 SEQNCIA DE PACOTES PARA A COMUNICAO DE DADOS 83 FIGURA 5. 9 EXCLUDO OS PACOTES DE CONTROLE OPCIONAIS NESTA VERSO DO DRIVER 8 7 FIGURA 5 . 1 0 TESTE DO FUNCIONAMENTO DO DRIVER COM APLICAES INTERNET 8 7 FIGURA 5. 11 APPLET JAVA COM UM PROGRAMA DE CHAT SIMPLES 8 8 FIGURA A. 1 PINAGEM LIGANDO A PLACA U S C C AO RDIO 96 FIGURA A. 2 JUNIPER PARA A SELEO DO ENDEREO BASE DA PLACA 9 7 FIGURA A. 3 ENDEREO DE DADOS E DE CONTROLE DA PLACA U S C C USANDO COMO ENDEREO BASE O VALOR 300H 9 7 FIGURA A. 4 PROGRAMAO DOS REGISTRADORES PARA A INICIALIZAO DA PLACA 105 FIGURA B. 1 CAMPOS DO PACOTE ETHERNET 120 FIGURA D. 1 - JANELA DO WINDOWS 98 PARA ADICIONAR O DRIVER DA REDE SEM FIO 127 viii RESUMO Esta dissertao o resultado do estudo da viabilizao tcnica e prtica da comunicao sem fio entre microcomputadores mediante a utilizao de tecnologia e instrumentos "de prateleira". Como resultado deste estudo apresentado um levantamento da rea de comunicao de dados sem fio contendo suas caractersticas, as tecnologias utilizadas e suas reas de pesquisa. O texto finalizado com a proposta de uma arquitetura de hardware e software para a implementao de uma rede sem fio. Esta proposta teve como base o estudo do modelo OSI, do padro EEEE 802.11 e da arquitetura de rede da plataforma Windows. A soluo apresentada est baseada no desenvolvimento de um NDIS Miniport NIC driver e na utilizao de ferramentas Internet para o desenvolvimento das aplicaes que utilizam esta rede sem fio. viii ABSTRACT This dissertation is the result of a technical viability study of wireless communication through computers using "on-the-shelf' technology and instruments. As a result of this study, information about the wireless communication field, its characteristics, technologies and research areas is presented. This text also presents an architecture of hardware and software to develop a wireless network. This proposal is based in the OSI model, IEEE 802.11 specification and Windows network architecture. The solution is based in the development of a NDIS Miniport NIC driver and in the use of Internet tools to the application development using this wireless network. Xlll 1 1. INTRODUO 1.1 MOTIVAO: QUAL O PROBLEMA? Existe um segmento de mercado onde a informtica tem sido usada para a monitorao de equipamentos de rdio e televiso. Nesta rea a concorrncia, principalmente de sistemas americanos, muito grande. Por isso, para conseguir competir neste mercado necessrio atacar os pontos fracos da maioria destes sistemas de monitorao: a sua arquitetura fechada, o seu alto custo de aquisio, manuteno e personalizao. Focando estes pontos, foi desenvolvido um trabalho em parceria com a Rede Globo de Televiso - So Paulo, com o objetivo de construir estes sistemas utilizando solues mais "abertas" de hardware e de software. No lugar de usar hardware do tipo "caixa-preta", presente nos sistemas importados, foram utilizados computadores padro PC. O software para fazer a monitorao foi desenvolvido com opes simples de personalizao de forma a permitir o usurio do sistema modificar, retirar ou acrescentar facilmente pontos de monitorao. Dentro desta estratgia foi possvel reduzir os custos de implantao e personalizao destes sistemas. O objetivo de baixar o custo dos sistemas de superviso para equipamentos de rdio e televiso foi alcanado, mas o componente responsvel pela comunicao dos dados via rdio, que consumiu um considervel tempo de desenvolvimento, apresentou o mesmo problema dos sistemas concorrentes. A comunicao por rdio foi desenvolvida dentro de uma arquitetura fechada, de forma a atender apenas a comunicao existente no sistema de monitorao remota. Um fator no foi considerado no desenvolvimento do sistema de 2 monitorao: a possibilidade de reaproveitar a soluo de comunicao de dados via rdio em outros sistemas que se beneficiem deste tipo de comunicao. Baseado na experincia adquirida no desenvolvimento destes programas a seguinte pergunta surgiu: Como desenvolver uma soluo, de baixo custo, que permitisse a comunicao de dados via rdio e que fosse transparente ao desenvolvedor do sistema? Um mdulo que permitisse a sua utilizao em um sistema de monitorao bem como em outros sistemas que utilizam comunicao de dados sem fio? O enfoque do primeiro trabalho (sistema de telesuperviso) foi a simplificao tendo como alvo o usurio final. O enfoque desta dissertao de Mestrado diferente, consiste na simplificao do uso da comunicao de dados sem fio para os desenvolvedores de sistemas. Isto formalizado no pargrafo a seguir. Este trabalho o resultado do estudo da viabilizao tcnica e prtica da comunicao sem fio entre microcomputadores mediante a utilizao de tecnologia e instrumentos "de prateleira". Entende-se "de prateleira" equipamentos simples, de baixo custo, encontrados em lojas especializadas. 1.2 A Dissertao O resultado da pesquisa para o desenvolvimento de um mdulo de comunicao sem fio est registrado nesta dissertao, organizada da seguinte forma: J - Primeiro. Levantamento da rea de comunicao de dados sem fio, suas caractersticas e tecnologias (captulo 2). Deve ser lido por quem deseja ter uma viso geral da rea. - Segundo. Identificao das reas de estudo sobre o assunto (captulo 3). Deve ser lido por quem tem interesse em conhecer o grande nmero de problemas que existem na rea de comunicao sem fio. - Terceiro. Aps a apresentao geral sobre comunicao sem fio (captulo 1 e 2) est sendo proposto uma arquitetura de hardware e software capaz de atender as necessidades de comunicao da rede sem fio de baixo custo (captulo 4). Deve ser lido por quem tem interesse no modelo para a implementao desta rede, objeto de estudo da dissertao. - Quarto. Validao do modelo atravs da implementao de um prottipo (captulo 5 e apndices). De forma a contribuir com trabalhos futuros, alm da apresentao do modelo proposto para a rede, foi reunido neste texto as informaes sobre a comunicao sem fio encontradas de maneira dispersa ou que no estavam devidamente documentadas. Um exemplo disso o Apndice A, que apresenta instrues sobre como programar uma placa USCC. 4 2. COMUNICAO SEM FIO - HISTRIAS E TECNOLOGIAS 2.1 Inveno do rdio A inveno do telgrafo por Samuel F. B. Morse em 1838 inaugurou uma nova poca nas comunicaes. Nos primeiros telgrafos utilizados no sculo XIX, mensagens eram codificadas em cadeias de smbolos binrios, chamados de cdigo Morse, e ento transmitidas manualmente por um operador atravs de um dispositivo gerador de pulsos eltricos. Desde ento, a comunicao atravs de sinais eltricos atravessou uma grande evoluo, dando origem maior parte dos grandes sistemas de comunicao que existem hoje em dia, como o telefone, o rdio e a televiso [2], Durante a metade do ltimo sculo os cientistas estavam procurando uma forma de se comunicar sem a utilizao de um fio. Todavia, as tentativas feitas com ondas eletromagnticas no tiveram nenhum resultado. O escocs Clark Maxwell demonstrou matematicamente como "aes" eletromagnticas se espalhavam com um movimento ondulatorio. Em 1887 o alemo Heinrich Hertz, usando correntes peridicas em uma alta freqncia, demonstrou a existncia real de ondas eletromagnticas transformando o "movimento ondulatorio" em um fenmeno estacionario, o qual poderia ser verificado em um laboratrio. O italiano Augusto Righi continuou e melhorou o trabalho de Hertz mostrando a relao entre vibraes ticas e eltricas. Em 1884 Temistocle Calzecchi- Onesti observou a influncia de descargas eltricas de perturbaes atmosfricas em um iron filing construindo um "tubo" que foi chamado mais tarde em 1894 por Oliver Lodge de coherer. Foram estas pesquisas que levaram Marconi a produzir um dispositivo capaz de produzir ondas eletromagnticas e permitir que estas ondas viajassem pelo ar. [41] 5 Em Setembro de 1895 Guglielmo Marconi, um auto-didata de 21 anos nascido em Bologna, Itlia, j tinha feito alguns experimentos simples que o convenceram de que era possvel enviar sinais atravs do uso de ondas eletromagnticas usando uma antena. Usando os osciladores de Hertz e Righi, Marconi conseguiu fazer pequenas transmisses, como por exemplo uma transmisso que percorreu os 100 metros que separavam a sua casa do final do seu jardim. Todavia, foi possvel demonstrar que usando o ar {ether) era possvel transmitir entre dois pontos separados por um obstculo. Cientistas e outros especialistas diziam que ondas eletromagnticas poderiam apenas ser transmitidas em linha reta e que isso funcionaria apenas se no existisse nenhum obstculo no caminho. Acima de tudo, os cientistas achavam que o obstculo intransponvel transmisso era a prpria curvatura da superfcie terrestre. Mesmo sabendo de tudo isso Marconi resolveu colocar o seu transmissor perto de sua casa e o receptor a 3 Km de distncia, atrs de um morro. No receptor estava Mignani, um assistente de Marconi, cuja tarefa seria disparar um rifle caso recebesse algum sinal. Quando Mignani disparou a sua arma, pela primeira vez na histria os trs pontos que compem a letra "S" do cdigo Morse tinha viajado atravs do espao. Mesmo com essa faanha notvel os italianos no se entusiasmaram com a inveno de Marconi, o ministro responsvel pelas comunicaes na Itlia considerou que este invento no era "apropriado para as telecomunicaes". Isso levou Marconi Inglaterra onde patenteou o seu invento. Foi ainda na Inglaterra (1897) que Marconi conseguiu apoio e dinheiro para continuar os seus experimentos, onde conseguiu transmitir a distncias de 5, 8, 15, 30 e 100 Km.[40] O ano de 1921 marcou o primeiro registro de uso de comunicaes sem fio na forma bidirecional pelo Departamento de Polcia de Detroit. Mais de 20 anos depois, em 1946, 6 tocou o primeiro telefone mvel [27], At recentemente a conectividade sem fio e onipresente parecia filme de fico cientfica. Para resumir a histria da comunicao sem fio so apresentados alguns aspectos interessantes, alguns no mencionado em detalhes, atravs de uma linha do tempo. 2.2 Unha do Tempo 1838 Inveno do telgrafo por Samuel F. B. Morse. 1850 Clark Maxwell demonstra matematicamente como aes eletromagnticas espalham-se como um movimento ondulatorio. 1887 Heinrich Hertz demonstra a real existncia de ondas eletromagnticas. 1894 The Coherer. 1895 Rdio-transmissor de Marconi. 1921 Comunicao mvel sem fio bidirecional pelo Departamento de Polcia de Detroit. 1941 Patenteado por Hedy Lamarr e George Antheil sistema de comunicao utilizando mltiplas freqncias (futuramente chamado de spread-spectrum). 1946 Funcionamento do primeiro telefone mvel. 1962 Primeiro sistema eletrnico de spread-spectrum desenvolvido para equipar missel americano (Sylvania Electronic Systems). 1970 Rede de radiodifuso Aloha inicia o seu funcionamento interligando o centro de computao da Universidade do Hava, em Honolulu, a terminais espalhados pelas ilhas. 1980 Em Fevereiro foi institudo o comit IEEE 802 (chamado assim devido ao ano e ms do seu inicio), com o objetivo de elaborar padres para redes locais de computadores. 1980s Rdio amadores desenvolvem um hardware chamado TNC {Terminal Node Controllers). Este hardware permitiu que microcomputadores dos Estados Unidos e do Canad permanecessem conectados atravs de equipamentos de rdio amador. 1984 A ISO desenvolve um modelo de referncia chamado OSI {Open System Interconection). 1985 O FCC {Federal Communications Commission) autoriza o uso pblico das freqncias que compem o ISM {Industrial, Scientific and Medicai), esta faixa de freqncias compreendem de 902MHz a 5.85 GHz. A autorizao permite a utilizao de equipamentos que transmitem nesta faixa sem o pedido de autorizao do governo. 1991 Em Maio um grupo liderado por Victor Hayes envia um projeto ao IEEE para dar incio ao grupo de trabalho 802.11 que define o padro para redes sem fio. 1992 Na conferncia de administrao de espectro de rdio da UIT, instala-se a IMT-2000 {International Mobile Telecommunications 2000). A proposta da 8 IMT-2000 fornecer acesso wireless infra-estrutura global de telecomunicaes, mediante unificao dos padres adotados em sistemas mveis celulares em uma nica infra-estrutura de rdio. 1994 De maneira a incentivar o desenvolvimento da superinfovia da comunicao, que tambm inclui a infraestrutura wireless, o Grupo dos 7 (G-7) cria a GII (Global Information Infrastructure). 1997 Em Junho o texto descrevendo o padro IEEE 802.11 chega a sua verso final. 1999 Em Maro foi criado o grupo de trabalho IEEE 802.15 para definir os padres para a comunicao de dispositivos em redes do tipo WPAN {Wireless Personal Area Network). 2.3 Redes sem fio 2.3.1 O que ? Uma rede local sem fio um sistema de comunicao de dados flexvel implementado como uma extenso, ou uma alternativa, a uma rede local (LAN) [51], Usando tecnologia de rdio freqncia (RF), redes sem fio transmitem e recebem dados atravs do ar, minimizando a necessidade de conexes usando cabo. Desta forma, as redes sem fio combinam conectividade com mobilidade. As redes sem fio tm aumentado a sua popularidade em diversas reas: sade, manufatura, revendas e educao. Estas reas tm tido resultados positivos no uso de terminais de entrada de dados e computadores portteis na transmisso de informaes em 9 tempo real para a um computador central. Hoje as redes sem fio esto sendo reconhecidas como uma alternativa de conexo para redes de propsito geral em uma grande faixa de negcios. Pesquisas esto prevendo que este mercado aumentar o seu ritmo de crescimento, devendo ultrapassar a barreira dos US$2 bilhes a partir do ano 2000 [28] [38], 2.3.2 Por que utilizar uma rede sem fio? As redes locais sem fio so realidade em vrios ambientes de redes, principalmente nos que requerem a mobilidade dos usurios. As aplicaes so as mais diversas e abrangem desde aplicaes mdicas, como por exemplo a visita a vrios pacientes com um sistema porttil de monitoramento, at ambientes de escritrio ou de fbrica. Apesar das limitaes de cobertura geogrfica, utilizando-se a arquitetura de sistemas de distribuio pode-se aumentar a abrangncia de uma rede sem fio, fazendo uso de vrios sistemas de distribuio interconectados via rede com fio, num esquema de roaming entre microclulas, semelhante a um sistema de telefonia celular convencional. A disseminao do uso de rede nos negcios, o crescimento meterico da Internet e dos servios online so os mais fortes indcios das vantagens do compartilhamento de dados e recursos. Atravs das redes sem fio, os usurios podem acessar informaes compartilhadas sem ter que procurar por um lugar para se conectar. Os gerentes de rede podem configurar ou aumentar as redes sem a necessidade de instalao ou movimentao de cabos. Redes sem fio oferecem produtividade, convenincia e vantagens de custo sobre as redes que utilizam cabos. Listamos algumas vantagens do uso das redes sem fio: 10 - Mobilidade: sistemas de rede sem fio podem fornecer aos usurios da rede acesso a informaes em tempo real em qualquer lugar dentro da organizao. Esta possibilidade de movimentao pode ser utilizada de forma a aumentar a produtividade, alm de criar novas oportunidades de servios que no seriam possveis atravs do uso de redes com fio. - Velocidade de Instalao e Simplicidade: instalar uma rede sem fio pode ser rpido e fcil, eliminando a necessidade de passar cabos pelos tetos e paredes. - Flexibilidade na Instalao: redes sem fio podem ir onde o sistema de cabos no pode, como por exemplo em uma reserva florestal. - Custo de Propriedade: enquanto o custo inicial de investimento necessrio para a instalao do hardware e do software pode ser maior do que o custo de uma rede com cabos, o custo total de instalao e o custo do ciclo de vida pode ser significativamente inferior. Os beneficios a longo prazo so maiores para ambientes dinmicos que necessitam de mudanas freqentes. As redes com cabos precisam de modificaes em sua estrutura, como instalao de novos cabos e novos pontos na rede. - Escalabilidade: sistemas de rede sem fio podem ser configurados numa grande variedade de topologas para atender as necessidades de aplicaes e instalaes especficas. Configuraes so facilmente modificadas de redes ponto a ponto de poucos usurios para redes corporativas, permitindo uma movimentao do usurio em uma grande rea de abrangncia. 11 2.3.3 Como as redes sem fio so utilizadas no mundo real? A adoo de uma arquitetura de rede que utiliza comunicao sem fio no significa necessariamente a excluso da utilizao de cabos na rede. Muitas vezes uma rede sem fio utilizada de forma a complementar ao invs de substituir uma rede tradicional utilizando cabos. Freqentemente a rede sem fio utilizada de forma a permitir a conexo de um usurio mvel rede corporativa que utiliza cabos. A lista apresentada a seguir descreve algumas das muitas aplicaes possveis que tiram proveito da flexibilidade oferecida pela comunicao sem fio: - Mdicos e enfermeiras em um hospital so muito mais produtivos porque atravs de um handheld ou um notebook podem obter informaes atualizadas sobre o paciente instantaneamente. - Gerentes de rede gastam menos tempo para viabilizar mudanas na rede, como posio dos computadores, local ou tamanho da rede. - Locais de treinamento e estudantes em universidades utilizam conexes sem fio para simplificar o acesso informao e troca de dados, facilitando o aprendizado. - Gerentes de rede que instalam computadores em construes antigas descobriram que a utilizao de redes sem fio uma alternativa de infraestrutura de rede que pode ficar mais barata. - A utilizao de redes sem fio em congressos, feiras ou eventos reduzem o tempo de instalao porque diminui a inconveniente instalao dos cabos e porque permite que os computadores sejam pr-configurados e testados, mesmo antes da instalao em seu lugar definitivo. 12 - Gerentes de rede que utilizam redes sem fio podem aumentar a segurana de aplicaes de misso crtica a partir da criao de formas alternativas de conexo ao ambiente de rede com cabos. - Executivos em reunies podem tomar decises mais rapidamente porque possuem informaes em tempo real na "ponta dos dedos". [51] - Interligao de LANs entre edifcios independentes ou distantes. - Instalaes temporrias. - Prdios tombados pelo patrimnio histrico. - Locais onde j existem diversos dutos instalados no solo, muitas vezes sem um controle da sua exata localizao (Sabesp, Eletropaulo, Telepar, entre outras). - Usurios que precisam se locomover dentro da empresa, e ao mesmo tempo consultam ou atualizam informaes existentes na rede da empresa, como por exemplo o inventrio, o estoque, entre outros. [28] - Correio eletrnico para equipamentos portteis. - Telemetra de equipamentos em locais remotos ou de difcil acesso, como retransmissores de TV. - Acompanhamento de frotas atravs de localizao e telemetria. - Acesso a base de dados remota (polcia, guarda florestal, sistemas do tipo rede- shop, entre outras). 13 - Mquinas vendedoras automticas com modems sem fio que avisam quando o estoque est acabando, dispensando o deslocamento de pessoas para a verificao. [26] 2.3.4 Preocupaes sobre o uso da comunicao sem fio So muitos os beneficios que podem ser alcanados pelo uso da comunicao sem fio, mas no se pode esquecer dos problemas e conseqncia da escolha desta tecnologia. - Interferncia no sinal de rdio. O processo de transmisso e recepo de sinais de rdio ou laser atravs do ar faz com que os sistemas sem fio sejam vulnerveis a rudos produzidos por mudanas atmosfricas ou transmisses realizadas por outros sistemas. Uma rede sem fio pode tambm interferir em uma outra rede sem fio prxima ou em um outro equipamento de rdio. Ou seja, uma comunicao sem fio pode sofrer ou gerar interferncias. O gerenciamento das freqncias utilizadas, uma boa anlise do espectro antes da instalao da rede e a utilizao de tecnologias como spread spectrum podem minimizar este tipo de problema. - Gerenciamento de Energia. Na utilizao de equipamentos mveis, muitas vezes no possvel ligar este aparelho a uma tomada. Neste caso a autonomia de uso do equipamento estar dependendo de sua bateria. Nestas situaes o gasto adicional resultante da utilizao do hardware responsvel pela comunicao sem fio, passa a ser significativo no consumo de energia. Uma possvel alternativa para reduzir o consumo de bateria est na utilizao de tcnicas que, mesmo aumentando o tempo de resposta, procuram reduzir a quantidade de tempo que o rdio permanece em operao. 14 - Interoperabilidade dos sistemas. Diferentemente das redes com fio que possuem protocolos altamente difundidos, como por exemplo Ethernet, a estruturao de uma rede sem fio com um certo tipo de fabricante pode inviabilizar a ampliao da rede utilizando equipamentos de outros fabricantes. A publicao e a atual adoo de padres pelos fabricantes (como o IEEE 802.3) dever aumentar a compatibilidade destes equipamentos em poucos anos. - Segurana da rede contra acesso no autorizados. O ar usado como meio de transporte para as informaes, por isso a possibilidade de ter acesso aos dados transmitidos maior se comparado comunicao utilizando cabos. Por isso, alm do controle das conexes e do uso de senhas, a utilizao de criptografia fundamental. - Questes de instalao. Em comparao s redes sem fio o planejamento para a instalao dos cabos de uma rede com fio normalmente no apresenta problemas. Estuda-se a planta, identificam-se os locais para passagem dos cabos, o comprimento dos cabos e a eventual necessidade de repetidores. Depois da instalao destes cabos a rede costuma funcionar de acordo com o planejado. De forma contrria, a instalao de redes sem fio no costuma ser to previsvel. muito difcil, se no impossvel, definir a estruturao da rede sem fio apenas estudando a planta ou observando o local da instalao. Paredes, tetos e objetos atenuam os sinais de rdio e podem at alterar o caminho da transmisso. A abertura ou fechamento de uma porta pode alterar a propagao do sinal, sem contar a possibilidade de interferncia externa quando o sinal utilizado na comunicao entre prdios diferentes, que neste caso pode receber interferncia de outras 15 transmisses. Por isso fundamental a realizao de testes de propagao e anlise do espectro como parte do planejamento de uma rede sem fio. 2.4 Tecnologias para Comunicao sem Fio Pode-se classificar a comunicao sem fio em comunicaes unidirecionais e bidirecionais. As comunicaes unidirecionais, presentes nos servios de pagers, permitem transmisso de informaes para um ou para mltiplos receptores. Este o formato ideal para o despacho de mensagens, atualizao de notcias, informaes de preos e atribuio de rotas. Considerando custo, a comunicao unidirecional um mtodo eficiente para a entrega de informaes aos seus destinatrios. Embora as transmisses unidirecionais desempenhem um importante papel so as comunicaes bidirecionais que permitem explorar o potencial mximo da comunicao sem fio, possibilitando conexo de LANs, telefones pblicos sem fio, conferncias em tempo real, entre outras. [27] Existe uma srie de tecnologias para comunicao sem fio, cada uma destas tecnologias com o seu conjunto de caractersticas, vantagens e limitaes. Apresentamos estas tecnologias a seguir. 2.4.1 Comunicao Celular Fazem parte de um sistema mvel de radiotelefona que transmite dados sobre pequenas reas geogrficas, chamadas clulas, que utilizam receptores e transmissores de baixa potncia. Os telefones celulares funcionam tipicamente dentro de um raio de 8km. A comunicao celular ocorre por meio de uma malha de transmissores/receptores, onde cada 16 conjunto chamado de clula. Um sinal proveniente de um dispositivo celular tratado pela clula mais prxima, que transmite o sinal atravs de linhas telefnicas comuns. medida em que um dispositivo celular, como um telefone porttil, move-se de uma localidade para outra, o sinal pode cair momentaneamente conforme se passa de uma rea coberta por uma clula para outra rea coberta por uma segunda clula. Isso conhecido como handoff. Quando um dispositivo celular move-se para dentro do alcance de uma nova clula, seu sinal capturado por outro par formado por um transmissor e um receptor. Normalmente esta clula a que encontra-se mais prxima do dispositivo. Entretanto, se um sinal bloqueado, uma clula mais afastada passa a ser utilizada. [26] As ocorrncias de handoff no so problema para sinais de voz, cheios de vazios e pausas; contudo, no caso dos dados, se no houver protocolos ou equipamentos especiais, cada troca de clula representa uma potencial transmisso arruinada. [27] 2.4.2 Celular Analgico Uma das formas mais simples de comunicao sem fio o celular analgico. Projetado originalmente para comunicaes de voz, o celular analgico funciona de forma muito parecida com os telefones baseados em linhas de terra - na verdade, uma chamada celular viaja a maior parte da distncia atravs dessas linhas. A transmisso de dados via celular analgico requer um modem ligado ao servio celular [27], 17 Os telefones celulares analgicos normalmente utilizam a tecnologia FDMA (.Frequency Division Multiple Access) que divide as freqncias para separar cada uma das chamadas [46], 2.4.3 CDPD (Cellular Digital Packet Data) Um dispositivo celular CDPD segmenta os dados em pacotes que podem ser transmitidos de forma independente. Estes pacotes de dados so enviados por meio de sinais de celulares que j esto sendo utilizados para comunicaes de voz; eles so inseridos na portadora do sinal durante os perodos de silncio que acompanham a fala. Devido possibilidade de perda dos pacotes de dados durante um handoff\ ou de distoro causada pela esttica ou por outra interferncia no sinal do celular, o CDPD receptor verifica os pacotes para ter certeza de que no apresentam problemas, e solicita ao CDPD emissor que torne a enviar os pacotes danificados ou perdidos. [26] 2.4.4 TDMA (Time Division Multiple Access) Mtodo de multiplexao para telefones celulares digitais, no qual atribudo uma faixa de tempo em um canal para cada usurio. [26] TDMA divide cada freqncia de portadora em um determinado nmero de intervalos de tempo, cada qual constituindo um circuito independente de telefone. [46] Tipicamente, at dez usurios podem compartilhar um canal. J existe cerca de 30 milhes de usurios que utilizam celulares com esta tecnologia [37], 18 2.4.5 GSM (Global System for Mobile Comunication) O GSM utiliza a mesma tecnologia do TDMA onde cada freqncia de portadora dividida em um nmero de faixas de tempo. GSM utilizado amplamente na Europa como principal padro para sistemas de comunicao sem fio.[46] 2.4.6 Outros tipos de comunicao Existe um nmero grande de estratgias usadas na comunicao sem fio. Elas so importantes mas no fazem parte do escopo deste trabalho, por isso sero apenas citadas: Microondas [6], Frequency-Hopping Spread Spectrum, Direct-Sequence Spread Spectrum Technology [51] [43] [48] [5], Code Division Multiple Access (CDMA) [26] [46] [6], Wideband Code Division Multiple Access (W-CDMA) [52], Infravermelho [51] [6] [5], etc. 2.5 Como uma rede sem fio funciona Uma rede sem fio utiliza ondas eletromagnticas para transmitir informaes de um ponto a outro sem o uso de conexes fsicas. Ondas de rdio so freqentemente chamadas de portadoras de rdio porque elas simplesmente executam a funo de enviar energia para um receptor remoto. O dado transmitido sobreposto na portadora do rdio de forma a permitir a extrao desta informao no ponto receptor. Uma vez o dado sobreposto (ou modulado) na portadora do rdio, este sinal ocupa mais do que uma nica freqncia, uma vez que a freqncia ou a taxa de bits da informao modulada adicionada portadora. Mltiplas portadoras de rdio podem existir dentro do mesmo espao e dentro do mesmo tempo sem interferir um no outro se estas ondas forem transmitidas em diferentes freqncias de rdio. Para extrair os dados, o rdio receptor ajustado em uma freqncia enquanto as demais freqncias so descartadas. Em uma configurao de rede tpica, o dispositivo de transmisso/recepo, chamado de ponto de acesso, conecta-se com a rede atravs de uma base fixa que usa cabos tradicionais (Figura 2.1). O objetivo do ponto de acesso receber, armazenar e transmitir os dados entre as redes sem fio e com fio. Um nico ponto de acesso pode suportar um pequeno grupo de usurios e pode funcionar dentro de uma faixa que varia de uma a vrias centenas de metros. O ponto de acesso, ou a antena anexada ao ponto de acesso, normalmente colocado em um local alto, entretanto pode ser colocado em qualquer lugar onde o alcance do rdio atinja a rea de cobertura desejada. Os pontos de acesso no apenas fornecem a comunicao com a rede convencional, como tambm intermediam o trfego com os pontos de acesso vizinhos, num esquema de micro clulas com roaming semelhante a um sistema de telefonia celular (figura 2.1). Os usurios acessam a rede sem fio atravs de adaptadores de rede especiais, que disponibilizam uma interface entre o sistema operacional de rede (SOR) e a antena transmissora do sinal. A partir desta estrutura a natureza desta conexo sem fio fica transparente para o SOR. [51] 20 Figura 2.1 Exemplo de um ambiente de rede sem fio usando pontos de acesso 2.6 Mercado Atual 2.6.1 Comunicao de dados via celular Os modems atuais foram originalmente projetados para linhas telefnicas convencionais, que possuem as seguintes caractersticas: - Comunicao "estvel" aps estabelecimento da ligao. - "Pequenas" variaes das caractersticas do canal de comunicao. - Caminho/distncia do sinal fixos durante a comunicao. 21 O sistema celular foi projetado simplesmente para manter um mnimo de qualidade de sinal de voz, apresentando: - Variaes do nvel do sinal durante a ligao. - Interrupes da comunicao, devido a troca de freqncias {hand-off). - Mudana do percurso do sinal durante a comunicao. - Eco do sinal devido a reflexes ("fantasmas") Todos estes fenmenos so devidos s caractersticas da comunicao via sinal de rdio dividida em clulas. Assim, fica claro que a comunicao de dados via telefonia celular representa um desafio para o modem, pois as condies so muito mais adversas do que as apresentadas pelo sistema de telefonia convencional. O primeiro ponto que deve ser levado em considerao a utilizao de modems convencionais, usados em linhas telefnicas comuns, que somente podem ser aproveitados no sistema celular analgico, j que esses modems utilizam este modo (analgico) para comunicao. Assim, os sistemas digitais existentes atualmente (CDMA / TDMA) por enquanto no suportam a comunicao de dados. Tendo em vista as condies adversas do canal celular, se faz necessrio o uso de um protocolo especial, que trate os problemas apresentados h pouco e tenha maior tolerncia s condies da linha celular. Atualmente, um protocolo muito utilizado o MNP 10, que possui uma verso aperfeioada, conhecida como MNP10EC. Exemplos de aplicaes onde no se pode utilizar o protocolo MNP10EC, por que a outra ponta no trabalha com o protocolo, o acesso a RENPAC e a muitos provedores Internet. 22 importante notar, tambm, que o protocolo MNPIOEC melhora sensivelmente a qualidade e estabilidade da comunicao, entretanto, em locais em que a comunicao via celular possuem muitos aparelhos dentro da mesma clula ou que possuem muitos obstculos, o que ocorre nas capitais de So Paulo e Rio de Janeiro, mesmo com este protocolo no h garantias da qualidade na comunicao. O ltimo aspecto a ser lembrado sobre o MNPIOEC que ele s opera para transmisses de dados, no tendo funo para transmisses de Fax, assim, estas normalmente tm um ndice relativamente baixo de sucesso, uma mdia de 30% a 50%. Devido as limitaes de banda do canal celular, a comunicao fica limitada a velocidades entre 2400bps a 4800bps. Usando compresso de dados possvel chegar a uma mdia de 9600bps. Assim, importante que as aplicaes utilizadas no exijam alto trfego de dados, devendo-se ater a transmisses de arquivos pequenos. Requisitos para Comunicao de Dados via Telefonia Celular - Os modems de ambos os lados da comunicao (origem/resposta) devem possuir o protocolo MNPIOEC. - Os locais de comunicao devem apresentar um sinal de boa qualidade. - Existir adaptador RJ-11 do telefone celular. Sendo assim, este meio de comunicao mais recomendado para aplicaes especficas que possuem baixo volume de transmisso. Existem duas tecnologias que prometem solues para os problemas apresentados: - A CDPD (Cellular Digital Packed Data), um sistema de comunicao de dados operando nas velocidades de 9,6kbps a 19,2kbps para o sistema celular, necessitando a instalao de equipamentos de recepo nas estaes rdio-base e a utilizao de um modem especial CDPD. Algumas operadoras de celular no Brasil j disponibilizam este tipo de comunicao [32], - O sistema PCS (Personnal Communications Services), um novo sistema de telefonia celular digital, que prev a comunicao de dados. [42] 2.6.2 Acesso Web via celulares, pagers e computadores de mo No incio de 1999 a Motorola e a Cisco anunciaram investimento de US$ 1 bilho durante cinco anos para criar um padro de acesso Internet a partir de redes sem fio. Sprint, Nextel e AirTouch foram algumas das empresas que aderiram iniciativa. Ao mesmo tempo, a Microsoft firmou um acordo com a British Telecom para desenvolver um navegador destinado a telefones celulares. As duas notcias sinalizaram a tendncia que a Internet comeou a experimentar em 1999: wireless. Ler e-mails ou buscar informaes na Web no so mais operaes exclusivas dos micros de mesa, isso pode ser feito usando o celular atravs dos servios da America on Line [30], MSNBC ou alguns sites nacionais como o PageMe [31]. Neste segmento o protocolo WAP (Wireless Application Protocol) est sendo amplamente adotado. A Web sem fio atravs do celular ainda lenta, funciona a 14,4 Kbps contra os 56K dos modems nos PCs. O tamanho dos visores dos telefones mveis varia de duas a trs polegadas contra os de 15 ou 17 polegadas nas mesas do escritrio. Apesar disso, segundo a (IDC) International Data Corporation, dos 64 milhes de proprietrios americanos de 24 celulares, 15% j utilizam seus equipamentos para o trfego de dados. Em 2002, quando os Estados Unidos tiverem cerca de 108 milhes de telefones celulares, 70% deles sero usados para buscar informaes na Internet. A IDC prev que as alteraes percentuais sero mais ou menos semelhantes para o resto do mundo, para o Brasil a previso da Anatel de 30 milhes de celulares em 2003. Considerando todos os aparelhos sem fio que acessam a Web a IDC assinalou 7,4 milhes de usurios em 1999 com a previso de que este nmero chegue a 61,5 milhes em 2003 nos EUA [34], O grande problema como transportar os servios j criados para computador tela dos telefones celulares. Com objetivo de facilitar este processo esto sendo criados padres como o Short Message Services (SMS), AnyWeb e Wireless Application Protocol (WAP). O WAP recebeu apoio da Ericsson, Nokia e Motorola, contando com a adeso de gigantes do software como IBM e Microsoft. O WAP rene um ambiente de aplicaes e um conjunto de protocolos de comunicao para dispositivos sem fio. [39] Os sinais da disseminao desta tecnologia j aparecem no Brasil. No incio de 2000 a Nokia e a Motorola lanaram telefones celulares que utilizam a tecnologia WAP. Alm desta tecnologia outra tendncia da utilizao da tecnologia sem fio tambm est presente nestes novos celulares, que atravs de infravermelho permitem a sincronizao e comunicao dos dados entre telefones, PCs e impressoras [36], A partir de abril de 2000, entra na Web em verso definitiva o site PageMe (www.pageme.com.br), um portal voltado tecnologia sem fio que pretende ser o ponto de partida para o acesso Web via celulares, pagers e computadores de mo. 25 O site est em fase experimental desde Dezembro. Inicialmente este site utiliza a tecnologia SMS para enviar pequenas mensagens da Web, como e-mails, dicas culturais e cotaes, para os aparelhos mveis. Com a chegada da tecnologia WAP servios mais amplos e de maior valor agregado vo ser possveis, como home banking, reservas de vos, dirias de hotis e investimentos online. [31] 2.6.3 Redes locais sem fio Considerando todas as vantagens existentes na utilizao de redes sem fio, a exploso de vendas deste mercado, previsto para a dcada de 90, nunca realmente aconteceu. A razo para este crescimento lento pode ser justificada por dois motivos: preos altos e a falta de padronizao no mercado. Estes fatores criam um mercado desfavorvel, porque alm do alto custo de implantao destes sistemas, a nica alternativa era a adoo de solues de hardware e software proprietrias. Para resolver este problema do mercado, em Maio 1991 um grupo de pessoas liderados por Victor Hayes, submeteu um projeto ao IEEE (.Institute for Electrical and Electronic Engineers) para a criao do grupo de trabalho 802.11. Este trabalho durou quase toda a dcada de 90 gerando em Junho de 1997 o documento definindo padres para redes locais sem fio (WLANs). A existncia deste padro finalmente assegura aos usurios a possibilidade de comprar produtos interoperveis de vrios fornecedores diferentes para montar ou expandir a rede. Isso faz com que a competio aumente e consequentemente os custos diminuam. 26 2.7 Futuro do mercado sem fio A falta de uma cobertura universal o grande fator que est retardando o uso mais difundido de servios de dados sem fio. Muito em breve, graas s plataformas digitais, que exploram meios de transmisso sem fio, padronizados e abertos, as pessoas passaro a utilizar um nico meio, identificado por um s nmero, para enviar e receber mensagens de dados, voz e imagem. Isso ser possvel devido convergncia de trs diferentes indstrias, telecomunicaes, informtica e televiso. De maneira a incentivar o desenvolvimento dessa indstria multimdia, em 1994 criou-se a GII (Global Information Infraestructure). A GII compete promover a implantao da superinfovia da comunicao baseada nos seguintes princpios: - todos os servios sero concentrados em uma rede digital nica; - a capacidade de transmisso ser abundante; e - os servios oferecidos sero pessoais. Essa rede digital ser diversificada e fragmentada, com elevado grau de competio (fibra/sem fio e satlite/cabo), sustentando-se em plataformas tecnolgicas abertas. A proposta da IMT-2000 fornecer acesso wireless infra-estrutura global de telecomunicaes, mediante unificao dos padres adotados em sistemas mveis celulares em uma nica infra-estrutura de rdio, provendo, ao mesmo tempo, servios de voz, dados e banda larga para a multimdia com roaming global. Entre os diversos padres tecnolgicos de arquitetura de rede e interface area, o que melhor atende os requisitos do IMT-2000 o W-CDMA ( Wideband Code Division Multiple Access). A fuso das tendncias Gil e IMT-2000 dar origem a uma rede mundial sem fio digital de alta capacidade, via sistema mvel celular. E independentemente do meio utilizado para transportar o sinal - via fibra, satlite ou infra-estrutura sem fio. Para as residncias o crescimento do mercado sem fio acontecer na construo das infra-estruturas a serem utilizadas pelas novas operadoras como, por exemplo, na telefonia fixa, atravs da utilizao da tecnologia WLL ( Wireless Local Loop) lanada em Dezembro de 1999 pela operadora Vsper em So Paulo [35], [29] J existe o que est sendo chamado de celular de terceira gerao, com alguns aparelhos lanados na Europa. Este celular permite navegar na Web, consultar a sua conta bancria, receber informaes e gravar msicas no padro MP3. A caracterstica fundamental do celular de terceira gerao a sua maior capacidade de transmisso de dados. Em vez de acessar a Web velocidade de 19,6 kbps, esta terceira gerao trabalha a 384 kbps e, nos sistemas que utilizam WLL {Wireless Local Loop), 2 megabits/segundo. No Brasil, a indstria aguarda as regras para a entrada de um novo competidor no segmento, conhecida como banda C. O assunto sobre a chegada do PCS (Personal Communications System) tem sido discutido pela indstria e eventuais grupos interessados em explorar o servio. A Agncia Nacional de Telecomunicaes (Anatel) dever definir ainda em 2000 a estratgia no apenas para a banda C, mas para a terceira gerao de telefonia celular. Uma questo tcnica j foi levantada pela indstria e pelo CDG (CDMA Development Group). Comea pela freqncia de operao da banda C. A agncia tem duas opes: 1,8 GHz ou 1,9 GHz. O PCS opera em 1,9 GHz nos Estados Unidos, Canad, Chile, Argentina, Mxico, Peru, Uruguai e Venezuela. Na Europa, essa faixa ser utilizada 28 pelos sistemas de terceira gerao. E qual ser o modelo do Brasil? Empresrios defendem que o Brasil deveria seguir o caminho dos demais pases, ou seja, 1,9 GHz. Alegam que o roaming do servio poderia ser feito sem maiores complicaes e a migrao da segunda para a terceira gerao no seria to cara. A indstria j desenvolveu infra-estrutura e aparelhos na faixa 1,9 GHz nos trs padres digitais: TDMA, CDMA e GSM. Isto significa que possvel aumentar a escala de produo e baratear o custo para o usurio final j que a indstria tem equipamentos e aparelhos dual band. No caso da freqncia de 1,8 GHz, a opo de tecnologia disponvel o GSM, que no usada no Brasil. [33] A tendncia de que as telecomunicaes adotem um sistema pessoal sem fio, com ampla gama de freqncias alocadas, capaz de prover um conjunto de servios de comunicao com elevada capacidade de transmisso e aplicaes multimdia. Um conjunto de servios que j se convenciona chamar de infocomunicao sem fio. 29 3. PESQUISAS NA REA 3.1 Introduo Os sistemas celulares modernos utilizam uma estao base que cobre uma regio geogrfica especfica, chamada clula. Os problemas aparecem na deciso de quando trocar de uma clula para outra, na manipulao da interferncia entre as clulas e na localizao do usurio. Mesmo com estes problemas complexos, a comunicao sem fio tem um futuro lucrativo e garantido. Caractersticas como a liberdade de comunicar/mover e a capacidade de levar a comunicao para localidades remotas fazem com que esta tecnologia seja parte importante da nossa sociedade. 3.2 O Sistema ALOHA da Universidade do Hava Foi o primeiro sistema de computadores a empregar a tcnica de radiodifuso no lugar de cabos ponto a ponto. Na dcada de 70, quando o projeto foi implantado, as linhas telefnicas disponveis eram caras e pouco confiveis. Havia a necessidade de interligao de subredes da universidade, espalhadas pelas ilhas, ao Centro de Computao principal. A comunicao foi realizada atravs da instalao, em cada estao, de um pequeno transmissor / receptor de rdio FM, com um alcance suficiente para comunicar-se com o transmissor / receptor do Centro de Computao. O projeto foi realizado de uma forma que no existia comunicao direta entre estaes, apenas de uma estao para o Centro de Computao e deste para uma estao. Foram utilizadas duas faixas de freqncia: uma em 407.305MHz para o trfego no sentido 30 Centro-Estao, e outra em 413.475MHz para o trfego no sentido contrrio. A transmisso foi feita em 9600bps. A figura 3.1 apresenta os elementos bsicos do sistema ALOHA. Terminal Antena c D - d ^ c D - O ^ ^-Repetidor] TT-UJ^L, C 1 Unidade de Controle i k y ^ ' ^ ^ v ^ 7 1 \ / Instalacao -hhhh Central MenelnnK BCCSCOlj I i IBM370/158 AKPAHET PACNET Figura 3.1 Elementos bsicos do sistema ALOHA Na instalao central encontra-se um computador chamado Menehune que manipula todos os dados recebidos ou transmitidos. O Menehune est conectado ainda a outros dois computadores (BCC 500 e IBM 370/158) e as redes ARPANET e PACNET. Cada estao possui uma unidade de controle que armazena dados e faz as retransmisses. Tempo Estao A Dados TX Estao B Dados TX n Transmisso OK Coliso Figura 3.2 Coliso na Transmisso do Sistema ALOHA 31 O mtodo de acesso utilizado na rede ALOHA simples. Cada terminal s pode ouvir o canal de transmisso do computador para o terminal, no tendo condies de saber se o outro canal est sendo utilizado por outro terminal ou no. Quando um terminal tem um pacote para transmitir, este pacote transmitido, independetemente de o canal estar sendo utilizado ou no. A tcnica de deteco de coliso realizada pelo disparo do timer na transmisso da mensagem. Se um pacote de reconhecimento no tiver chegado ao final da temporizao, o pacote original deve ser retransmitido. O intervalo de temporizao aleatrio de forma a reduzir a probabilidade de nova coliso de pacotes. Recebe ACK Transmisso Dados para TX TX Recepo Envia ACK Time-out Erro Figura 3.3 Diagrama de Transmisso e Recepo do sistema ALOHA 3.3 reas de Pesquisa na Computao sem fio A comunicao sem fio muito mais difcil de conseguir do que a comunicao com fio porque o ambiente tem uma grande influncia no sinal da comunicao, exemplo: bloqueios no sinal transmitido, ocorrncia de rudos e ecos na transmisso. Por este motivo, 32 quando comparada com comunicao que usa fios, as transmisses sem fio tem menor velocidade de transmisso e uma maior freqncia de erros. Alm disso, a comunicao sem fio tem outros problemas quando utilizada em equipamentos mveis. Estes equipamentos podem sair da rea de abrangncia dos transmissores, ou entrar em reas de alta interferncia, gerando a perda da comunicao ou a degradao do sinal. Diferentemente das redes com fio, o nmero de usurios conectados a uma rede sem fio pode variar dinamicamente dentro de um clula, como por exemplo a concentrao de muitos usurios com equipamentos sem fio em um congresso ou uma feira. Isso pode gerar picos que sobrecarregam a rede. A possibilidade do usurio se movimentar enquanto est conectado rede aumenta a complexidade de algumas informaes. Alguns dados, considerados fixos em redes com fio, como endereo na rede ou nome do servidor, passam a ser informaes dinmicas, obrigando a rede a modificar ou procurar por novas configuraes enquanto o usurio se movimenta, por exemplo, um novo endereo de rede ou o nome do servidor mais prximo. Existem ainda muitos problemas a serem resolvidos na rea de comunicao sem fio, como por exemplo: ocorrncia de freqentes desconexes, a velocidade na comunicao, grande variao na capacidade de transmisso, redes heterogneas e os riscos de segurana. Alm destes problemas, existem outros relacionados diretamente os equipamentos que se beneficiam deste tipo de comunicao, como por exemplo o problema da mobilidade (migrao de endereo e informaes dependentes de localizao) e a portabilidade destes equipamentos (Low Power e risco dos dados). [17] 33 3.3.1 Desconexo Hoje os computadores dependem muito de uma conexo a rede para funcionar com todas as suas caractersticas, como o correio eletrnico, a Internet e acesso ao banco de dados. Como as perdas de conexo so mais freqentes quando utilizado redes sem fio, a dependncia do prprio sistema operacional disponibilidade do acesso a rede se torna um problema para estes computadores. Uma alternativa para trabalhar com este problema gastar os recursos da rede na tentativa de prevenir as desconexes, ou ao invs disso considerar que estes problemas so inevitveis e criar sistemas que conseguem conviver com este tipo de problema. Quanto mais autnomo o sistema, mais tolerante este sistema ser a ocorrncia de desconexes. Por exemplo, uma aplicao pode reduzir a necessidade do uso de rede se executar a maior quantidade de tarefas localmente do que distribuir a aplicao na rede. Em um ambiente onde ocorrem desconexes freqentes, importante que o computador tenha autonomia e consiga trabalhar fora da conexo de rede. Em sistemas sem fio muitas vezes possvel que problemas como a latncia na transmisso das mensagens ou rpidas desconexes sejam minimizados atravs da utilizao de operaes assncronas. Diferente do funcionamento das chamadas remotas sncronas aos procedimentos, onde o sistema aguarda pela resposta antes de continuar o processamento, a utilizao de operaes assncronas permitiro ao sistema executar uma srie de chamadas antes de aguardar por uma resposta. Da mesma forma a utilizao de tcnicas como prefetching e lazy write [10] permitem que o sistema continue funcionando, ou o usurio continue trabalhando, sem a necessidade de que todas as operaes 34 dependentes dos recursos da rede tenham que acontecer em tempo real. A desvantagem do uso destas tcnicas a possibilidade de mascarar eventuais problemas na rede. Por isso, o sistema no pode desconsiderar totalmente a possibilidade de problemas na rede. Quando ocorrer uma falha o sistema pode informar ao usurio quais os servios estaro indisponveis at que o acesso a rede seja recuperado. 3.3.2 Largura de Banda Os equipamentos/sistemas que utilizam redes sem fio precisam considerar em seu projeto a largura de banda utilizada durante o seu funcionamento, procurando reduzir ao mximo a necessidade de transmisso de dados na rede. Diferente dos sistema com fio, a velocidade da maior parte das redes sem fio, como por exemplo IMbps para comunicao infravermelha ou 2Mbps para comunicao por rdio, muito inferior a capacidade de uma rede com fio que, por exemplo, em uma rede Ethernet pode ser de 10 ou 100Mbps. Se for considerada uma rede sem fio utilizada por usurios mveis, outro fator que tem influncia na capacidade de transmisso da rede est relacionado a quantidade de pessoas que a rede precisa atender em uma determinada rea. Redes para atender usurios mveis utilizam a mesma estratgia da telefonia celular, onde a rea de abrangncia da rede dividida entre vrios transmissores cada um sendo responsvel por atender um usurio dentro de uma clula. Se uma quantidade muito grande de usurios se concentrarem dentro de uma mesma clula, estar sendo dividida entre eles a capacidade de transmisso da clula. Uma forma de aumentar a capacidade da rede atravs da incluso de mais clulas. Isso pode ser feito atravs da sobreposio de clulas com diferentes freqncias ou na 35 diminuio da potncia de transmisso de uma clula, reduzindo a sua rea de abrangncia, porm permitindo que mais clulas possam existir dentro de uma determinada rea. A escalabilidade da primeira alternativa (mltiplas freqncias) restrita pois o espectro eletromagntico disponvel para uso pblico no muito grande. J a segunda alternativa (reduo da potncia) a mais utilizada, porque os custos associados a esta soluo se restringem apenas ao aumento do nmero de transmissores para atender uma rea. Alm disso existe uma relao entre largura de banda e rea de cobertura, onde os transmissores/receptores que fazem a cobertura de uma rea menor podem atingir uma maior largura de banda. Para diminuir o problema relacionado a largura de banda possvel utilizar estratgias de software, como por exemplo a compresso dos dados antes de transmiti-los. Como a utilizao da rede possui muitos momentos de pico, onde a rede oscila entre instantes de ociosidade e de demanda superior a capacidade da rede, pode-se minimizar este tipo de problema utilizando as tcnicas como prefetching e lazy-write, mencionado no item desconexo, j que o problema de picos de transmisso na rede se assemelham ao problema da desconexo. possvel combinar as solues de hardware/software apresentadas a outras medidas, ou polticas, durante a utilizao da rede. Por exemplo, operaes de backup podem acontecer apenas durante os perodos de ociosidade da rede ou o envio lento das mensagens de correio eletrnico aos seus usurios. 36 3.3.3 Grande Variabilidade na Largura da Banda Muitas vezes os equipamentos que utilizam comunicao sem fio tambm permitem ao usurio se conectar a uma rede com fio. Esta possibilidade tem conseqncias para as aplicaes pois elas podero ser utilizadas em situaes de maior (rede com fio) e menor (rede sem fio) largura de banda. Para tratar deste problema, as aplicaes podem utilizar trs tcnicas diferentes. A primeira consiste em permitir a utilizao da aplicao apenas quando existe largura de banda suficiente. A segunda o desenvolvimento da aplicao considerando apenas a existncia de pouca largura de banda e, se uma maior largura de banda estiver disponvel a aplicao desconsidera a sua existncia. Por fim a terceira alternativa fazer com que a aplicao tenha nveis de funcionamento que so ativados automaticamente reduzindo ou aumentando o nmero de caractersticas/detalhes ao usurio conforme a largura de banda disponvel. 3.3.4 Redes Heterogneas Redes sem fio para usurios mveis precisam tratar de alguma forma o problema da existncia de diferentes tipos de rede, que podem variar em qualidade, tipo de interface ou protocolo utilizado. Por exemplo, a qualidade de acesso a rede sem fio pode ser melhor em uma sala de reunies do que o acesso disponvel enquanto o usurio est se movimentando na rua. Durante a sua movimentao o usurio poder estar em uma rea onde possvel acesso a mais de um transmissor/receptor operando em diferentes freqncias. E possvel que enquanto o equipamento sem fio esteja fisicamente conectado a uma rede, ele continue tendo acesso a uma rede sem fio. Outra possibilidade ocorre quando o usurio est utilizando o seu equipamento dentro de uma rea fechada que disponibiliza aos clientes 37 mveis uma interface infravermelho. Se este mesmo usurio continuar necessitando de acesso a rede enquanto estiver em um ambiente aberto, um outro tipo de interface dever ser disponibilizada pois a comunicao por infravermelho no funciona corretamente quando existe a interferncia da luz do sol. Agora, mesmo que o usurio esteja utilizando rdio freqncia pode ser necessrio uma mudana de protocolo de comunicao quando passar da cobertura celular em uma cidade, para uma cobertura por satlite em um pas. Esta mistura de tecnologias e protocolos faz com que as redes que suportam usurios mveis sejam mais complexas que as redes tradicionais. 3.3.5 Riscos de Segurana Segurana um aspecto importante em qualquer tipo de rede e normalmente tratada em dois nveis: atravs de polticas de acesso e segurana na transmisso das informaes. - Polticas de acesso: direitos de acesso, domnios, grupos de usurios, entre outras. - Segurana na transmisso das informaes: evitar que a transmisso seja capturadas e visualizadas por equipamentos/pessoas no autorizadas. Estes dois aspectos so ainda mais difceis de serem tratados por redes sem fio. Por exemplo, as polticas de acesso devem permitir usurios mveis que esto fora do seu domnio (untrusted users), por exemplo em um centro de convenes, acessem impressoras prximas, porm no tenham acesso a recursos que apenas os funcionrios daquele local tm direito. Quanto a transmisso dos dados nas redes sem fio existe o agravante da facilidade de acesso as informaes transmitidas, principalmente em redes sem fio de grande abrangncia. Como no possvel impedir que pessoas no autorizadas tenham 38 acesso as informaes transmitidas, necessrio trabalhar com alternativas que impeam que as informaes transmitidas possam ser compreendidas pelos usurios que no tenham direito de acesso a esta rede. Isso pode ser feito utilizando tcnicas de criptografia em software ou em hardware, como por exemplo o uso de transmisses usando a tcnica de espalhamento espectral {spread spectrum). 3.3.6 Migrao de Endereo Enquanto as pessoas se movimentam, os seus equipamentos utilizam diferentes pontos de acesso. As redes atuais no esto preparadas para a mudana dinmica no endereos das estaes. No protocolo Internet (IP) os nome dos computadores na rede esto associados aos respectivos nmeros IP. Movimentar um equipamento para um outro local normalmente requer a interveno humana para a modificao do seu nmero IP. Para ser possvel se comunicar com um equipamento mvel necessrio saber qual o seu endereo atual. Existem quatro mecanismos bsicos para determinar o endereo atual de um equipamento mvel: difuso (broadcast), servios centralizados, home basis e forwarding pointers. Estes mecanismos so a base da proposta para a existncia de IP mveis. 3.3.7 Difuso Seletiva No mtodo da difuso (broadcast), uma mensagem enviada a todas as clulas da rede, perguntando ao equipamento mvel qual o seu endereo de rede atual. Esta tcnica se torna muito cara se o seu uso for freqente em uma grande rede (muitas clulas), entretanto se a rede sabe que provavelmente o usurio est localizado dentro de um pequeno conjunto de clulas desta rede, a difuso pode ser feita de forma seletiva, considerando apenas este conjunto de clulas. Desta forma a tcnica da difuso passa a ser vivel. 39 3.3.8 Servios Centrais Neste mtodo o endereo atual de uma estao mantido em um banco de dados logicamente centralizado. Cada vez que o equipamento muda o seu endereo ele enviado a este banco de dados. Mesmo sendo este banco de dados logicamente centralizado as tcnicas de distribuio e replicao de banco de dados podem ser utilizadas para melhorar a disponibilidade e o tempo de resposta para o acesso a estas informaes. 3.3.9 Home Bases Nesta tcnica existe diversos servidores, cada um responsvel pelo controle de uma estao. A localizao da estao conhecida por apenas um destes servidores. A distribuio da responsabilidade de controle das estaes gera o problema da disponibilidade. Se um destes servidores estiver indisponvel no ser possvel encontrar as estaes que esto sob seu controle. 3.3.10 Transferncia de Ponteiros Neste mtodo a cada vez que uma estao mude o seu endereo , uma cpia do seu novo endereo colocado no endereo antigo. Cada mensagem enviada segue portanto uma cadeia de endereos at chegar na estao desejada. De forma a evitar a o tempo gasto no roteamento de mensagens por longas cadeias de endereos, os ponteiros podem ser atualizados para refletir endereos mais recentes. Esta tcnica requer a existncia de entidades ativas nos endereos utilizados pelas estaes mveis, pois estas entidades sero responsveis pelo envio da mensagem para o endereo atualmente ocupado pela estao. 40 3.3.11 Informaes Dependentes de Localizao Uma rede com fio no espera que os seus equipamentos troquem de lugar freqentemente. Por este motivo a configurao das informaes que dependem da sua localizao, por exemplo o nome do servidor ou das impressoras prximas, so estticos. Um desafio para as redes sem fio que permitem que os seu usurios se movimentem dentro de um grande rede, conseguir obter de forma inteligente estes tipo de configurao de acordo com o local que o equipamento se encontra. Alm deste problema de configurao dinmica, os usurio mveis precisam de outras informaes que esto relacionadas a sua localizao, como por exemplo onde est o posto de gasolina mais prximo. 3.3.12 Low Power A bateria um dos componentes existentes nos equipamentos mveis responsvel em grande parte por seu peso e tamanho. Enquanto a reduo do peso da bateria importante, essa reduo no pode influenciar o autonomia do aparelho. O balano entre o tamanho, peso e durabilidade da bateria tem grande influncia sobre a utilidade do equipamento mvel. 3.3.13 Risco para os Dados Utilizar equipamentos portteis aumenta o risco quanto a segurana das informaes como os acessos no autorizados ou at mesmo os acidentes com estes equipamentos. Estes riscos podem ser diminudos atravs da reduo da quantidade de informao essenciais guardadas dentro destes equipamentos, ou ento que estas informaes sejam 41 automaticamente copiadas em forma de backup em servidores desta rede. Sobre a segurana contra acessos no autorizados a estas informaes, importante que o equipamento somente guarde dados criptografados em seu disco rgido ou carto de memria. 3.3.14 A Confiabilidade na Transmisso A transmisso de pacotes de uma rede sem fio no uma operao confivel. Esta menor confiabilidade cria alguns problemas de performance na camada de transporte. De forma a transformar o meio "mais confivel" para os protocolos da camada de transporte, a forma usual de tratar este problema incluir retransmisses no MAC de acordo com a proposta do padro IEEE para redes sem fio 802.11. Para pacotes do tipo broadcast e multicast, o problema ainda pior. A camada de transporte no pode incluir qualquer mensagem de reconhecimento devido ao nmero indefinido de receptores e as diferentes condies na recepo. Por isso tcnicas alternativas precisam ser utilizadas para o reconhecimento e a retransmisso deste tipo de mensagens pelo MAC. [20] [19] 3.4 Especificao Bluetooth Bluetooth uma especificao que define como PCs, celulares, e outros equipamentos portteis podem trocar informaes entre si. Este padro est baseado no conceito de WPAN (Wireless Personal Area Network) que por sua vez est baseado no conceito de POS (Personal Operating Space). POS compreende uma rea de aproximadamente 10 metros ao redor de uma pessoa. [23] 42 Com o objetivo de estudar a necessidade de padres complementares voltados a conectividade de dispositivos de baixo consumo que esto dentro da rea abrangida pela POS, o IEEE 802.11 montou uma grupo de estudo WPAN. O resultado deste estudo foi a criao, em Maro de 1999, de um novo grupo de trabalho chamado DEEE 802.15. [21] Os estudos para a aplicao desta tecnologia de comunicao de baixo alcance e baixo custo, que so propostas pelo Bluetooth e esto de acordo com o IEEE 802.15, incluem: - Criao de uma rede sem fio ligando os equipamentos disponveis no escritrio, como PCs, Notebooks, celulares, pagers e palmtops. Todos com os seus dados de agenda, compromissos, mensagens e arquivos sincronizados. - Acesso a informaes pessoais (como correio eletrnico) a partir de pontos de acesso disponveis em aeroportos ou centros de convenes. - Compartilhamento de perifricos, como por exemplo a utilizao de uma impressora pblica disponvel em um centro de convenes, ou dentro da uma rea de exposio de uma feira. - Ligao de eletrodomsticos. Exemplo: o forno de microondas utiliza a televiso para avisar que a refeio est pronta. 43 4. MODELO PROPOSTO 4.1 Introduo Para a apresentao de uma proposta que viabilize o desenvolvimento de uma rede sem fio preciso definir o objetivo a ser alcanado e quais so as restries impostas soluo. - Objetivo a ser alcanado: viabilizao tcnica e prtica da comunicao sem fio entre microcomputadores que seja transparente ao desenvolvedor. - Restries: para a montagem do prottipo esto disponveis dois computadores com Windows instalado, dois rdios TEKK 2W 450 a 470 MHz e duas placas serial padro Baycom (BAY96_V2). Para alcanar o objetivo necessrio a existncia de um modelo de referncia que apresente um caminho vivel para a soluo do problema. Foi utilizado como referncia o modelo OSI e o padro IEEE 802. A proposta de rede sem fio nesta dissertao para a plataforma Windows, por este motivo o modelo de referncia precisa ser confrontado com modelo de rede do Windows. Esta comparao ter como resultado a arquitetura da soluo. 4.2 Modelo de referncia As redes sem fio realizam funes semelhantes as redes que usam cabos, como Ethernet ou Token Ring. Para permitir a transferncia de informaes entre os computadores, de forma geral as redes necessitam dos seguintes componentes: - Meio que disponibilize o canal para a passagem dos dados. 44 - Tcnicas de acesso a este meio que otimizem o compartilhamento deste canal pelas estaes. - Mecanismos de sincronizao e controle de erros que assegurem a transmisso correta dos dados. - Mecanismos de roteamento que transferem os dados da estao de origem para a estao destino desejada. - As aplicaes do usurio que realizam a troca ou o compartilhamento de dados atravs da rede. Existe um grande nmero de alternativas para a implementao dos componentes que foram listados, como por exemplo vrios meios diferentes de transmisso, tcnicas diferentes para o controle/compartilhamento do canal, tratamentos de erros, protocolos e aplicativos de usurio. E tarefa do sistema operacional gerenciar todas estas alternativas e oferecer ao desenvolvedor do sistema uma interface nica e consistente, propiciando uma independncia ao dispositivo. A transparncia no acesso a rede sem fio ter sido atingida quando for possvel ao programador, durante o desenvolvimento do seu sistema, acessar os recursos disponibilizados pela rede sem fio sem utilizar comandos ou bibliotecas especiais, apenas as chamadas disponveis na API (Application Program Interface) do sistema operacional. Esta idia est apresentada na figura 4.1. 45 Aplicaes Sistema Operacional Mdulo de Rede Mdulo de Comunicao sem Fio Rdio Figura 4.1 Usando o Sistema Operacional para disponibilizar acesso transparente a rede sem fo Para que seja possvel incorporar a rede sem fio no sistema operacional de forma transparente ao programador, necessrio identificar na estrutura deste sistema operacional quais so os componentes responsveis pela independncia do dispositivo de rede [11], Existe padres internacionais que definem como a camada de rede do sistema operacional deve ser organizada. apresentado nos itens a seguir o modelo OSI (ISO) e o padro do IEEE para redes locais. 4.2.1 O modelo OSI Em 1984 a ISO desenvolveu um modelo de referncia chamado OSI (Open System Interconection) que descreve o fluxo de dados entre as aplicaes do usurio e a rede. Este modelo o mais conhecido e utilizado para descrever os ambientes de rede [2], [4], [3] e [9]. 46 Camadas Usurio A Usurio B 7 - Aplicao Protocolo de Aplicao Aplicao 6 - Apresentao Protocolo de Apresentao -> Apresentao 5 - Sesso Protocolo de Sesso Sesso 4 - Transporte Protocolo de Transporte -> Transporte 3 - Rede Protocolo de Rede -> Rede 2 - Enlace Protocolo de Enlace Enlace 1 - Fsico Protocolo de Fsico Fsico 4.2.2 O Padro IEEE 802 Em Fevereiro de 1980 foi institudo o comit IEEE 802 com o objetivo de elaborar padres para redes locais de computadores. Este modelo est de acordo com a maioria das camadas representadas no modelo O SI, a diferena que o padro IEEE 802 preferiu detalhar melhor a camada de enlace, definindo uma arquitetura em 3 camadas. Estas camadas correspondem aos nveis 1 e 2 do modelo OSI [2], [4], [3] e [9], 47 OSI IEEE 802.1 Enlace LLC 802.2 MAC Fsico PHY 802.3 CSMA/CD 802.4 Token BUS 802.5 Token Ring 802.6 DQDB Figura 4.2 Modelo OSI x modelo IEEE O projeto IEEE 802 dividiu a camada de Enlace em duas subcamadas: LLC {Logical Link Control) e MAC {Media Access Control). O padro IEEE 802.1 um documento que descreve o relacionamento entre os diversos padres IEEE 802 e o relacionamento deles com o modelo de referncia OSI. O IEEE 802.2 descreve a subcamada superior do nvel de enlace, responsvel pela realizao das funes de multiplexao, controle de erro e de fluxo no enlace para todos os tipos de LANs do padro IEEE 802. - IEEE 802.3: define o padro para redes em barra usando CSMA/CD como mtodo de acesso, como redes Ethernet. Aceita velocidades de 10, 100 e 1000 Mbps e meios como par tranado, cabo coaxial e fibra tica. - IEEE 802.4: define o padro para redes em barra usando passagem de permisso como mtodo de acesso. - IEEE 802.5: define o padro para redes em anel utilizando passagem de permisso como mtodo de acesso. 48 - IEEE 802.6: define o padro para redes em barra utilizando o DQDB {Distributed Queue Dual Bus) como mtodo de acesso. 4.2.3 O padro IEEE 802.11 Com a proliferao das redes sem fio uma nova especificao foi acrescentada ao padro IEEE 802. 802.1 LLC '"V/'.; 802.2 MAC PHY 802.3 CSMA/CD 802.4 Token BUS 802.5 Token Ring 802.6 DQDB 802.11 Wireless Figura 4.3 Padro 802.11 acrescentado ao IEEE Este padro abrange uma variedade de meios fsicos, incluindo FHSS {Frequency Hopping Spread Spectrum), DSSS {Direct Sequence Spread Spectrum) e infravermelho para velocidades de at 2 Mbps. LLC MAC Frequency Direct Infrared Hopping Sequence Light PHY PHY PHY Figura 4.4 Meios fsicos abrangidos pelo padro 802.11 4.2.4 IEEE 802.11 Wireless Local Area Network O IEEE 802.11 especifica trs camadas fsicas (PHY) e apenas uma subcamada MAC {Medium Access Control). Como apresentado a seguir, o padro prov duas 49 especificaes de camadas fsicas com opo para rdio, operando na faixa de 2.400 a 2.483,5 MHz, que depende da regulamentao de cada pas, e uma especificao com opo para infravermelho. - Frequency Hopping Spread Spectrum Radio PHY: Esta camada fornece operao 1 Mbps, com 2 Mbps opcional. A verso de 1 Mbps utiliza 2 nveis da modulao GFSK (Gaussian Frequency Shift Keying), e a de 2 Mbps utiliza 4 nveis da mesma modulao; - Direct Sequence Spread Spectrum Radio PHY: Esta camada prove operao em ambas as velocidades (1 e 2 Mbps). A verso de 1 Mbps utiliza da modulao DBPSK {Differential Binary Phase Shift Keying), enquanto que a de 2 Mbps usa modulao DBPSK {Differential Quadrature Phase Shift Keying), - Infrared PHY: Esta camada fornece operao 1 Mbps, com 2 Mbps opcional. A verso de 1 Mbps usa modulao 16-PPM {Pulse Position Modulation com 16 posies), e a verso de 2 Mbps utiliza modulao 4-PPM. No lado da estao, a subcamada MAC fornece os seguintes servios: autenticao, privacidade e transmisso da MADU (MAC Sublayer Data Unit), e, no lado do sistema de distribuio, a associao, desassociao, distribuio, integrao e reassociao. As estaes podem operar em duas situaes distintas: - Configurao Independente: Cada estao se comunica diretamente entre si, sem a necessidade de instalao de infraestrutura. A operao dessa rede fcil , mas a desvantagem que a rea de cobertura limitada. Estaes com essa configurao esto no servio BSS (Basic Service Set); 50 - Configurao de Infra-estrutura: Cada estao se comunica diretamente com o ponto de acesso que faz parte do sistema de distribuio. Um ponto de acesso serve as estaes em um BSS e o conjunto de BBS chamado de ESS (Extended Service Set). Alm destes servios, o padro IEEE 802 ainda oferece as funcionalidades de roaming dentro de um ESS {Extended Service Set) e gerenciamento do consumo de energia. Dentro do gerenciamento de energia o IEEE 802 permite que as estaes desliguem seus transceptores, economizando parte da energia consumida pelo equipamento. O protocolo da subcamada MAC o CSMA/CA {Carrier Sense Multiple Access with Collision Avoidance). [49] 4.2.5 Topologia O padro 802.11 suporta dois tipos de topologas: IBSS {Independent Basic Service Set) e ESS {Extended Service Set). Estas duas topologas utilizam como base o conceito de BSS {Basic Service Set), que define uma rea onde as estaes permanecem conectadas. Uma estao estar livre para se movimentar dentro do BSS, deixando de se comunicar com as outras estaes quando deixar a rea compreendida pelo BSS. 4.2.5.1 IBSS Uma rede IBSS composta de pelo menos dois computadores em um nico BSS. Neste BSS no existe infraestrutura que ligue o BSS a outras rede. 51 S X BSS Estao A) Figura 4.5 EBSS o tipo mais bsico de rede sem fio 802.11 4.2.5.2 ESS Um ESS consiste em mltiplas clulas interconectadas atravs de pontos de acesso e uma infraestrutura de distribuio, como por exemplo Ethernet. Figura 4.6 ESS satisfaz a necessidade das redes de grande abrangncia e maior complexidade 4.3 Arquitetura de Rede do Windows Mesmo no seguindo fielmente o padro OSI possvel fazer um paralelo entre as camadas propostas pelo modelo OSI e a arquitetura de rede da plataforma Windows, figura BSS1 Ponto de Acesso Ponto de Acesso Sistema de Distribuio BSS2 4.2 [7], 52 Aplicao Sist. de Arquwos TDI ~
Streams TCP/IP NetBEUI DLC NDIS 3.0' Aplicao Apresenta Sesso Transporte Rede Enlace MAC Fsico Figura 4.7 Modelo OSI e a arquitetura de rede do Windows Os drivers de rede da plataforma Windows implementam os protocolos e as interfaces das primeiras quatro camadas do modelo OSI. A camada fsica a camada mais baixa do modelo OSI. Esta camada responsvel pela recepo e pela transmisso de conjuntos de bits no estruturados atravs do meio fsico. A camada fsica descreve as interfaces eltricas, ticas, mecnicas e funcionais para o meio fsico. A camada fsica leva os sinais para todas as camadas mais altas do modelo OSI. No Windows, a camada fsica implementada pelo NIC (.Network Interface Card), o seu transmissor/receptor e o meio ao qual est conectado. Para componentes de rede que utilizam a porta serial, a camada fsica pode tambm incluir o software responsvel pela 53 definio de como o conjunto de bits dividido em pacotes de dados antes de ser transferidos pela serial. A carnada de dados dividida em duas sub-camadas: LLC e MAC. A sub-camada LLC prove transferncias de data-frames de um ponto a outro livre de erros. Esta sub- camada responsvel por estabelecer e terminar links lgicos, controlando o frame flow, seqncia de pacotes, reconhecimento de pacotes e retransmisso de pacotes com problemas. A LLC utiliza pacotes de reconhecimento e retransmisso para disponibilizar uma transmisso virtualmente livre de erros para as demais camadas que ficam acima. A sub-camada MAC gerencia o acesso ao meio, verificao de erros nos pacotes, reconhecimento de endereos dos pacotes recebidos. Na arquitetura do Windows as funes reservadas a LLC so implementadas no driver de transporte, enquanto aquelas reservadas ao MAC so implementadas no NIC. O NIC controlado por um driver de dispositivo chamado NIC Driver. A camada de rede controla a operao da subnet. Ela decide qual caminho fsico os dados devero seguir baseado nas condies da rede, prioridade dos servios e outros fatores. Isso inclui o roteamento, controle de trfego, fragmentao e remontagem do pacote, mapeamento de endereos lgicos para endereos fsicos e contabilizao do uso da rede. O objetivo da camada de Transporte assegurar que as mensagens so entregues sem erros, na seqncia correta e sem perdas ou duplicaes. Ela retira dos protocolos das camadas mais altas a preocupao da organizao na transferncia dos dados entre as estaes. A camada de transporte responsvel pela implementao de um protocolo 54 especfico de rede como TCP/IP ou IPX/SPX, sendo independente do dispositivo de hardware utilizado pela rede. No modelo de rede do Windows, a LLC, a camada de rede e a de transporte so implementadas por software em drivers chamados de Transport Drivers. 4.3.1 NDIS Drivers Os drivers de rede no sistema operacional Windows suportam comunicao ponto a ponto e cliente servidor entre um n local e um n remoto em uma LAN ou WAN. Neste sistema operacional utilizado drivers em um ou mais nveis da rede para passar pacotes de dados e fazer as necessrias tradues de protocolo, permitindo uma comunicao livre de erros entre os pontos de rede. User-Made Cfiert NetBIOS Emulator Usef-Mode DLL Sockets Emulator User-Mode DIL NetBIOS Emufetor Kemel-Mode Driver Sockets Emulator Kemel-Mode Driver Ko me t - Mo d e T DI Cf e n t ( I r c l u t f o g N T Re t f r a c t o r ) Trarapoit Dmw . IrtAifec* (TOI) LAN Protocols Native Media Ane Protocol LA/VMeda Type Native Media Ane Protocol NDIS Intefmedate Native Media Ane Protocol Native Meda Type NDIS report NetC&d Figura 4.8 Componentes existentes na arquitetura de rede do Windows 55 O Windows suporta trs tipos de drivers de rede: - NIC Drivers (.Network Interface Card); - Intermediate protocol drivers; - Upper level protocol drivers. 4.3.1.1 NIC Drivers NIC drivers gerenciam diretamente a placa de rede. Um NIC driver manipula diretamente o hardware e fornece uma interface para que as demais camadas da rede possam enviar pacotes de dados, manipular interrupes, inicializar ou parar a placa de rede e configurar as caractersticas do driver. Na plataforma Windows estes drivers podem ser do tipo miniport ou legacy full NIC drivers que o modelo antigo de desenvolvimento de drivers de rede para Windows. 4.3.1.2 Intermediate protocol drivers Um Intermediate protocol driver faz a interface entre um driver de nvel mais alto, como um driver de transporte antigo, para um driver miniport. Para um driver de nvel mais alto um Intermediate driver tem a mesma interface de um driver do tipo miniport. Para um driver do tipo miniport um intermediate driver exporta uma interface igual a um driver de protocolo. Um intermediate driver pode se ligar a outro intermediate driver. Uma razo para o desenvolvimento de um intermediate driver seria para fazer a converso entre um driver de transporte e um miniport driver que gerencia uma placa de rede para um novo meio de transmisso. Por exemplo, um intermediate driver poderia traduzir um protocolo de LAN para ATM. 56 4.3.1.3 Upper level protocol driver Um upper level protocol driver implementa um interface entre a aplicao do usurio e as camadas de rede do Windows. O upper level protocol pode utilizar uma interface do tipo TDI, ou uma interface especfica para trocar dados com as aplicaes. Um driver deste tipo aloca memoria para os pacotes recebidos das aplicaes, copia estes dados da aplicao para o pacote alocado e envia este pacote para os drivers do nvel mais baixo atravs de chamadas ao NDIS. Este driver tambm fornece uma interface para o recebimento de pacotes das camadas de nvel mais baixo da rede, fazendo a distribuio destes pacotes para as suas respectivas aplicaes do usurio. User-Mode Client User Mode Level Protocol Diriver PS: Kernel Mode NDIS TT NIC 4.4 Componentes "de prateleira" Faz parte do objetivo do trabalho a utilizao de tecnologias ou componentes de prateleira. O hardware utilizado no projeto pode ser enquadrado na categoria "prateleira" por ser vendido em lojas especializadas, normalmente voltadas a produtos para radio- amadores. 57 A procura por uma soluo que oferece de forma transparente a rede sem fio para as aplicaes Windows, tem como resultado a possibilidade de utilizar qualquer um dos ambientes de desenvolvimento .existentes neste sistema operacional. Ou seja, no necessrio a criao de nenhum novo ambiente de desenvolvimento ou uma nova biblioteca para a programao. Redes sem fio sofrem com a ocorrncia de desconexes, baixa velocidade de transmisso e segurana, problemas semelhantes aos encontrados em redes Internet. Por este motivo os navegadores para Internet possuem recursos como time-out para a carga de pginas, cache para a reduo no trafego de dados e comunicao usando criptografia. Conforme mostrado no item anterior, a rede sem fio ser apresentada de forma transparente as aplicaes no sistema operacional. Aproveitando esta liberdade de escolha do software, foi optado pelo navegador como ambiente de execuo das aplicaes a serem desenvolvidas para esta rede. A escolha do navegador no s permite que o desenvolvedor de sistemas possa escolher qualquer ambiente de desenvolvimento Internet, como tambm possa aproveitar os recursos de cache e segurana que esto embutidos no navegador e que so importantes para o funcionamento das aplicaes que executam em redes sem fio. 4.5 Restries Para a montagem do prottipo esto disponveis dois computadores com Windows instalado, dois rdios TEKK 2W 450 a 470 MHz e duas placas serial padro Baycom (BAY96_V2). Os recursos disponveis restringem a implementao da rede a uma velocidade de 9600 bps. Para garantir o funcionamento do navegador e permitir a utilizao de 58 ferramentas Internet o protocolo adotado o TCP-IP. Foram apresentados neste captulo algumas informaes sobre o padro IEEE 802.11 para redes sem fio. A implementao deste padro no consiste apenas de regras para o desenvolvimento de camadas de software, o padro tambm define as caractersticas necessrias ao hardware. O hardware a ser utilizado no projeto no suporta nenhuma das trs camadas fsicas apresentadas pelo IEEE 802.11 {Frequency Hopping, Direct Sequence ou Infrared). Por isso, a rede sem fio proposta no estar em conformidade com o padro. 4.6 Arquitetura da Soluo Para a implementao de uma rede sem fio na arquitetura Windows transparente para as aplicaes ser necessrio concentrar o trabalho na camada de enlace (LLC e MAC), o que na plataforma Windows significa desenvolver um driver do tipo NDIS Miniport NIC driver. Desenvolver o driver segundo a arquitetura de rede mostrado na figura 4.8/4.9 garante que as demais camadas do Windows possam utilizar os recursos disponibilizados pela rede sem fio. Isso far com que o uso da rede sem fio pelo Windows seja simples, porque ela se apresentar ao usurio/sistema operacional como uma rede do tipo Ethernet. Isso garante que qualquer ferramenta de desenvolvimento Windows incluindo, portanto, as de Internet tenha acesso aos recursos da rede sem fio. Agrupando as informaes apresentadas nos itens anteriores deste captulo, a soluo proposta para o experimento de rede sem fio apresentada na figura 4.9. O sistema operacional ser o Windows 95 e mesmo que seja possvel utilizar o protocolo NetBEUI, TCP/IP e IPX/SPX o protocolo escolhido foi o TCP/IP. 59 A escolha de focar a implementao da rede sem fio no desenvolvimento de apenas um driver, tem o objetivo de baratear ao mximo o custo da soluo, que depende de um hardware barato, composto de rdio e placa serial, e de um sistema operacional tradicional. O protocolo TCP/EP tem um comportamento razovel em ambientes de baixa velocidade, o que combina com a velocidade de 9600bps fornecido pelo equipamento utilizados neste projeto. Alm disso, confirma a proposta de utilizar as ferramentas de desenvolvimento Internet na criao de sistemas. Isso tambm tem influncia sobre o custo, porque no exige conhecimentos adicionais para quem implementar um sistema nesta rede. 60 Aplicao OS/2 Subsystem Win32 Subsystem POSIX Subsystem User Mode Apresentao Sesso I/O Manager Kernel Mode Transpor Driver Transporte Rede NetBEUI TCP-EP Interface IPX/SPX NDIS 3.0 Enlace LLC MAC Fsico NDIS 3.0 Wrapper NDIS Miniport NIC Driver BAY96 V2 Interface Figura 4.9 Arquitetura geral da soluo 61 4.7 Desenvolvendo o NDIS Miniport NIC driver Desenvolver um driver do tipo NDIS Miniport NIC driver significa trabalhar com as camadas fsica (PHY) e de enlace (LLC/MAC) do IEEE 802. A figura 4.10 apresenta os mdulos que precisam ser programados para a implementao do driver. ' v NDIS 3.0 Wrapper Controle de Fluxo NDIS Miniport Controle de Erros NIC driver Controle de Acesso Delimitao dos Pacotes Rotinas para a manipulao do NIC BAY96_V2 NIC Figura 4.10 Componentes a serem programados no NDIS Miniport NIC driver 4.7.1 Nivel Fsico - NIC O nivel fsico a primeira camada do modelo OSI, responsvel pelo envio de um conjunto no estruturado de bits atravs de algum meio fsico, neste caso ondas de rdio, assegurando atravs do seu protocolo fsico que se a estao transmissora enviar, por exemplo, um bit 1 a estao receptora reconhecer este bit 1. O nvel fsico fornece as caractersticas mecnicas, eltricas, funcionais e de procedimentos para ativar, manter e desativar conexes fsicas para a transmisso de bits. Esta camada define como o cabo ligado na interface de rede, como por exemplo a quantidade de pinos que o conector deve ter e qual a funo de cada um destes pinos. Alm disso, esta camada tambm define qual a tcnica que ser utilizada para o envio de dados, como half-duplex ou full-duplex. 62 Neste trabalho foi utilizado como NIC uma placa serial do tipo Baycom (BAY96_V2) da Microlaser Sistemas Optoeletrnicos [8], As caractersticas desta placa podem ser encontradas no Apndice A. No experimento foi utilizado o quarto canal da placa (canal 03) que possui modem FSK podendo funcionar entre 2400 a 38400 bps. Como utilizada apenas uma freqncia de rdio para a transmisso e para a recepo de dados, a comunicao ser do tipo half- duplex. 4.7.2 Rotinas para a manipulao do NIC Todo o apndice A est dedicado a explicao da programao da placa para o envio e recepo dos dados pelo rdio. 4.7.3 Delimitao dos Pacotes Para a implementao do driver necessrio colocar algum mecanismo que permita o reconhecimento das informaes transmitidas. A partir deste mecanismo ser possvel determinar onde, dentro de um conjunto de bytes recebidos, se encontram os pacotes de informao. Este controle ser feito por software, utilizando como informao a portadora e o byte SFD (Start Frame Delimiter). Sempre que o placa receber o sinal da portadora (RTS) o driver iniciar a sua procura pelo incio do pacote, ou seja o byte SFD. Mais detalhes no captulo 5, item Enviando e Recebendo Pacotes. Portadora SFD Destinatrio Remetente Tamanho Dados FCS Figura 4.11 Identificao do pacote 63 4.7.4 Nvel de Enlace - Controle de Acesso Como foi mostrado nos itens anteriores, o padro IEEE 802 dividiu a camada de enlace em duas subcamadas (LLC e MAC). A manipulao das caractersticas especficas das vrias tecnologias ficou sob a responsabilidade da subcamada MAC, que trata do controle de acesso ao meio. As demais atividades da camada de enlace ficaram a cargo da subcamada LLC. O gerenciamento de acesso ao meio consiste em controlar a comunicao de dados entre as estaes que esto compartilhando o mesmo meio de acesso. Como no experimento prtico est sendo utilizando para a transmisso e recepo de dados um rdio operando em apenas uma freqncia, significa que todas as estaes que estiverem conectadas a esta rede tero que compartilhar o mesmo meio de transmisso. Por isso alguma tcnica precisa ser utilizada para disciplinar as transmisses de forma a evitar a ocorrncia de colises, que acontecero quando mais de uma estao estiver enviando dados ao mesmo tempo. Existem diversas estratgias, como por exemplo CSMA, Aloha, Polling e Slot. [2], utilizadas para controlar o acesso ao meio. A estratgia escolhida para o controle de acesso a nossa rede sem fio a mesma definida pelo padro IEEE 802.11, ou seja, CSMA/CA [4], O DFWMAC {Distributed Foundation Wireless Media Access Control) apresentado pelo IEEE suporta dois mtodos de acesso: distribudo e centralizado: - Distribudo, as estaes que decidem quando transmitir, podendo ocorrer colises. - Centralizado, a deciso centralizada em um ponto que determina qual a estao deve transmitir, evitando as colises. 64 A mtodo escolhido foi o distribuido para que no seja necessrio a existncia de uma estao responsvel pela organizao do processo de transmisso dentro do BSS. Pacote TX Pausai Meio cupadoj' N > Transmite Transmite Pausa2 Figura 4.12 Resumo do funcionamento do CSMA/CA Como mostrado na figura 4.12 o principio bsico do funcionamento do CSMA/CA o de tentar evitar a ocorrncia das colises durante a transmisso. Neste mtodo de acesso, quando deseja transmitir, a estao "ouve" antes o meio para saber se existe alguma transmisso em progresso. Esta escuta pode ser feita atravs da verificao da existncia de uma portadora. Se nesta escuta ningum estiver utilizando o meio, a estao pode transmitir, caso contrrio a estao espera por um perodo de tempo (Pausa2) antes de tentar novamente. Outro motivo que pode fazer com que a Pausa2 seja necessria a falta do recebimento de um ack confirmando a correta recepo da mensagem pela estao destino. O valor do tempo Pausai e Pausa 2 apresentado a seguir: - Pausai. A maior parte dos pacotes transmitidos possuem um campo especial chamado durao quem tem o objetivo de identificar o tempo de durao do 65 processo de transmisso dos dados. Ao receber um pacote transmitido por outra estao, o campo durao guardado servindo como um relgio para indicar quando a transmisso atual estar encerrada. Esta pausa evita que as estaes tentem transmitir enquanto duas estaes, que j tem o direito de acesso ao meio, estejam trocando dados. - Pausa2. O objetivo do tempo pausa2 o de diminuir a probabilidade da ocorrncia de colises. O momento que sucede a liberao do meio para outras transmisses possibilita que duas ou mais estaes verifiquem a portadora ao mesmo tempo, consequentemente fazendo com que a tentativa de reservar o canal para transmisso tambm acontea ao mesmo tempo, gerando as colises. A pausa consistir na gerao de valores calculados a partir do nmero de tentativas de transmisso e no seu intervalo de tempo pr-alocado. Para garantir que a semente utilizada no sorteio seja diferente para cada estao, possvel utilizar o nmero de identificao da estao como valor inicial. 4.7.5 Controle de Erros/Fluxo A escolha do protocolo TCP {Transmission Control Protocol) proporciona um servio confivel de transferncia de dados. O TCP foi projetado para funcionar como base de um servio de rede que no utiliza conexo e que no possui confirmao. O TCP no exige um servio de rede confivel para funcionar, responsabilizando-se pela recuperao dos dados corrompidos, perdidos, duplicados ou entregues fora de ordem. Mesmo assim esto sendo embutidos no driver controles para garantir uma transmisso mais confivel, atravs do uso de CRC's e pacotes especiais para controle das transmisses. 66 4.7.5.1 CRC O controle de erros est sendo implementado a partir do clculo de um CRC {Cyclic Redundancy Check) sobre o bloco de informaes que esto sendo transmitidas. O algoritmo utilizado gera um valor de 32 bits baseado no AUTODIN II CRC algorithm utilizados nas placas NE1000/NE2000 e que faz parte do padro Ethernet. 4.7.5.2 Pacotes especiais Com o objetivo de organizar o fluxo de informaes entre as estaes, a figura 4.13 apresenta como foi utilizado alguns pacotes especiis na transmisso, chamados pacotes de controle. So eles: - RTS {Request to Send), sempre que uma estao desejar enviar algum dado a outra estao, primeiro a estao origem dever solicitar uma autorizao atravs do envio de uma mensagem de controle RTS para a estao destino. A estao origem somente poder iniciar a transmisso depois que receber uma autorizao da estao destino. - CTS {Clear to Send), este pacote de controle enviado pela estao destino para indicar que uma transmisso solicitada pode ser iniciada. - ACK, este pacote enviado pela estao destino para indicar a recepo de algum conjunto de dados. Se a estao de origem no receber esta mensagem, ela transmite o pacote de dados novamente, considerando que ocorreram problemas na recepo do pacote pela estao destino. Este tipo de controle de fluxo possui uma exceo para as mensagem do tipo broadcast e multicast. Como este tipo de mensagem possui diversos destinatrios, existe 67 um problema no envio da confirmao da transmisso. Dentro da topologia de rede apresentada a seguir, no existe a figura de uma estao principal ou servidora, por isso o problema foi resolvido usando uma estratgia simples. Para as mensagem do tipo broadcast e multicast no utilizado o esquema de mensagens de controle RTS/CTS/ACK, dando o direito da estao transmitir o pacote diretamente. Existem estudos sobre a otimizao do envio de mensagem em redes sem fio, alguns deles podem ser encontrados em [20], [19], [18], [19] e [14], Figura 4.13 Diagrama das operaes de Transmisso e Recepo 68 4.7.5.3 Pacotes de dados Uma das informaes que o sistema operacional solicita ao driver est relacionada ao tipo da rede. O driver proposto nesta dissertao do tipo Ethernet. Trabalhar com este tipo de rede significa manipular pacotes com tamanho de 1500 bytes. Considerando uma velocidade de transmisso mxima de 9600 bps e um meio sujeito a diversas fontes de interferncia que ocasionam a insero de rudos na transmisso, o tempo para a retransmisso de um pacote de 1500 bytes significativo na performance geral da rede. Atravs da utilizao da funo Que r yl nf or mat i on [7] pode-se reconfigurar o tamanho do pacote para 256 bytes, aumentando o tempo para a transmisso das mensagens mas reduzindo o tempo das retransmisses. O tamanho de 256 foi o tamanho mximo do pacote escolhido para a implementao do driver. O nmero 256 no foi escolhido ao acaso, est baseado no tamanho padro de pacote utilizado pelo procotolo AX25, muito usado em ambientes de transmisso com rdio [50], Neste trabalho no foi feito um estudo para avaliar a performance da rede e a sua relao com o tamanho do pacote utilizado. No foi feito nenhum estudo ou experimento para verificar qual tamanho de pacote seria mais adequado para esta rede. Para um melhor aproveitamento da transmisso na rede o ideal a utilizao de um tamanho de pacote varivel, que se ajuste conforme a qualidade do meio, ou seja, o nmero de retransmisses que esto sendo necessrias. Este tipo de caracterstica no est sendo implementado neste driver de rede. Outra forma de garantir uma melhor performance na comunicao utilizando a rede sem fio o desenvolvimento de outro driver de transporte que seja mais adequado as caractersticas da comunicao sem fio do que o TCP/TP. O AX25, ou a proposta do driver RPWNT [16], so alternativas interessantes. 69 4.7.6 Topologia Conforme o padro IEEE 802.11 apresentado neste captulo existem duas topologas disponveis: IBSS {Independent Basic Service Set) e ESS {Extended Service Set). A topologia escolhida para a rede foi a IBSS. Mesmo assim, atravs de configuraes no sistema operacional possvel transformar a rede do tipo IBSS para ESS, com a exceo do recurso de mobilidade entre os BSS existentes. A configurao consiste em ligar uma das estaes do BSS a rede sem fio e a um sistema de distribuio usando cabos. A partir do roteamento dos pacotes do sistema de distribuio para a rede sem fio, e vice versa, esta estao passar a fazer o papel de um ponto de acesso, ligando as demais estaes deste BSS a outros BSS ligados ao mesmo sistema de distribuio (figura 4.6). De acordo com o DFWMAC {Distributed Foundation Wireless Media Access Control) apresentado pelo IEEE o mtodo escolhido foi o distribudo para que no seja necessrio a existncia de uma estao responsvel pela organizao do meio dentro do BSS. 70 5. IMPLEMENTAO O desenvolvimento deste trabalho sobre a implementao de uma rede sem fio teve duas etapas distintas. Na primeira foi feito um estudo com o objetivo de encontrar um caminho vivel para o desenvolvimento desta rede. A segunda etapa, registrada neste captulo, colocou em prtica o estudo e procurou validar a estratgia de desenvolvimento apresentada no captulo 4 atravs de um prottipo. Neste prottipo foram utilizados os seguintes recursos: 1 computador Pentium II 300 com Windows 98; 1 computador Pentium 133 com Windows 95; 1 computador Pentium III 233 com Windows 98; - 2 dois rdios TEKK 2W 450 a 470 MHz, - 2 placas serial padro Baycom (BAY96 V2); - 2 placas de rede NE2000; - Microsoft Visual Studio; - Microsoft SDK e DDK. Os dois primeiros computadores foram utilizados para o teste do funcionamento da comunicao sem fio. Um computador com o Windows 98 e outro com o Windows 95 de forma a verificar o funcionamento do driver em duas verses diferentes do sistema operacional. O terceiro computador foi utilizado para o desenvolvimento do driver e para realizao das operaes de debug. 71 A implementao da rede foi um processo que incluiu muita "tentativa e erro". O captulo 4 apresentou o caminho para o desenvolvimento (NDIS Miniport NIC driver) todavia o "como" fazer era algo desconhecido. Por este motivo ao invs de procurar resolver o problema diretamente, ou seja, desenvolver o NDIS Miniport NIC driver, o trabalho foi organizado em uma srie de etapas procurando aliar a aprendizagem dos componentes usados no trabalho (placa Baycom e o desenvolvimento de drivers do tipo kernel) com a implementao da rede sem fio (programao do NDIS Miniport NIC driver). Estas foram as etapas: Como a placa funciona? Desenvolvimento de um programa que inicializa a placa, finaliza a placa e faz as operaes de envio e recebimento de dados no modo loopback [24], Comunicando atravs de cabos. Desenvolvimento de um programa que faz a comunicao de dados entre dois computadores usando a placa Baycom ligada por meio de cabos. - Entendendo o funcionamento de um NDIS Miniport NIC driver. Recompilao do cdigo fonte do driver NE2000, e a realizao de testes para verificar o seu funcionamento. Enviando e recebendo pacotes. Desenvolvimento de um programa que faz o envio de pacotes entre dois computadores ligados por cabos utilizando a placa Baycom. Primeira verso do NDIS Miniport NIC driver. Desenvolvimento do driver de rede que faz a comunicao usando a placa Baycom ligada atravs de cabos. 72 - Enviando e recebendo pacotes atravs do rdio. Desenvolvimento de um programa que faz o envio de pacotes entre dois computadores usando a comunicao por rdio. Segunda verso do NDIS Miniport NIC driver. Desenvolvimento de uma nova verso do driver de rede, agora com a comunicao via rdio. - Terceira verso do NDIS Miniport NIC driver. Desenvolvimento de uma nova verso do driver. Nesta verso foi feita uma pequena otimizao no protocolo utilizado pelo driver. 5.1 Como a placa funciona? A programao da placa Baycom exige a manipulao de interrupes e endereos de memria. Estas operaes so possveis em programas Windows, mas em nome da segurana e organizao dos programas que esto sendo executados no computador, o sistema operacional possui uma srie de procedimentos que precisam ser cumpridos pelos programas, principalmente aqueles que fazem a manipulao de endereos e interrupes. A meta desta etapa foi entender o funcionamento da placa. Para no fugir deste propsito, ao invs de fazer um programa para Windows, foi escolhido fazer um programa para DOS. Outra simplificao foi a programao da placa utilizando o modo loopback. Neste modo possvel testar os recursos de comunicao da placa em apenas um computador. Tudo o que transmitido no modo loopback recebido pela prpria placa. O resultado deste estudo foi registrado no apndice A. 73 5.3 Comunicando atravs de cabos No primeiro programa o trabalho foi direcionado para entender funcionamento da placa. A transmisso de dados no acontecia realmente, porque atravs do recurso de loopback todas as transmisses eram recebidas pela prpria placa que transmitiu. Neste segundo programa (figura 5.2) feito efetivamente a comunicao entre dois computadores. Para a realizao deste experimento foi utilizado um cabo ligando diretamente as duas placas, permitindo uma comunicao fiill-duplex. Ligao direta entre as duas placas: USCC #1 USCC #2 Pino Descrio Pino Descrio 23 TX 24 RX 24 RX 23 TX 25 GND 25 GND Para verificar o funcionamento dos cabos foi usado o programa Baycom, conhecido pelos rdio-amadores, que permite fazer a comunicao entre computadores utilizando o protocolo AX25 (figura 5.1). Figura 5.1 - Programa Baycom conectando com outro computador (PU1JIF) utilizando cabos 74 Este o modo mais simples de funcionamento da placa, como a sada TX da primeira placa est ligada diretamente a entrada RX da segunda placa, no necessrio se preocupar com a portadora, basta escrever no endereo de dados da placa para fazer a transmisso. A existncia de dois canais independentes de comunicao (full-duplex) permitiu que a implementao da comunicao fosse feita sem a utilizao de nenhuma tcnica para controlar o acesso ao meio [2). Figura 5.2 - Programa DOS que troca bytes entre dois computadores conectados com a placa ligada atravs de um cabo 5.4 Entendendo o funcionamento de um NDIS Miniport NIC driver 5.4.1 NDIS Miniport NIC driver 75 o desenvolvimento de drivers exige que o programador respeite uma srie de regras do sistema operacional. Diferente de uma aplicao que vai executar no modo usurio, um driver um componente que desfruta de privilgios, tendo o direito de executar instrues como as de acesso aos dispositivos ou as que peI1Ilitem influenciar o funcionamento da memria virtual. Em contrapartida os componentes e a organizao do sistema operacional so muito mais visveis ao programador, exigindo um conhecimento mais profundo do seu funcionamento. A figura 4.9 mostra um pouco desta organizao. Existem procedimentos especiais para a inicializao do driver, finalizao do driver e alocao de memria. No recomendado a utilizao das funes da biblioteca padro da linguagem C, por isso existe um conjunto grande de rotinas do sistema operacional para uso exclusivo dos programas que so executados no modo kernel, como os drivers. Existem rotinas para a alocao de memria, manipulao de strings, acesso ao registro do sistema, data e hora, etc. Existem configuraes e recomendaes especiais para o processo de compilao/link. At mesmo o debug do driver possui caractersticas prprias. Antes de iniciar a programao de um driver necessrio realizar uma extensa leitura sobre a arquitetura do sistema operacional e sobre o modo de programao dos drivers. A documentao da Microsoft [7] traz um boa parte destas informaes, entretanto referncias como [1] e [13] so de leitura obrigatria para o aprendizado deste modo de programao. Contudo, estes conceitos tem apenas carter introdutrio. Alm do bsico sobre desenvolvimento de drivers, a programao de drivers de rede exige o conhecimento da especificao NDIS (.Network Driver Interface Specification, veja figuras 4.8 e 4.9). A especificao NDIS pode ser encontrada na literatura sobre o desenvolvimento de drivers de rede, entretanto a implementao de drivers de rede especificamente para a plataforma Windows um assunto bastante restrito. A nica fonte de informaes documentadas sobre o desenvolvimento de NDIS Miniport NIC drivers que foi encontrada estava no Microsoft DDK (Device Driver Kit) [7], Um roteiro para quem deseja aprender sobre o desenvolvimento de drivers de rede consiste, como citado, na leitura de pelo menos uma das referncias [1] e [13], Este estudo servir como introduo a arquitetura do sistema operacional Windows e sobre o 77 desenvolvimento de drivers. O segundo passo a leitura da referncia [3], este livro apresenta uma viso geral sobre o desenvolvimento de drivers de rede. O livro descreve o NDIS, mas no mostra detalhes sobre como ele deve ser programado. Por este motivo o ltimo passo consiste em estudar a documentao original da Microsoft sobre o desenvolvimento de drivers de rede [7], 5.4.2 Cdigo fonte NE2000 O nmero de detalhes envolvidos na programao de um driver muito grande. A documentao sobre o assunto apresenta o roteiro bsico, mas no entra nos detalhes da implementao. E praticamente impossvel desenvolver um driver de rede sem ter como base um programa de exemplo. O DDK da Microsoft vem com o cdigo fonte de alguns drivers de rede, como por exemplo redes do tipo Ethernet ou Token Ring. A estrutura da rede sem fio proposta neste trabalho se assemelha ao funcionamento das redes do tipo Ethernet onde, entre outras caractersticas, quando ligadas em um barramento, a transmisso de uma estao recebida por todas as estaes ligadas a este barramento. Por este motivo, e tambm pela facilidade de se encontrar placas NE2000, o programa base para o estudo do desenvolvimento do NDIS Miniport NIC Driver foi o cdigo fonte do driver de rede para placas NE2000. Este experimento consistiu em preparar o ambiente de desenvolvimento [24] [1] [13] e recompilar o cdigo fonte do driver para a placa NE2000. Para testar o funcionamento do driver foi preparado dois computadores (Win95 e Win98) com uma placa de rede NE2000. Aps a instalao do driver original da placa, existente no sistema operacional, substitumos o arquivo NE2000.SYS presente no diretrio 78 \WINDOWS\SYSTEM pelo novo arquivo NE2000.SYS gerado. Depois da reinicializao do computador foi usado o ambiente de rede do Windows para fazer cpias de arquivos entre os dois computadores. Um estudo mais aprofundado do driver foi feito a partir do uso do software Softlce (veja apndice C). Outra estratgia usada para o estudo do cdigo fonte NE2000 foi a criao de funes que, atravs da serial, imprimem mensagens descrevendo o funcionamento das rotinas internas do driver [12], Para o acompanhamento destas mensagens foi conectado um terceiro computador na porta serial de um dos micros utilizados no teste. Neste terceiro computador estava presente o programa Terminal (Windows 3.1) monitorando a porta serial para apresentar as mensagens enviadas pelo driver. 5.5 Enviando e Recebendo Pacotes Nos testes anteriores efetuados com a placa, a comunicao utilizada foi byte a byte. O prottipo de rede sem fio que est sendo montado enviar pacotes seguindo o formato Ethernet. Neste experimento o programa apresentado no item 5.3 foi modificado de forma a enviar pacotes de dados de acordo com o formato Ethernet (apndice B). A diferena nesta implementao foi a modificao dos bits de prembulo e dos bits delimitadores de incio de pacote. No lugar destes 8 bytes utilizamos apenas um byte com o objetivo de indicar o incio do pacote que est sendo transmitido (SFD - Start Frame Delimiter). Prembulo SFD Destinatrio Remetente | Tamanho Dados + PAD FCS Figura 5.3 Pacote Ethernet 79 SFD Destinatrio Remetente Tamanho Dados FCS Figura 5.4 Pacote usado no experimento Outra mudana foi a retirada do PAD, includo no pacote Ethernet para garantir um tamanho mnimo na mensagem. Isso no necessrio nesta experimento utilizando cabos. A comunicao full-duplex e no existe compartilhamento do meio para a transmisso ou recepo, no existindo a possibilidade de colises. O clculo para o FCS {Frame Check Sequence) foi o mesmo encontrado no cdigo fonte do driver NE2000, ou seja, um valor de 32 bits baseado no AUTODIN II CRC algorithm. 5.6 Primeira verso do NDIS Miniport NIC driver Baseado no resultado obtido pelos dois experimentos (5.4 e 5.5) foi construdo uma primeira verso do driver de rede utilizando as placas ligadas por cabo. O objetivo deste programa foi verificar o funcionamento do driver de rede Windows utilizando os recursos da placa Baycom. Para simplificar o processo de debug o cdigo foi organizado em duas camadas distintas: uma geral, contendo um cdigo fonte compatvel com o DOS e com o Windows; outra camada especfica, uma parte exclusiva ao programa de teste DOS e outra contendo o cdigo do driver Windows. 80 Camada Especfica Camada Geral Compatvel DOS/Windows Figura 5.5 Organizao da primeira verso do NDIS Miniport A partir desta organizao foi possvel montar parte do cdigo do driver atravs de um programa DOS, simplificando o processo de debug destas rotinas. Para testar o funcionamento do driver foram preparados dois computadores (Win95 e Win98) com a placa Baycom. Como ainda no tinha sido feito um script para automatizar a instalao deste novo driver (veja apndice D), foi utilizado o processo de instalao da placa NE2000. Aps a instalao do driver original da placa NE2000 substitumos o arquivo NE2000.SYS presente no diretrio \WINDOWS\SYSTEM pelo novo driver gerado neste experimento. Depois da reinicializao do computador foi usado o ambiente de rede Windows para fazer cpias de arquivos entre os dois computadores. No teste foi feito a cpia de um arquivo de 1Mbyte, o tempo para a realizao deste cpia foi de aproximadamente cinco minutos. Isso indica que mesmo que a placa tenha sido inicializada para 9600, a velocidade atingida pela comunicao ficou em torno de 4800 bps. O tamanho 81 mximo dos pacotes transmitidos seguiu o padro Ethernet de 1514 bytes. Ao final da cpia os arquivos foram comparados com o programa FC.EXE existente no Windows. 5.7 Enviando e recebendo pacotes atravs do rdio A ltima implementao que precisa ser feita para viabilizar a construo do driver para a rede sem fio, consiste na substituio da comunicao usando cabo pela comunicao usando o rdio. Para mudar da placa para o rdio duas modificaes precisam ser feitas, a primeira consiste em alterar a forma de transmisso dos pacotes de fiill-duplex para half-duplex. A segunda passar a controlar a portadora durante a transmisso. Antes de transmitir necessrio "levantar" a portadora (sinalizao RTS/DCD) e ao final da transmisso "baixar" a portadora. Cabo para o rdio: USCC Rdio Pino Descrio Pino Descrio 22 PTT 03 PTT 23 TX 04 Data in 24 RX 05 Data out 25 GND 2 GND 1 12 V DC Para a verificao do correto funcionamento dos cabos tambm foi utilizado o programa Baycom. Alm disso tambm foi modificado o programa do item 5.5 para incluir o controle half-duplex na transmisso. 82 Figura 5.6 - Programa DOS que troca pacotes entre dois computadores ligados por rdio 5.8 Segunda verso do NDIS Miniport NIC driver o mtodo de acesso de uma rede Ethemet est baseado no CSMNCD [2]. Conforme apresentado no captulo 4 o controle de acesso ao meio do IEEE 802.11 o DFWMAC (Distributed Foundation Wireless Media Access Control)o Neste experimento foi alterado a primeira verso do driver acrescentando mais um mdulo responsvel pela implementao do controle DFWMAC. 83 Camada Especfica Camada Geral Compatvel DOS/Windows Figura 5.7 Organizao da segunda verso do NDIS Miniport Para a organizao da transmisso half-duplex o driver passou a utilizar os pacotes de controle RTS, CTS e ACK. Estao Origem RTS CTS Dados ACK Estao Destino Figura 5.8 Seqncia de pacotes para a comunicao de dados 84 5.8.1 Teste atravs do ambiente de rede Para testar o funcionamento desta nova verso do driver foi escolhida a mesma tcnica utilizada no experimento descrito no item 5.6, a cpia de arquivos atravs do ambiente de rede. Antes de fazer a cpia foi utilizado o comando "Localizar -> Computador" do Windows para procurar o computador atravs da rede sem fio. Neste experimento o resultado foi diferente do obtido pelo driver que utilizava a comunicao por cabos. O Windows no encontrou o computador na rede. Analisando a transmisso dos pacotes atravs do programa NDIScope foi possvel perceber que ocorreu um time-out durante a operao de troca de pacotes entre os computadores. O motivo foi o aumento significativo no tempo de envio dos pacotes pela mudana de fall-duplex para half-duplex. Para tentar resolver este problema de time-out foi feita uma pequena modificao no driver. Na rotina ( Queryl nf ormat i on [7]) que especifica as caractersticas do driver de rede o valor que configura a velocidade de transmisso da rede foi reduzido ao seu valor mnimo, ou seja 100 bytes por segundo. Mesmo assim o problema do time-out no foi resolvido porque os pacotes especiais enviados pela rede Windows para o reconhecimento dos computadores na rede (operao chamada browsing) eram menores que 200 bytes. O processo de uma transmisso (RTS-CTS-DADOS-ACK) leva 3 segundos, ou seja, o computador que enviou a mensagem de reconhecimento da rede leva cerca de 6 segundos para receber uma resposta completa (reconhecimento e resposta do reconhecimento), continuando a ocasionar o time-out. 85 5.8.2 Comunicao utilizando o padro Internet Foi feito o teste para conferir o funcionamento da rede sem fio utilizando a rede Microsoft. Entretanto no estava sendo esperado o seu funcionamento porque o "Ambiente de Rede Local" do Windows no foi projetado para funcionar com uma baixa velocidade de transmisso. Por este motivo no segundo teste o "Clientes para rede Microsoft " do Windows foi desinstalado, desligando o processo de browsing realizado para a identificao e comunicao entre os computadores ligados na rede Microsoft [7] [25], Para permitir a comunicao utilizando o padro Internet foi instalado no computador de teste com o Windows 98 o programa Personal Web Server A proposta para o funcionamento da rede no captulo 4 est baseada no desenvolvimento de aplicaes utilizando ambientes de desenvolvimento para Internet. Por este motivo este segundo teste foi dividido em duas partes: acesso a um pgina HTML simples e acesso a uma pgina HTML com applet Java trocando dados via sockets. O applet testado implementa um programa de chat simples. O resultado obtido foi o tempo de 3 segundos para o envio completo de cada pacote (RTS-CTS-DADOS-ACK). N No fez parte deste teste criar situaes de forma a atenuar o sinal de rdio e forar a ocorrncia de erros de transmisso. Tambm no foi feito um estudo sobre o tamanho dos pacotes na transmisso. Foi escolhido como base o mesmo tamanho usado pelo protocolo AX25, ou seja pacotes com no mximo 256 bytes, tambm no foi feito um estudo sobre a performance relacionada ao tamanho do pacote. Como ltima considerao, o experimento 86 foi feito apenas utilizando dois computadores na transmisso, portanto o funcionamento da implementao para redes com trs ou mais computadores no foi validado. Um estudo sobre a performance dos protocolos que fazem parte do IEEE 802.11 pode ser encontrado em [15]. 5.9 Terceira verso do NDIS Miniport NIC driver O DFWMAC possui um mecanismo opcional que envolve a troca de pacotes de controle (RTS/CTS) antes da transmisso do pacote de dados. Quando uma estao ganha acesso ao meio, ao invs de enviar imediatamente o pacote de dados, ela transmite um pacote de controle RTS. O RTS tem dois objetivos, reservar o meio para a transmisso dos dados e verificar se a estao destino est pronta para receber estes dados. Outra utilidade do RTS/CTS para as situaes onde uma estao no percebe o RTS enviado pelo transmissor, mas recebe o CTS enviado pelo receptor. Desta forma o canal, que no foi reservado pelo RTS, passa a ser reservado pelo CTS [2], No experimento anterior optou-se pelo uso do RTS/CTS tambm para "economizar" o tempo das retransmisses ocasionadas por colises. Como o pacote RTS pequeno e rpido de ser transmitido, as colises aconteceriam no envio do RTS, evitando a necessidade de retransmisso de pacotes de dados porque as colises aconteceriam somente no pacote de controle RTS. Nesta terceira verso do driver foi experimentado a retirada dos pacotes opcionais RTS/CTS. Implementando a transmisso apenas com o pacote de dados e o de controle ACK. "---_R_T_S_--,I-+ CTS Retirado neste Teste 87 Estao Origem Dados Estao Destino ACK Figura 5.9 - Excludo os pacotes de controle opcionais nesta verso do driver Esta retirada ocasionou a economia de 1, 5 segundo para cada pacote transmitido. O resultado obtido foi o tempo de 1,5 segundo para o envio completo de cada pacote (DADOS-ACK). ~ ... ~ '" 'I. 1 F"rc . -- - ~ - . -, '-' ""' -. . - . -- '.' -. -. ~ .- - . - .-. - . - .- - .' . - - - ' : . : : . _ ~ ' . Dois exemplos que demonstram o funcionamento da rede sem fio atravs do browser. @ Pgina HTML @ Applet Java Figura 5.10 - Teste do funcionamento do driver com aplicaes Internet 88 lhttl' J1.JOn 111 111.'1) hl mll rI'? c Figura 5.11 - Applet Java com um programa de chat simples 89 6. CONCLUSO E TRABALHOS FUTUROS Para a rea de comunicao de dados a melhor alternativa seria a existncia de um nico sistema que funcionasse sem fio, onde todas as aplicaes pudessem ser implementadas neste sistema. Todavia, aplicaes diferentes necessitam de solues diferenciadas para que sejam economicamente viveis. Este trabalho prope uma rede sem fio que viabiliza o desenvolvimento de aplicaes de monitorao remota que, em sua grande maioria no necessita transferir grandes quantidades de informao. Por exemplo, alguns sistemas de telesuperviso implantados na Rede Globo de So Paulo necessitam de apenas 200 bytes para informar a situao completa dos equipamentos existentes em uma estao monitorada. O total de estaes monitoradas pelo computador central no passa de 10 estaes. Utilizando a plataforma de hardware/software proposta neste trabalho possvel desenvolver aplicaes prticas que se beneficiam desta tecnologia como : - monitorao e controle de estaes de trabalho remotas e de difcil acesso, situao muito comum em estaes de rdio e TV que precisam monitorar/controlar transmissores que ficam em locais afastados; - sistema que permite a polcia rodoviria ter acesso a banco de dados sobre pessoas procuradas, carros roubados, entre outros; - segurana de empresas usando monitorao remota. 90 Alm da possibilidade de utilizao desta tecnologia para o desenvolvimento de aplicaes, este estudo sobre redes sem fio pode ser aprofundado para considerar outros temas, como por exemplo: - utilizao de mais de um servidor com o mesmo conceito de clulas da telefonia celular (topologia ESS proposta no IEEE 802.11); - roteamento de IP para hosts mveis; - utilizao de diferentes protocolos de comunicao para obter uma melhor performance, como AX25 ouRPWNT [16]; - otimizao do protocolo CSMA/CA, como o uso das mensagens do tipo broadcast e multicast; - compactao de dados; - segurana na transmisso dos dados atravs do uso de tcnicas de criptografia; - utilizao de mais de uma freqncia de rdio na comunicao; - implementao utilizando hardware compatvel com o padro IEEE 802.11. 91 Apndice A - DESCRIO DO HARDWARE UTILIZADO NO PROJETO O trabalho para a programao das funes de manipulao do hardware utilizado no projeto (placa Bay 96) foi muito maior do que a programao da lgica de funcionamento do driver. A documentao sobre como programar/utilizar a placa bastante reduzida, isso se deve ao uso bastante especfico deste hardware em sua maioria por radio- amadores. A documentao formal mais detalhada se refere ao CI Z8030/Z8530 contendo mais de cem pginas descrevendo o modo de funcionamento deste componente. Esta documentao foi fundamental durante o desenvolvimento do prottipo, porm o objetivo deste texto descrever os circuitos e os modos/caractersticas de funcionamento. Apenas uma parte insuficiente desta documentao se referia a forma de programao do Cl. Alm disso, a documentao apresentava todos os recursos existentes no Cl, mas estava fora do escopo explicar para que servia e quando cada uma destas caractersticas deveria ser usada. Outro detalhe, a documentao descrevia o modo de funcionamento de um Cl, entretanto a placa utilizada no projeto possui dois deles. Como diferenciar cada um deles durante a programao? Para entender a forma de programao deste hardware e at mesmo montar/soldar os cabos de conexo placa-rdio, foi necessrio muita pesquisa, troca de mensagens pela Internet e a utilizao do cdigo fonte JNOS, um programa que implementa comunicao AX25 utilizando diversos tipos de placas seriais, uma delas com um projeto muito prximo da placa utilizada no prottipo. Por isso este apndice foi inserido nesta dissertao, colocando algumas das informaes obtidas sobre a programao desta placa serial/rdio. Com certeza estas 92 informaes no esto completas, mas o mnimo necessrio para a compreenso da documentao do Z8530, do cdigo fonte JNOS e do cdigo fonte escrito para o driver. A1 Placa Bay 96 USCC Neste trabalho foi utilizado como NIC uma placa serial tipo BayCom (BAY96 V2) da Microlaser Sistemas Optoeletrnicos. Esta placa basicamente composta por quatro sesses [8] [22]: - Sesso digital: contm 2 CI's (Z8530) [24] controlados pelo barramento do PC. Estes CI's so dedicados comunicao de dados no modo sncrono. Cada chip contm 2 ports provendo neste caso 4 canais de rdio. - Modem 3105: o canal A do Z8530 conectado diretamente ao modem TCM- 3105. Este modem pode operar em VHF ou UHF conforme normal Bell202 em 1200 bauds. Alternativamente este chip poder funcionar at 2400 bauds. - Modem 7911: conectado ao canal B do Z8530, este modem poder trabalhar em 1200 bauds (VHF ou UHF) ou em 300 bauds (HF), simplesmente mudando straps no corpo da placa. - Modem FSK: este modem compatvel com o padro G3RUH, pode funcionar entre 2400 a 38400 bauds, configurados por straps no corpo da placa. - Port livre: conectado ao canal A do segundo Z8530, permite, atravs do header disconnect, interligar-se a outros modem's externos e compatveis, podendo operar em mltiplas velocidades. 93 No prototipo foi utilizado o 4 o canal da placa (USCC 03) que possui modem FSK podendo funcionar entre 2400 a 38400 bps. utilizado apenas uma nica freqncia de rdio para a transmisso e para a recepo configurando uma transmisso do tipo half- duplex. A2 Z8530 Como j foi apresentado a placa utilziada no projeto contm dois CI's Z8530 [24] (chamado de SCC - Serial Communications Controller) que podem ser programados diretamente pelo barramento do PC. Cada SCC funciona como um conversor/controlador serial-para-paralelo ou paralelo-para-serial. Cada SCC pode ser configurado por software para satisfazer uma grande variedade de aplicaes seriais. O SCC possui diversos recursos como, por exemplo, mais de um tipo de protocolo, baud rate generator e gerador automtico de CRC. Uma longa lista de registradores permite a manipulao dos seus recursos. A2.1 Registradores Cada canal do SCC possui 14 registradores de escrita, 7 registradores de leitura e mais 4 registradores que so compartilhados pelos dois canais do SCC, 2 para leitura e 2 para escrita. Dos registradores de escrita 10 so utilizados para controle, 2 para a gerao de bytes de sincronizao e 2 para a gerao do baud rate. Os 2 registradores de escrita compartilhados so para a programao da interrupo e para o reset do SCC. Dos registradores de leitura, 4 deles contm informaes sobre o estado do SCC, 2 contm dados sobre a gerao do baud rate e um os dados recebidos. Os 2 registradores de leitura 94 compartilhados contm informaes de controle sobre as interrupes pendentes e o vetor de interrupes. E atravs destes registradores que o usurio consegue ler/enviar dados, programar os diversos modos de operao do SCC e fazer a leitura das informaes de controle. No foi colocado neste texto a lista dos registradores e as suas respectivas funes pois a documentao do Z8530 [24] apresenta nos captulos 2, 7 e 8 uma extensa e detalhada apresentao sobre estes registradores. Neste texto est sendo utilizado a seguinte notao para identificar os registradores: WRn para registradores de escrita e RRn para os registradores de leitura, onde "n" indicar o nmero do registrador. A2.2 Modos de Operao O Z8530 [24] disponibiliza dois canais full-duplex independentes. Estes canais podem ser utilizados para qualquer protocolo de comunicao sncrono ou assncrono. O chip disponibiliza comunicao byte a byte sncrona e assncrona, monosync, IBMBisync e protocolos bit a bit como SDLC e HDLC. A2.2.1 Modo Assncrono Existem vrios modos de configurao para a comunicao assncrona. Por exemplo: nmero de bits por smbolo, nmero de bits de parada, fator do clock, sinais da interface do modem e gerao e deteco de break. 95 A2.2.2 Modo Sncrono No modo de operao sncrono um padro especial de bits utilizado para disponibilizar a sincronizao dos bytes. O chip possui vrias opes de suporte ao modo sncrono incluindo vrias quantidades de bits para os bytes de sincronizao, nmero de bits por smbolo, gerao e verificao de paridade, gerao e verificao de CRC, assim como controles do modem. A2.2.3 Modo SDLC O modo SDLC [2] til para protocolos bit a bit. A placa no implementa o protocolo SDLC, a implementao SDLC da placa consiste apenas na tcnica da insero do "0" {bit stuffing) para alcanar a transparncia na transmisso. No modo SDLC da placa os pacotes contendo informao so iniciados e terminados utilizando um nico padro de bits chamado de flag. O padro 01111110 utilizado como delimitador (flag). Para evitar a ocorrncia dos delimitadores durante a transmisso, sempre que o transmissor encontrar cinco bits consecutivos iguais a 1 nos dados que vai transmitir, ele insere um bit 0 na cadeia de bits. Quando o receptor encontra cinco bits consecutivos, seguidos de um bit 0, ele automaticamente retira o bit 0. Tambm est disponvel no modo SDLC a gerao automtica de CRC ao final dos pacotes. A3 Pinagem Este projeto utilizou o USCC 03 da placa que possui um modem de 9600. Esta sada identificada na placa atravs de um conector DB-25. A seguir apresentado as conexes com as suas respectivas ligaes ao rdio: 96 USCC Rdio Pino Descrio Pino Descrio 22 PTT 03 PTT 23 TX 04 Data in 24 RX 05 Data out 25 GND 2 GND 1 12V DC Figura A. l Pinagem ligando a placa USCC ao rdio A4 Uso com o Rdio De acordo com o fabricante da placa o tempo mximo que ela mantm a portadora (PTT) ativa de 2000 milisegundos. Recomenda-se que o tempo de TX no seja superior a 500 milisegundos. O tempo para estabilizao da portadora de 30 milisegundos. Este rdio consegue manter com segurana o PTT ativo de acordo com a sua alimentao. Se estiver sendo alimentado com 9V, duas horas o tempo mximo que pode manter a sua portadora. Para uma alimentao de 12V o tempo mximo de portadora dois minutos. Por isso se estiver utilizando para a alimentao do rdio uma das sadas 12V do computador, recomenda-se o uso de um regulador para 9V, por exemplo um 7810. A5 Endereamento No mercado existem vrias placas diferentes que utilizam o Z8530 ou alguma de suas variaes mais atuais. Cada uma destas placas possui algumas caractersticas diferentes em sua programao utilizando ou no os recursos oferecidos pelo Cl. Uma das variaes mais comuns est no nmero de CIs existentes na placa e na forma de endereamento para acesso aos registradores. 97 A seguir apresentado a forma de endereamento da placa utilizada em nosso projeto, baseado no projeto da placa BayCom USCC [22], A partir do JP4 da placa [8][22] possvel definir o seu endereo base: Jumpers fev-v - Endereo Aberto Aberto Aberto 300h Fechado Aberto Aberto 320h Aberto Fechado Aberto 330h Fechado Fechado Aberto 340h Fechado Aberto Fechado 23 Oh Aberto Fechado Fechado 220h Fechado Fechado Fechado 210h Figura A.2 Jumper para a seleo do endereo base da placa Considerando os dois SCCs existentes na placa, configurados com o endereo base padro (300h) resultaria na seguinte tabela de endereamento: Canal Placa Cl Canal CI End. Dados End. Controle u s c c o chip 01 A 300h 304h u s c c i chip 01 B 301h 305h USCC2 chip 02 A 302h 306h USCC3 chip 02 B 303h 307h Figura A.3 Endereo de dados e de controle da placa USCC usando como endereo base o valor 300h 98 Como possvel notar na tabela apresentada o endereamento muda de acordo com o nmero do canal USCC desejado. Existe uma conta que pode ser utilizada para calcular estes endereos: End. Dados = EBase + NCI * 2 + NC End. Controle = End. Dados + OFF Onde: EBase Endereo base da placa configurado nos jumpers. NCI Nmero do Cl que deseja acessar (chip 01-0 ou chip 02-1). NC Nmero do canal (A-0 ou B-l). OFF Deslocamento para o registrador de controle do canal. Exemplo: USCC3 End. Dados = 300 + 1 * 2 + 1 = 303 End. Controle = 303 + 4 Exemplo de um programa que calcula e guarda em uma tabela cada um destes endereos: //Guarda o endereo da placa Placa.nchips = 2 ; //Num de chips Placa.nchan = 2 ; //Num de canais por chip Placa.iobase = 0x340; //End base da placa Placa.irq = 7; //Interrupo da placa Placa.elk = 4915200L; //Frequencia do PCLK/RTxC em Hz Placa.clkmode= 16; //Specifies the division rate (1,16,32) Placa.pelk = 1; Placa.speed = 9600; //Calcula o endereos dos regs de Ctrl e dados de todos os canais for (i=0; i < Placa.nchips; i++) for (j=0; j < Placa.nchan; j++) { Placa.chan[i][jj.data = Placa.iobase + (i*Placa.nchan) + j; Placa.chan[i][j].Ctrl = Placa.iobase + (i*Placa.nchan) + j + 4; } 99 A6 Acesso aos Registradores Baseando-se no endereo base da placa e em qual canal se deseja trabalhar, a operao de manipulao dos registradores consiste em 1er e escrever dados no endereo de controle (veja item Endereamento). Por exemplo, considere o seguinte exemplo: - endereo base da placa configurada para 300h; - programao utilizando o quarto canal da placa (USCC3). Neste exemplo o acesso as operaes de read e write no registrador de controle deve acontecer no endereo 307h. Como existe apenas um endereo para acesso aos registradores e mais de 20 registradores de leitura e escrita, a operao de manipulao dos registradores consiste em dois passos: - seleo do registrador desejado; - escrita/leitura do registrador. A exceo a esta regra o registrador de nmero 0, que pode ser acessado diretamente sem que seja necessrio a seleo do registrador. A seguir apresentado um exemplo de acesso a um registrador de escrita utilizando as funes inportb e outportb disponveis na linguagem C: outportb(CTRL,REG); //Seleciona registrador outportb(CTRL,VL); //Escreve valor no registrador //CTRL > corresponde ao endereo do registrador de controle // do canal desejado //REG > corresponde ao nmero do registrador desejado //VAL > corresponde ao valor a ser escrito no registrador REG Outro exemplo com uma operao de leitura: 100 outportb(CTRL, REG); //Seleciona registrador VAL = inportb(CTRL); //Leitura do registrador para w e l VAL Mais um detalhe sobre as operaes de leitura e gravao. Existe um tempo at que o registrador selecionado esteja disponvel para acesso. No respeitar este tempo far com que a placa no funcione corretamente. Este tempo pode ter maior ou menor impacto na programao dependendo da velocidade do computador ou da forma como a placa est sendo programada, como por exemplo atravs uma sub-rotina em assembler. Por isso recqjpenda-se a incluso de uma pausa entre a operao de seleo de registrador e cf operao de leitura/escrita neste registrador. Exemplos: //Escrita outportb(CTRL,REG); //Seleciona registrador delay(l); //Pausa para aguardar a seleo do reg outportb(CTRL,VAL); //Escreve valor no registrador //Leitura outportb(CTRL, REG); //Seleciona registrador delay(l); //Pausa para aguardar a seleo do reg VAL = inportb(CTRL); //Leitura do registrador para w e l VAL Como apresentado no incio deste item, a exceo fica para o primeiro (nmero 0) registrador de gravao/leitura, onde a operao pode ser realizada diretamente: outportb(CTRL,VAL); //Escreve valor no registrador 0 (WRO) VAL = inportb(CTRL); //Leitura do registrador 0 (RRO) para w e l VAL Agora um exemplo real de escrita nos registradores 0 e 3 (WRO e WR3), lembrando que a operao ser realizada no USCC3: //Escrita registrador 0 (operao error reset) outportb(0x307, 0x30); //Escreve diretamente o valor no reg //Escrita registrador 3 (operao disable rx) outportb(0x307, 3) ; //Seleciona o registrador 3 delay(l); //Pausa para aguardar a seleo do reg outportb(0x307,0); //Escreve valor no registrador Operao de leitura: //Leitura registrador 0 (status register) status = inportb(0x370); //Operao usando apenas um passo 101 //Leitura registrador 3 (interrupt pending bits) outportb(0x370, 3); //Seleciona o registrador 3 delay(l); //Pausa para aguardar a seleo do reg IntBits = inportb(0x370); //Leitura do valor atual do registrador Nem todos os registradores de escrita possuem os seus equivalentes registradores de leitura, ou seja, nem todas as configuraes feitas atravs dos registradores de escrita podem ter os seus valores consultados. Por isso quando os registradores de escrita esto sendo usados normal manter uma cpia do ltimo valor escrito em cada registrador, permitindo assim que uma consulta, ou modificao possa ser feita posteriormente. Foi usado um vetor para memorizar os ltimos valores colocados nos registradores de escrita: unsigned char wreg[20]; // Copia dos valores escritos em cada reg Assim, cada operao de gravao guardada neste vetor: //Escrita registrador 0 (operao error reset) outportb(0x307, 0x30); //Escreve diretamente o valor no reg wreg[0] = 0x30; //Guarda valor para consulta futura //Escrita registrador 3 ( operao disable rx) outportb(0x307,3); //Seleciona o registrador 3 delay(l); //Pausa para aguardar a seleo do reg outportb(0x307,0); //Escreve valor no registrador wreg[27] = 0; //Guarda valor para consulta futura Este vetor com as cpias dos valores se torna realmente til quando necessrio modificar apenas um dos bits de um determinado registrador: //Escrita registrador 15 (external status interrupt control) outportb(0x307,15); //Seleciona o registrador 3 delay(l); //Pausa para aguardar a seleo do reg wreg[49] &= DCDIE; //Desliga apenas o bit que controla a outportb(0x307,wreg[49]); //gerao das ints de DCD A partir da observao do cdigo fonte do driver ser possvel verificar que algumas macros {defines) foram criadas para simplificar as operaes de escrita/leitura, 102 automatizando as operaes de seleo de registradores, delay e memorizao dos valores no vetor. A7 Programao da USCC Como foi apresentado no item anterior (Acesso aos Registradores) atravs da leitura e gravao nos registradores que se realiza a programao da USCC. Para a utilizao da placa na comunicao de dados existem duas alternativas de programao: polling ou interrupo. A7.1 Polling Este o modo mais simples de implementar. O programa deve constantemente consultar o SCC para saber se existem dados disponveis, se novos dados podem ser enviados ou se alguma situao especial aconteceu, como um erro na recepo dos dados. Para utilizar o modo de programao por polling o MEE (WR9 bit 3) e o Wait/DMA Request Enable (WRl bit 7) devem estar configurados com o valor 0 de forma a desabilitar a ocorrncia de interrupes pelo SCC. Com as interrupes desabilitadas cabe ao programa consultar o RRO para identificar o estado do buffer de recepo, buffer de transmisso e do estado geral do SCC. A7.2 Interrupo Neste modo de programao o SCC ir gerar uma interrupo somente quando ocorrer alguma situao ou mudana significativa. Esta forma de programao permite que a CPU fique livre para outras atividades enquanto o SCC no est sendo utilizado. O SCC 103 tem um mtodo interno de resoluo de prioridades de forma a fazer com que a interrupo de maior prioridade no SCC seja tratada primeiro. A8 Inicializao da Placa A placa Bay 96 USCC contm 2 SCCs (Z8530) controlados pelo barramento do PC. Estes CI's so dedicados comunicao de dados. Cada chip contm 2 ports provendo neste caso 4 canais de rdio. O modo mais simples de programao da placa o modo assncrono utilizando polling, o modo escolhido para a implementao do driver de rede foi o modo assncrono, porm no lugar do polling ser utilizado a programao por interrupes de forma a no sobrecarregar a CPU com a execuo do polling pelo driver. Para fazer o controle de cada um dos SCCs/canais existentes na placa foram definidas as seguintes estruturas de dados: USCCBay para controle da placa e a USCCChan para o controle de cada canal do SCC. struct USCCBay { int init; /* Placa ja foi inicializada? */ int nchips; /* Numero de SCC chips na placa */ int nchan; /* Numero de canais */ intl 6 iobase; /* Endereo base da placa */ int irq; /* Numero da interrupo */ long clk; /* Frequencia do PCLK/RTxC em Hz */ uint clkmode; /* specifies the div rate (1,16,32) inside the SCC */ int pclk; /* Flag indicando o uso do PCLK no lugaro do RTxC) */ long speed; /* Velocidade da transmissao */ #define USCC_INIT 3 //Placa ainda nao foi inicializada #define USCC_TX 2 //Placa transmitindo #define USCC_RX 1 //Placa recebendo #define USCC_IDLE 0 //Placa NOP char status; /* Estado atual da placa */ char pendingTX;/* Algo aguardando transmissao (0/1) */ int nBytes; /* Controla o numero de bytes enviados em um nico TX*/ tdefine USCC_NCHIP 2 /* Indica o numero de chips na placa . */ #define USCC_NCHAN 2 /* Indica o numero de canais por chip */ #define A 0 /* Canal A do chip */ idefine B 1 /* Canal B do chip */ struct USCCChan chan[USCC_NCHIP][USCC_NCHAN]; /*Guarda as infos de cada um dos canais */ ) ; 104 struct USCCChan { uintl6 Ctrl; /* uintl6 data; /* unsigned char wreg[20] long speed; /* char extclock; /* char fulldup; /* char tx inhibit; /* Endereo do reg de controle para este canal */ Endereo do reg de dados para este canal */ /* Copia dos valores escritos em cada reg */ Velocidade em bps */ External clock source on RTxC/TRxC */ External divider for fulldup available */ Transmit is not allowed when set */ /* statistic information on this channel */ long ints; long rxints; long txints; long exints; long spints; long rxerrs; /* /* /* /* /* /* unsigned int rovers;/* Number of interrupts */ Receiver interrupts */ Transmitter interrupts */ External/status interrupts */ Special receiver interrupts */ CRC Errors */ Receiver Overruns */ unsigned int CRCFraming; unsigned char status;/*Status of the channel V O processo de inicializao dividido em trs etapas. A primeira etapa consiste na programao do modo de operao (bits por smbolo, paridade, etc.) e carga das constantes (interrupo, timer). A segunda parte habilita as funes do hardware transmisso, recepo, velocidade, entre outras. E importante que o modo de operao seja programado antes que as funes do hardware sejam habilitadas. A terceira parte, caso seja necessrio, consiste em habilitar as diferentes interrupes. Segundo o manual do Z8530 [24] a programao dos registradores no processo de inicializao deve ser feita da forma apresentada na figura A.4. Os bits nos registradores marcados com "X" devem ser programados pelo usurio. Os bits marcados com um "S" indicam que devem ser programados com os mesmos valores utilizados em passos anteriores. 105 Registrador Comentrios Parte 1 Modos e Constantes WR9 11000000 Hardware reset WR4 XXXXXXXX TX/RX com, Async or Sync mode WR1 OXXOOXOO Select W/REQ (optional) WR2 XXXXXXXX Program interrupt vector (optional) WR3 XXXXXXXO Select RX control WR5 XXXXOXXX Select TX control WR6 XXXXXXXX Program sync character (optional) WR7 XXXXXXXX Program sync character (optional) WR9 000X0XXX Select interrupt control WR10 XXXXXXXX Miscellaneous control (optional) WR11 XXXXXXXX Clock control WR12 XXXXXXXX Time constant lower byte (optional) WR13 XXXXXXXX Time constant upper byte (optional) WR14 XXXXXXXO Miscellaneous control WR14 xxxsssss Commands (optional) Paite 2 Habilitar WR14 000SSSS1 Baud Rate Enable WR3 SSSSSSS1 RX enable WR5 SSSS1SSS TX enable WRO 10000000 Reset TX CRG (optional) WR1 xssoosoo DMA Enable (optional) Parte 3Int errupo WR15 XXXXXXXX Enable external/status WRO 00010000 Reset external status WRO 00010000 Reset external status twice WR1 SSSXXSXX Enable RX, TX and Ext/Status WR9 ooosxsss Enable Master Interrupt Enable Figura A.4 Programao dos registradores para a inicializao da placa 106 Para exemplificar a inicializao apresentado um trecho de cdigo que faz a inicializao do canal 3 da placa para funcionar de forma assncrona a 9600 bps. Este um exemplo simplificado, no apresentando a configurao da rotina que far o tratamento das interrupes j que isso dependente dos recursos do sistema operacional. No cdigo fonte do driver pode ser encontrado a rotina completa com a configurao das interrupes tanto para DOS como para Windows. if (Placa.init != 0) return; //A placa ja foi inicializada //Dados da placa Placa.nchips Placa.nchan Placa.iobase Placa.irq Placa.clk 2; 2; 0x340; 7; 4915200L; Placa.clkmode= 16; Placa.pclk = 1; Placa.speed = 49600; //Num de chips //Num de canais por chip //End base da placa //Interrupo da placa //Frequencia do PCLK/RTxC em Hz //Specifies the division rate (1,16,32) //inside the SCC //Calcula o endereos dos regs de ctrl e dados de todos os canais for (i=0; i < Placa.nchips; i++) for (j=0; j < Placa.nchan; j++) { Placa.chan[i][j].data = Placa.iobase + (i*Placa.nchan) + j; Placa.chan[i][j].ctrl = Placa.iobase + (i*Placa.nchan) + j + 4; } //Resetar e pre-inicializar os chips da placa RD(h,Placa.chan[0][A].ctrl,dummy); //Chip 1/2 channel A/B make RD(h,Placa.chan[41][A].ctrl,dummy); //sure pointer is written WCTRLRSCC(h,Placa.chan[0][A], R9,FHWRES); //Hardware reset chip 1/2 WCTRLRSCC(h,Placa.chan[41][A], R9,FHWRES); //channel A/B for (i=0; i < 1000; i++) dummy = i+1; //wait a while to be sure //Inicializa cada um dos canais for (i=0; i < Placa.nchips; i++) for (j=0; j < Placa.nchan; j++) { RD (h, Placa, chan [i] [ j] . ctrl, dummy) ; WCTRLRSCC(h,Placa.chan[i][j],R4,0); WCTRLRSCC(h,Placa.chanfi][j],R1,0); WCTRLRSCC(h,Placa.chan[i][j],R2, ((unsigned char) (16 * i) )) ; WCTRLRSCC(h,Placa.chan[i][j],R3,0); WCTRLRSCC(h,Placa.chanfi][j],R5,0); WCTRLRSCC(h,Placa.chan[i][j],R9,VIS); //make sure pointer is written //no mode selected yet //no W/REQ operation //chip# in upper 4 bits of //vector //disable rx */ //disable tx */ //vector includes status, MIE //off Placa.init = TRUE; //Placa foi inicializada com sucesso; 107 WCTRLRSCC(h,Placa.chan[41] [B] , R4 , X16CLKISBl); //*16 clock, 1 stopbit WCTRLRSCC(h,Placa.chan[41][B],RI,0); // no W/REQ operation WCTRLRSCC(h,Placa.chan[41][B] , R3,Rx8|RxCRC_ENAB);//RX 8 bits/char, CRC, //disabled WCTRLRSCC(h,Placa.chan [41] [B],R5,Tx8I DTR ITxCRC_ENAB);//TX 8 bits/char, CRC, //DTR, disabled WCTRLRSCC(h, Placa.chan[41] [B],R9,VIS); //vector includes status */ WCTRLRSCC(h,Placa.chan[41] [B],RIO,NRZI 0); //select NRZ WCTRLRSCC(h, Placa.chan[41] [B],R14,0); WCTRLRSCC(h,Placa.chan[41] [B] , Rll, RCTRxCP|TCRTxCP);/* */ WCTRLRSCC(h,Placa.chan[41][B],R14,DISDPLL); /* */ //Set SCC channel speed //clkmode specifies the division rate (1,16,32) inside the SCC { uint brgrate; long spdclkm; //Calculate baudrate generator value spdclkm = Placa.speed * Placa.clkmode; brgrate = (unsigned) ((Placa.elk + spdclkm) / (spdclkm * 2)) - 2; CCTRLRSCC(h,Placa.chan[41][B],R14,BRENBL); //disable baudrate generator WCTRLRSCC(h,Placa.chan[41][B],R12, (unsigned char)brgrate); //brg rate LOW WCTRLRSCC(h,Placa.chan[41][B],R13, (unsigned char) (brgrate 8)); //brg rate HIGH OCTRLRSCC(h,Placa.chan[41] [B] ,R14,BRENABL); //enable baudrate generator } WCTRLRSCC(h,Placa.chan[41][B],R15,BRKIEITxUIE|DCDIE);//enable ABORT, DCD and //HUNT/SYNC interrupt WR(h,Placa.chan[41][B].Ctrl,RES_EXT_INT); //reset ext/status interrupts WR(h,Placa.chan[41][B].Ctrl,RES_EXT_INT); //must be done twice RD(h,Placa.chan[41][B].ctrl,dummy); //read initial status //enable interrupts OCTRLRSCC(h,Placa.chan[41][B],R1,INT_ALL_Rx|TxINT_ENABIEXT_INT_ENAB); OCTRLRSCC(h,Placa.chan[41] [B] ,'R9,MIE); //master interrupt enable A9 Controle das interrupes Cada canal do SCC contm 3 fontes de possveis interrupes, como cada SCC possui dois canais so 6 as possveis fontes de interrupo geradas pelo SCC. As 3 possveis fontes de interrupo de cada canal so as seguintes: - recepo; - transmisso; - Externai ou Status. 108 A9.1 Recepo As interrupes de recepo podem ser geradas porque um byte est disponvel ou porque uma condio especial aconteceu. A interrupo relativa a recepo de dados acontece quando o byte j foi carregado para o FIFO e est pronto para ser lido. As condies especiais podem ser FIFO overrun, CRC/erro no pacote, final de pacote e erro de paridade. O erro de paridade pode ser includo como condio especial dependendo do valor configurado no bit 2 do WR1. O estado das condies especiais podem ser lidos atravs do RR1. O modo como as interrupes de recepo sero geradas controlado atravs da configurao dos bits 3 e 4 do WR1. E possvel selecionar um dos trs modos disponveis: - interrupo desabilitada; - interrupo no primeiro byte ou condio especial; - interrupo em todos os bytes e condies especiais. A9.2 Transmisso A interrupo de transmisso tem apenas uma fonte. gerada somente quando o buffer de transmisso passa de cheio para vazio. Esta interrupo ser gerada somente aps o envio do primeiro byte. atravs do uso desta interrupo que os pacotes de dados so enviados. As interrupes de transmisso so controladas a partir do Interrupt Enable bit, bit 1 do WR1. 109 Outra forma de controlar as transmisses sem o uso da interrupo pode ser feita atravs do RRO, que contm um bit indicando se o buffer de transmisso est ou no vazio. A9.3 External/Status Existem diversas fontes de interrupo external/status que podem ser geradas. Esta gerao configurada atravs do WR15. O controle deste tipo de interrupo pode ser ligado/desligado atravs do bit 0 do WR1. As configuraes possveis so as seguintes: - zero count; - DCD; - Sync/Hunt; - Transmitter underrun; - Break/Abort. A9.4 Identificando o motivo da interrupo A placa possui 2 SCCs Z8530 compartilhando a mesma interrupo que pode ser configurada por jumper existente na placa [8][22], Se na inicializao da placa foi escolhido o mtodo de programao atravs de interrupo (veja item Programao da USCC), a cada gerao de interrupo necessrio identificar a qual SCC/canal esta interrupo pertence, e qual o seu tipo. Esta interrupo pode indicar uma recepo, transmisso ou external/status. O processo feito em dois passos a partir da verificao dos registradores RR2 e RR3. 110 O cdigo apresentado a seguir executado pela rotina chamada a cada interrupo gerada pela placa USCC. i = 0; while ((i < 2) && (watchdog>0) ) { (1) RR(h,Placa.chan[i][A].Ctrl,R3,dummy); (2) if (dummy != 0) { canal = (dummy < 8) ? B : A; RR(h,Placa.chan[i][B].Ctrl,R2, IsrMotivoIRQ); (3) Ne2000IsrMotivoIRQ &= 0x6; //Isola informao de status do vetor Ne2000IsrMotivoIRQ = 0x1; //Descarta o bit menos significativo //conforme tab 7-4 (7-11) do manual 8530
//00 -> TX (Transmit Buffer Empty) |Chan B //Ol -> EX (External Status Change) | //10 -> RX (Receive Character Alvailable) | //Il -> SX (Special Receive Condition) I switch (Ne2000IsrMotivoIRQ) { case 2: Placa.chan[i][canal].rxints++; //Rotina para tratamento do RX break; case 0: Placa.chan[i][canal].txints++; //Rotina para tratamento do TX break; case 1: Placa.chan[i][canal].exints++; //Rotina de tratamento do EX break; case 3: Placa.chan[i][canal].spints++; //Rotina de tratamento do SX break; }//switch i = 0; } //if else { i++; } )//while ( 1 ) w h i l e ( ( i < 2) && ( w a t c h d o g > 0 ) ) { Neste while controlado a verificao do motivo da interrupo, o valor 2 indica que a verificao ser feita nos dois SCCs disponveis na placa. A varivel watchdog usada para controlar um possvel erro que possa acontecer com a placa, como por exemplo, (4) (5) I l l parar de responder. Neste caso, evitado que a execuo do programa trave dentro da interrupo. ( 2) R R ( h , P l a c a . c h a n [ i ] [ A ] . c t r l , R 3 , d u m m y ) Independente do canal que gerou a interrupo este comando deve ser executado no canal A do SCC. O valor retornado contm nos bits a indicao do canal que gerou a interrupo (conforme pgina 7-23 figura 7-21 no manual Z8530). ( 3 ) R R ( h , P l a c a . c h a n f i ] [ B ] . c t r l , R 2 , I s r Mo t i v o I RQ) O ltimo passo consiste em verificar o motivo da interrupo (transmisso, external status, recepo ou condio especial). A tabela indicativa dos bits se encontra na pgina 7-11 tabela 7-4 do manual do 8530. (4) i = 0 No caso de alguma interrupo tenha sido indicada pelo RR3, deve-se voltar a verificao desde o incio (I o SCC) j que possvel que durante o tratamento da interrupo, alguma outra situao de interrupo tenha sido sinalizada. (5) i + + Caso nenhuma interrupo tenha sido sinalizada para este SCC, a varivel incrementada de forma a fazer a verificao do prximo SCC disponvel na placa. A10 Envio de dados Os dados podem ser enviados utilizando duas formas, ou atravs do endereo de dados (veja item Endereamento) ou atravs do registrador WR8. 112 Exemplo para o USCC3 com endereo base 0x300, utilizando o registrador: //Enviando dados pela USCC outportb(0x307,8); delay(1); outportb(0x307,'A' ); //Seleciona o registrador 8 //Pausa para aguardar a seleo do reg //Envia byte Usando diretamente o endereo de dados: //Enviando dados pela USCC outportb(0x303, 'A')/ //Envia byte Atravs desta operao possvel enviar um byte. Para enviar mais de um byte, durante a inicializao da placa deve-se escolher como ser o modo de programao: polling ou interrupo. A10.1 Polling 0 envio de um grupo de bytes por polling funciona da seguinte forma: 1 - Enviar o primeiro byte do grupo 2 - Enquanto falta bytes a enviar 3 - Aguardar o buffer de transmisso ficar vazio 4 - Envia prximo byte 1 - E n v i a r o p r i m e i r o b y t e do g r u p o Este primeiro passo pode ser realizado de uma das duas formas apresentadas. //Enviando dados pela USCC outportb(0x303,'A') ; //Primeiro byte 3 - Ag u a r d a r o buffer d e t r a n s m i s s o f i c a r v a z i o Esta verificao pode ser feita utilizando o registrador RR0, atravs do bit 2: //Busy wating Tx Buffer Empty while (!(inportb(0x370)& 0x4)); 4 - E n v i a p r x i mo b y t e Envia o prximo byte do grupo repetindo a operao apresentada no passo 1. 113 A10.2 Interrupo A interrupo de transmisso gerada somente quando o buffer de transmisso passa de cheio para vazio. Esta interrupo gerada somente aps o envio do primeiro byte. E atravs do uso desta interrupo que os pacotes de dados so enviados. Primeiramente coloca-se o primeiro byte do pacotes no buffer de transmisso do SCC, logo que o SCC gerar uma interrupo de Transmisso significa que o prximo byte a ser transmitido pode ser colocado no buffer de transmisso e assim sucessivamente at o ltimo byte do pacote. Neste momento a placa deve ser sinalizada de que no existem mais bytes a serem enviados. Exemplo: Envio do primeiro byte dando incio ao processo de interrupes: outportb(0x303,'A') ; //Primeiro byte Conforme mostrado no item Identificando o motivo da interrupo quando uma interrupo de TX for gerada, basta enviar o prximo byte. Quando no existirem mais bytes a serem enviados, preciso executar a seguinte linha de comando (operao com o WRO): outportb(0x307,0x28); // Reset TxINT Pending A partir deste comando encerrado o processo de gerao de interrupo de envio, finalizando o processo de envio deste pacote de dados. A11 Recepo de dados Assim como no envio, a recepo de dados tambm pode fazer uso das duas formas: endereo de dados e registrador RR8. Exemplo para o USCC3 com endereo base 0x300, utilizando o registrador: 114 //Faz a leitura do byte da USCC outportb(0x307,8}; //Seleciona o registrador 8 delay(l); //Pausa para aguardar a seleo do reg c = inportb(0x307); //Byte recebido Usando diretamente o endereo de dados: //Faz a leitura do byte da USCC inportb (0x303); //Byte recebido A maneira que a USCC avisa da existncia ou no de um byte tambm est associado ao modo de programao escolhido {polling ou interrupo). A11.1 Polling E possvel verificar se um byte est disponvel atravs do registrador RR0. O primeiro bit (bit 0) indicar se existe ou no um byte disponvel: if (inportb(0x307)& 0x1) //Existe byte? C = inportb (0x303); //Byte recebido O SCC possui um FIFO para a recepo dos bytes com um tamanho de 3 bytes. Portanto a operao de verificao e leitura de bytes precisa ser rpida de forma a evitar overruns. A11.2 Interrupo Se durante o processo de inicializao da placa foi escolhido o modo interrupo, a cada byte recebido a USCC ir gerar uma nova interrupo. Dentro deste interrupo feito a leitura do byte que foi recebido (veja item Identificando o motivo da interrupo). A operao de leitura a mesma utilizada no polling com exceo da verificao da existncia de byte no buffer. C = inportb (0x303); //Byte recebido 115 Foi mencionado que no necessrio verificar a existncia de bytes no buffer, todavia como o FIFO de recepo de bytes possui 3 bytes de profundidade, dependendo da velocidade que a rotina de interrupo leva para identificar e tratar a interrupo, pode ser possvel que outro byte j tenha sido recebido pela USCC. Uma alternativa a utilizao de uma repetio durante a leitura dos bytes dentro da interrupo: do { *cp++ = inportb (0x303); //Proximo byte do FIFO } while (inportb(0x307)& 0x1); //Mais bytes? A12 Modo Loopback Assim como os modems o SCC disponibiliza o modo loopback para testes. O uso deste modo permite que a programao da comunicao seja feita sem a utilizao de dois computadores/placas, simulando o envio e a recepo de dados usando o mesmo computador. Para ativar o modo loopback durante a inicializao do canal o bit 4 do WR14 deve ser ativado. 116 Apndice B - ETHERNET B1 Ethernet Ethernet uma das mais populares tecnologias utilizadas atualmente. Outros tipos de LAN incluem Token Ring, Fast Ethernet, Fiber Distributed Data Interface (FDDI), Asynchronous Transfer Mode (ATM) e LocalTalk. Ethernet uma camada fsica de rede popular porque possui um bom balano entre velocidade de transmisso, custo e facilidade de instalao. Hoje o padro Ethernet definido pelo Institute for Electrical and Electronic Engineers (IEEE) como IEEE 802.3. Este padro define as regras para a configurao e como os elementos em uma rede do tipo Ethernet assim como os elementos da rede interagem entre si. [44] [47] O incio do desenvolvimento do Ethernet foi feito pela Xerox que a registrou como uma marca sua. A tecnologia foi refinada e uma segunda gerao chamada de Ethernet II foi definida, sendo bem aceito pelo mercado. Esta atualizao da Ethernet tambm conhecida como DIX e teve a participao da Digital, Intel, and Xerox. Para que este padro pudesse se tornar internacional o IEEE recebeu a tarefa de desenvolver um padro para todas as tecnologias de LANs. Com este objetivo foi montado o comit "802" par estudar Ethernet, Token Ring e outras tecnologias LAN. O objetivo do projeto no foi apenas padronizar cada um dos tipos de LAN individualmente, mas tambm estabelecer regras que poderiam ser globais para todos os tipos de LANs. Desta forma os dados de uma rede Ethernet poderiam mais facilmente passar para redes Token Ring. 117 Esta viso ampla criou conflitos entre a prtica Ethernet existente e o antigo sistema Xerox DIX. O IEEE foi cuidadoso em separar as novas e velhas regras. Reconheceu que haveria um perodo onde mensagens DIX e as novas mensagens IEEE 802 teriam que coexistir na mesma LAN. B2 Camadas Ethernet Duas camadas, fsica e de enlace, esto envolvidas na especificao Ethernet. A camada fsica realiza as seguintes funes, que so geralmente associadas ao controle fsico do canal: - Codificao dos dados, o que inclui a gerao e a remoo do prembulo para sincronizao e a codificao e decodificao dos bits. - Acesso ao canal, que inclui a transmisso e a recepo dos bits codificados, verificao da portadora e deteco de colises. As duas principais funes da camada de enlace so as seguintes: - Encapsulamento dos dados, que inclui a montagem dos pacotes, manipulao dos endereos de origem e destino e deteco de erros no canal fsico. - Gerenciamento do link, que inclui a alocao do canal, o processo de evitar colises e o tratamento das colises ocorridas. B3 Ethernet X IEEE 802.3 Antes do desenvolvimento de um padro internacional, a Xerox administrava as convenes do Ethernet. Cada empresa que adotou o Ethernet desenvolveu um protocolo diferente, por este motivo dois bytes foram adicionados neste padro de forma a identificar 118 o tipo do protocolo. Dentro do processo de identificao de coliso no protocolo Ethernet um pacote pequeno tem bytes acrescentados de forma a atingir o mnimo de 64 bytes [45]. Esta regra fez com que os protocolos de alto nvel precisassem possuir ou um tamanho mnimo obrigatrio nas mensagem, ou um campo interno que permitisse diferenciar os bytes de dados dos bytes adicionados para completar o tamanho mnimo da mensagem. Alguns tipos definidos pela Xerox: - 0x0600 XNS (Xerox) - 0x0800 IP (the Internet protocol) - 0x6003 DECNET O comit IEEE 802 recebeu a tarefa de desenvolver protocolos que poderiam trabalhar da mesma forma entre todas as LANs. Como j foi mencionado, para evitar colises, uma rede Ethernet de 10 megabits precisa ter pacotes com o tamanho mnimo de 64 bytes. Qualquer mensagem menor do que isso precisa ser completadas com zeros. A necessidade de controlar uma mensagem com tamanho mnimo nico para a Ethernet e no se aplica a outros meios utilizados nas LANs. Para fazer com que a Ethernet pudesse trocar mensagens com outros tipos de LANs, seria necessrio dispor de um campo "tamanho" para permitir a distino entre os bytes de dados e os bytes utilizados para completar a mensagem. O padro DIX (Ethernet II) no precisava de um campo tamanho porque os ^protocolos desenvolvidos pelos fabricantes (XNS, DECNET, IPX, IP) todos tinham em seu prprio protocolo um campo identificando o tamanho da mensagem. Todavia, o comit $02 precisava de um padro que no dependesse do comportamento dos protocolos dp glto 119 nvel. Por isso o padro 802.3 trocou os dois bytes do campo "tipo", que fazem parte do Ethernet //, por um campo, tambm de dois bytes, mas que representam o tamanho da mensagem. Esta modificao foi possvel porque nenhum tipo importante definido pela Xerox utilizou valores menores do que 1500. Como o tamanho mximo de um pacote Ethernet contm at 1500 bytes, no haveria conflito entre o DIX e o padro 802. Desta forma, qualquer pacote Ethernet com um campo tipo/tamanho menor ou igual a 1500 do formato 802.3 (o campo identifica tamanho) enquanto qualquer pacote contendo um valor maior do que 1500 identifica o formato DIX (campo identifica o tipo). Por isso possvel encontrar os dois tipos de pacotes trafegando por uma rede Ethernet sem que exista conflito. O TCP/IP utiliza o padro DIX original da Xerox, enquanto o NetBEUI utiliza o padro 802.3. B4 Formato do pacote Os pacotes Ethernet possuem os seguintes campos apresentados na figura B. 1 [45]: Pacote Descrio 62 bits Prembulo Uma srie de 62 bits alternando l's e 0's utilizado para assegurar a sincronizao com o receptor. 2 bits Delimitador do incio do pacote Dois bits 1 consecutivos. O prembulo e o delimitador de incio juntos geram os seguintes bits: 10101010 10101010 10101010 101010101 10101010 10101010 10101010 10101011 6 bytes Endereo de destino Este campo de 48 bits especifica para qual estao o pacote est endereado. O primeiro bit indica o tipo de endereo. Se for 0 o endereo corresponde a uma 120 nica estao na rede, se for 1 indica que o endereo especifica um grupo lgico de estaes. Por exemplo todos os bits com o valor 1 sinalizam uma mensagem do tipo broadcast. 6 bytes Endereo de origem 48 bits indicando um nico endereo que corresponde a estao que enviou a mensagem. 2 bytes Tamanho ou Tipo Para o IEEE 802.3 estes 16 bits mostram a quantidade de bytes que esto sendo transmitidos (campo dados). Para Ethernet I ou II (DIX) este campo indica o tipo do pacote. Os cdigos de tipo so maiores que 1500 para permitir identificar se ele um tipo ou um tamanho. Por exemplo pacotes IP so do tipo 0x800. 46 a 1500 bytes Dados O padro IEEE 802 recomenda que o campo dados tenha um tamanho de 46 a 1500 bytes. Se o pacote de dados menor do que 46 bytes, para que ele funcione corretamente no protocolo Ethernet, uma quantidade de bytes sero adicionados ao final do campo de dados para que atinja o tamanho mnimo de 46 bytes. Isso permite diferenciar pacotes vlidos de colises. 4 bytes CRC Esta parte do pacote contm 32 bits calculados utilizando o polinomio AUTODIN II (normalmente gerado pelo chip). O CRC inclui o endereo de destino, endereo de origem e o campo com os dados. Figura B.l Campos do pacote Ethernet O menor pacote composto de 60 bytes (6 + 6 + 2 + 46 = 60 bytes) e o maior pacote 1514 bytes (6 + 6 + 2 + 1500= 1514 bytes). B5 Endereo Ethernet Os 48 bits utilizados como endereo pelo Ethernet chamado de Organizationally Unique Identifier (OUI) e tem o objetivo de criar um endereo nico entre todas as placas de rede. O bit 47 indica o tipo de endereo. Se for 0 o endereo corresponde a uma nica estao na rede, se for 1 indica que o endereo especifica um grupo lgico de estaes. Por exemplo todos os bits com o valor 1 sinalizam uma mensagem do tipo broadcast. O bit 46 121 utilizado para diferenciar endereos locais de globais. Os endereos globais so administrados pelo IEEE para garantir que no existam duas estaes no mundo com o mesmo endereo global. Para os endereos locais, a responsabilidade passa a ser do administrador da rede. Os 48 bits so divididos em dois pedaos de 24 bits cada. A primeira parte utilizada pelo IEEE para especificar o fabricante, a segunda parte utilizada pelo prprio fabricante para identificar de forma nica cada uma de suas interfaces Ethernet. B6 Cdigos NT Foram colocados alguns exemplos que constam no DDK para desenvolvimento de drivers TDI para Windows NT que exemplificam a manipulao de um pacote Ethernet padro 802.3 (arquivo STMAC.H, ddk\src\network\tdi). #define MacReturnHeaderLength(_MacInfo, _Header, _HeaderLength) \ { \ PUCHAR TmpPacket = (PUCHAR)(_Header); \ \ switch ((_MacInfo)->MediumType) { \ case NdisMedium802_3: \ *(_HeaderLength) =14; \ break; #define MacReturnPacketLength(_MacInfo, _Header, _HeaderLength, _PacketLength, _DataLength) \ { \ PUCHAR TmpPacket = (PUCHAR)(_Header); \ UINT TmpLength; \ \ switch ((_MacInfo)->MediumType) { \ case NdisMedium802_3: \ if ((_HeaderLength) >= 14) { \ TmpLength = (TmpPacket[29] << 8) | TmpPacket[38]; \ if (TmpLength <= 0x600) { \ if (TmpLength <= (_PacketLength)) { \ *(_DataLength) = TmpLength; \ } \ } \ } \ break; 122 Apndice C - FERRAMENTAS UTILIZADAS NO PROJETO Para o trabalho no prottipo foram necessrios a utilizao softwares, bibliotecas e cdigos fonte. Esto enumerados neste apndice os que foram mais importantes. C1 Microsoft SDK/DDK Como o prottipo foi desenvolvido para a plataforma Windows o uso do SDK/DDK disponibilizado pela Microsoft foi fundamental. Este pacote compreende a documentao referente ao desenvolvimento de drivers. Conforme mostra a documentao da Microsoft, o driver foi desenvolvido de acordo com as regras do Windows NT de forma a permitir a sua instalao no Windows 95/98/NT. No prottipo o funcionamento do driver foi testado apenas com o Windows 95 e com o Windows 98. De forma complementar a documentao SDK/DDK existe uma srie de fontes exemplificando como os diversos tipos de drivers devem ser programados. Para a programao do driver foi utilizado como base o programa exemplo da placa NE2000. Este pacote contm ainda as bibliotecas/ferramentas necessrias para permitir a compilao/link do driver. C2 Softlce NuMega A programao de um driver no uma operao trivial. A sua ligao direta com o sistema operacional acrescenta um nmero grande de detalhes que precisam ser atendidos durante a programao. Por esse motivo durante o aprendizado da programao de um driver muitos detalhes so entendidos apenas quando observado o comportamento do driver durante a sua execuo. A utilizao de um debugger pode auxiliar neste processo, 123 permitindo que o programa seja executado passo a passo e os valores/fluxo de execuo possam ser observados. Os ambientes de desenvolvimento j incorporam poderosas ferramentas de debug, todavia como programao de um driver no uma tarefa comum aos programadores, estas ferramentas de debug no do suporte a estes tipos de programa. Estas operaes de debug ficam ainda mais difceis quando a programao de um kernel driver, como um driver de rede. Neste tipo de programao no permitida operaes de interface, como a leitura de dados do teclado ou a apresentao de janelas. Para permitir o possibilidade de debug de um driver existe a ferramenta chamada Softlce, onde a operao de debug feita dentro de um ambiente especial, utilizando-se dois computadores ligados pela serial. Um computador possui o driver que deve estar compilado com o modo debug ativado. O outro computador usado para visualizar as linhas do cdigo que esto sendo executadas. A utilizao de uma ferramenta do tipo Softlce durante a construo de um driver quase obrigatria, j que a ferramenta de debug que acompanha o SDK no funciona facilmente em drivers do tipo kernel, precisando de verses de debug especficas do sistema operacional. C3 Borland C++ 3.1 A programao para Windows ou a programao de um driver acrescenta um nmero muito grande de detalhes. Quando o objetivo entender o funcionamento de um cdigo, ou experimentar a programao de uma placa, os detalhes do sistema operacional podem dificultar ainda mais esta tarefa. Por este motivo foi escolhido aprender sobre o funcionamento da placa a partir do desenvolvimento de programas DOS. Assim possvel 124 concentrar nos detalhes de funcionamento da placa e no nas particularidades do sistema operacional. Para construo destes programas de teste foi utilizado o Borland C++. C4 Visual C++ 6.0 Para a programao do driver no foi utilizado o ambiente de desenvolvimento Visual C++ apenas o seu compilador de linha. O SDK/DDK contm somente os scripts necessrios para a compilao, por isso necessrio a existncia de um compilador instalado. C5 Word 97 Usado para a montagem deste texto. C6 NDIScope for Windows Este programa pode ser encontrado no site www.pcausa.com {Printing Communications Assoc., Inc.) e permite a monitorao dos pacotes que esto trafegando pela rede. Este programa foi utilizado para verificar se o pacote enviado por uma estao estava sendo recebido corretamente pela estao destino. Alguns erros na montagem do pacote pela estao receptora foram detectados a partir da comparao dos pacotes apresentados neste programa. C7 BayCom Como aprender a utilizar um hardware sem ter a certeza de que ele est funcionando corretamente? Este trabalho iniciou do zero, com a montagem e soldagem dos cabos de conexo ao rdio. Durante o desenvolvimento aconteceram alguns problemas relativos ao funcionamento do hardware. Depois de diversas semanas de trabalhos perdidos a estratgia 125 de teste do driver foi modificada. Sempre que alguma modificao na configurao do hardware ou a substituio de algum componente da placa era feito o programa Baycom (conhecido pelos rdio-amadores) era usado para verificar se o hardware estava funcionando corretamente. Somente depois desta verificao que os teste com o prottipo eram reiniciados. C8 JNOS Como aprender o funcionamento de um hardware sem a existncia de um programa exemplo? Felizmente o programa JNOS distribudo com o cdigo fonte. Este programa no especfico para o hardware utilizado no projeto, mas pode ser configurado para ser usado com placas USCC padro Baycom. A partir do estudo deste cdigo fonte, que entre mdulos, arquivos de cabealho e configurao possui mais de 300 arquivos, foi possvel entender o princpio de funcionamento da USCC. C9 Sourcer Esta uma antiga ferramenta que a partir de um programa executvel um programa assembler equivalente gerado. Esta ferramenta foi utilizada algumas vezes para verificar o funcionamento de algumas partes do programa Baycom. O Baycom no possui cdigo fonte aberto. C10 Adobe Acrobat Reader Alguns documentos encontrados na Internet estavam no formato PDF. C11 GSV1EW32 2.1 - A Ghostscript graphical interface Utilizado para a leitura de alguns artigos encontrados na Internet. 126 C12 Terminal do Windows O processo de debug de um driver diferente do processo tradicional de debug de um programa escrito para Win32. Para complementar e muitas vezes simplificar o funcionamento do Softlce, j que a verso do Softlce utilizada no projeto era de avaliao (30 dias), foi implementado algumas operaes de debug utilizando diretamente a porta serial do computador. Assim, algumas mensagens de debug do driver (aquelas como "passei por aqui", ou "o valor atual ...") foram "impressas" usando a porta serial e um computador adicional com um programa terminal para visualizao destas mensagens. 127 Apndice D - SCRIPT PARA INSTALAO DO DRIVER DE REDE No existe na documentao da Microsoft referncia de como construir um script para a instalao de um driver de rede. A documentao apresenta apenas as diretrizes gerais de como construir scripts para a instalao de dispositivos. O script apresentado a seguir foi feito com base no scripl para a instalao da NE2000. Esta referncia foi retirada do CD de instalao do Windows 95, mas tambm compatvel com o Windows 98. Selecionar Adaptadores de fede EJ .. t ~ ~ ~ ~ J ' ' . ~ , . . ~ : ":--. . ; .. .. . . . -." ",.-. '. Figura D.I - Janela do Windows 98 para adicionar o driver da rede sem fio [Version] Signature=$CHlCAGO$ Class=Net Provider=%V PROVIDER% (rnanufacturer] %V_MANUFECT%=parau_drivers [parau drivers] %*RADll.desc%=RADIOl_ndi, *RADIOl [RADIOl_ndi] AddReg=RADIOl ndl reg DeviceID=RADIOl Maxlnstance=l [RADI01_ndi_reg] HKR,Ndi,DevicelD,,RADI01 ;->from Netnovel.inf HKR,,DevLoader,,*ndis HKR,,DeviceVxDs,,radio.sys ;->end from Netnovel.inf /Parmetros especficos do driver HKR,, Address,,340 HKR,, IRQ,,7 ; NDIS Info HKR,NDIS,LogDriverName,,RADIOl HKR,NDIS,Maj orNdisVersion,1, 03 HKR,NDIS,MinorNdisVersion, 1, OA HKR,NDIS\NDIS3,DriverName, , "RADI01$" HKR,NDIS\NDIS3,FileName, , "*RADI01" ; Interfaces HKR,Ndi\Interfaces,DefUpper, , "ndis3" HKR,Ndi\Interfaces,DefLower,,"serial" HKR,Ndi\Interfaces,UpperRange,,"ndis3 HKR,Ndi\Interfaces,LowerRange,,"seria ; Install sections HKR,Ndi\Install,ndis3,,"RADIO.Install HKR, Ndi\Remove,ndi s3,,"RADIO.Remove" [RADIO.Install] AddReg=RAD10. AddRe g CopyFiles=RADIO.CopyFiles [RADIO.AddReg] HKR,,DevLoader, , *ndis [RADIO.CopyFiles] RADIO.SYS [RADIO.Remove] AddReg=RADIO.Rmv.AddReg CopyFiles=RADIO.Rmv.CopyFiles [RADIO.Rmv.AddReg] [RADIO.Rmv.CopyFiles] RADIO.SYS [DestinationDirs] DefaultDestDir =11 ; LDID_SYS RADIO.CopyFiles =11 [strings] V_MANUFECT="Parau UFPR" V_PR0VIDER="Parau UFPR" *RADI01.desc="Rede via Rdio" 129 Apndice E - REPRODUO DO EXPERIMENTO PRTICO 1) Preparar os cabos para a ligao da placa ao rdio (veja Apndice A). 2) Configurar dois computadores com o sistema operacional Windows 95 ou 98. 3) Configurar a placa para a IRQ 7 e o ADDR 0x340 [8], 4) Instalar placas verificando conflitos de IRQ e endereamento com outros dispositivos. 5) Verificar o funcionamento da placa/rdio/cabos usando o programa Baycom. Para conectar utilize o comando CONN <nome e s t a o 3. 6) Instalar o driver no Windows (use script do Apndice D). Uma forma alternativa para a instalao do driver da rede sem fio o de instalar a placa NE2000 e depois substituir o arquivo NE2000.SYS pelo arquivo do driver da rede sem fio (Captulo 5). 7) Desinstalar do Windows o "Clientes para rede Microsoft" de forma a desligar o processo de browsing (Captulo 5). 8) Instalar e configurar o protocolo TCP-IP. 9) Reinicializar o computador. Para que a visualizao de pginas HTML funcione necessrio a instalao e configurao do Personal Web Server. 130 REFERNCIAS BIBLIOGRFICAS Livro/Manual: [1] BAKER, Art. The Windows NT Device Driver Book. Prentice Hall. 1997. [2] COLCHER, Srgio, LEMOS, Guido, SOARES, Luiz Fernando Gomes. Redes de Computadores. Das LANs, MANs e WANs s Redes ATM, Segunda Edio. 1995. [3] DHAWAN, Sanjay. Networking Device Drivers. VNR (Van Nostradan Reinhold) International Thomson Publishing Inc. 1995. [4] GEIER, Jim. Wireless LANs: Implementing Interoperable Networks. Macmillan Technical Publishing. 1999. [5] GIBILISCO, Stan Handbook of Radio and Wireless Technology. McGraw-Hill. 1998. [6] LAVERGHETTA, Thomas S. Microwaves and Wireless Simplified. Artech House Publishers. 1998. [7] Microsoft Developer Network Library. October 1997. [8] Manual de Hardware BAY96_V2. Microlaser Sistemas Optoeletrnicos Microcomputao e Comunicao. [9] Networking Basics: Self-Study Training Kit. Microsoft Corporation. 1994. [10] STALLINGS, William. Operating Systems Internals and Design Principles. Chapter 8/11. Prentice Hall. 1998. 131 [11] TANENBAUM, Andrew S. Modern Operating Systems. Chapter 10. Prentice Hall. 1992. [12] TISCHER, Michael. PC Internt System Programming. Chapter 7. Abacus. 1995. [13] VISCAROLA, Peter G., MASON, W. Anthony. Windows NT Device Driver Development. OSR Open System Resources, Inc. Macmillan Technical Publishing. 1999. Artigo: [14] BALAKRISHNAN, Hari, PADMANABHAN, Venkata N., SESHAN, Srinivasan, KATZ, Randy H A Comparison of Mechanisms for Improving TCP Performance over Wireless Links. Computer Science Division, Department of EECS, University of California at Berkeley. [15] CHHAYA, S. Harshal, GUPTA, Sanjay. Performance modeling of asyncrhonous data transfer methods of IEEE 802.11 MAC protocol. Wireless Networks Journal No 3. Baltzer Science Publishers. August 1997. [16] EWERTON, Peres Cesrio. Estudo do Desenvolvimento de Protocolos de Rede em Ambiente Windows NT - Microsoft. Comunicao interna. UFPR. 2000. [17] FORMAN, Geroge H., ZAHORJAN, John. The Challenges of Mobile Computing. Computer Science and Engineering. University of Washington. March 9, 1999. [18] TOURRILHES, Jean. The improvement offered by PiggyData and Packet Frame. Packet Frame Grouping works. Proc. of PIMRC '98. [19] TOURRILHES, Jean. Robust Broadcast: Improving the Reliability of Broadcast Transmissions on CSMA/CA. Personal Systems Laboratory. HP Laboratories Bristol. HPL-98-38. February, 1998. Especificao: [20] IEEE 802.11 : Wireless LAN medium access control (MAC) and physical layer (PHY) specifications.IEEE. [21] IEEE P802.15 Working Group for Wireless Personal Area Networks (WPANs). Grouper.ieee.org/groups/802/15/pub/wpan-faq htm [22] The modular BayCom USCC-Card: USCC>4. http ://www. bay com. or^ayweb/news/uscc4. htm [23] The Official Bluetooth Website, www.bluetooth.com [24] ZiLOG Serial Communication Controllers Products. ZiLOG Technical Manual Z8030/Z8530 SCC Serial Communication Controllers. www.zilog.com/products/scc.html Revista. [25] Configuring Browser Options for WinNT, Win95 and WFW. Exploring Windows NT, June 1996. The Cobb Group. Cpia do artigo em www. microsoft .com/TechNet/winnt/ntwrkstn/Tips/ewn9662. asp. [26] DEVONEY, Chris. A Nao sem Fio. Windows Computing - Pg. 52. Julho de 1994. 133 [27] HARVEY, David A., SANTALESA, Richard. A Comunicao sem Fio Torna-se Realidade. Byte Junho 1994, Pg. 65 - 69. [28] Indstria Aposta nas redes Wireless. LanTimes Brasil. Junho 1997 Vol. 3 Edio 4 Pg 28. [29] SOUZA , Paulo Henrique de. Infocomunicao Pessoal por Wireless. Network World Dezembro 1998. Revista na Internet: [30] AOL ter acesso Web por celular. Info Online - 7/02/00. http://www2.uol.com.br/info/infonews/022000/07022000-14.shl [31] Brasil ter portal para transmisso wireless. Tera-feira, 11 de janeiro de 2000 - 09hl7. Infonews. http://www2.uol.com.br/info/infonews/012000/! 1012000-0.shl [32] CRESPO, Rose. Rede Tess vai transmitir dados. 20/10/99. Info Online - Planto Info, www.infoexame.com.br [33] CRESPO, Rose. Celular do futuro. - Linha Cruzada - Info Online - No 16 - 15/12/99. www. infoexame. com. br [34] ELIAS, J. IDC prev que 61 milhes de usurios usaro a Web sem fio em 2003. IDG Now - 9/02/00. www.uol.com.br/idgnow/inet/inet2000-02-08f.shl [35] FUOCO, Tais. Vsper realiza primeira chamada via WLL. Planto Info - Info Online - 21/10/99. www2.uol.com.br/info/infonews/101999/21101999-ll.shl 134 [36] GARCIA, Karina. Internet via celular chega ao Brasil. - IDG Now - 10/02/00. www.uol.com.br/idgnow/telco/telco2000-02-09e.shl [37] Usurios de TDMA j so 30 milhes no mundo. 01/12/99 Info Online - Planto Info, www.infoexame.com.br [38] Wireless: preo ainda no competitivo. ComputerWorld - Julho 1998. http://www.uol.com.br/computerworld/computerworld/260/tele_05.htm [39] Wireless. IDG. http://idg.uol.com.br/idgnow/2000/especial_tecnologias Internet: [40] 1895: Marconi's Invention, www.alpcom.it/hamradio/marconi.html [41] BRUNERO, Angelo, VALORI, Andrea. The Invention of the Radio. www.alpcom.it/hamradio/radeng.html, (IK1QLD Angelo Brunero and IK1QFT Andrea Valori). [42] Comunicao de Dados Via Celular. Trellis Produtos para Comunicao de Dados Ltda. 1999. http://www.trellis.com.br/celular.html http://www.uol.com.br/networkworld/networkworld/nwt05/techup_02.htm [43] COUEY, Anna The Birth Of Spread Spectrum. http://www.sirius.be/lamarr.htm [44] DANG, Hui. Origin and History of Ethernet http://bugs.wpi.edu: 8080/EE53 5/hwk96/hwk2cd96/dang/dang.html 135 [45] Ethernet Specification. WPI EE535 Telecommunications and Transmission Technologies Course Homepage. http://bugs.wpi.edu: 8080/EE535/hwk3cd95/harveywl.html [46] Network - Air Interfaces. Lucent Technologies. www. lucent, com/wireless/products/networks/airinter.html [47] PCLT -- H. Gilbert. Ethernet. 12 Apr 1995. http://pcIt.cis.yaIe.edu/pclt/COMM/ETHER.HTM [48] Selecting wireless LAN technology. Proxim. http://www.proxim.com/learn/whiteppr/select.shtml [49] SILVA, Adailton J. S. Redes Wireless. RNP. 1999. http : //vexxor. virtualave. net/redes/wireless. htm [50] TAPR archives AX.25 Amateur Packet-Radio Link-Layer Protocol Version 2.2. November 1997. http://www.tapr.org/tapr/html/ax25.html [51] What is a wireless LAN? http://www.proxim.com/learn/ [52] What is W-CDMA. NEC http : //www. nec. com. sg/nems/wcdma/whatis/what_bot. htm