Além da problemática dos hosts móveis com roteadores fixos, existe uma dificuldade adicional em redes com roteamento móveis, conhecidas como roteamento em redes ad-hoc.
Três de ambientes móveis devem ser sempre consideradas quando são projetados algoritmos para redes ad-hoc:
- Inexistência de uma entidade central
- Possibilidade de rápidas mudanças topológicas
- Todas as comunicações ocorrem através de ondas de rádio
A falta de um ponto central, que poderia eventualmente coordenar a rede na totalidade, requer algoritmos distribuídos mais sofisticados, para enfrentar o problema de roteamento. A mudança de topologia, pode deixar as informações de localização rapidamente obsoletas. A velocidade com que o algoritmo percebe estas mudanças é um ponto que deve ser observado. A comunicação entre dois hosts pode não ser constante, na verdade pode ser intermitente e esporádica.
Segundo o grupo de trabalho MANET (Mobile Ad hoc NETworks), que discute os problemas de redes ad-hoc dentro do Internet Engineering Task Force (IETF), as principais qualidades para protocolos de roteamento são:
- Operar de forma distribuída
- Livre de loops: O algoritmo deve ser robusto, com relação a pacotes que ficam trafegando na rede por períodos arbitrários de tempo.
- Operações baseadas em demanda de trafego: O método deve ter a capacidade de se adaptar a diferentes condições de tráfego. Se isto for feito de forma eficiente, utilizaremos melhor os recursos de rede e a energia da bateria.
- Segurança : Sem a ajuda de outros níveis do modelo TCP/IP, o protocolo de roteamento é vulnerável as mais variadas formas de ataque. É desejável entretanto, mecanismos para inibir modificações na forma de operação do protocolo.
- Períodos de sonolência: O protocolo deve ter a capacidade de adaptar-se, sem muitas conseqüências, a períodos de inatividade dos hosts móveis. Sejam estes períodos avisados com antecedência ou não.
- Suporte a links unidirecionais: Tipicamente algoritmos de roteamento para redes ad-hoc assumem links bidirecionais, sendo que muitas propostas não funcionam sobre links unidirecionais. Entretanto estes podem ocorrer freqüentemente.