3.3 GEAR
Uma das grandes limitações das redes ad-hoc, em especial as redes de sensores, é a limitação de suas baterias. O protocolo GEAR é uma proposta de roteamento geográfico que visa minimizar o consumo de energia em uma rede ad-hoc.
Para realizar o roteamento, o protocolo GEAR divide a rede em regiões retangulares, os pacotes são encaminhados da região de origem até a região de destino através de um algoritmo guloso que utiliza uma função de custo baseada na distância e na energia restante no nó. Ao alcançar a região de destino, o pacote é encaminhado utilizando-se uma inundação restrita.
A função de custo dos nós é calculada da seguinte forma: assumimos que o nó N está enviando um pacote P, cuja região destino é R. O centróide da região destino é D. Para minimizar a energia e ao mesmo tempo enviar o pacote, o protocolo se baseia no custo aprendido para região R, o C(N,R), que será definido a seguir.
Cada nó conhece o seu C(N,R) para todas as regiões R da rede. O C(N,R)  inicialmente é calculado da seguinte forma:
C (N, R) = α D(N, R) + (1- α) E(N)
Onde,
D(N, R)= Distância do nó N a R.
E(N)=Energia consumida por N
a= parâmetro  entre 0 e 1, que define a importância da distância e da energia no calculo do custo.
Esse C(N,R) inicial não reflete a realidade, pois o pacote não será enviado em linha reta como pressupõe esse cálculo. Por esse motivo, o C(N,R) é atualizado a cada pacote enviado. Ao enviar um pacote, o nó emissor procura seu vizinho Ni que tenha o menor C(Ni,R). Após a envio do pacote, o nó N atualiza seu C(N,R) como: C(N,R)= C(Ni,R) + C(N,Ni). Isso é repetido até que o pacote alcance a região R.
Ao alcançar a região R, o pacote P é roteado através de uma inundação restrita, que é feita da seguinte forma, o nó da região R que receber o pacote, divide a região R em X retângulos, e cria X copias de P enviando a cada uma das novas sub-regiões, e isso é feito recursivamente até que o nó seja o único dentro da sub-região.
O termino do envio do pacote ocorre quando o pacote é entregue com sucesso no seu destino, quando o nó destino está “morto” ou quando ocorre um dead-end.
Ao chegar em um dead-end, o nó N ,que possui o pacote, envia para o vizinho Nj com o menor C(Nj,T). Depois de feito isso, o nó N atualiza seu C(N,R) como C(N,R)= C(Nj,R) + C(N,Nj). Quando (Caso) o pacote alcançar seu destino, todos os nós que participaram da rota terão seu C(N,R) atualizados.