Skip to main content
Log in

mReno: a practical multipath congestion control for communication networks

  • Published:
Computing Aims and scope Submit manuscript

Abstract

In current networks, end-user devices are usually equipped with several network interfaces. The design of a multipath protocol that can cooperate with current single-path transport protocols is an interesting research field. Most previous works on multipath network utility maximization (NUM) lead to rate-based control protocols. Moreover, these studies do not model a case in which paths from a source may have different characteristics. Thus, these approaches are difficult to deploy to the Internet. In this paper, we introduce a multipath NUM model for a network with both multipath and single-path users. The proposed algorithm converges to a global solution to the multipath NUM. Based on the mathematical framework, we develop a multipath TCP called mReno. Analysis and simulations indicate that mReno is completely compatible with TCP Reno and achieves load-balance, fairness, and performance improvement targets.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Institutional subscriptions

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6

Similar content being viewed by others

Notes

  1. In the literature, sometimes the utility function of TCP Reno is used \(-3/(2D_s^2 x_s)\) which more precisely described the TCP behaviour in the mathematical models.

  2. We can also increases the window-size by \((1-\epsilon ){\theta }_{s,i}^2 + \epsilon \) in every RTT. Since \(1-q_{s,i} \approx 1\), two statements are similar.

  3. Jains fainess index is calculated by \(f=\frac{(\sum x_s)^2}{|\mathcal N |\sum x_s^2}\). \(f=1\) indicates the best fairness.

    Fig. 3
    figure 3

    The impact of \(\epsilon \) values on the flappiness of subflows and the fairness of flows (topology 1a)

Abbreviations

\(\mathcal N \) :

The set of sources/flows

\(\mathcal L \) :

The set of links

\(|\mathcal N |\) :

The number of sources/flows

\(|s|\) :

The number of subflows from source \(s\)

\((s,i)\) :

Subflow \(i\) of source \(s\)

\(D_{s,i}\) :

The round-trip-time of subflow \((s,i)\)

\(c_l\) :

The capacity of link \(l\)

\(\epsilon \) :

The constant combining the fully coupled and uncoupled terms in Main problem

\(x_{s,i}\) :

The rate of subflow \((s,i)\)

\(\varvec{x}_s\) :

The rate vector of flow \(s, \varvec{x}_s = [x_{s,1},\ldots ,x_{s,|s|}]^T\)

\(\varvec{x}\) :

The rate vector of all flows in the network, \(\varvec{x} = [\varvec{x}_1,\ldots ,\varvec{x}_{|\mathcal N |}]^T\)

\(\theta _{s,i}\) :

The auxiliary variable associated with subflow \((s,i)\)

\(\varvec{\theta }_s, \varvec{\theta }\) :

\(\varvec{\theta }_s = [\theta _{s,1},\ldots ,\theta _{s,|s|}]^T\) and \(\varvec{\theta } = [\varvec{\theta }_1,\ldots ,\varvec{\theta }_{|\mathcal N |}]^T\), the vectors of auxiliary variables associated with flow \(s\) and all flows, respectively

\(y_l\) :

The aggregate traffic on link \(l\)

\(p_l\) :

The price of link \(l\)

\(q_{s,i}\) :

The aggregate price of all the links of subflow \((s,i)\)

\(U_s\) :

The utility function of source \(s\)

\(\tilde{U}_s\) :

The utility function of source \(s\) including both fully coupled and uncoupled terms considered in the paper

\(\hat{U}_{s,i}\) :

The approximate utility function associated with subflow \((s,i)\)

