# WFO: Cloud-Edge Cooperative Data Offloading Strategy Akin to Water Flow
## 4 WFO Design
### Data Offloading  
This section introduces the data offloading process shown in Figure 5. Data offloading involves two processes. First, the data is forwarded in a set order \(\mathcal{L}^{\prime}_{k}\) to the last node. The second is multi-node coordination, which requires all nodes to accept the control and scheduling of the data source. Assume that the grouping contains three nodes: \(\{N_{1},N_{2},N_{3}\}\). The priority \(N_{1}\) is greater than \(N_{2}\). \(N_{2}\) is greater than \(N_{3}\). At the beginning of the data offloading, the data source offloads the data to \(N_{1}\), which immediately forwards the received data to \(N_{2}\). See Figure 5 on the left-hand side. If the data offloading task from the cloud to \(N_{1}\) is complete, the cloud releases the bandwidth of \(N_{1}\) for data transmission to \(N_{2}\). Both the cloud and \(N_{1}\) send data to \(N_{2}\). As shown in the middle of Figure 5, same as \(N_{2}\), \(N_{3}\) has more nodes that work together to offload the data. See Figure 5 on the right-hand side. As node \(N_{1}\) receives all the data, a new problem arises, which is how to distribute the amount of data sent by higher-priority nodes. For the convenience of calculation, we reorder the nodes. We use \(\zeta\in[1,n_{k}]\), which represents the \(\zeta\)th node in \(\mathcal{L}^{\prime}_{k}\). Therefore, the data delay of the first node in \(\mathcal{L}^{\prime}_{k}\) can be formulated as:  
\[t_{\zeta=1}=\frac{S}{B_{\zeta=1,C}} \tag{9}\]  
where \(\zeta=1\) denotes the first node of the link \(\mathcal{L}^{\prime}_{k}\). The data received by the second node consists of two parts. The first part originates from the forwarding of the first node. The transmission delay and data volume are:  
\[t^{{}^{\prime}}_{\xi=2}=t_{\xi=1} \tag{10}\]  
\[V^{\xi=2}_{r}=t_{\xi=1}\times(min\{B_{\xi=1,C},B_{\xi=2,\xi=1}\}) \tag{11}\]  
where \(t^{{}^{\prime}}_{\xi=2}\) represents the duration for the first node to forward data to the second node. \(V^{\xi=2}_{r}\) represents the amount of data obtained by the second node in time \(t^{{}^{\prime}}_{\xi=2}\). In the second part, unaccepted data is forwarded in a collaborative manner. The amount of data not received is:  
\[V^{\xi=2}_{\xi}=S-V^{\xi=2}_{r} \tag{12}\]  
Here, we want the same transmission delay for data not received. The data transmission delay is:  
\[t^{{}^{\prime\prime}}_{\xi=2}=\frac{V^{\xi=2}_{\xi}}{B_{\xi=1,\xi=2}+B_{\xi= 2,C}} \tag{13}\]  
where \(t^{{}^{\prime\prime}}_{\xi}\) represents the duration for the \(\xi\)th node to obtain data through cooperative forwarding. The delay of all the data received by second node is:  
\[t_{\xi=2}=t^{{}^{\prime}}_{\xi=2}+t^{{}^{\prime\prime}}_{\xi=2}=t_{\xi=1}+ \frac{V^{\xi=2}_{C}}{B_{\xi=1,\xi=2}+B_{\xi=2,C}} \tag{14}\]  
The amount of data forwarded by the first node to the second node is:  
\[V^{\prime}_{\xi=1,\xi=2}=t^{{}^{\prime\prime}}_{\xi=2}\times B_{\xi=1,\xi=2} \tag{15}\]  
The amount of data forwarded by Node \(C\) to Node \(\zeta=2\) is:  
\[V^{\prime}_{C,\xi=2}=t^{{}^{\prime\prime}}_{\xi=2}\times B_{C,\xi=2} \tag{16}\]  
Recursively, the transmission delay for Node \(\zeta\) in \(\mathcal{L}^{\prime}_{2}\) to obtain all the data is:  
\[t_{\zeta}=t_{\zeta-1}+\frac{V^{\zeta}_{\xi}}{\sum_{\rho=2}^{\zeta-1}B_{\rho, \zeta}+B_{\zeta,C}} \tag{17}\]  
where \(\rho\) indicates a node with a higher priority than \(\zeta\). \[t_{\zeta=1}=\frac{S}{B_{\zeta=1,C}} \tag{9}\]0 At the beginning of data transmission, data, akin to water flow, is forwarded according to link priority to ensure that more nodes can receive service responses in a short time (**Left**). When a node has received all data, the datacenters release bandwidth to unload data for other nodes (**Middle**), using multiple nodes to offload data simultaneously for lower-priority users (**Right**). Because \(t_{\xi}\) is related to \(t_{\xi-1}\), Equation (17) can be derived as follows. See Appendix A for proof. \[