based on next - hop routing and source routing , the embodiments of the invention are categorized into next - hop lock routing and source lock routing respectively . the following list describes acronyms and definitions for terms used herein : path node : a network node that forwards traffic packets on a route path . path neighbor : a network node around a route path that can overhear traffic packets on the route path . a path neighbor does not need to be aware that it is which path node &# 39 ; s neighbor . upstream node : a path node locates relatively close to the source node . downstream node : a path node locates relatively close to the destination node . route update node list : a set of nodes on a route path that participate in a route update process , which includes initiator , target , and intermediate path nodes . link quality : parameters that can be signal strength , signal - to - noise ratio , bit error rate , or a combination of them . node state parameter : parameters that measure the node state , e . g . remaining energy and workload . valid neighbor timeout : a timer for a valid neighbor relationship . routing control message identification : each node maintains an identification for each routing control message ( e . g . route update , route reply , and route request ) in order to determine freshness of the routing control message . route update target : a final receiver of a route update message . route update initiator : a node that initiates a route update process . route update cache timer : a timer that caches a route update message . route update idle timer : within the idle timer a route update initiator does not re - initiate a route update process for the same target node . local route request message : a route request message from a source node to a destination node that is forwarded by qualified path nodes and path neighbors . embodiments of next - hop lock routing and source lock routing are described by way of examples with reference to the accompanying drawings . 1 ) an embodiment of next - hop lock routing is described as blow . 1 . 1 ) route discovery : a source node floods a route request message to a destination node throughout a network . upon receiving the route request message , the destination node unicast a route reply message back to the source node . following the discovered route path , the source node sends traffic packets to the destination node . after receiving the first traffic packet , the destination node periodically broadcast hello packets . 1 . 2 ) neighbor relationship : a node set up a neighbor relationship with a route path by overhearing traffic packets on the route path based on a route path identification ( e . g . source and destination addresses , flow id ); a node set up a neighbor relationship with a source node or a path node by overhearing traffic packets sent by the source node or the path node ; a node set up a neighbor relationship with a destination node by listening hello packets . the neighbor relationship expires after a valid neighbor timeout . 1 . 3 ) how a path node handles next - hop lock traffic header : fig2 illustrates a diagram of a traffic packet structure and a next - hop lock traffic header . when a path node receives a traffic packet , the path node marks the route path for the traffic packet as active in its routing table , measures the link quality of the previous hop and its remaining energy , and updates the route update node list and the route update pending flag as needed . there can be three cases as below . 1 . 3 . 1 ) when the link quality of the previous hop falls below a threshold , or the remaining energy of the path node falls below a threshold , the path node inserts the ip addresses of the previous hop and the hop before the previous hop into the route update node list , and set the route update pending flag to be false . fig1 illustrates a route update process , in which node 5 detects the link with node 4 is turning stale , and inserts the ip addresses of node 2 and node 4 into the route update node list of the next - hop lock traffic header . 1 . 3 . 2 ) when the link quality of the previous hop does not fall below a threshold , the path node check three conditions as follows : a ) the route update node list is not empty , b ) the route update pending flag is false , c ) the path node has not cached a route update message to the same target node within the past route update cache timer . if the three conditions are all true , the path node set the route update pending flag to be true , and then generates and caches a route update message , in which the target is the most - upstream node in the route update node list . fig3 illustrates a route update message structure . in fig1 , node 8 generates and caches a route update message , in which the route update node list includes node 2 , 4 , 5 , and 8 ; the target is node 2 ; the initiator is node 8 . 1 . 3 . 3 ) when the two conditions above are all false , the path node cleans up the route update node list , and set the route update pending flag to be false . when a path node forwards a traffic packet , the path node replaces the ip address of the hop before the previous hop with the ip address of the previous hop , and set the ip address of the previous hop to be its ip address . 1 . 4 ) route update process initiated by path node : if a path node caches a route update message , and detects the link quality of the next hop is greater than a threshold by overhearing traffic packets forwarded by the next path node or listening hello packets sent by the destination node , the path sends out the cached route update message . otherwise , the path node discards the cached route update message . 1 . 5 ) route update process initiated by destination node : if a destination node detects the link quality of the previous hop falls below a threshold , or finds the route update node list is not empty and the route update pending flag is false , the destination node immediately sends out a route update message . in the route update message , the target is the most - upstream node in the route update node list ; or is the node of the previous hop if the route update node list is empty . 1 . 6 ) local broadcast of route update message : when a network node receives a route update message , the node drops the route update message in one of the following conditions : a ) the link quality of the previous hop falls below a threshold ; b ) a state parameter of the node falls below a threshold , while the route update reason is due to the node state parameter ; c ) the route update message is initiated by the node ; d ) the route update message is duplicate ; e ) the node is not qualified for forwarding the route update message . the qualification for forwarding the route update message is determined by one of the following conditions : a ) the node is a path node on the route path that is to be updated ; b ) the node is a neighbor of one of the nodes in the route update node list . if the node is qualified for forwarding the route update message , the node can update its routing table with the new route path . in fig1 , node 6 participates in forwarding a route update message as a neighbor of node 8 , while a part of the old route path to the destination ( node 4 → node 5 → node 8 ) is replaced with that of the new route path ( node 4 → node 6 → node 8 ). 1 . 7 ) how a target node handles a route update message : fig4 illustrates a flow diagram of an exemplary process for updating its routing table upon receiving a route update message . 1 . 8 ) local broadcast of route rediscovery : when a source node receives a route error message from a path node , the source node sends a local route request message to the destination node . path nodes of the previous route path and path neighbors of the previous route path are qualified for forwarding the local route request message . fig5 is a diagram of a local route request message structure . upon the destination node receives the local route request message , the node unicast a route reply message back to the source node . if local broadcast based route rediscovery cannot find a new route path , the source node floods a route request message to acquire a route path . 2 ) an embodiment of source lock routing is described as blow . 2 . 1 ) route discovery : a source node floods a route request message to a destination node throughout a network . upon receiving the route request message , the destination node unicast a route reply message back to the source node . based on the discovered route path , the source sends traffic packets to the destination node . 2 . 2 ) neighbor relationship : a node set up a neighbor relationship with a source node or a path node by overhearing traffic packets sent by the source node or the path node ; a node set up a neighbor relationship with a destination node by listening route request messages . the neighbor relationship expires after a valid neighbor timeout . 2 . 3 ) route update process determined by path node : when a path node detects the link quality of the previous hop falls below a threshold or one of its node state parameters ( e . g . remaining energy , workload ) falls below a threshold , the path node inserts a source lock traffic header illustrated in fig7 into a traffic packet , and set the route update flag to be true in order to request downstream nodes to initiate a route update process . in fig6 , node 3 detects the link with node 2 is turning stale and set the route update flag to be true . 2 . 4 ) route update process initiated by destination node : when a destination node finds a traffic packet contains a source lock traffic header , the route update flag is true , and the node has not initiated a route update process to the source node within the past route update idle timer , the destination node sends a route update message to the source node . fig8 illustrates a diagram of a route update message structure in source lock routing . 2 . 5 ) local broadcast of route update message : when a node receives a route update message , the node drops the route update message in one of the following conditions : a ) the link quality of the previous hop falls below a threshold ; b ) a state parameter of the node falls below a threshold , while the route update reason is due to a node state parameter ; c ) the route update message is initiated by the node ; d ) the route update message is duplicate ; e ) the node is not qualified for forwarding the route update message . the qualification for forwarding the route update message is determined by one of the following conditions : a ) the node is a path node on the route path that is to be updated ; b ) the node is a path neighbor ; c ) the node is a neighbor of the target node . if the node is qualified for forwarding the route update message , the node updates the parameters related to the new route path in the route update message , and forwards the route update message . fig6 illustrates the route update process . node 3 finds the link with node 2 is turning stale , and then marks the route update flag in the traffic packets , which triggers the destination node to initiate a route update process to update the old route path ( source → node 1 → node 2 → node 3 → node 4 → node 5 → destination ). as a result , a new route path ( source → node 6 → node 7 → node 8 → node 4 → node 5 → destination ) is discovered after local broadcast of the route update message . 2 . 6 ) how a source node handles a route update message : fig9 illustrates a flow diagram of an exemplary process for updating its routing table upon receiving a route update message . 2 . 7 ) local broadcast of route rediscovery : when a source node receives a route error message from a path node , the source node sends a local route request message to the destination node . path nodes of the previous route path and path neighbors of the previous route path are qualified for forwarding the local route request message . fig1 is a diagram of a local route request message structure . upon the destination node receives the local route request message , the node unicast a route reply message back to the source node . if local broadcast based route rediscovery cannot find a new route path , the source node floods a route request message to acquire a route path .