## Main Design of DERM
### Track Routing
#### 4.4.1 Determining the Forwarding Direction
Otherwise, \(i\) chooses a neighbor \(j\) as the forwarder which satisfies following conditions:

\[\left\{ \begin{array}{ll}\max\limits_{j\in N(i)}Adv_{fD}^{P}(i,j),\\ s.t.\;j\in\Omega(P),\\ 0<Adv_{fD}^{P}(i,j)<\beta R.\end{array} \right. \tag{17}\]

\(\beta\) is a factor used to restrict the single-hop advance because an excessively large advance may result in missing the mobile sink. Generally, we set \(\beta\) as 1. If \(i\) cannot find such a node \(j\), it will forward the packet to its adjacent node in the direction \(fwd\)_Dirc_. We also consider an infrequent situation that the packet misses the sink due to a long advance. Assume the timestamps of node \(i\) and its last-hop node are \(t_{i}\) and \(t_{last}\), respectively. The situation will be recognized if (1) \(t_{i}<t_{last}\) when the path is round-trip; or (2) \(t_{i}<t_{last}\) when the path is cyclic and \(fwd\)_Dirc_ is _same_; or (3) \(t_{i}>t_{last}\) when the path is cyclic and \(fwd\)_Dirc_ is _opposite_. The principle is that the Beacon timestamps mutate at the node being visited by the sink. In this case, the forwarding direction will be reversed. The packet will be forwarded back to the adjacent node in new \(fwd\)_Dirc_ and enter the reverse track routing mode. When receiving a packet in the reverse track routing mode, a node just transfers it to the adjacent node in \(fwd\)_Dirc_. Figure 6: Examples of determining the forwarding directions for (**a**) the round-trip path; and (**b**) the cyclic path. We take Figure 7 as an example to illustrate the track routing process in DERM. The dashed lines represent the adjacent route. A packet at node \(N_{0}\) needs to be delivered to the sink \(M\). As in Figure 6a, the packet will be first transferred to \(N_{3}\) with the freshest timestamp, and the forwarding direction is determined as \(\overline{N_{0}N_{3}}\). Then, \(N_{3}\) chooses \(N_{6}\), which has the maximum \(Adv_{fD}^{P}\) as the next-hop forwarder. Note here that forwarding to the adjacent node \(N_{4}\) will incur a longer route. On receiving the packet, \(N_{7}\) fails to find a neighboring RN and sends it to the adjacent node \(N_{9}\) through an ordinary node \(N_{8}\) outside the region \(\Omega(P)\). When the packet arrives at \(N_{11}\), it realizes that the sink is missed. \(N_{11}\) will reverse the forwarding direction and transmit the packet to its adjacent node \(N_{10}\), which is within the communication range of \(M\). It can be observed that the track routing adopts a \"greedily advance, discreetly step back\" strategy, achieving high energy efficiency as well as reliable data delivery. Compared to the pheromone-based forwarding scheme [14], with our approach, the packet will not get stuck when failing to locate a neighboring node with a fresher timestamp. It takes full advantage of the path information, and thus (1) just needs to query the timestamps once for determining the forwarding direction and (2) can also obtain better performance for the cyclic path. ## 5 Implementation and Performance Evaluation

In this section, we implement DERM and three other solutions in the ns-2 simulator [50], and compare their performance. The immediate multi-hop routing is used in [31] for sensor nodes to transmit data packets to the mobile sink when it pauses at anchor points. The rendezvous-based routing is adopted in [32], with which each node transfers data to an RN via the shortest path. We adapt these two approaches for WSNs with a path-fixed and strictly uncontrollable mobile sink. In addition, we present a delay-constrained rendezvous-based scheme as a supplementary baseline. Their routing strategies are introduced below. * _Immediate Multi-hop Routing (Multihop)_: All nodes send data packets immediately to the mobile sink using geographic routing. The location of the sink is estimated and calibrated as in DERM, and the track routing mechanism is exploited to dealing with the location deviations.