This paper presents a hybrid multimodal network, composed by sensor nodes, an AUV and a sink node. The sensor nodes are equipped with the AHOI modem, while the sink uses the EvoLogics S2CM HS acoustic modem. The AUV collects the data from the sensors: it can behave as the sink itself, by resurfacing and transmitting the data to shore via radio link or convey the data to a sink deployed from a buoy or an Autonomous Surface Vehicle (ASV). In the former case, the AUV can be equipped only with the AHOI modem, while in the latter case it has to use an EvoLogics S2CM HS modem as well. In order to handle different modems the AUV requires a dedicated multimodal layer, that selects which modem to employ. This layer, called UW-MULTI-DESTINATION [
48], is deployed between the routing layer and the MAC layer. For each incoming packet from the routing layer, UW-MULTI-DESTINATION first checks the packet’s next hop address and then chooses the right physical layer technology to use for the transmission. This selection is performed through a technology per node map, where the UW-MULTI-DESTINATION stores the list of physical layers available at each node. In our case this list is assumed to be known at network deployment, however, a periodic topology discovery mechanism [
49] might be employed to update the list. In
Section 7.1, a protocol stack that employs the UW-MULTI-DESTINATION layer will be evaluated via simulation.
4.1. A Polling-Based Mac Protocol for Underwater Acoustic Networks
The MAC layer employed in the data-muling scenario is a polling-based MAC protocol. The general behavior of the protocols is described by the state machines depicted in
Figure 7. In particular, most of the protocol logic is implemented in the AUV (
Figure 7a), which collects the data from the sensor nodes and, optionally, forwards the data to a sink node. All the operations performed by the sensor nodes (
Figure 7b) and the sink node (
Figure 7c) are executed in reaction to the AUV indications.
The UW-POLLING protocol works in two phases: the discovery phase identifies how many surrounding sensor nodes have data packets to send and the polling phase collects the data from the nodes. In case a sink node is employed, in the polling phase the data is also forwarded to the sink. The discovery phase starts when the AUV sends a TRIGGER packet () in broadcast, revealing itself to all the surrounding nodes. Each node that correctly received the and has data to transmit replies with a PROBE packet () after a random backoff time. The AUV collects all the s and then starts the polling phase sending to one node at a time a POLL packet () and waiting for the data from the selected node. If the SINK receives a , it replies with a as well; afterwards, in the polling phase, the AUV will forward the data to the sink. A detailed description of the UW-POLLING protocol is reported in the rest of this section.
At the beginning of the discovery phase the AUV transmits the to all the surrounding nodes. The contains information that will be used by the nodes to send the . In particular, the minimum () and the maximum () backoff time to use for the transmission of the are inserted in the . This mechanism enables the AUV to possibly adapt the backoff time choice based on the network density.
The nodes that correctly received the and have data packets to send reply with the . Each node transmits the after a random backoff time uniformly chosen between and . In the , each node i inserts the number of data packets that is going to transmit () in the polling phase. This information is needed by the AUV to choose the order in which to poll the nodes. is bounded by a maximum value equal for each node of the network, in order to avoid that a node which holds many packets acquires the access to the channel for a long time, thereby preventing all the surrounding nodes from transmitting. If the sink received the , it takes part in the contention, transmitting a as well. The AUV waits for the reception of all the s until either a timeout expires or the maximum number of () is received.
Once the is transmitted, the node waits for the from the AUV. If the is not received before a timeout , the node considers a failure in the transmission of either the or the and waits for the reception of another . Similarly, the sink waits for for the reception of the first data packet from the AUV. If the data is not received within , the sink waits for the reception of another .
If the AUV does not receive
s, the discovery phase starts again with the transmission of another
. Instead, if at least one PROBE is received, the polling phase starts. Firstly, the AUV creates the POLL list, that is, the ordered list of the nodes to be polled. The UW-POLLING protocol sorts the nodes according to a proportional fair scheduling, trying to obtain fairness in the number of packets each node transmits to the AUV. In particular, for each node
i, the AUV computes a weight
, where
is the number of data packets received by the AUV from node
i so far [
50]. Then the nodes are sorted according to this weight, in order to select first the nodes with the highest weight. If two or more nodes have the same weight, they are ordered depending on the time of arrival. If a
from the sink is received, the sink is inserted in the list as well. The sink is inserted in the first position such that the sum of the packets that the AUV expects to receive from the previous nodes in the list and the number of data packets that are already in the AUV’s queue (
), is greater than or equal to the maximum number of packets the AUV can transmit to the sink in each polling phase (
). Thus, if
m is the position in the POLL list, the sink is placed in position
such that
If this condition is never reached, the sink is inserted at the end of the POLL list.
After the creation of the POLL list, the AUV starts to POLL all the nodes in the list. The AUV sends a to the first node in the list and waits for the reception of the data packets from the selected node. Once the AUV receives all the expected data packets from node i, it polls the next one in the list. If some packets are lost, the AUV waits until the timeout expires before going to the next node in the list. is automatically computed based on the number of data packets the AUV expects to receive from node i and the round-trip-time (RTT) between the AUV and the polled node, measured during the discovery phase.
In the the AUV inserts the expected amount of time it needs to poll all the nodes in the list. This value is used by all the nodes that received the POLL packet to refine the timeout . Similarly, the sink can use the value inserted in the POLL to adapt the timeout as well. When node i receives the intended for itself, it starts to transmit data packets to the AUV. After the transmission of the last packet, the node moves to the IDLE STATE waiting for the reception of another .
If the selected node in the list is the sink, the AUV starts to transmit up to data packets to the sink. Once the sink receives the first data packet, it refines the timeout to a value within which it expects to receive all the data packets from the AUV. The timeout is needed for the transmission of an acknowledgement (ACK) to the AUV. Indeed, if the last packet is lost, the sink needs to wait until expires before sending the ACK. Instead, if the last packet is correctly received the ACK is sent immediately after the reception of this packet. For this purpose, before sending the data, the AUV inserts in each packet a unique ID (UID) and the UID of the last packet it is going to transmit in that polling phase. The lost packets are sent again in the next polling phase, according to a Selective Repeat (SR) Automatic Repeat Request (ARQ) mechanism: after the data transmission, the sink sends to the AUV an ACK containing either the UIDs of the lost packets or the UID of the next expected packet, in case no packets are lost. The AUV waits for the reception of the ACK until seconds from the transmission of the last packet and, if the ACK is not received within this timeout, it considers the ACK lost and starts to POLL the next node in the list. Moreover, the sink employs a second mechanism for the packet acknowledgment. This second ACK is inserted in the and consists of a Go-Back-N (GBN) ARQ mechanism. Indeed, the transmitted by the sink contains the UID of the first lost packet in the previous polling phase. If no packets were lost, the UID of the next expected packet is inserted. The main purpose of the second ACK is to avoid the retransmission of the whole block of data packets in case the first ACK is lost.
When all the nodes in the POLL list are polled by the AUV, the polling phase ends and the discovery phase starts again.
4.1.1. Timeout Setting
As described in
Section 4.1, the behavior of the UW-POLLING protocol depends on the timeout settings. In this section we describe more in detail how these timeouts are computed.
used by the AUV has to be properly set to a value such that all the s can reach the AUV before the timeout expires. In particular, the timeout has to be set to a value , where is the maximum RTT of a node in the network.
Another timeout employed in the protocol is
. Each node updates its own timeout every time a
is received. The value of
is inserted in the
and is computed each time a new
is transmitted. The value of the timeout is computed as:
where
is the number of remaining sensor nodes in the POLL list (the sink, if any, is not considered),
is the time needed to transmit a DATA packet,
is the RTT between node
i and the AUV measured in the discovery phase and
is a guard time, used to take into account the processing delay and errors in the RTT measurement. The last term of the equation takes into account the time the AUV should employ to transmit
packets to the sink. The value of
inserted in the
is also used by the sink to update
.
The timeout
is also updated when the first data packet is received by the sink. The timeout is updated based on the number of data packets the sink is going to receive by the AUV. Since each data packet contains the UID of the last transmitted packet in that polling phase, the sink can easily compute the expected number of packets it will receive. The time needed to receive the data is
and the timeout is set to:
Finally,
is the timeout used by the AUV to stop waiting for the reception of the data packets from a polled node
i and is computed as:
4.1.2. Choice of the Maximum Backoff Time
For each node density
, defined as the number of nodes deployed in 1 km
2, an optimal value for the maximum backoff time (
) that maximizes the throughput exists (see
Section 5.2 and
Section 6.2). If the AUV is not aware of the network node density, or if the density is not constant in all the network area, the AUV has to employ some algorithm to estimate the value of
and, therefore, adapt the best maximum backoff time to use time by time. In this section, we present a reactive system based on the estimated number of neighbors
. This estimate is performed by the AUV at the end of the discovery phase, by observing the number of probe packets received. Two separate cases are analyzed: the case where we assume full knowledge (
) information about the number of packets arrived at the physical layer and the realistic case (
), where only the packets received by the MAC layer are considered.
assumes full knowledge of the number of
s that have been correctly received in the
k-th discovery phase
and the number of packets discarded (
) by the physical layer at any time during the simulation. While the former is a parameter well known by the MAC layer, the latter can rarely be determined with high accuracy by a real modem: for this reason the
algorithm is used as an upper-bound benchmark. With
, the estimated number of neighbors during the
k-th discovery phase
is calculated as
where
is the total number of lost packets at the beginning of the
k-th discovery phase and
the total number of lost packets at the end of the same discovery phase.
assumes knowledge of
and
, that is, the number of probe packets that have been correctly received and discarded by the MAC layer in the
k-th discovery phase, respectively. In this case, both parameters are known by the MAC layer of realistic modems, therefore we are not introducing any assumptions that may favor our solution (this is particularly true for both the AHOI and the EvoLogics modems, although the latter has to be employed with the extended notification activated). The estimated number of neighbors during the
k-th discovery phase
is calculated as
A packet is discarded by the MAC layer due to the failure of the CRC checksum, either because of low SNR, or because of interference. A packet is not received by the physical layer (and, consequently, not even passed to the MAC), instead, if its signal strength is below the sensitivity threshold of the transducer, due to a failure during the per-packet synchronization caused by a low SNR or interference, or if the packet reaches the destination when the physical layer is already receiving another packet. The last case is true only if the modem does not employ any interference cancellation mechanism [
51] and preamble re-synchronization, as in the case of the AHOI modem. In order to perform a fair comparison, in this paper we assume that also the EvoLogics HS modem does not employ any interference cancellation system, as we do not have any information about it.
As presented in Equation (
8),
is calculated by accounting two times the number of packets discarded by the MAC layer: this is because during the discovery phase, where many nodes compete to access the channel, there is a high probability that if a packet
is lost at the MAC layer this is due to the interference with another packet
arrived after the beginning of the reception of
. In this case, both
and
are discarded but only
is detected. In the results we will analyze when this consideration is true and how it affects the system performance.