Unlike traditional RTS-CTS-DATA-Acknowledgement (ACK) handshaking data transmission modes, the proposed dual channel MAC protocol for UASNs based on directional antenna (DADC-MAC) utilizes a directional antenna, neighbor discovery, directional network allocation vector, and channel busy prompt message, among other characteristics. The DADC-MAC protocol comes with enhanced network coverage range, efficient use of space, low neighbor node interference, and resolution to the hidden terminal problem and deafness problem.
4.1. Antenna Model
Each node in the network is equipped with two underwater acoustic antennas. One is an omnidirectional antenna, which is only responsible for sending channel busy prompt messages. The transmission radius of the omnidirectional antenna is the same as that of the directional antenna in the directional mode. In addition to the omnidirectional antenna, the node working under the DADC-MAC protocol is also equipped with an underwater acoustic directional antenna. According to the formation mode of antenna directivity, underwater acoustic directional antennas can be classified into array underwater acoustic directional antenna, underwater acoustic directional antenna based on acoustic baffle, underwater acoustic directional antenna of compound excitation type, and multimode superposition underwater acoustic directional antenna categories. Compared to the first three underwater acoustic directional antennas, the multimode superposition underwater acoustic directional antenna has no side lobe, high directivity, smaller size, and high-energy conversion rate making it very well suited to UASNs [
33].
Under the DADC-MAC protocol, the node is equipped with a multimode superposition underwater acoustic directional antenna, which is composed of multiple isometric beams. These beams do not intersect and jointly cover the whole omnidirectional area. The directional antenna has two working modes: omnidirectional and directional. The working mode switch time of the antenna is ignored. In the directional mode, the directional antenna can send or receive signals at only one beam direction at the same time. The directional antenna model is shown in
Figure 5. It is composed of M isometric beams. Only main lobe gain is considered, and side lobe gain is ignored.
In the DADC-MAC protocol, we start from the three o’clock position and number the beams from 1 to M clockwise. The width of each beam is , so we have . The directional antenna has two working modes: omnidirectional and directional. The antenna gain of the omnidirectional mode is . The antenna gain of the directional mode is , and . In the directional mode, the antenna can send or receive signals at any beam direction so as to increase retransmissions at this direction; the beam direction switch time of the antenna is ignored. When the node is idle, the directional antenna hears the signals from various directions in the omnidirectional mode. The signal strength of each beam is compared as the node receives signals. The direction of the beam with the maximum signal strength is the direction of the source node. Then, the node sends and receives the DRTS signal, DCTS signal, DATA package, and ACK signal in the directional mode.
4.2. Neighbor Discovery and Directional Network Allocation Vector
Neighbor discovery is the precondition and key to make MAC protocol work normally. The DADC-MAC protocol is equipped with a simple and efficient neighbor discovery mechanism. Each node in the network has a neighbor information table (NLT) which is empty initially. When the node is in the idle mode, it overhears the channel in the omnidirectional mode. Once the node hears any signal (e.g., RTS, CTS, DATA package, ACK), the current node extracts the source node ID and position information carried in the signal regardless of whether the signal is sent to said current node and updates the information into the NLT. By cooperating with NLT, each node in the DADC-MAC protocol also maintains a directional network allocation vector, which is used to record the duration for data transmission by the neighbor nodes. The node equipped with directional network allocation vector may judge whether the channel is busy according to such information and know how long it cannot send data.
In essence, the directional network allocation vector is a timer. The vector does not decrease by itself, but also updates itself continuously according to the heard signal. When the node in the network hears the DRTS signal, it judges whether it is the destination node. If it is, the node directionally sends the CTS signal back to the source node. If it is not, the NLT and directional network allocation vector are updated according to the information carried in the RTS signal. For example, as shown in
Figure 6, Node A wants to send data to Node B, so it sends the DRTS signal to Node B. After Node B receives the DRTS signal and judges it is the destination node, the DCTS signal is directionally sent back to Node A. Node C is in the same direction as Node B and within the directional communication range of Node A, so the DRTS signal is also received. After Node C judges it is not the destination node, it does not send the DCTS signal back to Node A and the NLT and directional network allocation vector are updated.
Table 3 shows the NLT and directional network allocation vector of Node C.
4.3. Channel Busy Prompt Message
The DADC-MAC protocol protects the on-going data transmission and avoids DATA package collision by sending channel busy prompt messages by the node. The channel is divided into two sub-channels. One is used to receive and send communication data by the directional antenna (e.g., DRTS, DCTS, DATA package, ACK). The other (which occupies a narrow bandwidth) is used to send channel busy prompt messages by the omnidirectional antenna. The transmission of communication data and channel busy prompt messages in different sub-channels does not result in interference. The channel busy prompt message contains the node ID and directional antenna beam number in
format, where
represents node ID and
represents the directional antenna beam number. The channel busy prompt message is very short and is sent cyclically within the required time bucket. In the communication process, the sending node sends channel busy prompt messages while sending the DATA package. It stops sending when receiving the ACK signal. After the receiving node completes CTS signal transmission, it starts to send channel busy prompt messages and stops sending after sending the ACK signal.
Figure 7 shows the timing diagram of channel busy prompt message, where Node A is the sending node and Node B is the receiving node.
When the sending node receives channel busy prompt messages from other nodes, the source node ID and directional antenna beam number are extracted. If the source node is the destination node, the destination node is busy and the sending node postpones the data transmission to the destination node. If the source node is not the destination node, the sending node judges whether the source node is in the same beam area as the destination node, according to the information in the NLT. If it is, the sending node postpones data transmission to the destination node so as to avoid collision. If it is not, the sending node judges the channel in the direction of the destination node as idle and sends the DATA package to it directionally.
4.4. Protocol Process and Example
The flow chart of the DADC-MAC protocol is given in
Figure 8.
Under the DADC-MAC protocol, at the transmitting terminal, the node overhears the channel in the omnidirectional mode when it has no DATA package to send. When the node has data to send, it first judges whether the channel at the direction of destination node is idle. If the channel is busy, the node enters the idle state. If the channel is idle, the node sends the DRTS signal to the destination node and set a timer, then waits for the destination node sends back the DCTS signal. If the sending node does not receive the DCTS signal from the destination node within the preset maximum waiting time, it returns to the idle state. If the sending node receives the DCTS signal from the destination node within the preset maximum waiting time, it sends the DATA package to the destination node and then set a timer and waits for the destination node send the ACK signal back while sending channel busy prompt messages through the omnidirectional antenna. If the sending node receives the ACK signal from the destination node, it stops sending the channel busy prompt messages and the data transmission process is complete. If the sending node does not receive the ACK signal within the preset maximum waiting time, the destination node sends the DATA package again and waits for the ACK signal until reaching the maximum number of retransmissions. At the receiving terminal, when the receiving node receives the DRTS signal sent by the sending node, it directionally sends the CTS signal back to the sending node, and sends channel busy prompt messages through the omnidirectional antenna and sets a timer. When the data package is received successfully, the receiving node directionally sends the ACK signal back to the sending node and stops sending the channel busy prompt messages.
Figure 9 shows the working process of the DADC-MAC protocol. There are six nodes in the network: A, B, C, D, E, and F. As described above, each node is equipped with an omnidirectional antenna and a directional antenna. The directional antenna has four beams. The communication range of the omnidirectional antenna is same as that of the directional antenna in the direction mode. When Node A has DATA packet to be sent to Node B, it first judges the channel in the direction of Node B. If the channel in that direction is idle, Node A directionally sends a DRTS signal to Node B and then waits for Node B to send a DCTS signal back. After receiving the DRTS signal from Node A, Node B sends the DCTS signal back to Node A; it also sends channel busy prompt messages by the omnidirectional antenna with the content of
. Then, Node B waits for the DATA package sent by Node A. After Node A receives the DCTS signal, it sends the DATA package to Node B while sending channel busy prompt messages by the omnidirectional antenna with the content of
. After Node B successfully receives the DATA package, it sends an ACK signal back to Node A and stops sending the channel busy prompt messages. After Node A receives the ACK signal, it enters an idle state and stops sending the channel busy prompt messages. The data transmission process is complete.
Node D is the neighbor node within the communication range of Node B. When Node B communicates with Node A, Node D has data to be sent to Node B. The data transmission process is postponed to avoid collision when the channel busy prompt message sent by Node B is heard. Node C is the neighbor node within the communication range of Node A. Node C has data to be sent to Node E. Although data is not sent to Node A, as Node A is between Node C and Node E and on a straight line, the communication between Node C and Node E interferes in the communication between Node A and Node B. Thus, after Node C hears the channel busy prompt message send by Node A, it postpones the transmission to Node E so as to prevent interference with Node A. When Node A communicates with Node B, Node F has data to be sent to Node E. Although Node F receives the channel busy prompt message sent by Node A, the channel busy prompt message indicates that the communication between Node F and Node E must not interfere in the current data transmission. Therefore, Node A/Node B and Node E/Node F communicate at the same time to efficiently utilize network space.
The DADC-MAC protocol can also well resolve the hidden terminal and deafness problems described in
Section 3. For the hidden terminal problem caused by the unheard DRTS/DCTS, as shown in
Figure 2, although Node B hears the channel busy prompt message (though it does not receive the DCTS signal) sent by Node D, it knows that the channel in that direction is busy.
For the hidden terminal problem caused by the asymmetrical antenna gains, as shown in
Figure 3, although Node A cannot receive DCTS signal sent by Node D, it can also receive the channel busy prompt message sent by Node C. It judges the channel in that direction as busy and postpones data transmission to Node B.
For the deafness problem, as shown in
Figure 4, Node A has DATA package to be sent to Node B when Node B communicates with Node C. While hearing the channel in the direction of Node B, Node A receives the channel busy prompt message sent by Node B and thus knows Node B is communicating and postpones data transmission to it.