# SACRB-MAC: A High-Capacity MAC Protocol for Cognitive Radio Sensor Networks in Smart Grid
## 2 SACRB-MAC Framework
### Protocol Description
#### 2.3.3 Next-Hop Competition Mechanism  
In SACRB-MAC, nodes have no forwarder lists. The sender does not select a particular receiver. It is the receiver nodes that decide the next hop node, which is similar with receiver-based MAC protocols (such as CRB-MAC in literature [10]).It is assumed that the sender node \(S\) has data packets to transmit. First, \(S\) implements spectrum sensing (with duration \(T_{ss}\)) to detect PU activities. If all of channels are busy (\(\mathbb{S}_{busy}^{i}\)), the node \(S\) will turn to sleep mode and waits for available channels. The spectrum sensing operation will be repeated after the duration of checking interval (\(T_{CI}\)). If available channels (\(\mathbb{S}_{idle}^{i}\)) are detected, \(S\) will start broadcasting the preamble over CCC and the test packet over all available channels for receiver SNR determination. The preamble is composed of multiple micro-frames and lasts for \(T_{pr}\). Each micro-frame lasts for \(T_{m}\) and contains essential information for data transmission and spectrum aggregation, such as identification information and available channel list. All the one-hop neighbor nodes of \(S\) will detect the micro-frames and test packet. Then, the data packet can be identified based on the identification information, and received SNR for each available channel can be calculated. We note that all nodes in the communication range of \(S\) are receiver candidates. However, only the nodes, which can access all the selected channels, will receive the data packet and are termed as _valid receivers_. For example, five neighboring nodes of \(S\) (_i.e._, nodes \(A\), \(B\), \(C\), \(D\) and \(E\)) are eligible to forward the data. They wake up and receive the preamble on CCC. Based on the available channel information of the sender and spectrum sensing result, each node can calculate out the the highest capacity of the link between the sender and itself. It is assumed that node \(A\) responds first. After the duration \(\Delta t_{A}\), node \(A\) gives the response preamble to the sender \(S\) on CCC, in which the channel list for spectrum aggregation is included. Based on the response preamble, \(S\) can split data packet on the selected channels and broadcast the packet in the aggregated band. Moreover, all of other neighbor nodes (_i.e._, \(B\), \(C\), \(D\), \(E\)) will check the selected channels. If the channels are available, these nodes will also receive the data from \(S\). If the received data packet is detected to be erroneous, it will be simply discarded. The receiver which accomplishes the data packet receiving first and has available channels for transmission will send the preamble in CCC and apply to forward the data. Moreover, if receivers do not begin the preamble transmission on CCC in \(t_{m}\), this forwarding will be discarded. In addition, \(S\) will retransmit the data packet if none of the nodes within its transmission range transmits the response preamble in the contention window. This can be found by \(S\) by performing sensing operation before ending the contention window (\(T_{CW}\)), where \(T_{CW}\) is dependent on the transmission radius of \(S\). The algorithm of response-based next hop competition mechanism is shown in Algorithm 1.