# A Mathematical Model for Efficient and Fair Resource Assignment in Multipath Transport
## 3 Mathematical Model
### Extension of the Objective Function for Fairness
#### 3.2.1 Bottleneck Subflow Fair Allocation (BSF)  
BSF ensures equal share between multiple subflows on a common congested link as described in Definition 6. An example for a network where BSF is applied was already given in Figure 2.  
In order to formulate bottleneck subflow fair allocation, let \(m^{st}\) be the end-to-end capacity allocation to a _multipath_ flow \([s,t]\in K\), \(m^{st}=0\) if the flow \([s,t]\in K\) is a single path flow. The value \(m^{st}\) should not be confused with \(g^{st}\) which is the allocation to _any_ flow, irrespective of single or mulitpath, or with \(cap_{ij}\) which is the physical capacity of a link.  
In the most simple case, the objective function for BSF is the same as the previously defined max-flow Equation (6) which does not make use of multiple paths if a single-path solution yields a better result. The objective function is therefore written as:  
_BSF-I:_  
\[\text{maximize}:\quad Alloc. \tag{7}\]  
The variable \(Alloc\) is the aggregated allocation of all flows (multipath + single path).  
The difference between pure max-flow and BSF-I with maximum allocation is that BSF includes additional constraints enforcing fairness which are applied in addition to the general constraints from Section 3.1:  
* All subflows which share the same bottlenecked link should get the same share (Equations (A40) and (A41)).
* It has to be ensured that a single-path flow gets the same share as a subflow of a multipath flow (Equations (A42) and (A43)).  
BSF-I supports multipath, but does not make use of it if single-path yields a better allocation. The goal is, however, to push the system towards multipath usage which means that the latter should be rewarded to enhance fairness. Let \(M\) be the aggregated allocation of all multipath flows as shown in Equation (8)  
\[M=\sum_{[s,t]\in K}m^{st}, \tag{8}\]  
where \(s\) and \(t\) are stations inside the network \(K\) running multipath flows. The objective function is then extended as:  
_BSF-II:_  
\[\text{maximize}:\quad Alloc+\beta\cdot M, \tag{9}\]  
where \(\beta\) is a positive constant to provide a weighting between prioritizing maximum capacity and using multiple paths. The elements \(m^{st}\) which are summed up to \(M\) are determined by constraints given in the Appendix A.2.1 in Equations (A32) to (A34). Further constraints control the mapping between flows, subflows and links:  
* A subflow only gets an allocation on a particular link if the link is part of the particular subflow (Equations (A35) and (A36))
* The allocation of a flow is greater than or equal to the allocation of its subflows on a given link (Equations (A37) and (A38)).
* A subflow gets the same allocation on all links which are part of the subflow's path (Equation (A39)).  
Finally, for BSF-II, the constraints controlling the fairness as mentioned for BSF-I also need to be applied.  
Practical multipath implementations as they are e.g., known from MPTCP always make use of multiple paths if the end nodes are equipped with multiple interfaces, even if a single-path solution might yield a higher aggregated throughput. This happens e.g., if a subflow shares more than one bottleneck link with other (sub)flows. Therefore, BSF-II reflects the behavior of practical protocols in a better way than BSF-I.