# A Mathematical Model for Efficient and Fair Resource Assignment in Multipath Transport
## 2 Terminology
### Fairness
This corresponds to an allocation of \(15\,\mathrm{Mbps}\) to each flow. Let \(f_{i}\) where \(i=1,\ldots,n\) be \(n\) legacy or multipath flows sharing a link \((g,h)\) with capacity \(cap_{gh}\). If all \(f_{i}\) are bottlenecked on \((g,h)\), the assignment \(f\_alloc_{i}\) for each \(f_{i}\) is  
\[f\_alloc_{i}=cap_{gh}/n\quad\text{for }i=1,\ldots,n. \tag{3}\]  
The more common case is that a subset of the flows \(f_{1},\ldots,f_{m},\ m<n\) are already bottlenecked on other links where each of them gets an assignment \(f\_alloc_{i}<cap_{gh}/n,\ i=1,\ldots,m\). The remaining \(f_{m+1},\ldots,f_{n}\) which are bottlenecked on \((g,h)\) then get the assignment  
\[f\_alloc_{i}=\frac{cap_{gh}-\sum_{j=1}^{m}f\_alloc_{j}}{n-m}\quad\text{for }i=m+1,\ldots,n. \tag{4}\]  
**Definition 8**. : _Network flow fairness (NFF):_  
_In contrast to the two previously mentioned fairness methods where the bottleneck is the shared resource, for NFF, it is the entire network. If an MPTCP flow has multiple subflows, each of these subflows may propagate along a different path and thus become bottlenecked on different links and experience different amounts of congestion. The aggregated throughput of a flow is the sum of the throughputs of all subflows belonging to that particular flow. To overcome the problem of unequal share between different flows, a resource pooling (RP) algorithm has been defined which aims at balancing the amount of congestion which the different (sub)flows have to face [24]. If a link is heavily congested, the algorithm tries to find less congested alternative paths for some of the (sub)flows sharing that link so that some of the load can be removed from the link. In other words, the available links in the whole network are considered as a pool of resources which should be shared in a fair way between the participants. The benefits of balancing the load between participants using resource pooling based congestion control are decreased overall network congestion, increased efficiency and reliability [25]. This fairness mechanism is called Network Flow Fair (NFF) allocation. Based on the resource pooling principle, several congestion control algorithms have been proposed such as Linked Increases Algorithm (LIA) [26], Opportunistic Linked Increases Algorithm (OLIA) [7], Adapted OLIA [27] or Balanced link adaptation (Balia) [8] for MPTCP and Resource Pooling Multipath version 2 (RP-MPv2) for CMT-SCTP [28]. Several MPTCP algorithms have been investigated analytically concerning their TCP friendliness and stability [8]._  
Figure 3: Example for bottleneck flow fair allocation. Blue circles: nodes; black arrows/numbers: links with capacities; colored arrows/numbers: flows with capacity assignments. All numerical values in Mbps. For an NFF example, consider the network in Figure 4 which includes eight nodes \(a,b,c,d,e,f,m\) and \(n\). The link capacities are given in Mbps. There are two flows \([a,f]\) and \([m,n]\) inside the network. Flow \([m,n]\) is limited by link \((m,b)\) and flow \([a,f]\) is limited by the links \((b,c)\) and \((d,e)\). Thus, link \((m,b)\), \((b,c)\) and \((d,e)\) are the bottleneck links for this scenario. Flow \([m,n]\) can not get more than \(10\,\mathrm{Mbps}\) which makes the ideal fair share for flow \([a,f]\). However, allocating \(10\,\mathrm{Mbps}\) to both flows would not utilize the network capacity fully. After being fair, for efficient network utilization flow, \([a,f]\) can get extra \(10\,\mathrm{Mbps}\) from the network (\"fair+spare\"). For this scenario, network flow fair allocates \([a,f]\) to \(20\,\mathrm{Mbps}\) and \([m,n]\) to \(10\,\mathrm{Mbps}\). Due to the complexity of interdependence between flows in a network-wide view, it is hard to give a closed expression for a fair capacity assignment as it was done for BSF and BFF. It is however possible to express NFF in the MINLP model as specified in the paragraph about NFF in Section 3.2.