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.