GPSR is a greedy, stateless routing protocol for wireless networks that uses geographic positioning to route packets. It uses greedy forwarding to route packets hop-by-hop to the neighbor node closest to the destination. When greedy forwarding gets stuck in local maxima, it uses perimeter forwarding to recover by routing around the perimeter of the void area.