## 3 Related Work  
Two sets of existing works are related to this work. The first set of works is on QoS frameworks or mechanisms and the second one on NC-based works for WBSNs. In [14], the authors have improved the reliability of WBSNs in the case of node or links failures. They used clustering to improve reliability, energy efficiency and data delivery time. Their work does not support service differentiation, and it is not adaptive to dynamic network conditions. The distributed queuing body area network (DQBAN) [15] uses a cross-layer fuzzy rule-based scheduling algorithm to improve energy efficiency in WBSNs. It uses a QoS scheduler along with fuzzy logic rules implemented in each body sensor to avoid collisions. The deployed fuzzy logic approach in each body sensors helps with making a decision based on the SNR of the channel, residual battery power, _etc_. However, the integration of a fuzzy logic system in each body sensor makes system implementation complex and resource hungry, which makes this framework unsuitable for WBSNs [2]. Moreover, this work did not include sensor-level priority to support users' or applications' preferences. BodyQoS [17] provides QoS in WBSNs by applying service differentiation, radio-agnostic QoS and adaptive bandwidth scheduling. BodyQoS consists of three components: admission control, QoS scheduler and virtual MAC (VMAC). It estimates the effective bandwidth of a channel and if the channel is affected by noise and a high packet loss rate (PLR), then high priority sensors receive more resources to retransmit their data until they are transmitted correctly. However, too many retransmissions could make it unsuitable for delay-bounded applications. Retransmissions also may lead to buffer overflow in body sensor nodes and waste channel resources. Thus, the work may fail to provide reliable and real-time data delivery. In [38], the authors presented the urgency-based MAC (U-MAC) protocol. Body sensors that report urgent health information are given higher priority. High priority sensors get more retransmission slots by cutting-off from low priority body sensors. Thus, U-MAC improves the delivery time of high priority sensors. Like DQBAN, [38] does not consider dynamic channel conditions in the case of high packet loss probability, hence reliability. Moreover, the service differentiation considered is not adaptive to applications or users. Similarly, in PMAC (priority MAC) [39], protocol data channels are separated from control channels, and the priority is given to the life-critical traffic (emergency traffic). It also uses sleep mode for energy efficiency. Reliability in the case of dynamic and lossy channel conditions is missing. The authors in [40] considered \begin{table}
\begin{tabular}{c c c c c} \hline \hline  & & \multicolumn{3}{c}{**QoS Requirements**} \\ \hline
**QoS Mechanism** & **Reliability** & **Real-Time Delivery** & **Energy Efficiency** & **Adaptability** \\ \hline Collision Management & - & ✓ & ✓ & ✓ \\ Clustering & ✓ & ✓ & ✓ & ✓ \\ Data Compression & - & - & ✓ & ✓ \\ Error Recovery & ✓ & ✓ & ✓ & ✓ \\ Power Control & ✓ & ✓ & ✓ & ✓ \\ Service Differentiation & - & - & - & ✓ \\ \hline \hline \end{tabular}
\end{table} 
Table 4: QoS mechanisms and the QoS requirements addressed by them. traffic priority and load-adaptive MAC (PLA-MAC), which provides QoS to the packets according to their priority. The packets with higher priority get better services than the packets with lower priority. Even though it considers packet-level priority and reliability, the network's channel condition-based adaptation is missing. In [41], the authors have proposed a hybrid polling medium access control (MAC) protocol with human energy harvesting abilities (HEH-BMAC) for WBSNs. HEH-BMAC supports sensor-level priorities (high and normal), energy-awareness and flexibility. Other QoS issues, especially reliability, and adaptiveness to network's condition are missing. In [26, 29], the authors exploit the decode and forward mechanism for cooperation, which can be a concern for real-time applications.