## 4 CL-APCC Protocol
### Network Congestion Control Methods
#### 4.1.1 The pre-control and adjustment method of node-level rate
That is because the channel from node \(i\) to \(i+1\) may experience large scale fading (the period length of large scale fading is \(\left\lceil{2{L_{\textrm{\tiny{Data}}}^{q}}\mathord{\left/{\vphantom{{L_{ \max}}{\mu_{i}^{i}}}}\right.\kern-1.2 pt}\mu_{i}^{i}\left(t\right)}\right\rceil\), the further detail to explain this issue has been discussed in the next paragraph), it is necessary for node \(i\) to lose packets, so CL-APCC protocol sets node \(i\) to lose the data packet which has the lowest priority (we will discuss the issue of priority in subsection 4.2). Node \(i\) notifies node \(i-1\) through an ACK message, and then node \(i-1\) sends feedback \"ACK\" to node \(i-2\) and iterates it to data sources which correspondingly reduce the sampling frequency. Node \(i\) is trying to send data after a random period of time (the length of random time is set to be the value between \(\left\lceil\,2\,L_{\textit{Data}}^{q}\big{/}\mu_{\textit{con}}^{i}\big{(}t \big{)}\right\rceil\) and \(\left\lceil\,3\,L_{\textit{Data}}^{q}\big{/}\mu_{\textit{con}}^{i}\big{(}t \big{)}\right\rceil\), which is decided by the period length of large scale fading.). If possible, node \(i\) first send data at the maximum rate. If the occupied node memory size regains access to the optimal interval, then the node \(i\) adjusts \(\rho=0.6\). Meanwhile, node \(i\) notifies node \(i-1\) using ACK message and the message is iterated to the data sources. Figure 5: The pseudo-code for single-node rate control method. Here, we describe the reason that the period length of large scale fading is not \(\left\lceil L_{Data}^{q}\middle/\mu_{k}^{i}\left(t\right)\right\rceil\) but \(\left\lceil 2L_{Data}^{q}\middle/\mu_{k}^{i}\left(t\right)\right\rceil\). In the network, it is seen that the earlier large scale fading is found, the better the results. Because it can not only save the energy of network, but also avoid the waste of bandwidth. Under ideal conditions, it is better that the large scale fading can be found once it has occurred. So, it seems that the period length of large scale fading should be \(\left\lceil L_{Data}^{q}\middle/\mu_{k}^{i}\left(t\right)\right\rceil\). Nevertheless, we set the period length of large scale fading is not at \(\left\lceil\left.L_{Data}^{q}\middle/\mu_{k}^{i}\left(t\right)\right\rceil\) but \(\left\lceil 2L_{Data}^{q}\middle/\mu_{k}^{i}\left(t\right)\right\rceil\). The reason is detailed as below: If the state of \(L=m\) has been continued a time of \(\left\lceil\left.L_{Data}^{q}\middle/\mu_{k}^{i}\left(t\right)\right\rceil\), it means at that time the node \(i\) is in the state of sending data but not really sending out. In other words, node \(i\) makes analysis for its storage state while data is just being sent, which leads the node to make errors because of congestion caused by itself. So, the typical period of large scale fading is \(\left\lceil 2L_{Data}^{q}\middle/\mu_{k}^{i}\left(t\right)\right\rceil\). In conclusion, the congestion can be effectively unblocked using Equation (7) as well as the ACK messages when the node may experience congestion (the pseudo-code is shown in Figure 5). But all of the above congestion problems only consider the perspective of the node-level. Owing to the occurrence of network congestion with the characteristic of space relevancy, solutions must be obtained to unblock congestion both on the node-level and system-level.