Author
angelica-silva
View
256
Download
2
Embed Size (px)
DESCRIPTION
Ip Movel
2. GUILHERME STELLA RAVAGNANI SIMULAO DO IP MVEL VIA NETWORK SIMULATOR (NS2): UMA PROPOSTA DE REDE WIRELESS Monografia de Graduao apresentada ao Departamento de Cincia da Computao da Universidade Federal de Lavras como parte das exigncias da disciplina Projeto Orientado II para obteno do ttulo de Bacharel em Cincia da Computao. Aprovado em ___ de ______________ de 2003. ____________________________________ Professor Ricardo Martins de Abreu Silva (Orientador) LAVRAS MINAS GERAIS - BRASIL 2003 3. III Agradecimentos Agradeo aos meus pais e irmos pelo apoio e carinho. A Natlia pela pacincia e incentivo. Em especial a Deus por todas as graas que recebi. 4. IV Resumo Simulao do IP mvel via Network Simulator (NS2): Uma Proposta de rede wireless O objetivo deste trabalho consiste em simular o envio de pacotes para um host mvel em uma rede wireless utilizando o IP Mvel, que uma alternativa de soluo para o problema de transferncia de informao entre computadores e outros dispositivos mveis. Este trabalho simula trs diferentes cenrios de transferncia de dados: (i) quando o host mvel est em sua rede local (home link); (ii) quando o host mvel est em uma rede externa (foreign link) e por ultimo, (iii) quando o host mvel migra pra outras redes externas ao seu domnio. A ferramenta utilizada para implementar esta simulao o Network Simulator (NS), que tem sido utilizado com grande freqncia em pesquisas em redes de computadores sempre com suporte e apoio de vrias organizaes acadmicas e comerciais. Abstract Simulation of mobile IP through Network Simulator (NS2): A proposal of wireless network The goal of this work is to simulate the sending of packets to a mobile host in a wireless network using mobile IP, which is a way to solve transference problems of information between computers and others mobile devices. This work simulates three different sceneries of data transfer: (i) when the mobile host is in its local network (home link), (ii) when the mobile host is in an external network (foreign link) and at last, (iii) when the mobile host goes to other external networks in its dominion. The tool used to make this simulation is the Network Simulator (NS), which has been used very often on researches about computer networks, always with support and help from many academic and commercial organizations. 5. V Sumrio 1. Introduo ......................................................................................... 1 2. Referencial Terico .......................................................................... 5 2.1. IP Mvel ..................................................................................... 5 2.1.1.Definio ............................................................................ 7 2.1.2.Home Address, Home Link e Home Agent ..... 8 2.1.3.Care-of Address, Foreign Link e Foreign Agent ........ 9 2.1.4.Tunneling ........ 10 2.1.5.Agent Discovery .................................................................. 11 2.1.6.Registro ....... 12 2.1.7.Autenticao........................................................................ 14 2.1.8.Descoberta Automtica do Home Agent ............................. 16 2.1.9.Resumindo o Funcionamento do IP Mvel ...................... 17 2.2. Network Simulator (NS) ............................................................. 18 2.2.1.Estrutura ............................................................................. 19 2.2.2.Simulao de um Modelo .................................................. 22 2.2.3.O Modelo Wireless no NS ................................................. 27 2.2.4.IP Mvel no NS .................................................................. 28 3. Metodologia ...................................................................................... 31 3.1. Tipo de Pesquisa ......................................................................... 31 3.2. Implementao ........................................................................... 35 4. Resultados e Discusses ................................................................... 36 4.1. Implementao ........................................................................... 36 4.2. Topologia ................................................................................... 48 4.3. Resultados da Simulao ............................................................ 49 4.3.1.Nam .................................................................................... 49 4.3.2.Arquivos de Trao .............................................................. 55 5. Concluso e Propostas Futuras ....................................................... 59 5.1. Concluso ................................................................................... 59 5.2. Propostas Futuras ....................................................................... 59 Referenciais Bibliogrficas .................................................................... 60 6. VI Anexos ...................................................................................................... 63 Anexo A ....................................................................................... 64 7. VII Lista de Figuras Figura 2.1 - Entidades e relacionamentos do IP Mvel .................................. 8 Figura 2.2 - IP Tunneling ................................................................................ 11 Figura 2.3 - Processo de registro no IP Mvel .............................................. 13 Figura 2.4 - Arquitetura do NS ....................................................................... 20 Figura 2.5 - Esquema de utilizao do NS ..................................................... 21 Figura 2.6 - Tela do nam executando a simulao ......................................... 26 Figura 2.7 - Esquema de um MobileNode ..................................................... 28 Figura 2.8 - Esquema de uma estao base wireless ...................................... 30 Figura 3.1 - Roteando pacotes para um host mvel em um foreign link ........ 33 Figura 3.2 - Registro durante o handoff .......................................................... 34 Figura 4.1 Representao do host 0.1.0 (roteamento hierrquico) ............ 41 Figura 4.2 Topologia da simulao ............................................................ 48 Figura 4.3 Host mvel em sua rede local ................................................... 50 Figura 4.4 Host mvel saindo da sua rede local .................................. 51 Figura 4.5 Host mvel fora re rea de cobertura ................................. 52 Figura 4.6 Host mvel restabelecendo a conexo em uma rede externa ... 53 Figura 4.7 HA enviando pacotes para o FA (encapsulamento) ........ 54 Figura 4.8 FA enviando pacotes ao host mvel (desencapsulamento) ...................................................... 55 8. VIII Glossrio rea de cobertura (Coverage area) - a rea sobre a qual o sinal de um transmissor (sem fio) pode ser recebido. ARP (Address Resolutation Protocol) - um protocolo padro que realiza resoluo de endereos entre endereos IP e vrios endereos da camada de enlace. Autenticao (Authentication) - Aprova ou desaprova a identidade reivindicada de algum ou alguma coisa. Autorizao (Authorization) - o processo de verificao onde comprova-se que a unidade tem permisso de acesso a um recurso. Backbone - um link ou links de alta velocidade usados para interconectar os roteadores de provedores de servio ou organizaes. Binding - uma associao no home agent entre o home address do n mvel e seu care-of address atual e o tempo de vida remanescente desta associao. Bit - um dgito binrio (0 ou 1). Byte - um grupo de oito bits (tambm chamado de octeto ou caracter). Cabealho (header) - uma pequena poro de dados anexada aos dados passados abaixo por uma camada superior e enviada atravs da rede. 9. IX Camada fsica - camada 1 do modelo de referncia OSI, responsvel por transferir sinais eltricos, eletromagnticos, pticos, entre outros, que representam bits de informao atravs de um meio particular de comunicao. Camada de rede (network layer) - camada 3 do modelo de referncia OSI, que responsvel por mover pacotes de uma fonte original para o destino final atravs de uma topologia arbitrria de roteadores e links. Camada de transporte - Camada 4 do modelo de referncia OSI, responsvel por mover segmentos contendo dados de camadas mais acima, da origem para o destino. Protocolos da camada de transporte confiveis como o TCP, garantem a no ocorrncia de erros e a entrega em ordem seqencial de dados das camadas superiores. Outros, como o UDP, provm pouco mais que a capacidade de multiplexao que o IP prov por si mesmo. Care-of address - um endereo usado temporariamente por um n mvel como ponto de sada de um tnel quando o n mvel est conectado em um foreign link. Collocated care-of address - um endereo temporrio designado a uma das interfaces do n mvel. Congestionamento (Congestion) - uma condio na qual os roteadores de uma rede esto sobrecarregados com pacotes e so incapazes de direcion-los frente, devido a velocidade de seus links conectados. 10. X Controle de congestionamento (Congestion Control) - um algoritmo do TCP que detecta congestionamento e diminui a quantidade de dados que um remetente pode transmitir durante perodos de congestionamento. Desencapsulamento - o processo de extrair um primeiro pacote (cabealho e payload), da regio de payload de um segundo pacote. DHCP (Dynamic Host Configuration Protocol) - um protocolo pelo qual um host obtm de um servidor certas informaes que ele necessita para comunicar- se, como um endereo IP, comprimento de prefixo e o endereo do servidor DNS. DNS (Domain Name System) - um sistema na Internet que mapeia o nome de hosts em endereos IP. Encapsulamento (Encapsulation) - o processo de colocar um primeiro pacote (cabealho mais payload) dentro da regio de payload de um segundo pacote. Ethernet - um protocolo da camada de enlace designado para compartilhar uma media e tipicamente utilizado sobre fio de cobre. A Ethernet geralmente opera a 10 Mbps ou 100 Mbps. Foreign Agent - um roteador com no mnimo uma interface no foreign link atual do n mvel. Quando um n mvel utiliza um foreign agent care-of address, o foreign agent responsvel pela extrao de um pacote do tnel e entrega o mesmo para o n mvel. Um foreign agent poder tambm servir como um roteador padro para pacotes enviados por um n mvel registrado. 11. XI Foreign agent care-of address - um endereo de um foreign agent que tem no mnimo uma interface no foreign link atual do n mvel. Foreign link (foreign network) - qualquer outro link diferente do home link do n mvel, isto , qualquer link no qual o prefixo de rede no igual ao prefixo de rede do home address do n mvel. FTP (File Transfer Protocol) - um protocolo da camada de aplicao na Internet, usado para transferir arquivos entre dois hosts atravs da rede. Home address - um endereo permanente de um n mvel que utilizado em correspondncia com outros ns, independente da sua localizao atual. Home Agent - um roteador com no mnimo uma interface no home link do n mvel. O home agent intercepta pacotes destinados para o home address e envia-os via tnel para o care-of address do n mvel, quando o mesmo est conectado ao foreign link. Um n mvel informa a seu home agent seu care-of address atual atravs de um protocolo de registro autenticado, definido pelo IP Mvel. Home link (home network) - o link que possui o mesmo prefixo de rede de um home address permanente de um n mvel. Hop - a distncia entre uma fonte e um destino medida no nmero de roteadores que os separam (por exemplo, hosts vizinhos esto "zero hops" distantes, hosts separados por um simples roteador esto "um hop"distantes, etc.) Host - qualquer n que no seja um roteador. 12. XII Host mvel (mobile host) - um n mvel que mantm conectividade por si mesmo. IETF (Internet Engineering Task Force) - grupos de trabalho para produzir e definir padres para a Internet ou resolver um problema operacional na Internet. O grupo de trabalho IP Routing for Wireless/Mobile Hosts (mobileip) produziu as RFC's 2002-2006, que definem a operao do IP Mvel. Interface - a conexo fsica de um n com o link. Interface virtual - uma interface que realiza encapsulamento ou desencapsulamento, mas, ao contrrio de uma interface fsica, no conecta um n a um meio fsico. Internet - uma rede global baseada no grupo de protocolos do TCP/IP. IP (Internet Protocol) - o protocolo da camada de rede da Internet. O IP prov a entrega de pacotes pelo melhor esforo, sem conexo, em nome da camada de transporte e dos protocolos das camadas mais altas. LAN (Local Area Network) uma rede cobrindo uma rea geogrfica relativamente pequena, tipicamente na ordem de metros ou centenas de metros. Link - a media sobre a qual os ns podem comunicar-se na camada de link, isto , a camada imediatamente abaixo do IP. Exemplos: Ethernet, links PPP, X.25, Frame Relay ou redes ATM. 13. XIII Media (Medium) - uma facilidade de comunicao sobre a qual os bits podem ser transferidos na camada fsica, isto , a camada abaixo da camada de link de dados. Exemplos: fio de cobre, fibra-tica, e canais de rdio. Mobilidade (mobility) - a habilidade de um n mudar seu ponto de conexo de uma rede para outra, enquanto mantm todas as comunicaes existentes e usando o mesmo endereo IP no novo link. Mobilidade heterognea (Heterogeneous mobility) - mobilidade atravs de diferentes tipos redes ou meios diferentes. O IP Mvel nico na habilidade de prover mobilidade heterognea. Mobilidade homognea (Homogeneous mobility) - mobilidade atravs de um simples tipo de link e a media subjacente. CPDP e IEEE 802.11 provm mobilidade homognea, enquanto o IP Mvel acomoda tanto mobilidade homognea como heterognea. N - um host ou um roteador. N mvel (mobile node) - um n com capacidade de mobilidade, isto , um n que pode mudar seu ponto de conexo de um link para outro, enquanto mantm todas as comunicaes existentes e usando o mesmo endereo IP no novo link. OSI (Open System Interconnection) - um modelo de referncia de sete camadas para comunicaes de computadores. Pacote (packet) - cabealho mais payload. 14. XIV Payload - a poro de um segmento, pacote ou frame contendo dados que sero passados abaixo por um protocolo de uma camada superior ou aplicao. PPP (Point-to-Point Protocol) - um padro da camada de enlace para encapsulamento de pacotes de vrios diferentes protocolos em redes ponto a ponto, como linhas telefnicas. Prefixo de rede (network prefix) - uma string de bits que consiste de algum nmero de bits iniciais de um endereo IP. O prefixo de rede idntico para todos os ns no mesmo ponto de conexo. Protocolo - um grupo de regras e procedimentos governando como dois ou mais computadores cooperam para realizar funes especficas atravs da rede. Protocolo de roteamento (Routing protocol) - um protocolo usado entre roteadores para trocar informaes sobre a localizao de destinos na rede (por exemplo: OSPF, RIP, BGP). Proxy ARP - uma mensagem ARP Reply enviada por um n designado em nome de algum outro n, que incapaz de responder a uma mensagem ARP Request por si mesmo. Por exemplo, um home agent envia mensagens Proxy ARP para um n mvel que registrou seu care-of address em um foreign link. Rede mvel (mobile network) - uma coleo de hosts e roteadores que so fixos entre si, mas so coletivamente mveis, como uma unidade, em relao ao resto da poro fixa da Internet. 15. XV Registro (Registration) - o processo pelo qual um n mvel informa a seu home agent seu care-of address atual e, em alguns casos, requer servio de um foreign agent. RFCs (request for Comments) - uma srie de documentos que contm protocolos padres da Internet, como tambm uma grande variedade de outras informaes interessantes e teis, de relevncia para a comunidade da Internet. Roteador (Router) - um dispositivo da camada de rede que direciona pacotes no explicitamente endereados para ele mesmo. Tabela de roteamento (routing table) - uma entidade de software ou hardware dentro de um host ou roteador que utiliza isto para selecionar o prximo destino e a interface de sada para pacotes que ela transmite. TCP (Transmission Control Protocol) - um protocolo de transporte confivel, full-duplex e orientado a conexo usado atravs da Internet. Topologia - o layout de uma rede, especificamente, a interconexo entre hosts, roteadores e pontos de conexo na rede. Tnel (tunnel) - o caminho seguido por um primeiro pacote enquanto ele encapsulado dentro do payload de um segundo pacote. UDP (User Datagram Protocol) - um protocolo da camada de transporte no confivel, no orientado a conexo usado atravs da Internet. O UDP um pouco mais que uma interface da camada de aplicao para o IP. 16. XVI 17. 1 Captulo 1 Introduo A necessidade crescente do homem em romper suas prprias limitaes buscando solues tecnolgicas ou mesmo novas tecnologias como forma de expandir o universo de possibilidades, faz da informao um bem de valor inestimvel. Como possvel estabelecer comunicao a partir de um automvel, uma aeronave, um txi, um nibus ou em situaes de calamidade como enchentes e terremotos e at mesmo em uma guerra? Alguns sistemas de comunicao utilizam os fios de cobre como o par tranado, o cabo coaxial ou utilizam fibra ptica como forma de interconectar equipamentos. Outros sistemas transmitem os dados pelo espao, como o caso da transmisso por raios infravermelhos, laser, microondas e rdio. A essas redes que utilizam estas tcnicas chamamos de redes sem fio [Derfler (1993)]. A evoluo da comunicao sem fio e da tecnologia da informtica buscam atender diversas necessidades do mercado como, por exemplo, as redes locais sem fio, os servios celulares, as transmisses via satlite, TV, sistemas de navegao, etc [Ferreira (1999)]. Muitos pesquisadores e visionrios sustentam firmemente a posio de que o futuro das redes de computadores ser composto de equipamentos portteis interconectados por backbones de fibra ptica de alta velocidade [Tanenbaum (1997)]. Eles so motivados, basicamente, por dois processos distintos que convergem este enfoque a crescente miniaturizao dos 18. 2 componentes eletrnicos e o advento da tecnologia de comunicao pessoal sem fio. Atualmente organizaes de todo porte necessitam acessar e compartilhar informaes atravs de redes digitais. O poder das redes de comunicao foi percebido como elemento indispensvel no cenrio mundial. Entretanto, muitos dos recursos hoje desfrutados, at poucos anos atrs eram limitados a acessos atravs de redes locais com fio [Lough (1997)]. Profissionais com necessidades de mobilidade constante e acesso informao on-line, como os mdicos, profissionais liberais, usurios do comrcio e universitrios contriburam para disseminar a tecnologia das redes locais sem fio (WLAN Wireless Local Area Network), notadamente aps a autorizao do uso da banda Industrial, Cientfica e Mdica (ISM Industrial, Scientific e Medical) regulamentada pelo rgo de comunicaes nos Estados Unidos (FCC Federal Communications Comission) em 1985 e a regulamentao do padro IEEE 802.11 de redes sem fio em junho de 1997 e as adies em 1999. O problema que a maioria dos protocolos de rede e as complexas regras que definem como a informao trocada entre dois ou mais computadores, foram desenvolvidos no passado, quando os computadores no tinham grandes necessidades de mobilidade. Como resultado disto, muitos destes protocolos falham em operar na presena de computadores mveis, tendo como exemplo um dos principais protocolos utilizados para conectar a Internet de hoje, o IP (Internet Protocol). No IP os pacotes so roteados para seus destinos de acordo com o endereo IP, que so endereos associados a uma localizao de rede fixa. Quando o destino de um pacote um host mvel esta associao no ocorrer, isso significa que cada novo ponto de ligao feito pelo host associado com um novo nmero de rede, portanto, um novo endereo IP, tornando a mobilidade impraticvel. 19. 3 Devido a estes problemas de mobilidade foi desenvolvido o IP Mvel que uma soluo para o problema de transferncia de informao de ou para computadores mveis. O IP Mvel independente do meio fsico atravs do qual um computador mvel se comunica e ainda permite ao mesmo alterar sua localizao sem recomear suas aplicaes e sem interromper qualquer comunicao em andamento. O IP Mvel tambm amplamente empregado nos sistemas de comunicaes mveis (sistemas celulares) que comeam a ser implantados nos dias de hoje. O IP Mvel permite que o dispositivo mvel tenha dois endereos, o home address (endereo local) que esttico e usado, por exemplo, para identificar conexes TCP e o care-of address, que muda a cada novo ponto de conexo e pode ser visto como o endereo topolgico do host mvel, ele indica o nmero de rede e assim indica o ponto de conexo do host mvel com respeito topologia de rede. Este trabalho objetiva simular o envio de pacotes para um Host Mvel (HM) utilizando IP mvel em trs situaes diferentes: 1. O HM em sua prpria rede (home link). 2. O HM aps ter migrado para outra rede IP (foreign link). 3. O HM recebendo pacotes em movimento, ou seja, migrando de uma rede para outra (handoff). O mtodo por simulao permite atravs de um custo baixo confeco de modelos complexos e resoluo destes com menor desenvolvimento matemtico, no obrigando a simplificaes do modelo, o que pode resultar em imperfeies na representao do sistema. O mtodo por simulao tambm permite obter os resultados num curto prazo, para isso, emprega-se todo o poder computacional para a representao do modelo requerido. 20. 4 Um dos simuladores que tem sido utilizado com grande freqncia em pesquisas em redes de computadores o Network Simulator NS [NS-2]. Concebido em 1989 a partir de uma variao do REAL Network Simulator [KESHAV], um projeto da Cornell University, EUA, o NS tem evoludo desde ento, sempre com suporte e apoio de vrias organizaes acadmicas e comerciais durante perodos. No captulo seguinte detalhado o IP Mvel bem como a arquitetura e funcionamento do NS em redes sem fio e o suporte para o IP Mvel, no captulo trs descrito as diferentes situaes de simulao objetivadas neste trabalho e o modelo de sua implementao e por fim temos o cronograma de atividades previstos para o desenvolvimento do projeto no captulo quatro. 21. 5 Captulo 2 Referencial Terico 2.1 IP Mvel O IP Mvel foi produzido pelo grupo de trabalho IP Routing for Wireless/ Mobile Hosts (mobileip) do IETF (Internet Engineering Task Force) [Perkins], formado em Junho de 1992. O documento padro do IP Mvel inclua as seguintes RFCs (Request for Comments): - RFC 2002, que define o protocolo IP Mvel; - RFCs 2003, 2004 e 1701 que definem trs respectivos tipos de tunneling usados no IP Mvel; - RFC 2005, que descreve a aplicabilidade do IP Mvel; - RFC 2006, que define a MIB (Mobile IP Management Information Base). A MIB define uma coleo de variveis dentro de um host que implementa o IP Mvel, que pode ser examinado ou configurado por uma estao de gerenciamento usando a verso 2 do SNMPv2 (Simple Network Management Protocol) [RFC 1905]. O termo IP Mvel geralmente refere-se a todos estes documentos que, juntos, formam a tecnologia padro para mobilidade de dispositivos na Internet. O IP Mvel uma soluo da camada de rede que permite a mobilidade na Internet. Isto significa que o IP Mvel realiza sua tarefa configurando as tabelas de roteamento em hosts apropriados, de modo que pacotes IP podem ser enviados a hosts mveis no conectados a seus pontos de acesso padro 22. 6 resolvendo o problema primrio de roteamento de pacotes IP para hosts mveis, o que um grande passo para prover mobilidade na Internet. De fato, o IP Mvel pode ser considerado como um protocolo de roteamento com o propsito de permitir que pacotes sejam roteados para hosts mveis, os quais podem potencialmente mudar suas localizaes rapidamente. Uma soluo completa de mobilidade envolveria um aprimoramento nas outras camadas da pilha de protocolos. Portanto, o escopo da soluo do IP Mvel simplesmente a especificao dos mecanismos que so necessrios para rotear pacotes para hosts mveis, na camada de rede. Outras tecnologias, incluindo modificaes do TCP e das aplicaes, esto fora do objetivo do IP Mvel. Como um protocolo da camada de rede, o IP Mvel completamente independente do meio fsico sobre o qual ele opera. Desta forma, um host empregando IP Mvel pode mover-se de um tipo de meio para outro, sem perder a conectividade. Por exemplo, o IP Mvel permite a um notebook desconectar-se de uma rede Ethernet por fio e chavear para uma interface LAN sem fio, sem experimentar uma interrupo no servio de rede. A habilidade de um host mvel mover-se entre diferentes tipos de meio mantendo sua capacidade de comunicar-se denominada de mobilidade heterognea. Da mesma forma, o IP Mvel tambm permite a um host mvel mover-se na rede de um link para outro, no mesmo meio (em uma localizao diferente) e manter sua conectividade. A tecnologia que permite o movimento entre diversas conexes da rede, no mesmo tipo de meio fsico, conhecida como mobilidade homognea. 23. 7 2.1.1 Definio O padro proposto para o IP Mvel pelo Internet Engineering Task Force (IETF) define trs novas entidades funcionais [Sun (2001)] que esto ilustradas na Figura 2.1: Host mvel: um host que pode alterar seu ponto de conexo na Internet (link), mantendo todas as comunicaes em andamento. Home Agent: um roteador com uma interface no home link do host mvel, no qual: a) Sempre que o host mvel se muda para outra localizao, registra o seu novo care-of address no seu home agent informado sua localizao atual; b) Recebe todos os pacotes destinados ao host mvel (home address) e envia via tunnel para a posio atual do host mvel, isto , para o care- of address. Foreign Agent: Um roteador com uma interface no foreign link do host mvel que: a) Informar ao home agent do host mvel seu respectivo care-of address atual; b) Responsvel por rotear os pacotes gerados pelo host mvel enquanto conectado a um foreign link, substituindo o home agent 24. 8 Foreign Agent Foreign Agent Topologia arbitraria de Roteadores e Links Home Agent N Mvel "visitando" um foreign link Foreign Link Foreign Link N Mvel "at home" Home Link Figura 2.1 - Entidades e relacionamentos do IP Mvel. Fonte: Dados da Pesquisa 2.1.2 Home Address, Home Link e Home Agent O home address o endereo IP designado ao host mvel permanentemente, isto , da mesma maneira que seria designado para um host estacionrio ou para um roteador e faz parecer que o host mvel est continuamente disponvel para receber dados na sua rede local. O prefixo de rede do home address de um host mvel define seu home link (rede local). Portanto, seu home link a rede na qual o host mvel parece alcanvel para o resto da Internet. O seu home agent o roteador que tem no mnimo uma interface no home link do host mvel e a razo pela qual o host mvel alcanvel atravs de seu home address at quando no esta em sua rede local. O home link do host mvel no precisa ser uma ligao fsica, ele pode ser um ponto de conexo virtual existente somente como um software dentro de seu home agent. Portanto o home agent pode ser considerado como tendo uma interface virtual atravs da qual ele se conecta ao seu home link virtual [Sun (2001)]. 25. 9 2.1.3 Care-of Address, Foreign Link e Foreign Agent Um endereo care-of address o atual endereo IP do host mvel que est visitando um foreign link, portanto no localizado em seu home link. Este endereo especfico para o foreign link atualmente sendo visitado por um host mvel, ele alterado toda vez que o host move-se de um foreign link para outro. O care-of address utilizado como endereo IP de destino do tunnel, isto , quando o home agent quer enviar um pacote para o host mvel situado em um foreign link e deve ser no mximo um passo frente (next hop) a partir do foreign link do host mvel, esses pacotes destinados para um care-of address podem ser entregues usando os mecanismos de roteamento existentes no sendo necessrios procedimentos especficos do IP Mvel. Existem conceitualmente, dois tipos de care-of address: Foreign agent care-of address: um endereo IP de um foreign agent o qual tem uma interface no foreign link sendo visitado pelo host mvel. Um foreign agent care-of address pode ser qualquer um dos endereos IP do foreign agent. Deste modo, o prefixo de rede de um foreign agent care-of address no precisa ser igual ao prefixo de rede que foi designado para o foreign link. Um foreign agent care-of address pode ser partilhado por vrios hosts mveis simultaneamente[Sun (2001)]; Collocated care-of address: um endereo IP temporariamente designado para uma interface do prprio host mvel. O prefixo de rede de um collocated care-of address deve ser igual ao prefixo de rede que foi designado para o foreign link sendo visitado pelo host mvel. Este tipo de care-of address poder ser usado pelo host mvel em situaes onde no h foreign agents disponveis no foreign link. Um collocated 26. 10 care-of address pode ser usado por somente um host mvel ao mesmo tempo[Sun (2001)]. 2.1.4 Tunneling Um tnel um caminho criado entre um home agent e um foreign agent, de forma a permitir que dados destinados a um host mvel pertencente quele home agent possam ser entregues ao host mvel, no momento em que o mesmo estiver conectado ao foreign link associado ao foreign agent em questo. O mecanismo de encapsulamento padro (Figura 2.2) que tem de ser suportado por todos os agentes mveis que usam IP Mvel o IP-within- IP[Perkins (1996-I)]. Ao usar IP-within-IP o home agent insere no incio do tnel um novo cabealho IP frente do cabealho IP de qualquer datagrama endereado ao home address do host mvel. O novo cabealho do tnel usa o care-of address do host mvel como endereo IP destino, ou destino do tnel. O endereo IP do incio do tnel o home agent e o cabealho do tnel usa o nmero do nvel mais alto do protocolo (nmero 4), indicando que o prximo cabealho novamente um cabealho IP. No IP-within-IP o cabealho original IP preservado como a primeira parte dos dados a ler do cabealho do tnel. Portanto, para recuperar o pacote original o foreign agent apenas tem de eliminar o cabealho do tnel e entregar o resto ao host mvel. Por vezes o cabealho do tnel usa o nmero 55 no cabealho interior. Isto acontece quando o home agent usa encapsulamento mnimo em vez do IP- within-IP. O processamento no cabealho do encapsulamento mnimo[Perkins (1996-II)] ligeiramente mais complicado do que o processamento no IP- within-IP, porque alguma da informao do cabealho do tnel est combinada com informao no cabealho de encapsulamento mnimo para reconstituir o cabealho IP original. Por outro lado, o overhead no cabealho reduzido. 27. 11 Figura 2.2 - IP Tunneling Fonte: [Perkins] 2.1.5 Agent Discovery O Agent Discovery[Sun (2001)] o processo pelo qual o host mvel: determina se ele est atualmente conectado em seu home link ou em um foreign link; detecta se ele moveu-se de um link para outro; obtm um endereo care-of address, quando conectado em um foreign link. O Agent Discovery consiste de duas simples mensagens. A primeira, Agent Advertisement[Sun (2001)] usada pelos agentes (home, foreign ou ambos) para anunciar suas capacidades para os hosts mveis. Especificamente 28. 12 Agent Advertisements so periodicamente transmitidas como multicasts ou broadcasts para cada link nos quais um host configurado para operar como home agent, foreign agent ou ambos. Isto permite ao host mvel que est conectado ao link determinar se qualquer agente est presente e suas respectivas identidades (endereos IP) e capacidades. O segundo tipo de mensagem, Agent Solicitation[Sun (2001)], enviada pelos hosts mveis que no tm a pacincia de esperar pela prxima transmisso peridica de mensagens Agent Advertisements. O objetivo da mensagem Agent Solicitation forar qualquer agente no link a imediatamente transmitir uma mensagem Agent Advertisement. Isto til em situaes onde a freqncia na qual os agentes esto transmitindo muito baixa, para um host mvel que est se movendo rapidamente de um link para outro. 2.1.6 Registro Um host mvel registra-se quando ele detectar que seu ponto de conexo na rede tenha mudado de um link para outro. Devido ao fato de que estes registros so vlidos somente durante um tempo de vida especfico, um host mvel precisa registrar-se novamente quando o registro existente est prximo a expirar. O Registro do IP Mvel um processo atravs do qual o host mvel: Requer servios de roteamento de um foreign agent em um foreign link; Informa a seu home agent seu care-of address corrente; Renova um registro que est prximo a expirar; Cancela o registro quando ele retorna a seu home link; Tenha mltiplos e simultneos care-of address registrados com seu home agent, permitindo que o home agent envie via tnel uma cpia dos 29. 13 pacotes destinados para o home address do host mvel para cada um dos mltiplos care-of address; Cancele o registro de um care-of address especfico enquanto mantm os outros; Dinamicamente verifica o endereo de um home agent potencial, se o host mvel no tem um conhecimento prvio do seu (ou seus) home agent(s). Quando um host mvel detecta que ele est conectado a seu home link, ele cancela o registro com seu home agent e comea a comportar-se como qualquer dispositivo fixo ou roteador, isto , no utiliza nenhuma funcionalidade adicional do IP Mvel. Quando o host mvel detecta que ele est conectado a um foreign link, ele obtm um care-of address e registra o mesmo com seu home agent, e esse registro consiste de uma troca de mensagens Registration Request e Registration Reply entre um host mvel e seu home agent possivelmente via um foreign agent (se existir um no foreign link) [Sun (2001)],este processo de registro est ilustrado na Figura 2.3. Foreign Agent Topologia arbitrria de Roteadores e Links Home Agent Home LinkForeign Link 1 4 2 3 Registration Request Registration Reply Figura 2.3 - Processo de registro no IP Mvel Fonte: Dados da Pesquisa 30. 14 2.1.7 Autenticao A necessidade de autenticar a informao do registro desempenhou um papel fundamental na especificao do IP Mvel. Cada host mvel e o home agent tm de partilhar uma associao de segurana e serem capazes de usar Message Digest 5 (RFC 1321) [Rivest (1992)] com chaves de 128 bits para criar assinaturas digitais impossveis de falsificar nos pedidos de registro. A assinatura calculada aplicando o algoritmo hash do MD5 a todos os dados do cabealho da mensagem e s extenses que precedem a assinatura. Para assegurar o pedido de registro, cada pedido deve conter informao unvoca para que na prtica dois diferentes pedidos de registro no tenham o mesmo hash MD5. Se assim no fosse, o protocolo estaria sujeito a ataques por resposta, nos quais hosts maliciosos poderiam guardar registros vlidos para respostas posteriores, destruindo a possibilidade do home agent estabelecer posteriormente um tnel com o care-of address do host mvel. Para assegurar que isto no acontece o IP Mvel inclui na mensagem de registro um campo especial de identificao que muda em cada novo registro. A semntica exata do campo de identificao depende de vrios parmetros, que esto descritos com grande detalhe na especificao do protocolo. A grosso modo, existem duas formas principais de tornar o campo de identificao nico [Perkins]: Usar um selo temporal Assim cada novo registro ter um selo temporal posterior diferindo assim de registros anteriores. Usar um nmero pseudo-aleatrio Usando bits suficientes muito improvvel que dois valores independentes escolhidos para o campo de identificao sejam iguais. Quando 31. 15 este mtodo usado, o IP Mvel define um mtodo que protege tanto o pedido de registro como a resposta de se repetirem e usa 32 bits aleatrios no campo de identificao. Se o host mvel e o home agent se afastarem demasiadamente na sincronizao no uso de selos temporais ou se perderem o rastro aos nmeros aleatrios esperados, o home agent rejeita os o pedido de registro e inclui informao que permita uma nova sincronizao dentro da resposta [Perkins]. O campo de identificao tambm usado pelo foreign agent para fazer corresponder pedidos de registro pendentes s respostas aos registros quando estes chegam ao home agent e para subseqentemente ser capaz de fazer chegar resposta ao host mvel. O foreign agent tambm guarda outra informao para os pedidos pendentes, incluindo o home address do host mvel, o endereo MAC do host mvel, o nmero do porto fonte para o pedido de registro do host mvel, o tempo de vida do registro proposto pelo host mvel e o endereo do home agent. O foreign agent pode limitar os tempos de vida dos registros a um valor configurvel que ele pe nos seus anncios de agente. O home agent pode reduzir o tempo de vida do registro, que ele inclui como uma parte da resposta ao pedido, mas nunca o pode aumentar. No IP Mvel os foreign agents so, sobretudo passivos, fazendo essencialmente o que lhe dizem para fazer, como entregar pedidos de registro e respostas para frente e para trs entre o home agent e o host mvel, etc. O foreign agent tambm desencapsula o trfego vindo do home agent e envia-o ao host mvel. Note-se que os foreign agents no tm de se autenticar perante o host mvel ou o home agent. Um foreign agent fictcio pode-se fazer passar por um foreign agent verdadeiro simplesmente seguindo o protocolo e oferecendo anncios de agente ao host mvel. O agente fictcio pode, por exemplo, ento se recusar a fazer seguir os pacotes desencapsulados para o host mvel quando os 32. 16 recebe. No entanto, o resultado no pior do que se algum host fosse levado a usar o roteador errado, o que possvel usando anncios de routing no autenticados como est especificado no RFC 1256[Deering (1991)]. 2.1.8 Descoberta Automtica do Home Agent Quando o host mvel no consegue contatar o seu home agent o IP Mvel tem um mecanismo que deixa o host mvel tentar registrar-se com outro home agent desconhecido na sua rede local. Este mtodo de descoberta automtica do home agent conseguido usando um endereo IP de broadcast em vez do endereo IP do home agent como destino do pedido de registro. Quando o pacote de broadcast chega rede local, outros home agents da rede iro enviar uma mensagem de rejeio ao host mvel. No entanto, os seus avisos de rejeio contm os seus endereos para o host mvel os usar numa nova tentativa de registro. Note-se que este broadcast no um broadcast na Internet, mas um broadcast direcionado que chega apenas a hosts IP da rede local. 2.1.9 Resumindo o Funcionamento do IP Mvel O funcionamento do IP Mvel se d da seguinte forma: 1) Home agents e foreign agents notificam suas presenas em todos os links conectados atravs de multicast ou broadcast peridicos de mensagens especiais do IP Mvel chamadas Agent Advertisements; 2) Hosts mveis escutando estas mensagens (Agent Advertisements) e examinando seus contedos determinam se eles esto conectados em seus home links ou em um foreign link. Enquanto conectados em seus respectivos home links, hosts mveis agem como host estacionrios, 33. 17 isto , eles no utilizam nenhuma funcionalidade do IP Mvel. Os passos a seguir consideram que o host mvel est conectado em um foreign link; 3) Um host mvel conectado em um foreign link adquire um care-of address. Um foreign agent care-of address pode ser lido de um dos campos dentro das mensagens Agent Advertisement. Um collocated care-of address deve ser adquirido por algum procedimento de designao como, por exemplo, o DHCP, o PPP ou por uma configurao manual; 4) O host mvel registra o care-of address adquirido no passo anterior com seu home agent, utilizando uma troca de mensagens definida pelo IP Mvel. No procedimento de registro, o host mvel solicita o servio de um foreign agent, se um estiver presente host link. Para fins de segurana, as mensagens de registro devem ser autenticadas; 5) O home agent ou qualquer outro roteador no home link avisa que o prefixo de rede do home address do host mvel pode ser atingido (advertise reachability), deste modo os pacotes destinados para o home address do host mvel so atrados. O home agent intercepta estes pacotes, possivelmente usando um Proxy ARP e os envia via tunnel para o care-of address que o host mvel registrou no passo anterior; 6) No care-of address (no foreign agent ou em uma das prprias interfaces do host mvel) o pacote original extrado do tunnel e ento entregue ao host mvel; 7) Na direo reversa, pacotes enviados pelo host mvel so diretamente roteados para seus destinos, sem qualquer necessidade de tunneling. O foreign agent trabalha como um roteador para todos os pacotes gerados pelo host mvel visitante. 34. 18 2.2 Network Simulator (NS) O NS um simulador que tem sido utilizado com grande freqncia em pesquisas em redes de computadores. Atualmente o seu desenvolvimento suportado pelo DARPA (Defense Advanced Research Projects Agency, EUA) atravs do projeto SAMAN [SAMAN] e pela NSF (National Science Foundation, EUA) atravs do projeto CONSER [CONSER], em colaborao com outros pesquisadores como o centro ICIR [ICIR]. O simulador j recebeu apoio do Lawrence Berkeley National Laboratory, do Xerox PARC (Palo Alto Research Center), da Universidade da Califrnia em Berkeley, Sun Microsystems e tambm agrega diversos mdulos contribudos por pesquisadores independentes. um software de cdigo livre e fornecido gratuitamente [NS-2]. Uma lista de discusso mantida pelos desenvolvedores, onde os pesquisadores de diversas partes do mundo podem trocar idias e experincias, e tambm propor correes para o cdigo do simulador, que depois de avaliadas podem ser incorporadas. Estes pesquisadores, oriundos de pases como Estados Unidos, ndia, Inglaterra, Itlia, Taiwan e tambm Brasil, contribuem para o valor desta ferramenta. O NS um simulador de eventos discretos, focado para o desenvolvimento de pesquisas em redes de computadores. Ele prev suporte a TCP e variantes do protocolo, multicast, redes sem fio (wireless), roteamento e satlite.Tem facilidades de tracing, que a coleta e registro de dados de cada evento da simulao para anlise posterior. Possui um visualizador grfico para animaes da simulao (nam network animator), timers e escalonadores, modelos para controle de erros e algumas ferramentas matemticas como gerador de nmeros aleatrios e integrais para clculos estatsticos. Inclui tambm uma ferramenta de plotagem, o xgraph, e vrios tipos de geradores de trfego. 35. 19 O NS foi desenvolvido na linguagem orientada a objetos C++, de forma modular. O uso desta linguagem nos mdulos confere velocidade e mais praticidade na implementao de protocolos e modificao de classes. A interface com o usurio, configurao, estabelecimento de parmetros e manipulao de objetos e classes feita em modo texto, atravs da linguagem interpretada Otcl [OTCL], que tambm orientada a objetos. 2.2.1 Estrutura A interface entre o usurio e o NS d-se atravs da linguagem script Otcl. Segundo os desenvolvedores, a diviso em duas linguagens (Otcl e C++) objetiva dar ao simulador tanto velocidade e poder, quanto flexibilidade e facilidade de mudana de parmetros. O ncleo do simulador escrito em C++, conferindo velocidade, mas esta linguagem torna-se lenta para manipulao constante ou mudana de parmetros. Otcl, por ser interpretada, bem mais lenta, porm pode ser facilmente alterada. Alm do mais, os objetos compilados so disponibilizados para o interpretador Otcl por linkagem, o que virtualmente cria um objeto Otcl para cada objeto C++, e que podem ser manipulados atravs das facilidades da Otcl. A Figura 2.4 mostra a construo geral do ns . Um usurio comum atua no permetro tcl, escrevendo scripts em Otcl e executando simulaes. Os escalonadores de eventos e os componentes de rede so implementados em C++ e disponibilizados ao interpretador Otcl atravs de uma replicao feita pela camada tclcl, que recria os objetos C++ em objetos Otcl, e que podem finalmente ser manipulados por esta ltima (processo denominado linkage). Todo o conjunto constitui-se no NS, que um interpretador de Otcl com bibliotecas de simulao para redes de computadores. 36. 20 Figura 2.4 - Arquitetura do NS Fonte: [Marcos] Montar uma simulao no NS preciso ento, primeiramente, escrever um script em Otcl. Este script contm as seguintes partes bsicas: criao do objeto Simulador; abertura de arquivos para tracing e anlise posterior; criao da topologia de rede; criao de ns ou nodos; conexo dos ns entre si (links); criao das filas de sada; criao dos agentes de 4. Camada e conexo com hosts; criao dos geradores de trfego (nvel de Aplicao) e conexo com agentes de 4. Camada (nvel de Transporte); programao dos escalonadores e timers; fechamento da simulao, animao e gerao de estatsticas. O processo de simulao pode ser assim resumido (Figura 2.5): confeco do script (arquivo texto comum); execuo do script com o comando ns nomedoscript.tcl; 37. 21 arquivos de tracing sero gerados com registro de cada evento simulado. - Aps concluso da simulao: imprimir estatsticas calculadas no script; visualizar os eventos com o nam; analisar resultados atravs dos arquivos de tracing com apoio de ferramentas apropriadas (awk). Figura 2.5 - Esquema de utilizao do NS Fonte: [Marcos] Um ponto importante a observar que o NS no fornece estatsticas de simulao de modo automtico; estas devem ser obtidas atravs de procedimentos matemticos no script ou pela manipulao de objetos especiais chamados monitores. Pode-se, ainda, usar ferramentas para anlise dos arquivos de tracing gerados durante a simulao, que so os verdadeiros resultados da simulao, estes arquivos com formatao especfica registram cada evento gerado pelos escalonadores. As ferramentas para anlise dos arquivos de tracing devem ento ser capazes de ler os dados gravados nestes arquivos e efetuar os clculos desejados. Uma destas ferramentas, muito utilizada, o awk [Brown], uma linguagem desenhada para buscar padres dentro de um arquivo e efetuar 38. 22 aes programadas. O animador nam pode tambm ser usado para analisar visualmente a simulao e obter algumas estatsticas, mas ele no apropriado para anlises mais profundas. Se nada for feito, o simulador apenas rodar o script, gerar os arquivos de sada (tracing) e encerrar, sem nada mostrar ao usurio. Em primeiro momento, esta caracterstica um tanto no-amigvel e no- imediatista do NS pode frustrar o usurio iniciante. Entretanto, essa a realidade de bom nmero dos simuladores existentes na categoria do NS, que no foram feitos com tica didtica. 2.2.2 Simulao de um Modelo O modelo proposto para simulao, apresentado na topologia ilustrada na Figura 2.6, contm dois geradores de trfego, um do tipo CBR (Constant Bit Rate) [Ferguson (1998)] e outro do tipo exponencial on-off. Todos os ns tm filas de sada tipo droptail, com exceo do n 2, que recebe uma fila tipo Stochastic Fair Queueing (SFQ) [Ferguson (1998)]. O n 3 receber o trfego dos geradores. O gerador exponencial estar no n 0 e enviar seus dados para o host 3, atravs do n 2. O gerador CBR estar no n 1 e enviar para o n 3, tambm atravs do n 2. O primeiro passo a criao do objeto simulador, que feita da seguinte maneira: set ns [new Simulator] No modelo proposto foi estipulado o tempo mximo de simulao: set MAX_TIME 500 39. 23 Aps a criao do objeto simulador, abre-se os arquivos tracing para posterior anlise: set nf [open out.nam w] set tr [open out.tr w] $ns trace-all $tr $ns namtrace-all $nf O primeiro arquivo (out.nam) conter o registro de eventos simulados no formato para leitura do animador nam, e o segundo arquivo (out.tr) conter os registros dos eventos de maneira mais completa, permitindo anlises profundas da simulao. A topologia da rede criada da seguinte maneira: set n0 [$ns node] set n1 [$ns node] set n2 [$ns node] set n3 [$ns node] $ns duplex-link $n0 $n2 10Mb 10ms DropTail $ns duplex-link $n1 $n2 10Mb 10ms DropTail $ns duplex-link $n2 $n3 10Mb 10ms SFQ Nas quatro primeiras linhas do cdigo acima so criados os ns. Configura-se ento a ligao entre estes ns, com links do tipo duplex, cada um com largura de banda de 10Mbits e atraso de propagao de 10 ms. A procedure abaixo cria uma 4. Camada do tipo UDP, um gerador de trfego exponencial on-off e faz a conexo de ambos, entre os ns 0 e 3. O manual do NS disponvel em [NS-2] traz mais detalhes sobre a configurao dos geradores de trfego. A procedure tambm define uma cor para uso do nam. 40. 24 Proc attach-expoo-traffic {node sink size burst idle rate class color} { set ns [Simulator instance] set source [new Agent/UDP] $ns attach-agent $node $source $source set class_ $class $ns color $class $color set traffic [new Application/Traffic/Exponential] $traffic set packetSize_ $size $traffic set burst_time_ $burst $traffic set idle_rate_ $idle $traffic set rate_ $rate $traffic attach-agent $source $ns connect $source $sink return $traffic } set traffgen0 [attach-expoo-traffic $n0 $sink0 1000 800ms 2ms 5M 1 Green] Para o n 1, as linhas abaixo criam a 4 camada tipo UDP e um gerador de trfego CBR, e tambm a conexo destes entre os ns 1 e 3. Set udp1 [new Agent/UDP] $udp1 set class_ 2 $ns attach-agent $n1 $udp1 set cbr0 [new Application/Traffic/CBR] $cbr0 set packetSize_ 1000 $cbr0 set interval_ 0.005 41. 25 $cbr0 attach-agent $udp1 $ns connect $udp1 $sink0 As linhas abaixo trazem a programao do escalonador de eventos: $ns at 0.0 $traffgen0 start $ns at 1.0 $cbr0 start $ns at [expr $MAX_TIME-1] $traffgen0 stop $ns at [expr $MAX_TIME-1] $cbr0 stop $ns at $MAX_TIME finish As primeiras quatro linhas definem em que intervalos de tempo cada gerador de trfego deve iniciar e parar suas atividades. A expresso [expr $MAX_TIME-1] significa o tempo total da simulao menos um segundo, que quando o trfego interrompe suas atividades. O cdigo abaixo define o processo de finalizao da simulao, chamado pelo escalonador. Os arquivos de trace so fechados e mostram-se algumas estatsticas coletadas durante a simulao (atravs do objeto LossMonitor). O visualizador nam tambm executado aqui. A Figura 2.6 traz o nam em ao. 42. 26 Figura 2.6 - Tela do nam executando a simulao Fonte: [Marcos] Proc finish {} { global ns nf tr MAX_TIME sink0 $ns flush-trace close $nf close $tr set now [$ns now] puts Estatisticas: puts Tempo Simulacao: $now s puts Pacotes recebidos no nodo 3: [$sink0 set npkts_] puts Bytes recebidos no nodo 3: [$sink0 set bytes_] puts Utilizacao do link: [expr [$sink0 set bytes_ ]*8. / (10000000. * $now) *100.]% exec nam out.nam & 43. 27 exit 0 } A ultima linha do script, finalmente, inicia a execuo do simulador. $ns run Para este modelo e parmetros utilizados, o script forneceu os seguintes resultados: Estatisticas Tempo Simulacao: 500 s Pacotes recebidos no nodo 3: 384377 Bytes recebidos no nodo 3: 334576500 Utilizacao do link: 53.532239999999994% 2.2.3 O Modelo Wireless no NS O modelo wireless consiste essencialmente no MobileNode (mobilenode.h), com caractersticas suportando adicionais que permite simulaes de redes ad hoc multi-hop, LANs wireless etc. Um n mvel derivado do n bsico o Node(node.h) com funcionalidades adicionadas de um n wireless e mobilidade como a habilidade de mover-se dentro de uma dada topologia, habilidade de receber e transmitir sinais a partir de uma canal wireless etc. Uma diferena principal entre eles, que um host mvel no est conectado por meio de links a outros hosts ou host mvel [NS-2] . Na criao de um objeto MobileNode especificado a criao de um agente de roteamento, cria a pilha de rede consistindo de uma camada de enlace (link layer), camada mac e uma interface de rede com uma antena, interconectando 44. 28 estes componentes e conectando a pilha ao canal de comunicao, ilustrado na Figura 2.7. Figura 2.7- Esquema de um MobileNode Fonte: [NS-2] 2.2.4 IP Mvel no NS O cenrio do IP Mvel no NS consiste de home agents e foreign agents e tendo hosts moveis se movimentando entre eles. O home agent e foreign agent so essencialmente estaes base, enquanto os hosts mveis so basicamente 45. 29 MobileNode descritos acima. Os mtodos e procedimentos para a extenso do IP Mvel esto descritos em mip.cc e mip.h, mip-reg.cc, ns-mip.tcl e ns-wireless- mip.tcl[NS-2]. O home agent e foreign agent tm um agente registrador (reg_agent) como ilustrado na Figura 2.8 que envia sinais para os hosts mveis quando necessrio e responde as solicitaes dos hosts moveis que por sua vez tambm possuem um agente registrador que recebe e responde as solicitaes do home agent ou foreign agent. Os agents (home e foreign) enviam broadcasts ou mensagens de advertncia para os hosts mveis. O endereo usado pelas estaes base para enviar os sinais o care-of address do host mvel, que alterado sempre que ele migra para outro domnio. Quando um pacote destinado ao host mvel o home agent verifica se o host esta em seu domnio atravs do seu care-of address, caso o care-of address no seja compatvel com o endereo do home agent ele ativa o encapsulador e envia atravs da tcnica de tunelamento para o destino instanciado pelo care-of address do host mvel (endereo do foreign agent). O foreign agent recebe o pacote (decapsulator), remove o encapsulamento e envia para o host mvel. Caso o host esteja no seu domnio o pacote enviado diretamente [NS-2]. 46. 30 Figura 2.8: Esquema de uma estao base wireless Fonte: [NS-2] 47. 31 Captulo 3 Metodologia 3.1 Tipo de Pesquisa O objetivo deste trabalho simular o envio de pacotes para um hot mvel em uma rede sem fio utilizando a ferramenta de simulao Network Simulator (verso 2.26) e o IP Mvel como protocolo de transferncia de dados entre os dispositivos mveis. O trabalho foi dividido em trs partes, ou seja, trs situaes diferentes de simulao, sendo cada uma delas detalhadas a seguir: Roteamento de pacotes para um host mvel em seu home link Pacotes destinados para o home address de um host mvel so roteados para o home link do host mvel como resultado de um funcionamento normal de um roteamento por prefixo de rede. Desta forma, no so necessrios procedimentos de roteamento especiais para a entrega de pacotes para um host mvel que est conectado no seu home link. Isto implica que as regras para o roteamento de pacotes so idnticas s regras de roteamento de pacotes de qualquer host IP ou roteador convencional. Alm disso, no so necessrias regras especiais para rotear pacotes gerados pelo host mvel quando o mesmo est conectado ao seu home link. Como qualquer outro host ou roteador, cada host mvel utiliza sua prpria tabela de roteamento para selecionar o prximo hop apropriado para cada pacote 48. 32 gerado. Similarmente, nenhuma regra especial necessria para gerar ou atualizar as entradas na tabela de roteamento de um host mvel enquanto o mesmo est conectado em seu home link. Roteamento de pacotes para hosts mveis conectados no forein link O procedimento para o roteamento de pacotes para um host mvel que est conectado no foreign link est ilustrado na Figura 3.1 e pode ser sumarizado da seguinte forma: 1. Um roteador no home link, possivelmente o home agent, notifica alcance para o prefixo de rede igual quele do home address do host mvel; 2. Pacotes destinados ao home address do host mvel so, portanto, roteados em direo ao seu home link e, especificamente, em direo ao home agent do host mvel; 3. O home agent intercepta os pacotes destinados para o host mvel, assumindo que o host mvel registrou um ou mais care-of address e envia uma cpia, via tnel, para cada care-of address; 4. Em cada care-of address, um endereo de um foreign agent ou um endereo collocated dentro do prprio host mvel, o pacote original extrado do tnel e entregue para o host mvel. Os dois casos, um foreign agent care-of address e um collocated care-of address, o home agent recebe um pacote destino a um de seus hosts mveis e procura pelo binding correspondente. O home agent ento envia o pacote pelo tnel para o care-of address, no se importando se o host mvel ou o foreign agent o ponto de sada do tnel. Em ambos os casos, o pacote originado no host, e direcionado para o home address do host mvel e tambm em ambos os casos o pacote encapsulado enviado do home agent para o care-of address. 49. 33 Foreign Agent Roteador Host Home Agent N Mvel com Foreign Agent Care-of Address N Mvel com Collocated Care-of Address Pacote Original Pacote Tunneled Figura 3.1 - Roteando pacotes para um host mvel em um foreign link Fonte: Dados da Pesquisa Roteamento de pacotes para hosts mveis migrando de um forein link para outro (handoff) A funo que permite manter a continuidade da comunicao quando um usurio passa de uma clula para outra, conhecida como handoff [Alencar (1998)]. O roteamento de pacotes para hosts em movimento pode ser resumido da seguinte forma como ilustrado na Figura 3.2. 1. O host ao migrar para um novo forein link notifica o foreign agent anterior (auxiliar o host no processo de transio entre os forein links), para atualizar o seu care-of address ( novo endereo do foreigen agent); 50. 34 2. O foreign agent anterior intercepta os pacotes enviados ao host mvel e o reencapsula com o novo care-of address, para no haver perdas de pacotes durante a transio; 3. O foreign agent atual envia uma mensagem para o home agent para atualizar o seu registro (care-of address atual); 4. O foreign agent anterior fica encarregado por essa transmisso at o novo registro ser efetivado. Aps o registro, o roteamento ser idntico ao roteamento de um host conectado no forein link. Figura 3.2 - Registro durante o handoff. Fonte: [Alencar (1998)] 51. 35 3.2 Implementao A implementao de simulaes no Network Simulator foi realizada na linguagem OTcl utilizando o paradigma de orientao a objetos, para simplificar o projeto foi feito o uso das bibliotecas de rede sem fio e IP Mvel disponveis no pacote do NS, este pacote esta disponvel em http://www.isi.edu/nsnam/dist/ns-allinone-2.26.tar.gz para download, gratuito e com cdigo aberto, existe em diversas plataformas, mas com melhor desempenho em ambiente UNIX, utilizou-se a distribuio Red Hat 7.3 do sistema operacional Linux para o desenvolvimento destas simulaes. 52. 36 Captulo 4 Resultados e Discusses 4.1 Implementao A simulao do IP mvel atravs do Network Simulator foi totalmente implementada na linguagem OTcl, denominada de projeto.tcl (Anexo A). Este arquivo est com o cdigo todo escrito em ingls para futuras utilizaes. Segue abaixo uma detalhada explicao de todos os procedimentos e objetos utilizados nesta implementao. set opt(mac) Mac/802_11 O objeto MAC simula o protocolo de acesso que necessrio para dividir cada ambiente (wireless/ wired) em uma rea de rede local. Para enviar, o objeto MAC responsvel por adicionar o cabealho MAC e transmitir o pacote pelo canal, ele recebe simultaneamente pacotes partindo do classificador da camada de ligao. Quando recebe um pacote do canal, o objeto MAC se responsabiliza por enviar o pacote de dados para a camada de ligao. A classe MAC802_11 est implementada em 802_11.{cc,h} no pacote do NS. set opt(chan) Channel/WirelessChannel O canal simula a transmisso de pacotes na camada fsica. Ele deixa o objeto MAC tomar conta da conteno e detectar colises de pacotes, se mais de 53. 37 uma transmisso ultrapassa no tempo, o canal incrementa o flag de coliso. Checando este flag o objeto MAC pode detectar e cuidar das colises [NS-2]. set opt(netif) Phy/WirelessPhy A ligao da interface de rede serve como uma interface de hardware na qual usada pelo host mvel para acessar o canal. A interface de diviso de mdia wirelles est implementada como classe Phy/WirelessPhy [NS-2]. Esta interface trata de colises e recebimento de pacotes atravs de um modelo de propagao de rdio transmitido por uma interface de outro host para o canal. A interface marca cada pacote transmitido com um meta-dado que revela a interface de transmisso alguns dados, tais como, o poder de transmisso, o comprimento de onda, etc [NS-2]. Este meta-dado que est presente no cabealho do pacote utilizado pelo modelo de propagao na interface de rede de recebimento, para determinar se o pacote tem o poder mnimo para ser recebido e/ou capturado e/ou descartado pelo host receptor [NS-2]. O modelo se aproxima a interface de rdio DSSS (Lucent WaveLan direct-sequence-spread-spectrum) e est implementado em phy.{cc,h} e wireless-phy.{cc,h}. Estes modelos so usados para predizer o poder do sinal de recebimento de cada pacote. Na camada fsica de cada host wireless, h um limiar de recebimento. Quando um pacote recebido, se seu poder de sinal for inferior ao limiar de recebimento, ele marcado com erro e descartado pela camada MAC [NS-2]. set opt(ll) LL A camada de ligao responsvel por simular o protocolo de ligao de dados e preencher o endereo MAC de destino no cabealho MAC do pacote. Nesta atual implementao esta tarefa envolve duas instncias: achar o endereo 54. 38 IP do prximo hop do host e atravs deste endereo IP descobrir o correto endereo MAC (ARP). Nos hosts mveis o modulo ARP resolve todas converses do endereo IP para o endereo de hardware (MAC). A classe LL est implementada em ll.{cc,h} e ns-ll.tcl no pacote do NS. set opt(ifq) Queue/DropTail/PriQueue A interface de fila representa o local onde os pacotes podero ser guardados (ou descartados).O planejamento de pacotes refere-se ao processo de deciso usado para escolher qual pacote ser ou no utilizado. O gerenciamento do buffer refere-se a um tipo particular de fila usado para ajustar a ocupao da mesma [NS-2]. Neste trabalho o tipo de fila utilizado o drop-tail (classe derivada da classe Queue) sendo implementada com planejamento FIFO e gerenciamento de buffer com perda de pacotes em caso de falta de memria (drop-on-overflow) caracterstica presente na maioria dos roteadores da Internet hoje em dia [NS-2]. A classe PriQueue (classe derivada da classe DropTail) implementado como uma fila que da preferncia aos pacotes roteados, inserindo-os na cabea da fila. Ela tambm responsvel por executar um filtro sobre todos os pacotes da fila e remover os pacotes que tiverem os endereos de destino especificados em alguma requisio. A classe PriQueue est implementada em priqueue.{cc,h} no pacote do NS. set opt(prop) Propagation/TwoRayGround Neste trabalho utilizado o modelo de propagao Two-Ray Ground que considera ambas as direes e a reflexo no terreno do caminho, com isso, este modelo mostra maior preciso em longas distncias do que outros modelos, como o Free-space. Esta classe est implementada em tworayground.{cc,h} no pacote do NS. 55. 39 set opt(adhocRouting) DSDV Agente roteador DSDV (Destination Sequence Distance Vector). Neste protocolo de roteamento as mensagens so trocadas entre hosts mveis vizinhos. A atualizao do roteador pode ser despertada ou rotineira. A atualizao despertada quando a informao do roteador de um vizinho fora uma troca na tabela de roteamento. Um pacote no qual o roteador para seu destino desconhecido armazenado (cache) at que uma consulta de roteamento esteja sendo feita ou at que uma rplica seja enviada para o destino. H um tamanho mximo de buffer para armazenar os pacotes que esto aguardando por informaes de roteamento, depois de preenchido o buffer, os pacotes so descartados [NS-2]. Todos os pacotes destinados aos hosts mveis so roteados diretamente pelo seu endereo dmux para a porta dmux. A porta dmux entrega os pacotes para o respectivo agente de destino. Nos hosts mveis utilizada a porta 255 para anexar um agente roteador. Este protocolo principalmente implementado em C++, suas classes esto no diretrio dsdv e os procedimentos descritos acima esto implementados na classe dsdv.tcl, todas includas no pacote do NS. $ns node-config -addressType hierarchical Este comando configura o tipo de endereamento do host. O roteamento hierrquico principalmente desenvolvido, entre outras coisas, para reduzir a requisio de memria para simulaes com topologias muito grandes. A topologia quebrada em vrias pequenas camadas hierrquicas, reduzindo desta forma o tamanho da tabela de roteamento. O tamanho da tabela reduzido de n, para roteamento horizontal, para cerca de log n para roteamento hierrquico. At a atual implementao este tipo de roteamento suporta no mximo 3 (trs) nveis hierrquicos [NS-2]. 56. 40 Para ser capaz de utilizar este roteamento foi necessrio definir a hierarquia da topologia, assim como os hosts com endereamento hierrquico. No roteamento horizontal, todos hosts sabem tudo sobre os outros hosts da topologia, assim o resultado uma tabela na ordem de n. No roteamento hierrquico, cada host tem informao somente dos hosts que fazem parte do seu nvel. Para todos os outros destinos fora de seu nvel ele envia os pacotes para o roteador de fronteira. Com isso h uma reduo no tamanho da tabela de roteamento para a ordem de aproximadamente log n [NS-2]. AddrParams set domain_num_ 3 lappend cluster_num 4 1 1 AddrParams set cluster_num_ $cluster_num lappend eilastlevel 1 1 1 1 2 1 AddrParams set nodes_num_ $eilastlevel A classe AddrParams utilizada para armazenar a topologia hierrquica (nveis hierrquicos), como o nmero de reas em cada nvel (domnios, clusters e hosts) [NS-2]. Assim definimos a topologia com 3 (trs domnios) , sendo D1, D2 e D3 , o domnio D1 possui 4 clusters (C11, C12, C13 e C14) ,o domnio D2 e D3 possui 1 cluster cada um, sendo os clusters (C21) e (C31) pertencentes a cada domnios respectivamente. Ento o numero de hosts em cada um destes clusters so 1, 1, 1, 1, 2 e 1 respectivamente. 57. 41 0 1 0 1 2 2 3 0 nvel 1 nvel 2 nvel 3 Figura 4.1 Representao do host 0.1.0 (roteamento hierrquico) Fonte: Dados da pesquisa Na Figura 4.1 o nvel 1 (um) significa o domnio, o nvel 2 (dois) mostra todos os clusters dentro do domnio do host e o nvel 3 (trs) determina o host dentro de um particular cluster. set namtrace [open projeto-out.nam w] Nam uma ferramenta de simulao baseada na linguagem Tcl/Tk que usada para visualizar as simulaes realizadas com o NS e tambm gerar um arquivo de dados sobre a simulao (Nam trace file) [NS-2]. O propsito por trs do nam de criar um animador que seja capaz de ler grandes arquivos de animao e tambm ser flexvel o bastante para visualizar qualquer situao de simulao de rede [NS-2]. Para gerar uma animao o nam armazena poucas informaes na memria, a maioria dos comandos so escritos em um arquivo que so lidos conforme for necessrio [NS-2]. 58. 42 O primeiro passo para se utilizar o nam produzir um arquivo de trao. O arquivo de trao contm informaes da topologia como os hosts, ligaes, filas, conexes de cada host, informaes de trao do pacote, etc. Normalmente este arquivo gerado pelo NS. Quando o arquivo de trao gerado, ele est pronto para ser animado pelo nam. No incio, o nam ler o arquivo de trao, criar a topologia, uma janela do tipo pop-up e por fim construir a interface, iniciando a animao no tempo 0 (zero) [NS-2]. O nam atravs de sua interface prove controles sobre vrios aspectos da simulao como avanar, parar, retornar, acelerar, desacelerar a simulao, editar a posio dos hosts, etc. $ns namtrace-all-wireless $namtrace $opt(x) $opt(y) Este comando utilizado para indicar ao arquivo de trao do nam de que ele est habilitado a inicializar a documentao (detalhamento) dos movimentos do host para serem visualizados no nam. As coordenadas X e Y da topologia wireless tambm passada como parmetro para este comando [NS-2]. $HA shape "hexagon" $HA color "red" $ns at 0.0 "$HA label HA" O host pode ter 3 (trs) formas, (circulo, quadrado, hexgono), mas uma vez criado esta forma no poder ser alterada durante a animao.Os hosts podem apenas trocar de cor dinamicamente [NS-2]. O nome das cores utilizado dever ser obrigatoriamente um dos nomes listados no banco de dados de cores, o X11 (arquivo rgb.txt). Pode-se atribuir tambm um rtulo (label) ao host, permitindo com isso apresentar uma animao mais organizada e com um grau maior de interpretao. 59. 43 set tracefd [open projeto-out.tr w] $ns trace-all $tracefd Este comando usado para configurar o agente de trao. Todos os traos so escritos no arquivo projeto-out.tr. O suporte de trao para simulaes sem fio atualmente utiliza objetos cmu-trace. Estes objetos so utilizados para traar os pacotes que so descartados ou perdidos, recebidos e enviados pelo agente, roteadores, camada MAC ou interface de pilha no NS. Os mtodos e procedimentos utilizados pa implementar o suporte a trao em cenrios wireless podem ser encontrados como trace.{cc,h} e ns-cmutrace.tcl no pacote do NS . set topo [new Topography] Este comando cria uma instancia da topografia [NS-2]. $topo load_flatgrid $opt(x) $opt(y) Este comando define as fronteiras da topologia [NS-2]. create-god [expr $opt(nn) + $num_bs_nodes] Este comando utilizado para criar um instancia God. O nmero de hosts mveis passado como argumento, no qual usado pelo God para criar a matriz de informaes de conectividade da topologia (nmero de hops entre cada host) [NS-2]. set temp {0.0.0 0.1.0 0.2.0 0.3.0} for {set i 0} {$i < ($num_wired_nodes)} {incr i} { set WD($i) [$ns node [lindex $temp $i]] } 60. 44 Este comando cria e retorna uma instancia do host, neste caso o host criado tem endereamento hierrquico [NS-2] representado pela array temp. Estes hosts so criados antes da configurao do n (detalhada abaixo), fazendo com que eles no sejam hosts sem fio. $ns node-config -mobileIP ON-adhocRouting $opt(adhocRouting)-llType $opt(ll)-macType $opt(mac)-ifqType $opt(ifq)-ifqLen $opt(ifqlen)-antType $opt(ant)-propType $opt(prop)-phyType $opt(netif)-channel $chan_-topoInstance $topo-wiredRouting ON-agentTrace ON-routerTrace OFF-macTrace ON A interface de configurao do host consiste de duas partes. A primeira parte detalha a configurao do host e a segunda parte na verdade cria o host como especificado [NS-2]. A configurao consiste essencialmente de definir as diferentes caractersticas do host antes de cri-los. Nesta configurao pode-se definir o tipo de endereamento utilizado na simulao, definir os componentes de rede para hosts mveis, habilitar ou desabilitar as opes de trao como agente/ 61. 45 roteadores/ nveis MAC, selecionar o tipo de protocolo de roteamento para hosts wireless ou definir seu modelo de energia [NS-2]. Nesta configurao o flag mobileIP foi ativado, habilitando o uso do IP mvel para as estaes base e ao host mvel que sero criados a seguir. $HA random motion 0 O flag random-motion utilizado para habilitar ou no movimento randmico de um host mvel, se o flag estiver habilitado (random-motion 1), destinos randmicos atribuido ao host [NS-2]. $MH set X_ 5.0000000 $MH set Y_ 215.0000000 $MH set Z_ 0.0000000 $ns at 4.0000000 "$MH setdest 420.0000000 200.0000000 20.0000000" O host mvel planejado para mover em uma topologia de 3 (trs) dimenses, no entanto a 3 (terceira) dimenso (Z) no utilizada. Isto , o host mvel instrudo a mover-se sempre no plano terrestre com Z sempre igual a 0 (zero). Sendo assim o host mvel tem as coordenadas X, Y e Z(0) que so continuamente ajustadas para determinar seu movimento. H dois mecanismos para induzir o movimento em um host mvel. O 1 (primeiro) mtodo o movimento randmico que no utilizado nesta simulao e o 2 (segundo) mtodo atribui ao host uma determinada posio inicial e uma futura posio de destino, como exemplificado acima na funo setdest que configura o destino e a velocidade de locomoo (m/s) do host mvel [NS-2]. set HAaddress [AddrParams addr2id [$HA node-addr]] 62. 46 [$MH set regagent_] set home_agent_ $HAaddress Este comando define o home agent (HA) do host mvel e isso informado ao agente de registro (regagent_). O home agent (HA) e o foreign agent (FA) tem um agente de registro (regagent_) que envia sinais para os hosts mveis, ativa o encapsulador e o desencapsulador, como tambm exige e responde as solicitaes partidas dos hosts mveis (MHs). Os MHs tambm possuem um agente de registro que recebe e envia aos sinais e envia solicitaes para o HA e o FA [NS-2]. $ns duplex-link $WD(0) $WD(3) 5Mb 2ms DropTail Este comando cria uma ligao bi-direcional entre o host WD(0) e o host WD(3). Este procedimento essencialmente cria um ligao dupla partindo de duas ligaes simples, uma partindo do WD(0) para o WD(3) e outra partindo do WD(3) para o WD(0). Defini-se tambm a largura de banda (5Mb), o atraso (2ms) e o tipo de fila utilizado na ligao (DropTail) [NS-2]. $ns duplex-link-op $WD(1) $WD(3) orient up Este comando utilizado para modificar alguns atributos da ligao como a orientao, a cor, o rtulo e a posio da fila [NS-2]. set tcp [new Agent/TCP] Este comando cria uma instancia de um agente de envio TCP, este agente tenta capturar os comportamentos essenciais do TCP como controle de erro e congestionamento, mas no tem a inteno de ser uma replica completa da implementao real do TCP [NS-2]. set sink [new Agent/TCPSink] 63. 47 Este comando cria uma instancia de um agente de recebimento TCP, este agente responsvel por retornar os ACKs para os objetos fontes TCP e o tamanho do ACK pode ser configurado [NS-2]. $ns attach-agent $WD(0) $tcp $ns attach-agent $MH $sink Este comando anexa o agente de envio tcp ao host WD(0) e o agente de recebimento ao host MH, terminando portanto a configurao de uma conexo fim-a-fim [NS-2]. $ns connect $tcp $sink Este comando ativa a conexo entre os agentes tcp e sink [NS-2]. set ftp [new Application/FTP] $ftp attach-agent $tcp O agente TCP no gera nenhuma aplicao de dados por si prprio, portanto deve-se utilizar alguma aplicao para gerar os dados. Neste trabalho optou-se por uma aplicao FTP, devido a este tipo de simulao gerar um enorme trafego de dados [NS-2]. Estes comandos criam uma aplicao (FTP) e anexa ela ao agente de envio tcp respectivamente[NS-2]. $ns initial_node_pos $MH 12 Este comando define a posio inicial do host e o seu tamanho no nam [NS-2]. $ns at 4.0 "$ns trace-annotate "mobile node goes to FA's dominion"" 64. 48 Este comando insere uma observao, esta observao aparece na janela do nam e utilizada pelos eventos para controlar a animao [NS-2]. 4.2 Topologia A topologia utilizada nesta simulao composta por 4 (quatro) dispositivos, nos quais representam uma rede local (LAN), com o propsito de ser a fonte de envio de dados para o host mvel, duas estaes base destinadas a trabalharem como home agent ou foreign agent e 1 (um) host mvel que responsvel pela movimentao necessria para a criao dos 3 (trs) diferentes tipos de simulao (Figura 4.2). Figura 4.2 Topologia da simulao Fonte: Dados da pesquisa - N mvel - Estao base - N (rede local) - Movimento realizado pelo n mvel durante a simulao HA FA 65. 49 4.3 Resultados da Simulao As 3 (trs) simulaes foram implementadas no mesmo arquivo e simulada atravs de apenas uma animao, porm esta animao foi dividida atravs do tempo de simulao em 3 (trs) etapas. Cada etapa corresponde a uma simulao. A primeira parte corresponde ao intervalo de 0.5s (meio segundo) a 7s (sete segundos) da animao e simula o envio de pacotes para o host mvel em sua rede local (home link), a segunda parte corresponde ao intervalo de 7s (sete segundos) a 24s (vinte e quatro segundos) da animao e simula o envio de pacotes para o host mvel durante a transio da sua rede local (home link) para uma rede externa (foreign link) e a ltima parte corresponde ao intervalo de 24s (vinte e quatro segundos) a 30s (trinta segundos) da animao, simula o envio de pacotes para o host mvel em uma rede externa (foreign link). O NS gera aps interpretar o cdigo implementado em OTcl dois arquivos de trao, que podem ser analisados pelo usurio. Estas duas formas de sada utilizada pelo NS durante esta simulao sero descritas a seguir. 4.3.1 Nam Atravs desta ferramenta de animao grfica (Nam) pode-se visualizar perfeitamente toda a simulao. A figura abaixo ilustra a transferncia de dados entre o host WD(0) e o host mvel depois de estabelecerem uma conexo TCP. A Figura 4.3 representa a primeira simulao proposta por este trabalho. 66. 50 Figura 4.3 Host mvel em sua rede local Fonte: Dados da pesquisa Na Figura 4.4 vemos que o host mvel j comeou a se movimentar para fora de sua rede local (home link). 67. 51 Figura 4.4 Host mvel saindo da sua rede local Fonte: Dados da pesquisa Quando o host mvel atinge a fronteira de sua rede local, no conseguindo mais se comunicar com o seu home agent, a transmisso de dados interrompida, ocorrendo algumas perdas de pacotes. Este fato ilustrado pela Figura 4.5. 68. 52 Figura 4.5 Host mvel fora re rea de cobertura Fonte: Dados da pesquisa Aps certo tempo o host mvel atinge uma rede externa e inicia-se a comunicao entre o host mvel e o foreign agent (FA) e entre o home agent (HA) do host mvel e o foreign agent (Figura 4.6). 69. 53 Figura 4.6 Host mvel restabelecendo a conexo em uma rede externa Fonte: Dados da pesquisa Com a Figura 4.6 encerra-se representao da terceira simulao proposta por este trabalho. Restabelecida a conexo entre o host mvel e o HA atravs do FA, retoma-se o envio de dados entre o host WD(0) e o host mvel atravs do encapsulamento do pacote feito pelo HA e o desencapsulamento e entrega do 70. 54 pacote feita pelo FA (Figura 4.7 e Figura 4.8). Estas figuras representam a segunda simulao proposta por este trabalho. Figura 4.7 HA enviando pacotes para o FA (encapsulamento) Fonte: Dados da pesquisa 71. 55 Figura 4.8 FA enviando pacotes ao host mvel(desencapsulamento) Fonte: Dados da pesquisa 4.3.2 Arquivo de trao Este arquivo de trao construdo pelo NS descreve toda troca de informao realizada pelos hosts, gerando com isso um arquivo muito extenso para ser inserido por completo neste documento, portanto ser mostrado apenas alguns trechos de maior relevncia. 72. 56 As informaes contidas no arquivo de trao referente a troca de dados em uma rede wireless mais complexa comparado a troca de dados em uma rede wired. Estas informaes esto dividas em campos que descrevem as propriedades do host, informaes sobre o pacote no nvel IP/ MAC/ aplicao, etc. 1. r 0.502064 0 3 tcp 40 ------- 2 0.0.0.0 1.0.1.2 0 2 2. r 0.504128 3 4 tcp 40 ------- 2 0.0.0.0 1.0.1.2 0 2 3. s -t 1.000339577 -Hs 4 -Hd -1 -Ni 4 -Nx 70.00 -Ny 200.00 -Nz 0.00 -Ne -1.000000 -Nl AGT -Nw --- -Ma 0 - Md 0 -Ms 0 -Mt 0 -Is 4194304.0 -Id -1.0 -It udp -Il 48 -If 0 -Ii 6 -Iv 32 Os 3 (trs) primeiros itens descrevem o pedido para o estabelecimento de uma conexo TCP partindo do host 0.0.0 (WD(0)) para o host 1.0.1 (host mvel), seguindo o caminho WD(0) para o WD(3), WD(3) para o HA (4) e por fim do HA (4) para o MH (host mvel identificado pelo nmero de criao 6). No pacote enviado pelo HA para o MH as siglas significam: s (envio), t (instante em que ocorreu a ao de envio/ recebimento/ perda/... do pacote) Hs e Hd significam o identificador do host fonte e o nmero de hops para alcanar o host destino respectivamente, Ni (identificador do host), Nx, Ny e Nz representam as coordenadas do host, Ne (o nvel de energia do host), N1 (nvel de trao agente/roteador/MAC) Nw (caso o pacote tenha sido perdido este campo explicaria o motivo), Ma (durao do pacote no nvel MAC), Md e Ms (endereo ethernet do host destino e fonte), Mt (tipo de ethernet), Is (endereo e nmero da porta do host fonte separados pelo ponto), Id (endereo e nmero da porta do host destino separados pelo ponto), It (tipo de pacote), Il (tamanho do pacote), If (identificador de fluxo), Ii (identificador nico) e por fim a sigla Iv (valor do tempo de vida do pacote). 73. 57 4. r -t 1.003462852 -Hs 6 -Hd -1 -Ni 6 -Nx 5.00 -Ny 215.00 -Nz 0.00 -Ne -1.000000 -Nl MAC -Nw --- -Ma 0 -Md ffffffff -Ms 0 -Mt 800 -Is 4194304.0 -Id -1.0 - It udp -Il 68 -If 0 -Ii 6 -Iv 32 5. r 1.644708 4 3 ack 60 ----- 2 1.0.1.2 0.0.0.0 0 12 6. r 1.646804 3 0 ack 60 ----- 2 1.0.1.2 0.0.0.0 0 12 Os itens 4 (quatro) a 6 (seis) descrevem envio da confirmao de recebimento do pedido de estabelecimento de conexo pelo host mvel ao host WD(0). 7. r 1.650468 0 3 tcp 1040 ---- 2 0.0.0.0 1.0.1.2 1 13 8. r 1.654132 3 4 tcp 1040 ---- 2 0.0.0.0 1.0.1.2 1 13 9. s -t 1.654546735 -Hs 4 -Hd -2 -Ni 4 -Nx 70.00 -Ny 200.00 -Nz 0.00 -Ne -1.000000 -Nl MAC -Nw --- -Ma 249e -Md 2 -Ms 0 -Mt 0 Os itens 7 (sete) a 9 (nove) descrevem o incio da troca de dados entre o host WD(0) e o host mvel. 10. r 4.220853 0 3 tcp 1040 2 0.0.0.0 1.0.1.2 219 450 11. r 4.224517 3 4 tcp 1040 2 0.0.0.0 1.0.1.2 219 450 12. s -t 4.233651595 -Hs 4 -Hd -2 -Ni 4 -Nx 70.00 -Ny 200.00 -Nz 0.00 -Ne -1.000000 -Nl MAC -Nw --- -Ma 4c4 -Md 2 -Ms 0 -Mt 0 13. s -t 4.233965802 -Hs 6 -Hd 4194304 -Ni 6 -Nx 9.68 - Ny 214.83 -Nz 0.00 -Ne -1.000000 -Nl MAC -Nw --- - Ma 13a -Md 0 -Ms 2 -Mt 800 -Is 4194305.2 -Id 0.0 - It ack -Il 112 -If 2 -Ii 437 -Iv 32 Os itens 10 (dez) a 13(treze) descrevem a transferncia de dados para o host mvel j em movimento, podem ser percebido atravs dos campos que 74. 58 indicam as coordenadas do host, no item 4 ele estava na posio (5.00, 215.00, 0.0) e agora est na posio (9.68, 214.83, 0.0). 14. r 28.399947 0 3 tcp 1040 ----- 2 0.0.0.0 1.0.1.2 1961 4024 15. r 28.403611 3 4 tcp 1040 ----- 2 0.0.0.0 1.0.1.2 1961 4024 16. r 28.407307 4 3 tcp 1060 ----- 2 0.0.0.1 2.0.0.1 1961 4024 17. + 28.407307 3 5 tcp 1060 ----- 2 0.0.0.1 2.0.0.1 1961 4024 18. s -t 28.408724249 -Hs 5 -Hd -2 -Ni 5 -Nx 400.00 -Ny 200.00 -Nz 0.00 -Ne -1.000000 -Nl MAC -Nw --- -Ma 249e -Md 2 -Ms 1 -Mt 0 Por fim, os itens 14 (quatorze) a 18 (dezoito) descrevem o envio de dados para o host mvel em uma rede externa (foreign link). O pacote enviado pelo host WD(0) e caminha em direo ao host WD(3) que enviado para o HA que encapsula o pacote e reenvia para o FA atravs do host WD(3). Este encapsulamento pode ser notado atravs do campo que indica o tamanho do pacote que foi enviado. Nos itens 14 (quatorze) e 15 (quinze) o pacote est com 1040 bytes, posteriormente nos itens 16 (dezesseis) e 17 (dezessete) o pacote j reenviado com um cabealho a mais, tendo assim um acrscimo de 20 bytes no tamanho total do pacote que agora est com 1060 bytes. 75. 59 Captulo 5 Concluso e Propostas Futuras 5.1 Concluso Foi possvel atravs deste projeto realizar um considervel estudo e por conseqncia um enorme aprendizado na utilizao e no funcionamento do IP mvel, que um protocolo amplamente empregado nos sistemas de comunicaes mveis (sistemas celulares), como tambm permitir o uso de uma sofisticada ferramenta de simulao (NS) utilizada por vrias organizaes acadmicas e comerciais durante anos e at os dias de hoje. Todas as simulaes propostas por este projeto foram realizadas de acordo com o planejado, seguindo rigorosamente as definies do IP mvel contidas na biblioteca do NS. 5.2 Propostas Futuras Este trabalho poder no futuro ser utilizado para iniciar possveis projetos relacionados utilizao do NS em qualquer tipo de simulao de redes com fio, sem fio ou at mesmo redes via satlites (suportadas pelo NS). 76. 60 Referncias Bibliogrficas [Derfler (1993)], F. J. Jr; Fred L. Como Funcionam as Redes. Editora Quart, 1993. [Ferreira (1999)] A A; Robson G. O Paradigma Computacional da Prxima Dcada. I Escola de Informtica da SBC, Edio Norte, Par, 1999. [Tanembaum (1997)], Andrew S. Redes de Computadores. Traduo da 3a edio. Editora Campus. 1997. [Lough (1997)], Daniel L; Blankenship, T. Keith; Krizman, Kevin J. A Short Tutorial on Wireless and IEEE 802.11. Virginia Polytechnic Institute and State University. Departament of Electrical and Computer Engineering. 1997 [NS-2] THE NETWORK SIMULATOR [online]. Avaliable from http://www.isi.edu/nsnam. Cited 20 April 2003. [KESHAV], S., REAL 5.0 overview [online]. Avaliable from http://www.cs.cornell.edu/skeshav/real/overview.html Cited 20 April 2003. [Perkins] Charles E. Mobile Networking Through Mobile IP. Sun Microsystems[online]. Available from http://www.computer.org /internet/v2n1/perkins.htm Cited 20 April 2003. 77. 61 [Perkins (1996-I)] Charles E. IP Encapsulation Within IP, IETF RFC 2003, May 1996. [Perkins (1996-II)] Charles E. Minimal Encapsulation Within I, IETF RFC 2004, May 1996. [Sun (2001)] Microsystems Inc. Mobile IP Administration Guide. Part Number 806-7600-10, April 2001. [Solomon (1998)] J. Mobile-IP, Prentice Hall, New Jersey, 1998. [Deering (1991)] S.E. ICMP Router Discovery Messages, IETF RFC 1256, Sept. 1991. [Rivest (1992)] R.L. "The MD5 Message-Digest Algorithm," IETF RFC 1321, Apr. 1992 [SAMAN] (Simulation Augmented by Measurement and Analysis for Networks) [online]. Available from http://www.isi.edu/saman/index.html. [CONSER] (Collaborative Simulation for Education and Research) [online]. Available from http://www.isi.edu/conser/index.html Cited 20 April 2003. [ICIR] (The International Computer Science Institute Center for Internet Research) [online]. Available from http://www.icir.org/. [OTCL] (MIT Object Tool Command Language) [online]. Available from http://otcl-tclcl.sourceforge.net/otcl/. 78. 62 [Brown], Brian. Introduction to awk [online]. Available from http://allman.rhon.itam.mx/dcomp/awk.html. [Ferguson (1998)], Paul; HUSTON, Geoff. Quality of service. 1. edio. John Wiley & Sons, 1998. [Alencar (1998)] Marcelo Sampaio de Alencar. Telefonia Digital. So Paulo, rica, 1998. [Marcos], Marcos Portnoi. Network Simulator Viso Geral da Ferramenta de Simulao de Redes Available from http://locksmith.orcishweb.com/articles/networksimulator-sepa.pdf. 79. 63 Anexos 80. 64 Anexo A Arquivo projeto.tcl 81. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 #///////////////////////////////////////////////////////////////////////////////////////// #///////////////////////////////////////////////////////////////////////////////////////// # SIMULATION OF MOBILE IP THROUGH NETWORK SIMULATOR (NS2): # A PROPOSAL OF WIRELESS NETWORK # Monografy's Project # # Pupil : Guilherme Stella Ravagnani 20001217 # Teacher who orientate : Teach. Ricardo Martins de Abreu Silva # University Federal of Lavras - MG Brazil # Department of Science of Computer - DSC # Copyrigthy(c) 2003 # *************************************************************************** # * * # * This source is free; redistribution and use in source and binary forms, * # * with or without modification, are permitted provided that the following * # * conditions describe at the terms of the GNU General Public License as * # * published by the Free Software Foundation; either version 2 of the * # * License, or (at your option) any later version. * # * * # *************************************************************************** #///////////////////////////////////////////////////////////////////////////////////////// #///////////////////////////////////////////////////////////////////////////////////////// # ====================================================================== # Define options # ====================================================================== set opt(chan) Channel/WirelessChannel ;# channel type set opt(prop) Propagation/TwoRayGround ;# radio-propagation model set opt(netif) Phy/WirelessPhy ;# network interface type set opt(mac) Mac/802_11 ;# MAC type set opt(ifq) Queue/DropTail/PriQueue ;# interface queue type set opt(ll) LL ;# link layer type set opt(ant) Antenna/OmniAntenna ;# antenna model set opt(ifqlen) 50 ;# max packet in ifq set opt(adhocRouting) DSDV ;# routing protocol set opt(x) 500 ;# x coordinate of topology set opt(y) 300 ;# y coordinate of topology set opt(stop) 30 ;# time to stop simulation set opt(seed) 0.0 set opt(ftp-start) 0.5 ;# time to start FTP aplication # ====================================================================== set num_wired_nodes 4 ;# number of wired nodes set num_bs_nodes 2 ;# number of base station set opt(nn) 1 ;# number of mobilenodes # ====================================================================== # Main Program # ====================================================================== # create simulator instance set ns [new Simulator] # set up for hierarchical routing $ns node-config -addressType hierarchical AddrParams set domain_num_ 3 ;# number of domains PROJETO.TCL 24/11/2003 13:57 Page 1 of 4 82. 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 lappend cluster_num 4 1 1 ;# number of clusters in each domain AddrParams set cluster_num_ $cluster_num lappend eilastlevel 1 1 1 1 2 1 ;# number of nodes in each cluster AddrParams set nodes_num_ $eilastlevel ;# of each domain $ns use-newtrace set tracefd [open projeto-out.tr w] set namtrace [open projeto-out.nam w] $ns trace-all $tracefd ;# All traces are written in the tracefd ;# all wireless nam traces are written into the namtrace $ns namtrace-all-wireless $namtrace $opt(x) $opt(y) # Create topography object set topo [new Topography] # define the topology's boundaries $topo load_flatgrid $opt(x) $opt(y) # create God # God needs to know the number of all wireless interfaces create-god [expr $opt(nn) + $num_bs_nodes] #create wired nodes set temp {0.0.0 0.1.0 0.2.0 0.3.0} ;# hierarchical addresses for {set i 0} {$i < ($num_wired_nodes)} {incr i} { set WD($i) [$ns node [lindex $temp $i]] } # Create channel set chan_ [new $opt(chan)] # Configure for ForeignAgent and HomeAgent nodes $ns node-config -mobileIP ON-adhocRouting $opt(adhocRouting)-llType $opt(ll)-macType $opt(mac)-ifqType $opt(ifq)-ifqLen $opt(ifqlen)-antType $opt(ant)-propType $opt(prop)-phyType $opt(netif)-channel $chan_-topoInstance $topo-wiredRouting ON-agentTrace ON-routerTrace OFF-macTrace ON # Create HA and FA set HA [$ns node 1.0.0] set FA [$ns node 2.0.0] $HA random-motion 0 $FA random-motion 0 # Position (fixed) for base-station nodes (HA & FA) and wired node $HA set X_ 70.000000000000 $HA set Y_ 2