1 Introduction

Max-min fairness for single-path flows has been long studied [9]. The water-filling algorithm can achieve a max-min fairness between the single-path flows. In the network utility maximization (NUM) model, a certain kind of utility function corresponds to a specific rate allocation for single-path flows. A distributed algorithm to solve NUM with a general strictly concave utility function in the single-path environment is proposed, e.g., the primal-based algorithm in [1] or the dual-based algorithm in [2]. With the alpha-fair family, \(U(x)=\frac {x^{1-\alpha }}{1-\alpha }\) if α > 0,α≠ 1 and \(\log (x)\) if α = 1, where x is the flow rate, the rate allocation satisfies a specific kind of fairness with a certain value α, e.g., proportional fairness with α = 1, harmonic fairness with α = 2, and max-min fairness with \(\alpha = \infty \) [10]. However, the max-min fairness cannot be achieved since α must be infinity. The authors in [3] proposed MaxNet, a priced-based, distributed single-path flow control that achieves a max-min fairness. Only the price of the most congested link on the path is fed back to the source instead of the aggregate price of all the links on the path as in dual-based algorithms [2].

In the multipath environment where each flow can transmit data on several subflows from the source to the destination, the multipath congestion control protocols in which the congestion price is the aggregate price of all the links on the path of each subflow have been extensively studied, e.g., [5,6,7]. The algorithm achieving max-min fairness for multipath flows, a.k.a. global max-min fairness (GMMF), is much more difficult than the one for single-path flows. A GMMF allocation for multipath flows is reached after solving a series of linear programs. It is a centralized, off-line, and high complexity computation, hence, the algorithm is not scalable. (The readers can refer to [8] and references therein for the works on max-min fairness routing.) The work [11] relaxed GMMF to upward max-min fairness (UMMF). A GMMF allocation is an UMMF, but not vice verse. UMMF is shown a natural allocation and the water-filling algorithm is extended to develop a distributed algorithm for multipath allocation satisfying UMMF in [11].

In this paper, we apply the price-feedback mechanism as in MaxNet to develop an algorithm that achieves UMMF for multipath flows. The “bottleneck link” of a single-path flow is generalized to “bottleneck link” of a multipath subflow. Based on the fully coupled multipath protocol which is designed from the multipath NUM [6], we propose a distributed multipath protocol whose equilibrium point satisfies UMMF.

The remain paper is organized as follows. Section 2 describes about UMMF. Section 3 proposes a multipath congestion control algorithm and proves the UMMF of equilibrium point. Sections 4 and 5 present the numerical results and conclude the work, respectively.

2 Upward max-min multipath allocation

Let’s consider the network including set of links L and set of flows S. The capacity of link l is denoted as cl. Each flow s (which is also called source) can transmit data on several subflows. The flow rate of source s is defined as \(x_{s} = {\sum }_{i \in s} x_{s,i}\), where xs,i is the rate allocated to subflow (s,i). (Please see Table 1 for the main notations used in the paper.) A rate allocation vector {x} is called feasible if \(y_{l}={\sum }_{x_{s,i}\ l \in L(s,i)} \leq c_{l}, \forall l \in L\), where yl is the aggregate rate of all subflows over link l.

Table 1 Main notations

Definition 1

An allocation {x1,x2,…,x|S|} is said satisfying GMMF if it is feasible and for any flow sS, we cannot increase xs without decreasing the rate of some other flows \(x_{s^{\prime }}\) which has \(x_{s^{\prime }}\leq x_{s} \) [9, Chap. 6].

In the single-path environment where each source only has one subflow, we need the definition of bottleneck link of a flow to verify the max-min fairness of a rate allocation. A link lL(s), where L(s) is the path of the single-path flow s, is called bottleneck link of s if l is a saturated link, i.e., yl = cl, where \(y_{l} = {\sum }_{s : l \in L(s)} x_{s}\) is the aggregate traffic on link l and cl is the capacity of link l. Moreover, \(x_{s} \geq x_{s^{\prime }}\) for any flow \(s^{\prime }\) crossing link l. The reference [9, page 526] presents a concise result: In the single-path environment, a feasible rate allocation is max-min fair if and only if each flow has at least a bottleneck link.

The bottleneck link’s definition is generalized for the multipath flow as follows.

Definition 2

Link l is a bottleneck link of subflow (s,i) if l is a saturated link, lL(s,i) and \(x_{s} \geq x_{s^{\prime }}\) for any flow \(s^{\prime }\) which has a subflow going through l.

From [11], we has the following necessary and sufficient condition for UMMF:

Theorem 1

In the multipath environment, a feasible rate allocation is UMMF if and only if every subflow has at least a bottleneck link.

In the next section, we will propose a distributed multipath protocol and use the results in this section to prove UMMF of the equilibrium point.

3 An upward max-min fair multipath flow control protocol

The max-min multipath flow control protocol is derived based on the fully coupled multipath protocol in [6] combined with the price feedback mechanism of MaxNet [3].

The multipath network utility maximization (NUM) is given by

$$ \begin{array}{@{}rcl@{}} &&\text{Max.} \sum\limits_{s \in S} U(x_{s}) \end{array} $$
(1)
$$ \begin{array}{@{}rcl@{}} &&\text{s.t.} \sum\limits_{i \in s, s \in S:l \in L(s,i)} x_{s,i} \leq c_{l}, ~\forall l \in L, \end{array} $$
(2)

where \(U(x_{s}) = U\left ({\sum }_{i \in s} x_{s,i}\right )\) is the utility function associated with flow s. We assume that U() is an increase and concave function of xs,i. In [6], we decompose the function U(xs) by using Jensen’s inequality.

