## 6 Communications
### Routing  
Many routing protocols have been designed specifically for WSN where energy saving is the primary concern. The research about these protocols is reflected in different general purpose surveys [48, 88, 89], as well as in more specific ones, such as [90] which deals with real-time protocols. In general, the selection of a routing protocol is closely related to the network architecture of the system and the topology of its sensing subsystem. The former fact is reflected on [48], which proposes a protocol classification based on the underlying network structure, and which is quite similar to the one proposed in Section 3.5, differentiating between flat, hierarchical, and location-based routing protocols. Routing in VANET, on the contrary, has to deal with the mobility of vehicles which produces constant changes in the network topology. Surveys on this topic may be found in the literature in [91] and [92]. In the latter, the protocols are divided into: _Unicast_ where a vehicle creates a source-to-destination routing path via wireless multi-hop transmission or carry-and-forward techniques; _Multicast_, _where_ packets are delivered from a single source to a multicast group members by using multi-hop communication; _Geocast,_ where a packet is transmitted to a specific geographic region, and finally, _Broadcast,_ where a vehicle sends messages to all other vehicles in its coverage range. In an analogous way to the preceding section, the classification introduced in [48] (flat/hierarchical/location-based) will be used to guide this subsection in order to explain the different contributions to routing done by the authors of the reviewed works. Routing in flat networks is totally dependent on the selected topology for the sensing subsystem. This also applies to intra-cluster routing in clustered networks. From the presented topologies in Section 3.1, only the mesh and the string topologies are able to perform multi-hop routing. The rest of topologies instead rely on direct point to point communications with a sink node. It is remarkable the considerable power savings that these topologies may achieve if they use unidirectional communications, _i.e._, the detector nodes merely detect events and notify the sink without receiving commands from it, given that detectors' transceivers may be in sleep mode for extended periods of time, until the detection of an event. Mesh topologies, mostly used in smart parking applications, can be routed according to many different fashions and protocols which are out of the scope of this paper. However an important consideration must be made. The aforementioned disruption of communication links caused by vehicles parked over sensor nodes deployed in parking lots produces bursty packet losses, with high time correlation but low spatial correlation. As a consequence mechanisms based on acknowledgements and retransmissions are not appropriate for reliability. This is studied in [28], where authors instead propose the use of multi-path transmissions to assure that packets are correctly received by the sink, more specifically they use a selective flooding algorithm. Finally, string topologies support simple linear forwarding. In them a node just forwards either to the preceding node (upstream) or to the subsequent node (downstream), despite some works consider transmission to non-adjacent nodes (e.g., two hops away) in order to find a compromise between efficiency and robustness [65]. In addition it simplifies the development of protocols for neighbor discovery [36], and therefore self-organization, or data fission [22, 35], which allows traffic control applications receiving more sporadic updates about the traffic state rather than continuous messages indicating the presence of a single vehicle, possibly reported several times by different nodes. As the size of the network grows hierarchical networks and routing protocols become necessary. In most cases routing is performed from multiple data sources to a single base station (bottom-up).