References

  1. Kelly FP, Maulloo AK, Tan DKH (1998) Rate control for communication networks: shadow prices, proportional fairness and stability. J Oper Res Soc 49(3):237–252

    MATH  Google Scholar 

  2. Low S, Lapsley D (1999) Optimization flow control, i: basic algorithm and convergence. IEEE/ACM Trans Netw 7(6):861–874

    Article  Google Scholar 

  3. Kelly F, Voice T (2005) Stability of end-to-end algorithms for joint routing and rate control. SIGCOMM Comput Commun Rev 35:5–12

    Article  Google Scholar 

  4. Han H, Shakkottai S, Hollot CV, Srikant R, Towsley D (2006) Multi-path tcp: a joint congestion control and routing scheme to exploit path diversity in the internet. IEEE/ACM Trans Netw 14(6):1260–1271

    Article  Google Scholar 

  5. Lin X, Shroff N (2006) Utility maximization for communication networks with multipath routing. IEEE Trans Automatic Control 51(5):766–781

    Article  MathSciNet  Google Scholar 

  6. Wang W-H, Palaniswami M, Low SH (2003) Optimal flow control and routing in multi-path networks. Performance Evaluation 52(2–3):119–132

    Article  Google Scholar 

  7. Wischik D, Handley M, Raiciu C (2009) Control of multipath TCP and optimization of multipath routing in the internet series. In: Nez-Queija R, Resing J (eds) Lecture Notes in Computer Science, vol 5894. Springer, Berlin/Heidelberg

    Google Scholar 

  8. Wischik D, Raiciu C, Greenhalgh A, Handley M (2011) Design, implementation and evaluation of congestion control for multipath tcp. In: Proceedings of the 8th USENIX Conference on Networked Systems Design and Implementation, series, pp 8–8. NSDI’11

  9. Raiciu C, Handley M, Wischik D (2011) Coupled congestion control for multipath transport protocols. RFC 6356(6356):1–12

    Google Scholar 

  10. Marks BR, Wright GP (1978) A general inner approximation algorithm for nonconvex mathematical programs. Oper Res 26(4):681–683

    Article  MATH  MathSciNet  Google Scholar 

  11. Chiang M, Tan CW, Palomar D, O’Neill D, Julian D (2007) Power control by geometric programming. IEEE Trans Wireless Commun 6(7):2640–2651

    Article  Google Scholar 

  12. Tran N, Hong CS (2010) Joint rate and power control in wireless network: a novel successive approximations method. IEEE Commun Lett 14(9):872–874

    Article  Google Scholar 

  13. Vo PL, Tran NH, Hong CS (2011) Joint rate and power control for elastic and inelastic traffic in multihop wireless networks. In: Global Telecommunications Conference (GLOBECOM 2011), 2011 IEEE, pp 1–5

  14. Vo PL, Le AT, Hong CS, (2012) The successive approximation approach for multi-path utility maximization problem. In: IEEE ICC, Communication QoS, Reliability and Modeling Symposium (ICC’12 CQRM), Ottawa, ON, Canada

  15. Srikant R. (2004) The mathematics of internet congestion control, series. Systems and control: foundations and applications. Birkhäuser, Boston

  16. Ns-2 network simulator 2 [Online]. http://http://www.isi.edu/nsnam/ns/

  17. Bertsekas DP (1999) Nonlinear programming. Athena Scientific, Belmont

    MATH  Google Scholar 

  18. Bertsekas DP, Tsitsiklis JN (1989) Parallel and distributed computation: numerical methods. Prentice-Hall, Inc., Upper Saddle River

    MATH  Google Scholar 

Download references

Acknowledgments

This research was supported by the MSIP(Ministry of Science, ICT & Future Planning), Korea, under the C-ITRC (Convergence Information Technology Research Center) support program (NIPA-2013-H0301-13-3007) supervised by the NIPA (National IT Industry Promotion Agency). Dr. CS Hong is the corresponding author.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Choong Seon Hong.

Appendix

Appendix

Proof of Proposition 1

The arguments are closely based on the convergence proof of the gradient decent algorithm [17, Prop.2.3.2].

The function \(U_s\) is twice continuously differentiable for all \(s \in \mathcal N \), thus, the function \(\hat{V}\) is has a similar property. That is, there exists a constant \(L\) such that \(\Vert \nabla \hat{V}(\varvec{x}) - \nabla \hat{V}(\varvec{y})\Vert \le L \Vert \varvec{x}-\varvec{y}\Vert , \forall \varvec{x},\varvec{y}\) bounded. The gradient update (4) does not decrease the objective of Approximation problem in every inner-iteration [17, Prop.2.3.2] or [18, Prop.3.3].

$$\begin{aligned} \hat{V}(\varvec{x}^{(\tau )}(k);\varvec{\theta }^{(\tau )}) \le \hat{V}(\varvec{x}^{(\tau )}(k + 1);\varvec{\theta }^{(\tau )}) - \left( \frac{L}{2} - \frac{1}{\kappa }\right) \Vert \varvec{x}^{(\tau )}(k+1) - \varvec{x}^{(\tau )}(k)\Vert ^2.\qquad \end{aligned}$$
(12)

If the stepsize \( 0< \kappa < 2/L\), the following inequalities are obtained