$$ U \left( \sum\limits_{i \in s} x_{s,i}\right) \geq \sum\limits_{i \in s} \theta_{s,i} U \left( \frac{x_{s,i}}{\theta_{s,i}}\right) $$
(3)

The equality holds if and only if

$$ \theta_{(s,i)} = \frac{x_{s,i}}{x_{s}}. $$
(4)

The relaxed utility function \(\tilde {U}(x_{s,i}) = \theta _{s,i} U \left (\frac {x_{s,i}}{\theta _{s,i}}\right )\) associated to each subflow (s,i). Given 𝜃 = {𝜃s,i}is,sS, we apply the MaxNet algorithm with utility function via a series of dual updates as in MaxNet. 𝜃 is updated via outer iterations by formula Eq. 4. In each (outer) iteration, the multipath NUM is approximated to a basic single-path NUM problem which is parametrized by auxiliary variables 𝜃s,i,∀is,sS. After a series of approximations, the solution to the approximation problem converges to the global optimum of the multipath NUM. The approximation problem is solved efficiently by a dual-based algorithm as described in [2]. In the dual-based algorithm, the source updates the subflow rate using the price of subflow which is the aggregate price of all the links of the path, i.e., \(q_{s,i} = {\sum }_{l \in L(s,i)} p_{l}\), where pl is the price of link l. The subflow rate is calculated by xs,i = 𝜃s,iD(qs,i) where the demand function is the inverse of the differentiation of the utility function, i.e., \(D = \tilde {U}^{\prime -1}\). (Please see [6] for more details.) In this paper, we assume that D is a positive and decreasing function.

Using the feedback mechanism of MaxNet, only the price of the most congested link on the path of subflow is fed back to the source, i.e., \(q_{s,i} = \max \limits _{l \in (s,i)} p_{l}\) [3, 4]. Algorithm 1 presents the proposed multipath congestion protocol in which only one iteration for the dual-based updates.

figure a

In Algorithm 1, both source and link compute their rate and price based on the local information. Each subflow needs the flow rate and the price of the most congested link on its path to update the rate. Each link only needs the aggregate traffic on the link to update its price.

At the equilibrium point of Algorithm 1, \(\theta _{s,i} = \frac {x_{s,i}}{x_{s}}\) and xs,i = 𝜃s,iD(qs,i) for all sS and is according to Eqs. ?? and ??. Hence,

$$ x_{s,i}\left( 1 - \frac{D(q_{s,i})}{x_{s}}\right) = 0, $$
(9)

At the equilibrium point, we assume all the subflows have positive rates by omitting the zero-allocated subflows. Hence, xs = D(qs,i) for all is with xs,i > 0, i.e., all the subflows from source s which are allocated with positive rates have the same subflow prices. This means that Algorithm 1 balances the congestion among the paths at the equilibrium point. Denoting qs = qs,i for any is with xs,i > 0 yields xs = D(qs). We have the following property of the equilibrium allocation.

Lemma 1

If link l has a maximum price of all the links on a path of a subflow (s,i), i.e., \(p_{l}= \max \limits _{e \in L(s,i)} p_{e}\), then \(x_{s^{\prime }} \leq x_{s}\) for any flow \(s^{\prime }\) that has a subflow going through l.

Proof

For any flow \(s^{\prime }\) going through a control link l of a subflow of s, we have \(p_{l} = q_{s} \leq q_{s^{\prime }}\). Therefore, \(x_{s} \geq x_{s^{\prime }}\) due to the decreasing of function D. □

Lemma 1 means that at the equilibrium point, the link with maximum price over the path is the bottleneck link of the subflow on that path. Hence, we have the result according to Theorem 1:

Theorem 2

The equilibrium point of the multipath protocol given by Algorithm 1 satisfies UMMF.

The congestion window of subflow (s,i) can be estimated by \(w_{s,i}=\frac {x_{s,i}}{rtt_{s,i}}\), where rtts,i is the round-trip-time of the path. Hence, instead of using rate update as in Eq. ??, the congestion window can equivalently adjust the window size by the formula \(w_{s,i}=\theta _{s,i}\frac {D(q_{s,i})}{rtt_{s,i}}\). In addition, we can use the queue size of link l as the price pl in the update Eq. ??. The queue size of the most congested link is used by the source to allocate the rates. The maximum queue size value can be stored in a field of datagram’s header, and this value is replaced whenever the datagram go through a router that has a larger buffer size.

4 Numerical results

The demand function used in the experiments is 1/q, which corresponds to the logarithm utility function. The step-size γl = 0.002,∀lL. Consider the network including four multipath flows as described in Fig. 1a. Capacities of the links l1,…,l5 are 6, 9, 8, 4, and 5 Mbps, respectively. Algorithm 1 allocates 8 Mbps for each flow with [x1,1,x1,2,x2,1,x2,2,x3,1,x3,2,x4,1,x4,2] = [6,2,7,1,4,4,3,5] Mbps. In second topology given in Fig. 1b, the capacity of the links are 2, 5, 4, 3, and 6 Mbps. The UMMF multipath flow rates are [x1,x2,x3] = [5,5,7] Mbps and the subflow rates are [x1,1,x1,2,x2,1,x2,2,x3,1,x3,2] = [2,3,2,3,1,6] Mbps. The convergence of Algorithm 1 in both two cases are shown in Fig. 2.

Fig. 1
figure 1

Multipath network topologies

Fig. 2
figure 2

Convergence of Algorithm 1 with the networks given in a Fig. 1a and b Fig. 1b

5 Conclusions

We’ve developed a distributed, price-based multipath congestion control protocol that achieves UMMF at the equilibrium point. The source uses the prices of its paths to adjust the sending rates or congestion windows. The price of a path is the maximum price of all the links that path going through. The experiments have shown that our proposed algorithm converges to the equilibrium point.