# Asymmetric Propagation Delay-Aware TDMA MAC Protocol for Mobile Underwater Acoustic Sensor Networks
## The APD-TDMA
### Transmission Phase  
Let us begin with an example for a better understanding of the proposed scheduling method. Figure 3 illustrates the APD-TDMA with three UNs. At the beginning of the (\(j+1\))th cycle, the SN broadcasts beacon packet that contains the \"schedule\" of UNs. When UN receives this beacon packet, a UN waits for the \"schedule\" time specified by the beacon packet before sending the data packet. Figure 2: Flow chart for the initialization phase of the APD-TDMA. The SN determines this waiting time of each UN by the estimation of packet travel time. When the SN receives data packets from all UNs at \(T_{CYC}^{j}\), the SN estimates the time \(\delta_{i}(T_{Brx,i}^{j+1})\) required for the beacon packet to arrive at \(\text{UN}_{i}\), and the data packet transmission order is determined in ascending order of \(\delta_{i}(T_{Brx,i}^{j+1})\). In Figure 3, the SN receives the data packets in the order \(\text{UN}_{1}\), \(\text{UN}_{2}\), and \(\text{UN}_{3}\). The schedule of \(\text{UN}_{1}\), denoted by \(\Delta w_{1}^{j+1}\), is zero, i.e., \(\text{UN}_{1}\) send data packet as soon as the beacon packet is received. Now, in order that the data packet of \(\text{UN}_{2}\) does not collide with the data packet of \(\text{UN}_{1}\), the data packet of \(\text{UN}_{2}\) should arrive at the SN after the data packet of \(\text{UN}_{1}\) is received. We control the arrival time of the data packet of \(\text{UN}_{2}\) by the schedule of \(\text{UN}_{2}\), denoted by \(\Delta w_{2}^{j+1}\). To obtain \(\Delta w_{2}^{j+1}\), it is necessary to determine the time at which the data packet of \(\text{UN}_{1}\) is received and the time at which the data packet transmission of \(\text{UN}_{2}\) should start. Details for scheduling are given in Section 2.3.1. The transmission phase begins if the SN is ready to send the first beacon packet, which provides data packet transmission schedule of UNs. In the transmission phase, the SN broadcasts a beacon packet, and each UN transmits data packet according to the transmission schedules specified in the received beacon packet. We define a cycle as the time duration from the start time of beacon packet transmission to the end time of last data packet reception. The transmission phase of the proposed APD-TDMA is illustrated in Figure 4. Now, we explain the detailed procedure to determine the transmission schedule for the \((j+1)\)th cycle at the end of the \(j\)th cycle using Figure 4.  
The first step is the estimation of the propagation delay from the SN to each UN at the beginning of the \((j+1)\)th cycle. The SN can get the velocity of \(\text{UN}_{i}\) from the data packet received at the \(j\)th cycle, denoted by \(V_{i}^{j}\). In addition, the position of \(\text{UN}_{i}\) at the arrival time of the \(j\)th beacon packet, denoted by \(X_{i}^{j}\), is already estimated during the transmission schedule determination procedure of the \(j\)th cycle. At the end time of the \(j\)th cycle, denoted by \(T_{\text{CYC}}^{j}\), the position of \(\text{UN}_{i}\), denoted by \(X_{i}(T_{\text{CYC}}^{j})\) can be estimated as follows  
\[X_{i}(T_{\text{CYC}}^{j})=X_{i}^{j}+V_{i}^{j}\cdot(T_{\text{CYC}}^{j}-T_{Brx, i}^{j}) \tag{8}\]  
Figure 3: APD-TDMA with three UNs. in which \(T_{Brx,i}^{j}\) is the arrival time of the \(j\)th beacon packet at UN\({}_{i}\), which is already estimated during the determination of transmission schedule of the \(j\)th cycle. Note that \(V_{i}^{j}\) is the velocity at the time of \(T_{Brx,i}^{j}\), and that Equation (8) is based on the position change of UN\({}_{i}\) that moves at the velocity of \(V_{i}^{j}\) during the \(j\)th cycle. The propagation delay of UN\({}_{i}\) at the time of \(T_{CYC}^{j}\), denoted by \(\delta_{i}(T_{CYC}^{j})\), can be obtained from Equations (7) and (8). For the complete exploitation of UN\({}_{i}\)'s mobility, we consider the change of position during the propagation of the \((j+1)\)th beacon packet.