## 5 End-to-End Reliable Transmission Mechanisms for HCWSNs
### Reliable Transport Layer Protocols  
Due to the scarce bandwidth, energy constraints, and unpredictable characteristics of the wireless medium in WSNs, end-to-end reliable transport protocols like the transmission control protocol (TCP) are not suitable [32]. Nevertheless, several reliable transport protocols have been proposed for WSNs. The protocols can be categorized in terms of the direction (_i.e._, upstream or downstream) in which reliability can be obtained. In the context of health care, downstream is used for queries from the server (e.g., doctors) to the sensors (e.g., patients) and upstream is used for events detected at the sensors and transmitted to the server. It is also important that the reliable transport protocol support multicast transmissions for the delivery of data from a single server to several patients. For this reason, we focus our review on multicast-capable protocols. _PSFQ_[34]: Pump Slow Fetch Quickly (PSFQ) is a downstream multicast and broadcast reliable transport protocol for WSNs that performs hop by hop error recovery. PSFQ offers four key features: (1) it is independent of the routing layer. (2) Conserves power by both using hop by hop error recovery and NACKs to prevent NACK implosion problems. (3) Adopts multimodal operation to adaptively account for low and high error rates, and (4) the aggregation of errors, minimum retransmission and retransmission requests make it scalable and efficient. As its name implies, PSFQ distributes data slowly (pump slow) and recovers from errors quickly (fetch quick). In the pump process, the source node periodically broadcasts a data packet every \(T_{min}\). When the packet is received by a node, it forwards the packet at any time between \(T_{min}\) and \(T_{max}\), delaying the transmission by \(T_{min}\) to allow for the fetch quick operation. When this transmission occurs over multicast paths that have several hops, the delay can be high. Each transmitted packet from the source node contains a unique sequence number. When a receiver node receives a packet with a sequence number that is out of sequence, the fetch mode is entered. While in fetch mode, the receiver node generates and broadcasts a NACK message (which contains the sequence numbers of the packets that are missing) to its one-hop neighbors every \(T_{r}\) until the missing packets have been recovered or the maximum number of requests have been issued. The neighboring nodes retransmit the missing packet to the requestor if they have the packet stored in their data cache. The simulation results for PSFQ show that the PDR and latency do not degrade but increase, respectively, with increasing hops at high error rates (30%) [34]. Furthermore, when the error rate is less than 70%, the retransmission overhead only increases by a small margin. These results show that PSFQ exhibits high error tolerance and is able to scale to a large number of hops without much performance degradation. In health care applications where error rates can be high due to obstructions, interference, and mobility, it is necessary for the reliable transport protocols to be robust to errors. _GARUDA_[35]: GARUDA addresses the problem of reliable downstream point-to-multipoint data delivery in WSNs using a scalable framework that leverages the characteristics of a WSN while achieving reliability in an efficient manner. There are three main elements that define the framework of GARUDA's design: (1) single/first packet delivery. (2) Instantaneous core construction, and (3) two phase loss recovery. GARUDA ensures the reliable delivery of the first packet of messages of any size using a pulsing based approach, and thus is not susceptible to the \"all packets lost\" problem [35] that most NACK based schemes endure. To ensure the delivery of the first packet, a process called Wait-for-First-Packet (WFP) pulse transmission takes place.