# A Multi-Parameter Comprehensive Optimized Algorithm for MPTCP Networks
## 3 MPCA Algorithm  
Based on the above description, this paper puts forward a comprehensive optimized algorithm (referred to as MPCA). The input/output parameter set of this algorithm can be expressed as follows. Input parameter set:  
\[IPS:=[TOP,PM,CC]\]  
where,  
_TOP_: = [Site Name, Internet Service Provider, Bandwidth], a topology structure information set of heterogeneous transmission network;  
_PM_: = {PCDC, FullMesh}, a set of path management policies, an enumerated value;  
_CC_: = {Cubic, OLIA, Hybla, Reno, Scalable, Vegas}, a set of congestion control algorithms, an enumerated value. Output set of optimized performance indicators:  
\[OOPS:=[OTP,OBS,OCC,OPM]\]  
where,  
_OTP_: = the relative maximum throughput, which is the main constraint of this algorithm;  
_OBS_: = the relative minimum buffer size;  
_OCC_: = the suitable CC algorithm, one of _CC_;  
_OPM_: = the suitable PM policy, one of _PM_. These four parameters are output simultaneously. According to the definition of above _IPS_ and _OOPS_ two sets, the MPCA can be expressed by the following function:  
\[OOPS=F(ips),\;ips\in IPS \tag{2}\]  
The function \(F\) can be decomposed into the following five sub-functions \(f_{1}\),...,\(f_{5}\), which can be seen in Equations (3)-(8) respectively. The corresponding algorithm execution steps are illustrated in Figure 2.  
This algorithm involves the following key steps:  
1. According to the topology of the MPTCP network, the available subflow's set is obtained, \[ \begin{array}{l}sp=f_{1}(top),sp\in SP,top\in TOP\\ SP=\{sp_{1},\cdots,sp_{i},\cdots,sp_{N}\},N=N_{s}\times M_{r}\end{array} \] (3) where \(N_{s}\) is the number of interfaces at the sending side (i.e., the number of local ISPs); \(M_{r}\) is the number of interfaces at the receiving side (i.e., the number of remote ISPs). Actually, this available subflows of \(SP\) are all used for transmission in FullMesh policy;
2. Based on the set of input parameters, the throughput \(TP\) of each available subflow can be measured, \[ \begin{array}{l}tp=f_{2}(sp,cc),tp\in TP,cc\in CC\\ TP=\{TP_{1},\cdots,TP_{i},\cdots\},i=1,2,\cdots,N\end{array} \] (4)
3. With the obtained \(TP\), the IF value \(\Omega\) of all available subflows are calculated by: \[\Omega_{i}=f_{3}(tp)=1-\frac{\sum\limits_{t=T+1}^{2T}TP_{i}(t)}{\sum\limits_{t =0}^{T}TP_{0}(t)}\] (5) where \(\Omega_{i}\) is the IF value of \(i\)-th subflow, \(TP_{0}(t)\) is the total throughput at the time \(t\), \(TP_{i}(t)\) is the throughput at time \(t\) when the \(i\)-th subflow does not participate in transmission, and \(T\) is the transmission time, see Figure 3. In Figure 3, from time \(0\) to time \(T\), all subflows participate in transmission, and the throughput \(TP_{0}(t)\) at each time is calculated, which is a function of time \(t\) (\(t\)\(\in[0\), \(T\)]). From time \(T\) to time \(2T\), the \(i\)-th subflow (\(i\)\(\in[1\), \(N]\)) does not participate in the transmission, other subflows continue to transmit data, and the throughput \(TP_{i}(t)\) is calculated which is also a function of time \(t\) (\(t\)\(\in[T,2T]\)). Then the IF value \(\Omega\) can be calculated by Equation (5);
4. Using IF value, the available subflow set \(SP\) is divided into optional subflow subset \(SP\)* and standby subflow subset. The optional subflow \(SP\)* is used for transmission in PCDC, \[ \begin{array}{l}osp=f_{4}(sp_{i},\Omega_{i}),osp\in SP^{*}\\ SP^{*}=\{sp_{1},\cdots,sp_{i},\cdots sp_{N}\}\backslash\{sp_{i}|\Omega_{i}<0\} \end{array} \] (6)
5. According to the \(SP\)* sets obtained in Step 4 and \(CC\), remeasure the throughput to obtain \(TP^{*}\) (for FullMesh, throughput does not need to remeasure, \(TP\) is \(TP^{*}\)), \[ \begin{array}{l}rtp=f_{2}(osp,cc),rtp\in TP^{*}\end{array} \] (7)  
Figure 2: Algorithm working mechanism.