WirelessBR |
WirelessBr é um site brasileiro, independente, sem vínculos com empresas ou organizações, sem finalidade comercial, feito por voluntários, para divulgação de tecnologia em telecomunicações |
Estudo do IP móvel e sua aplicação em sistemas de comunicações móveis para tráfego de dados (3) |
Autor: Aurélio Corbioli Neto |
Esta página contém uma figura grande. Aguarde a carga se a conexão estiver lenta.
1. Introdução
Nos últimos anos tem-se visto a explosão no número de computadores portáteis e o grande crescimento da Internet. Enquanto os computadores portáteis continuam melhorando em relação a seu tamanho, peso e capacidade, a Internet continua a se desenvolver em um ritmo fascinante. Além disso, tem-se visto o aumento da dependência de redes de computadores dentro das organizações. Em alguns casos, informações essenciais para a condução de um trabalho podem somente ser acessadas via rede. A combinação destas três forças, a necessidade cada vez maior de informações, a constante melhoria nos terminais portáteis e a grande confiança em redes de computadores, determinam a motivação necessária para a comunicação entre computadores móveis e outros computadores, fixos ou móveis. O problema é que a maioria dos protocolos de rede e as complexas regras que definem como a informação é trocada entre dois ou mais computadores , foram desenvolvidos no passado, quando os computadores não tinham grandes necessidades de mobilidade. Como resultado disto, muitos destes protocolos falham em operar na presença de computadores móveis.
Este trabalho tem por objetivo descrever o IP Móvel, uma solução para o problema de transferência de informação de ou para computadores móveis. O IP Móvel é independente do meio físico através do qual um computador móvel se comunica e ainda permite ao mesmo alterar sua localização sem recomeçar suas aplicações e sem interromper qualquer comunicação em andamento. O IP Móvel também é amplamente empregado nos sistemas de comunicações móveis (sistemas celulares) que começam a ser implantados nos dias de hoje.
1.1 A necessidade do IP Móvel
Servidores e roteadores baseiam-se em informações contidas dentro do cabeçalho do pacote IP para decidir sobre o direcionamento de pacotes. Especificamente, decisões de roteamento são feitas baseadas no prefixo de rede do endereço IP de destino. Isto implica que todos os nós com interfaces em um dado enlace têm que ter o prefixo de rede idêntico aos de todos os endereços IP daquela interface. Para ilustrar esta necessidade, examinemos o que acontece se um nó, no qual seu prefixo de rede foi designado a um determinado link, for retirado deste link e ligado a um novo, ao qual foi atribuído um prefixo de rede diferente. Esta situação é ilustrada na figura 1.
Figura 1 – Movimento do Nó
Na figura 1, o endereço IP do Host4 tem um prefixo de rede 2.0.0, mas o Host4 é mostrado conectado num link no qual o prefixo de rede é 4.0.0.
Também são mostradas na figura as entradas na tabela de roteamento do Roteador A.
As duas primeiras entradas na tabela do Roteador A são para links nos quais o Roteador A está diretamente conectado.
As duas últimas entradas são rotas para o prefixo de rede 2.0.0 (via Roteador B) e 4.0.0 (via Roteador C).
Examinemos o que ocorre quando Host1 tentar enviar pacotes para o Host4 :
1 - O Host1 gera um pacote IP no qual o endereço IP fonte é 1.0.0.1 e o endereço IP de destino é 2.0.0.4. A única compatibilidade na tabela de roteamento do Host1 para este destino é o Roteador padrão, o qual especifica o próximo salto para o Roteador A (1.0.0.254), via interface a. Portanto, o Host1 direciona o pacote para o Roteador A.
2 - O Roteador A encontra uma entrada para alvos com prefixo de rede 2.0.0 na terceira coluna de sua tabela de roteamento, a qual especifica um próximo salto para o Roteador B (3.0.0.253), via interface c. Portanto, o Roteador A direciona o pacote para o Roteador B.
3 - O Roteador B tem uma rota direta em sua tabela de roteamento para alvos com prefixo de rede igual a 2.0.0, então o Roteador B transmite o pacote via interface b no link Ethernet B. Entretanto, o pacote não poderá ser entregue, porque o Host4 não esta conectado na Ethernet B (onde supostamente ele deveria estar, baseado no seu prefixo de rede). O Roteador B então envia uma mensagem "ICMP Host Unreachable Error" para o host que originou o pacote (Host1).
Neste exemplo, assumimos que as entradas da tabela de roteamento dos vários roteadores foram criadas por algum tipo de protocolo de roteamento dinâmico e o Roteador B deve ser necessariamente informado da acessibilidade do prefixo de rede 2.0.0.
Note que o pacote do exemplo foi roteado em direção ao Roteador B simplesmente pelo fato dele ter sido informado pelo prefixo de rede (Advertising Reachability) do endereço IP do Host4.
Isto é uma importante regra do roteamento IP, pacotes IP destinados a um endereço específico serão roteados em direção ao Roteador ou Roteadores que possuem acessibilidade para os prefixos de rede destes endereços. Além do mais, se um nó não está localizado no link onde seu prefixo de rede diz que ele supostamente deveria esta localizado, pacotes enviados para este nó não poderão ser entregues ao mesmos.
Como resultado, um nó não deve mover-se de um link para outro que ele deseja comunicar-se, sem no mínimo alterar o prefixo de rede de seu endereço IP para refletir seu novo ponto de conexão na rede.
Examinemos um roteamento específico como solução ao problema de mobilidade do nó e verificar suas implicações práticas de implantação. O problema de entrega do pacote para o Host4 na figura 1, pode ser resolvido colocando-se rotas específicas para o nó na tabela de roteamento dos Roteadores A, B e C, como mostrado a seguir:
Router A: { Target/ Prefix-Length = 2.0.0.4 / 32, Next Hop = 3.0.0.252, Interface = "c"};
Router B: { Target/ Prefix-Length = 2.0.0.4 / 32, Next Hop = 3.0.0.252, Interface = "c"};
Router C: { Target/ Prefix-Length = 2.0.0.4 / 32, Next Hop = "direct", Interface = "b"}.
Neste caso, um pacote a partir do Host2 destinado para o Host4 seria enviado pelo Roteador A para o Roteador C, o qual então transmite o pacote através da Ethernet C, onde seria recebido pelo Host4 .
Neste ponto devemos introduzir uma nova terminologia. Na tentativa de ser consistente com a terminologia do IP móvel, definimos:
- Home link: É o link no qual um nó específico deveria estar localizado, ou seja, o link ao qual foi designado o mesmo prefixo de rede do endereço IP do nó;
- Foreign link: É qualquer outro link diferente do home link do nó, isto é, qualquer link no qual o prefixo de rede difere do prefixo de rede do endereço IP do nó;
- Mobilidade: É a habilidade de um nó mudar seu ponto de conexão de um link para outro mantendo todas as comunicações existentes e usando o mesmo endereço IP em seu novo link. Impressão remota, login remoto e transferência de arquivos são alguns exemplos de aplicações nas quais a interrupção na comunicação não é desejada, quando um nó move-se de um link para outro.
Devemos determinar se as rotas específicas empregadas somente para aqueles nós não conectados a seus home links é uma solução razoável no contexto da Internet global. Vamos determinar o número de rotas específicas que seriam necessárias para permitir a mobilidade do nó na Rede. Este número dependeria do seguinte:
1 - O número total de nós móveis esperados na Rede;
2 - O número mínimo de nós para os quais rotas específicas devem ser propagadas em nome de cada nó móvel;
3 - A velocidade na qual nós móveis movem-se de um link para outro e o número de rotas específicas que devem ser adicionadas, apagadas ou modificadas a cada instante que um nó móvel muda de link.
Com relação a estes itens, podemos concluir que:
- De forma mínima, rotas específicas devem ser propagadas para todos os nós ao longo de todo caminho entre o home link do nó móvel e seu foreign link;
- Algumas rotas, no pior caso todas, devem ser atualizadas sempre que um nó move de um link para outro.
- Esperam-se milhões de nós móveis operando na Internet nos próximos anos. Portanto, devemos multiplicar o número de rotas específicas para os nós sugeridos nos itens anteriores por um milhão afim de determinar o impacto total desta solução;
- Existem sérias implicações de segurança no uso de rotas específicas para os nós, para a realização da mobilidade do nó na Rede, as quais exigiriam autenticações e complexos protocolos de gerenciamento.
Desta forma podemos concluir que teríamos severos problemas de robustez e segurança, os quais fazem esta solução inaceitável no sentido de permitir a mobilidade dentro da Internet global, por exemplo.
Se a criação de rotas específicas não é uma solução aceitável para resolver o problema da mobilidade, então uma possível solução poderia ser simplesmente mudar o endereço IP do móvel conforme o mesmo move-se de um link para outro. O roteamento através do prefixo de rede exige que todos nós no mesmo link tenham o mesmo prefixo de rede em seus endereços IP. Desta forma, quando um nó move-se de um link para outro, no mínimo a porção do seu endereço IP referente ao prefixo de rede deve ser alterada a fim de refletir o prefixo de rede designado ao novo link. O nó deverá ser capaz de manter a parte referente a sua própria identificação dentro de seu endereço IP, contanto que nenhum nó no mesmo link esteja usando a mesma identificação. Caso contrário, o endereço IP completo deverá ser alterado. Uma vez que o nó tenha modificado seu endereço IP conforme descrito, o mesmo deve começar a comunicar-se no novo link, usando seu novo endereço IP em todas as futuras comunicações.
Analisemos agora se uma conexão pode sobreviver a mudança de seu endereço IP.
Os dois protocolos da camada de transporte em larga utilização atualmente na Internet são o TCP (Transmission Control Protocol) e o UDP (User Datagram Protocol).
Ambos utilizam-se do conceito de ports. O port é definido como um número de 16-bits (2 bytes) o qual permite as entidades do TCP e do UDP responsáveis pela recepção de pacotes determinarem qual das várias possíveis aplicações da camada mais alta deve receber os pacotes de dados dos vários segmentos que chegam através da rede.
Isso permite que várias aplicações possam ser abertas simultaneamente em um nó e ter o tráfego das diversas aplicações corretamente roteado independentemente de seus destinos.
Uma conexão TCP dentro de um nó é unicamente identificada através das seguintes informações: endereço fonte IP, endereço de destino IP, port fonte TCP e port de destino TCP. De fato, o campo de checksum TCP em cada seguimento é computado usando esses quatro campos além dos dados no payload de cada segmento.
Existe uma grande quantidade de nós IPv4 que assumem que esses quatros campos ( fonte/destino, endereço/port) irão permanecer constantes durante toda conexão TCP.
A comunicação simplesmente seria cortada se a conexão para um nó de destino tivesse seu endereço IP modificado.
Além do mais, todas as comunicações em andamento entre um nó móvel e qualquer outro nó deve ser terminada, com novas conexões sendo iniciadas pelos nós móveis com seus novos endereços IP.
Portanto, por definição, alterar o endereço IP do nó móvel conforme o mesmo se move não resolve o problema da mobilidade do nó.
Entretanto alterando o endereço IP do móvel conforme o mesmo se move resolve um problema relacionado, conhecido como nomadicity.
Um nó nômade é um nó no qual todas as comunicações existentes devem ser terminadas antes do mesmo alterar o seu ponto de conexão na rede, mas então ele só poderá iniciar novas conexões com novo endereço um vez que ele alcance sua nova localização.
Existem mecanismos apropriados dentro da Internet para tratar nós nômades através da designação automática de endereços, que serão discutidos posteriormente (DHCP- Dynamic Host Configuration Protocol e Point-to-point Protocol`s IP Control Protocol).
Entretanto, outro problema surgirá.
Deve haver uma maneira de encontrar um nó nômade, cujo endereço muda constantemente.
Consideremos o caso em que um host fixo quer enviar um pacote IP para um nó móvel.
Como o host poderia saber qual o valor a ser colocado no campo de endereço de destino IP, dentro do cabeçalho do pacote IP afim de enviar o pacote para o nó nômade?
Geralmente, na Internet, assumimos que hosts fixos conhecem o host-name e este nome mantém-se relativamente constante.
O host fixo procurará o host-name em servidor DNS, no esforço de determinar o endereço IP do nó nômade. Dois novos problemas surgirão:
1 - O endereço IP do nó nômade no Domain Name Server dever ser atualizado toda vez que o nó mudar de link, isto é, cada vez que o nó alterar seu endereço IP. Caso contrário, outros nós procurando por seu endereço, poderão receber um endereço antigo, diferente do endereço corrente.
2 - Um nó que procura pelo endereço de um nó nômade deve perceber que um endereço devolvido por um DNS é sujeito a alteração a qualquer instante e que de fato, poderá alterar-se rapidamente.
O resultado disto é o grande crescimento de queries e atualizações nos servidores DNS, primeiro na forma de atualizações dinâmicas de nós nômades movendo-se de um link para outro e segundo, na forma de mais frequentes queries a partir de outros hosts, que percebem não ser seguro confiar em um endereço IP que permanece fixo por um período de tempo significante.
Outro problema é assegurar estas atualizações dinâmicas no DNS.
Considere o que acontecerá se uma falsa informação de endereço IP atual de um nó nômade seja encontrada no DNS.
O nó nômade não poderá ser localizado por qualquer outro potencial correspondente.
Desta forma, a autenticidade de uma atualização dinâmica deve ser verificada antes da informação ser utilizada por um servidor DNS.
Não existem mecanismos implementados na Internet atual, que permitam resolver este problema.
Em resumo, alterar o endereço IP não provê uma solução para a mobilidade do nó. Entretanto pode ser uma solução para nós nômades. É praticamente impossível na Internet atual o gerenciamento de nós nômades. Para um nó iniciar contato com um nó nômade, o primeiro nunca terá certeza qual deverá ser o endereço IP no qual o nó nômade poderá ser encontrado.
1.2 Conclusão
Se um nó move-se de um link para outro, ele será incapaz de comunicar-se em sua nova posição, a menos que ele modifique seu endereço IP para refletir o prefixo de rede designado para este novo link.
Em alguns casos podemos eliminar esta necessidade através do roteamento IP, mas isto não é uma solução aceitável, por exemplo, dentro do contexto da Internet global.
Alterar o endereço IP conforme o nó move-se também não é uma boa solução, primeiro porque isto obriga o móvel a terminar qualquer comunicação em andamento no link antigo e então reiniciá-la no novo link.
Existem ainda outras soluções, relacionadas com a camada de rede, mas todas são limitadas em suas aplicações geográficas e no meio que empregam.
Finalmente, mostramos que mesmo quando os nós requerem somente nomadicity, as vantagens oferecidas pela mobilidade do IP Móvel podem tornar a administração de redes muito mais simples.
O IP Móvel soluciona os seguintes problemas:
- Se um nó move-se de um link para outro sem alterar seu endereço IP, o mesmo será incapaz de receber pacotes em seu novo link;
- Se um nó alterar seu endereço IP enquanto se move, o mesmo precisará terminar e reinicializar qualquer comunicação em andamento, sempre que ele mover-se de um link para outro.
Diferente das soluções de roteamento específico e camada de rede, o IP Móvel soluciona estes problemas de um modo seguro, robusto e independente do meio, de modo que se torna altamente adequado através de toda Internet.