# A Multipath Data-Scheduling Strategy Based on Path Correlation for Information-Centric Networking
## 4 Multipath Data Scheduling
### Data Scheduling  
After the relay node selection is completed, multiple uncorrelated sub-paths can be established between the source node and destination node. During multipath transmission, even sequentially sent packets may arrive out of order because the sub-paths may differ in terms of bandwidth, latency, packet loss rate, and so on. In this case, the packets sent later must wait for the packets sent earlier to arrive at the receiver, resulting in packets accumulating and blocking in the receiving buffer. Once the receiving buffer overflows, subsequent packets are forcibly dropped, which, in turn, affects the performance of multipath transmission. Therefore, it is important to design an efficient data-scheduling strategy to maintain traffic load balancing among sub-paths. In the ICN multipath transmission scenario, data scheduling should take into account the following two problems: (1) If there are multiple optional sub-paths, how can the priority of each sub-path be determined? (2) How can the size of the scheduling granularity be determined, and how can the data be distributed to be transferred to each sub-path? To solve the first problem, the scheduler is required to measure the path state accurately and timely and preferentially assign the traffic to the sub-paths with a better state. In ICN, in addition to the basic routing and forwarding functions, ICN routers also support some specific services, such as a multipath transmission service, caching service and multicast service. Therefore, the traffic characteristics in ICN are more complex and variable, which also increases the difficulty of path state measurement. In this paper, the path state value is calculated by combining the RTT and packet loss rate, which can be expressed as:  
\[path\_state_{i}=\omega_{1}\times RTT_{i}^{*}+\omega_{2}\times P_{i}^{*} \tag{8}\]  
where \(RTT_{i}^{*}\) and \(P_{i}^{*}\) respectively represent the normalized RTT and packet loss rate of the \(path_{i}\), and the corresponding weights of \(\omega_{1}\) and \(\omega_{2}\) satisfy \(\omega_{1}+\omega_{2}=1\). To calculate the path state value, the maximum and minimum standardization of the above indicators is required. Since both the RTT and packet loss rate belong to negative dimensions, their normalization can be expressed as:  
\[RTT_{i}^{*}=\frac{max\_RTT-RTT_{i}}{max\_RTT-\min\_RTT} \tag{9}\]  
\[P_{i}^{*}=\frac{max\_P-P_{i}}{max\_P-\min\_P} \tag{10}\]  
where \(max\_RTT\) and \(\min\_RTT\) denote the maximum and minimum RTT of all sub-paths, respectively, and \(max\_P\) and \(\min\_P\) represent the maximum and minimum packet loss rate of all sub-paths, respectively. To solve the second problem, the scheduler is required to determine the appropriate size of scheduling granularity. The scheduling granularity refers to the minimum unit of data scheduling during multipath transmission. According to the size of the scheduling granularity, the existing scheduling methods can be divided into packet-based scheduling methods and cluster-based scheduling methods. The granularity of the packet-based scheduling method is finer and facilitates multipath load balancing, but the scheduler needs to make scheduling decisions for each packet, which increases the burden on system processing. The granularity of the cluster-based scheduling method is coarser, which ensures that the packets within the cluster can be transmitted along the same path and reduces the system processing burden. In ICN, the chunk is the basic data unit for transmission. To ensure that the packets within a chunk can arrive in order, we set the scheduling granularity to the chunk level. During multipath transmission, a principle needs to be followed: that is, if there are idle paths, the idle paths are preferred; if no idle path exists, the chunks to be transmitted are distributed to each sub-path according to the corresponding scheduling strategy. As described in Algorithm 2, we propose a data-scheduling algorithm that distributes the chunk to be transmitted to the each sub-path based on the path state value.