1. A method for a node in a wireless network to forward a packet using a routing protocol, the method comprising: receiving the packet from another node; and operating in a forward progress mode of the routing protocol, comprising: identifying neighbor nodes, for each identified neighbor node: determining a progress value based on an immediate hop from the node to the identified neighbor node, comprising determining a first expected cost of sending the packet from the node to the identified neighbor node as Cc i , wherein Cc i is given as: C ci = 1 P ci ⁢ P ic + 1 P ic , where P Ci is a probability of a successful packet transmission from the node to the identified neighbor node, and P ic is a probability of a successful packet transmission from the identified neighbor node to the node; determining a prospect value based on any consequent hop from the identified neighbor node toward a destination node; and identifying a routing objection function value for the identified neighbor node based on one or more of the progress value and the prospect value; selecting one of the identified neighbor nodes as a selected neighbor node based on the identified routing objective function values; and sending the packet to the selected neighbor node.