# An Efficient Scalable Scheduling MAC Protocol for Underwater Sensor Networks +
## 5 Efficient Depth-Based MAC Protocol
### Normal Operational Phase
It also needs to know which slots are reserved by them, as one-hop neighbouring nodes, to schedule its wake up time. After reserving a time slot and in order to address the hidden terminal problem, every node attaches an ordered, based on their depths, list of neighbouring nodes located at a lower depth than itself to the scheduling packet. This is to avoid any overlapping among two-hop neighbours. The scheduling results table, as shown on the right-hand side of Figure 5, shows the receiving nodes of each scheduling packet by each node along with the associated _DPL_ and the reserved slot. However, one rare case of collision might be occurred by two nodes located outside each others' transmission ranges. Hence, one slot might be reserved by two nodes. This happens, as shown in Figure 5, when nodes \(H\) and \(I\) are both neighbouring nodes, with higher depth, of node \(J\) which are hidden from each others. Node \(F\) reserved slot \(n\), \(0\leq n\leq(N_{\mathrm{s}}\!-\!1)\). Nodes \(G\) and \(H\) receive the scheduling packet of node \(F\) which includes its reserved slot and its _DPL_. Consequently, slots \((n+1)\)_mod_\((N_{\mathrm{s}}\!-\!1)\) and \((n+2)\)_mod_\((N_{\mathrm{s}}\!-\!1)\) are reserved by nodes \(G\) and \(H\), respectively. This is mainly because both nodes are one-hop neighbours located in lower depth than node \(F\). Node \(I\) knows the slot number reserved by \(G\), but is not aware of the reserved slot by \(H\), so it reserves the same slot \((n+2)\)_mod_\((N_{\mathrm{s}}\!-\!1)\). As a result, transmitting a packet by nodes \(H\) and \(I\) may lead to a collision at node \(J\). To address this issue, the concept of sub-slots is introduced. In this case, both \(H\) and \(I\) nodes transmit their packets by reserving the same slot and then by randomly selecting different sub-slots out of number of available sub-slots, \(N_{\mathrm{s}_{\mathrm{s}}}\), thereby node \(J\), as a receiver, is able to collect both packets transmitted after each other without collision, as presented in Figure 6.  
Figure 5: An example of depth-based scheduling in ED-MAC along with the scheduling results. Moreover, Figure 6 illustrates how all the sensor nodes, in Figure 5, schedule their transmission period by reserving slot based on their depth priority: the greater the depth, the higher the priority to reserve a slot first. This figure also shows at what slot each node must wake-up to receive a packet from a neighbouring node according to the network topology given in \[N_{s}=2\times N_{max}, \tag{4}\]0 In this case, the number of slots, \(N_{s}\), is 8 by doubling the maximum one-hop neighbouring nodes, \(N_{max}\), as shown in Equation (4). It should be noted that any two-hop neighbouring nodes or more can simultaneously be operated in the same slot, such as nodes \(A\) and \(J\). In the following example, we explain how a sensor node in the network topology given in Figure 5 assigns a slot based on its depth priority. Node \(F\) received the scheduling packets from nodes \(C\) and \(E\), as one-hop neighbouring nodes located at a higher depth than itself, which include their reserved slots and _DPL_s. Node \(C\) reserves slot 2 because its _DPL_ contains the one-hop neighbouring nodes located at a lower depth than itself such as nodes \(D\), \(E\), and \(F\). Node \(E\) reserves slot 4 because it knows that node \(D\) is going to reserve slot 3 by the _DPL_ of node \(C\). By receiving both depth priority lists of nodes \(C\) and \(E\) and their reserved slots, the next available slot that can be used by node \(F\) is slot number 5, as depicted in \[N_{s}=2\times N_{max}, \tag{4}\]1