$$\begin{aligned} V(\varvec{x}^{(\tau -1)}(K))&= \hat{V}(\varvec{x}^{(\tau )}(0);\varvec{\theta }^{(\tau )}) \end{aligned}$$
(13)
$$\begin{aligned}&\le \hat{V}(\varvec{x}^{(\tau )}(K);\varvec{\theta }^{(\tau )}) - \left( \frac{L}{2} - \frac{1}{\kappa }\right) \sum _{k=0}^{K-1} \Vert \varvec{x}^{(\tau )}(k+1) - \varvec{x}^{(\tau )}(k)\Vert ^2 \end{aligned}$$
(14)
$$\begin{aligned}&\le V(\varvec{x}^{(\tau )}(K)) - \left( \frac{L}{2} - \frac{1}{\kappa }\right) \sum _{k=0}^{K-1} \Vert \varvec{x}^{(\tau )}(k+1) - \varvec{x}^{(\tau )}(k)\Vert ^2 . \end{aligned}$$
(15)

Equation (13) is obtained by replacing \(\theta _{s,i}^{(\tau )}\) with \(\frac{x^{(\tau -1)}_{s,i}(K)}{\sum _{j \in s}x^{(\tau -1)}_{s,j}(K)}\) and \(\varvec{x}^{(\tau )}(0)\) with \(\varvec{x}^{(\tau - 1)}(K)\). Inequality (14) is obtained by summing \(K\) inequalities (12) when \(k = 0,..,K-1\). Inequality (15) is satisfied because of (1). \(\square \)

The sequence \(V(\varvec{x}^{(\tau )}(K))\) is non-decreasing and bounded as \(\varvec{x}\) is bounded. Therefore, the sequence \(V(\varvec{x}^{(\tau )}(K))\) converges as \(\tau \rightarrow \infty \). From (13)–(15), we also have \(\Vert \varvec{x}^{(\tau )}(k+1) - \varvec{x}^{(\tau )}(k)\Vert ^2 \rightarrow 0\) as \(\tau \rightarrow \infty \) for \(k=0,\ldots ,K-1\).

Let \(\varvec{x}^*\) be any limit point, i.e., there is a subsequence \(\varvec{x}^{(\tau _n)}(K) \rightarrow \varvec{x}^*\) as \(n \rightarrow \infty \). Since \(\Vert \varvec{x}^{(\tau _n)}(k+1) - \varvec{x}^{(\tau _n)}(k)\Vert ^2 \rightarrow 0\) as \(n \rightarrow \infty , k = 0,\ldots ,K-1\), the limit point \(\varvec{x}^*\) is also a stationary point of the gradient update (4). We have

$$\begin{aligned} \nabla \hat{V}(\varvec{x}^*;\varvec{\theta }^*) = 0 \end{aligned}$$

where \(\theta ^*_{s,i}\) is the limit point of \(\frac{x_{s,i}^{(\tau _n)}(0)}{\sum _{j \in s}x_{s,j}^{(\tau _n)}(0)}\) according to Step 5 of Algorithm 1. Moreover, due to \(\Vert \varvec{x}^{(\tau _n)}(k+1) - \varvec{x}^{(\tau _n)}(k)\Vert ^2 \rightarrow 0\) as \(n \rightarrow \infty \) for \(k=0,\ldots ,K-1\), the sequences \(\varvec{x}^{(\tau _n)}(k), k=0,\ldots ,K\) converges to \(\varvec{x}^*\) as \(n \rightarrow \infty \). Therefore, we have \(\theta ^*_{s,i} = \frac{x^*_{s,i}}{\sum _{k \in s}x^*_{s,k}}\).

Now, we can easily verify that

$$\begin{aligned} \frac{\partial V(\varvec{x})}{\partial x_{s,i}}\bigg |_{\varvec{x}=\varvec{x}^*} = \frac{\partial \hat{V}(\varvec{x};\varvec{\theta }^*)}{\partial x_{s,i}}\bigg |_{\varvec{x}=\varvec{x}^*} \end{aligned}$$

with \(\theta ^*_{s,i} = \frac{x^*_{s,i}}{\sum _{k \in s}x^*_{s,k}}\) , for all \(s \in \mathcal N \) and \(i \in s\). Therefore,

$$\begin{aligned} \nabla {V}(\varvec{x}^*) = 0. \end{aligned}$$

In case \(0<\epsilon <1, V(\varvec{x})\) is a strictly concave function w.r.t \(\varvec{x}\). Therefore, \(\varvec{x}^*\) is the unique global optimal solution to Main problem.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Vo, P.L., Le, T.A., Lee, S. et al. mReno: a practical multipath congestion control for communication networks. Computing 96, 189–205 (2014). https://doi.org/10.1007/s00607-013-0341-1

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s00607-013-0341-1

Keywords

Mathematics Subject Classification

Navigation