## 3 Routing algorithms based on sensor position
### Flooding-based routing
The sink forms one-hop neighbor list consisting ID, a sector number, and the amount of remaining energy. The list is updated by an implicit ACK, which can locate a broken-link during the RTT. When the sink needs information on a specific area, it disseminates a query including a sector number and track number to a specific sector and track. Each sensor receiving the query can decide its action. If the sector number included in the query is equal to that of the sensor node and if the track number contained in the query is higher than that of the sensor node, the sensor node forwards the received query to its neighbors. Otherwise, it discards the query. So, the flooding is limited in a specific area. If the link from the sink to sensors in the sector is broken, the sink selects one node with the largest energy as REPLY node, which floods the query received from the sink. Based on different idea to limit the flooding area, [PERSON] proposed several limited flooding algorithms [39, 40], which is inspired by the LAR (Location-Aided Routing) [41]. (1) In Figure.10, a rectangular limited flooding area can be constructed according to the position information of  
Figure 8: Direction angle and sector number [38]. Figure 9: Track number [38]. (source) and \(D\) (destination). The packets sent by \(S\) include the position information of left-bottom and right-top of the rectangle. If sensor receiving the packets is in the rectangle, it forward the packets to its neighbors. Otherwise, the packets are discarded. In Figure.10, \(r\) is a parameter to enlarge or reduce the flooding area. (2) In Figure.11, a flooding area is limited by the distance from \(S\) to \(D\). The packets include the position information of \(S\) and \(D\) and it is very easy to calculate Dist-S (the distance from \(S\) to \(D\)). Each sensor can calculate Dist-X (the distance between the sensor, X, to \(D\)). If Dist-X is less than Dist-S, the packet is forwarded to other sensors. Otherwise, the packets are discarded. The parameter, \(\Delta\), is used to adjust the Dist-S. (3) In Figure.12, the angle\({}_{SOM}\) can be calculated based on R\({}_{S}\), R\({}_{d}\) and the position information of \(S\) and \(D\). Receiving the packet, the sensor, \(X\), can calculate the angle\({}_{SOX}\). If angle\({}_{SOX}\) is less than angle\({}_{SOM}\), the sensor forwards the packet. Otherwise, the packet is discarded. R\({}_{S}\) and R\({}_{d}\) are the parameters and can adjust the size of flooding area. In this algorithm, the angle is fixed. (4) In Figure.13, receiving the packet with relative information, each sensor, \(X\), calculates the angle\({}_{\text{DXM}}\) based on \(\min\{\frac{\pi}{4}\times[(1+(1-\frac{|XD|}{|SD|})],\frac{\pi}{2}\}\). \(|XD|\) and \(|SD|\) denote the distance from \(X\) and \(S\) to \(D\) separately. If the angle\({}_{\text{DXM}}\) calculated by \(X\) is larger than the angle\({}_{\text{DXM}}\) in the receiving packet, the packet is discarded. Otherwise, the packet is forwarded. Based on this algorithm, the area is reduced if the packet is more far from \(D\). So, the flooding area is dynamic. **Figure 10.** Rectangular limited flooding area [39]. **Figure 11.** Distance limited flooding area [39]. **Figure 12.** Static angle area [39]. **Figure 13.** Dynamic angle area [39]. In CBR model, there are two key problems: how to select the forwarding curve and how to select the next-hop. About the forwarding curve, although some simple curves, such as Beeline and Cosine, can be used in general applications, the curve parametric form is more suitable in order to avoid dangerous or doubtful area. Bezier curve is one of popular parametric curves [44, 46]. Compared with Bezier curve, B-spline curve has the following advantages [45]: (1) the computation cost is lower because the degree of the curve is independent on its control points; (2) a B-spline curve is naturally connected, so its shape can be controlled easily.