BA-MPCUBIC: Bottleneck-Aware Multipath CUBIC for Multipath-TCP
Abstract
:1. Introduction
- Goal 1. Improve throughput. MPTCP flows must perform better than single path transmission control protocol (SPTCP) flows.
- Goal 2. Fairness. If two or more SFs go through an SB, collectively their consumed bandwidth (BW) should be similar to the BW consumed by an SPTCP flow going through that SB.
- As a CUBIC-based MPTCP CCA, the proposed BA-MPCUBIC successfully fulfills the design goals of MPTCP CCAs while effectively utilizing all available SFs, even in diverse and dynamically changing network conditions.
- To differentiate between SFs going through SBs and NSBs, BA-MPCUBIC implements three filters, i.e., RTT_filter, ECN_filter, and PL_filter, based on RTT, ECN, and packet loss, respectively. Two or more SFs are grouped as going through an SB only when any two or all three filters are true for three consecutive acknowledgments (ACK).
- As SFs going through an SB should be fairer to SPTCP flows, BA-MPCUBIC implements the multipath CUBIC implementation proposed by Le et al. [19] for them.
- For SFs going through an NSB, the SPTCP CUBIC algorithm is implemented such that the SFs can effectively compete with SPTCP flows and achieve better throughput.
- BA-MPCUBIC detects SBs and NSBs with a high detection accuracy in a shorter time. It claims its legit share in NSB by ensuring high throughput, while fairly leaving a sufficient share for SPTCP flows in an SB ensuring a high fairness index.
- We considered seven MPTCP CCAs and experimented with them in five diverse and dynamically changing network scenarios. The results show that BA-MPCUBIC significantly improves the throughput by successfully exploiting all the available paths while ensuring better fairness with SPTCP flows. Among all the considered MPTCP CCAs in all the considered scenarios, BA-MPCUBIC is the best performer in terms of fulfilling the design goals of MPTCP CCAs.
2. Related Works
3. Bottleneck Aware Multipath CUBIC
3.1. Considerations and Design of RTT_Filter
Algorithm 1: BA-MPCUBIC: RTT_filter |
Initialization: |
α = 0.2 |
ΔRTTtotal = 0 |
ΔRTTavg = 0 |
number_of_samples = 0 |
RTTmax = 0 |
Temp_RTTmax = 0 |
RTT_filter = false |
Upon reception of ACK: |
if system_current_time < update_time_of_RTT_filter then |
ΔRTTtotal = ΔRTTtotal + |RTTcurr − RTTprev| |
number_of_samples = number_of_samples + 1 |
if Temp_RTTmax < RTTcurr then |
Temp_RTTmax = RTTcurr |
end if |
else |
update_time_of_RTT_filter = system_current_time + 1.0 s |
ΔRTTavg = ΔRTTtotal ÷ number_of_samples |
RTT_filter_max_limit = ΔRTTavg + ΔRTTavg × α |
RTT_filter_min_limit = ΔRTTavg − ΔRTTavg × α |
RTTmax = Temp_RTTmax |
Temp_RTTmax = 0 |
ΔRTTtotal = 0 |
number_of_samples = 0 |
RTT_filter = false |
for all subflow i do |
if SFi == SFcurr then |
continue |
end if |
if ΔRTTavg_ SFi > RTT_filter_min_limit and |
ΔRTTavg_ SFi < RTT_filter_max_limit then |
RTT_filter = true |
end if |
end for |
end if |
return RTT_filter |
3.2. Considerations and Design of ECN_Filter
Algorithm 2: BA-MPCUBIC: ECN_filter |
Initialization: |
β = 0.2 |
received_ACKs = 1 |
ECN_marked_ACKs = 1 |
ECN_filter = false |
Upon reception of ACK: |
if system_current_time < update_time_of_ ECN_filter then |
received_ACKs = received_ACKs + 1 |
if ECN_marked_ACK = true then |
ECN_marked_ACKs = ECN_marked_ACKs + 1 |
end if |
else |
ECNrate = ECN_marked_ACKs ÷ received_ACKs |
update_time_of_ ECN_filter = system_current_time + 1.0 sec |
ECN_filter_max_limit = ECNrate + ECNrate × β |
ECN_filter_min_limit = ECNrate − ECNrate × β |
received_ACKs = 1 |
ECN_marked_ACKs = 1 |
ECN_filter = false |
for all subflow i do |
if SFi == SFcurr then |
continue |
end if |
if ECNrate_SFi > ECN_filter_min_limit and ECNrate_SFi < ECN_filter_max_limit |
then |
ECN_filter = true |
end if |
end for |
end if |
return ECN_filter |
3.3. Considerations and Design of PL_Filter
Algorithm 3: BA-MPCUBIC: PL_filter |
Initialization: |
last_packet_loss_time = 0 |
PL_filter = 0 |
Upon reception of ACK: |
PL_filter = false |
last_packet_loss_time = system_current_time |
PL_filter_period = system_current_time − (3 × RTTmax) |
for all subflow i do |
if last_packet_loss_time_of_SFi > PL_filter_period then |
PL_filter = true |
end if |
end for |
return PL_filter |
3.4. Synchronization between the RTT_Filter, ECN_Filter, and PL_Filter
Algorithm 4: BA-MPCUBIC: Time synchronization between the SFs for RTT_filter, ECN_filter, and PL_filter |
Initialization: |
current_time = system_current_time |
update_time_of_RTT_filter = current_time + 1.0 sec |
sync = false |
Upon reception of ACK: |
temp_update_time = system_current_time + 3.0 sec |
if sync = false then |
for all subflow i do |
if current_time < update_time_of_ RTT_filter_ SFi and temp_update_time > update_time_of_ RTT_filter_ SFi then |
temp_update_time = update_time_of_ RTT_filter_ SFi |
end if |
update_time_of_ RTT_filter = temp_update_time |
update_time_of_ ECN_filter = temp_update_time |
sync = true |
end for |
end if |
3.5. Decision on Whether an SF Is Going through an SB or NSB
3.6. Applying Different CCAs for SFs Going through SBs and NSBs
3.7. Implementation in the Linux Kernel
4. Performance Evaluation
4.1. Experimental Setup
4.2. Considered Scenarios for Performance Evaluation
4.3. Performance Evaluation in Terms of Aggregate Benefit and Jain’s Fairness Index
4.4. Performance Evaluation in Terms of Bottleneck Detection Time and Accuracy
5. Conclusions
Author Contributions
Funding
Institutional Review Board Statement
Informed Consent Statement
Acknowledgments
Conflicts of Interest
References
- Ma, D.; Ma, M. A QoS oriented vertical handoff scheme for WiMAX/WLAN overlay networks. IEEE Trans. Parallel Distrib. Syst. 2011, 23, 598–606. [Google Scholar]
- Chao, L.; Wu, C.; Yoshinaga, T.; Bao, W.; Ji, Y. A Brief Review of Multipath TCP for Vehicular Networks. Sensors 2021, 21, 2793. [Google Scholar] [CrossRef] [PubMed]
- Lee, W.; Lee, J.Y.; Joo, H.; Kim, H. An MPTCP-Based Transmission Scheme for Improving the Control Stability of Unmanned Aerial Vehicles. Sensors 2021, 21, 2791. [Google Scholar] [CrossRef] [PubMed]
- Ford, A.; Raiciu, C.; Handley, M.; Bonaventure, O. RFC 6824: TCP extensions for multipath operation with multiple addresses. Internet Engineering Task Force. 2013. Available online: https://tools.ietf.org/html/rfc6824 (accessed on 19 September 2021).
- Lübben, R.; Morgenroth, J. An Odd Couple: Loss-Based Congestion Control and Minimum RTT Scheduling in MPTCP. In Proceedings of the 2019 IEEE 44th Conference on Local Computer Networks (LCN), Osnabrueck, Germany, 14–17 October 2019; IEEE: Piscataway, NJ, USA, 2019; pp. 300–307. [Google Scholar]
- Mohan, N.; Shreedhar, T.; Zavodovski, A.; Kangasharju, J.; Kaul, S.K. Is two greater than one?: Analyzing Multipath TCP over Dual-LTE in the Wild. arXiv 2019, arXiv:1909.02601. [Google Scholar]
- He, B.; Wang, J.; Qi, Q.; Sun, H.; Liao, J.; Du, C.; Yang, X.; Han, Z. DeepCC: Multi-agent Deep Reinforcement Learning Congestion Control for Multi-Path TCP Based on Self-Attention. IEEE Trans. Netw. Serv. Manag. 2021. [Google Scholar] [CrossRef]
- Wei, W.; Xue, K.; Han, J.; Wei, D.S.; Hong, P. Shared Bottleneck-Based Congestion Control and Packet Scheduling for Multipath TCP. IEEE ACM Trans. Netw. 2020, 28, 653–666. [Google Scholar] [CrossRef]
- Raiciu, C.; Wischik, D.; Handley, M. Practical Congestion Control for Multipath Transport Protocols; University College London: London, UK, 2009. [Google Scholar]
- Raiciu, C.; Handley, M.; Wischik, D. RFC 6356: Coupled Congestion Control for Multipath Transport Protocols. Internet Engineering Task Force. 2011. Available online: https://datatracker.ietf.org/doc/html/rfc6356 (accessed on 19 September 2021).
- Khalili, R.; Gast, N.; Popovic, M.; Le Boudec, J.-Y. MPTCP is not Pareto-optimal: Performance issues and a possible solution. IEEE ACM Trans. Netw. 2013, 21, 1651–1665. [Google Scholar] [CrossRef] [Green Version]
- Peng, Q.; Walid, A.; Hwang, J.; Low, S.H. Multipath TCP: Analysis, design, and implementation. IEEE ACM Trans. Netw. 2014, 24, 596–609. [Google Scholar] [CrossRef] [Green Version]
- Xue, K.; Han, J.; Zhang, H.; Chen, K.; Hong, P. Migrating unfairness among subflows in MPTCP with network coding for wired–wireless networks. IEEE Trans. Veh. Technol. 2016, 66, 798–809. [Google Scholar] [CrossRef]
- Lubna, T.; Mahmud, I.; Cho, Y.-Z. D-LIA: Dynamic congestion control algorithm for MPTCP. ICT Express 2020, 6, 263–268. [Google Scholar] [CrossRef]
- Lubna, T.; Mahmud, I.; Kim, G.-H.; Cho, Y.-Z. D-OLIA: A Hybrid MPTCP Congestion Control Algorithm with Network Delay Estimation. Sensors 2021, 21, 5764. [Google Scholar] [CrossRef] [PubMed]
- Mahmud, I.; Lubna, T.; Song, Y.-J.; Cho, Y.-Z. Coupled Multipath BBR (C-MPBBR): A Efficient Congestion Control Algorithm for Multipath TCP. IEEE Access 2020, 8, 165497–165511. [Google Scholar] [CrossRef]
- Cardwell, N.; Cheng, Y.; Gunn, C.S.; Yeganeh, S.H.; Jacobson, V. BBR: Congestion-based congestion control. Queue 2016, 14, 20–53. [Google Scholar] [CrossRef]
- Ha, S.; Rhee, I.; Xu, L. CUBIC: A new TCP-friendly high-speed TCP variant. ACM SIGOPS Oper. Syst. Rev. 2008, 42, 64–74. [Google Scholar] [CrossRef]
- Le, T.A.; Haw, R.; Hong, C.S.; Lee, S. A multipath cubic TCP congestion control with multipath fast recovery over high bandwidth-delay product networks. IEICE Trans. Commun. 2012, 95, 2232–2244. [Google Scholar] [CrossRef] [Green Version]
- Kato, T.; Haruyama, S.; Yamamoto, R.; Ohzahata, S. mpCUBIC: A CUBIC-like Congestion Control Algorithm for Multipath TCP. In World Conference on Information Systems and Technologies; Springer: Berlin/Heidelberg, Germany, 2020; pp. 306–317. [Google Scholar]
- Wei, W.; Wang, Y.; Xue, K.; Wei, D.S.; Han, J.; Hong, P. Shared bottleneck detection based on congestion interval variance measurement. IEEE Commun. Lett. 2018, 22, 2467–2470. [Google Scholar] [CrossRef]
- Ferlin, S.; Alay, Ö.; Dreibholz, T.; Hayes, D.A.; Welzl, M. Revisiting congestion control for multipath TCP with shared bottleneck detection. In Proceedings of the IEEE INFOCOM 2016-The 35th Annual IEEE International Conference on Computer Communications, San Francisco, CA, USA, 10–14 April 2016; IEEE: Piscataway, NJ, USA, 2016; pp. 1–9. [Google Scholar]
- Yousaf, M.M.; Welzl, M.; Yener, B. Accurate Shared Bottleneck Detection Based on Svd and Outlier Detection; NSG-DPS-UIBK-01; University of Innsbruck: Innsbruck, Austria, 2008. [Google Scholar]
- Zhang, S.; Lei, W.; Zhang, W.; Zhan, Y.; Li, H. Shared bottleneck detection based on trend line regression for multipath transmission. Int. J. Commun. Syst. 2020, 33, e4602. [Google Scholar]
- Kim, G.-H.; Song, Y.-J.; Mahmud, I.; Cho, Y.-Z. Adaptive Decrease Window for BALIA (ADW-BALIA): Congestion Control Algorithm for Throughput Improvement in Nonshared Bottlenecks. Electronics 2021, 10, 294. [Google Scholar] [CrossRef]
- Lantz, B.; Heller, B.; McKeown, N. A network in a laptop: Rapid prototyping for software-defined networks. In Proceedings of the 9th ACM SIGCOMM Workshop on Hot Topics in Networks, Monterey, CA, USA, 20–21 October 2010; pp. 1–6. [Google Scholar]
- Floyd, S. RED: Discussions of Setting Parameters. Available online: http://www.icir.org/floyd/REDparameters.txt (accessed on 11 February 2021).
- Mahmud, I.; Kim, G.-H.; Lubna, T.; Cho, Y.-Z. BBR-ACD: BBR with advanced congestion detection. Electronics 2020, 9, 136. [Google Scholar] [CrossRef] [Green Version]
- Mahmud, I.; Cho, Y.-Z. BBR Advanced (BBR-A)—Reduced retransmissions with improved fairness. ICT Express 2020, 6, 343–347. [Google Scholar] [CrossRef]
- Leah, N. Fq—Job Queue Log Viewer. Available online: http://manpages.ubuntu.com/manpages/bionic/en/man1/fq.1.html (accessed on 19 September 2021).
- Miller, D. Ethtool—Query or Control Network Driver and Hardware Settings. Available online: http://manpages.ubuntu.com/manpages/bionic/man8/ethtool.8.html (accessed on 19 September 2021).
- Hemminger, S. NetEm—Network Emulator. Available online: http://manpages.ubuntu.com/manpages/bionic/man8/tc-netem.8.html (accessed on 19 September 2021).
- Dugan, J.; Elliott, S.; Mah, B.A.; Poskanzer, J.; Prabhu, K. iperf3—Perform Network Throughput Tests. Available online: http://manpages.ubuntu.com/manpages/bionic/en/man1/iperf3.1.html (accessed on 19 September 2021).
- Roualland, G. Ifstat—Report InterFace STATistics. Available online: https://linux.die.net/man/1/ifstat (accessed on 19 September 2021).
- Hemminger, S.; Ding, X. Tcpprobe—Observe the TCP Flow with Kprobes. Available online: https://github.com/fengidri/tcpprobe/blob/master/tcp_probe.c (accessed on 19 September 2021).
- Paasch, C.; Khalili, R.; Bonaventure, O. On the benefits of applying experimental design to improve multipath TCP. In Proceedings of the 9th ACM Conference on Emerging Networking Experiments and Technologies, Santa Barbara, CA, USA, 9 December 2013; pp. 393–398. [Google Scholar]
- Jain, R.; Durresi, A.; Babic, G. Throughput Fairness Index: An Explanation. In Proceedings of the ATM Forum Contribution, Ohio, CA, USA, 26 September 1999; Volume 99. [Google Scholar]
- Dianati, M.; Shen, X.; Naik, S. A new fairness index for radio resource allocation in wireless networks. In Proceedings of the IEEE Wireless Communications and Networking Conference, New Orleans, LA, USA, 13–17 March 2005; IEEE: Piscataway, NJ, USA, 2005; pp. 712–717. [Google Scholar]
- Henderson, T.; Floyd, S.; Gurtov, A.; Nishida, Y. RFC 6582: The NewReno Modification to TCP’s Fast Recovery Algorithm. Internet Engineering Task Force. 2012. Available online: https://datatracker.ietf.org/doc/html/rfc6582 (accessed on 19 September 2021).
BA-MPCUBIC | Ferlin’s SBD+MPCUBIC | Le’s MPCUBIC | U-MPCUBIC | LIA | OLIA | BALIA | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Agre_Bft | Fairness Index | Agre_Bft | Fairness Index | Agre_Bft | Fairness Index | Agre_Bft | Fairness Index | Agre_Bft | Fairness Index | Agre_Bft | Fairness Index | Agre_Bft | Fairness Index | |
Scenario #1 | 0.37 | 0.97 | 0.19 | 0.97 | 0.04 | 0.96 | 0.42 | 0.98 | −0.22 | 0.91 | −0.20 | 0.91 | 0.03 | 0.92 |
Scenario #2 | 0.25 | 0.98 | 0.43 | 0.93 | 0.18 | 0.98 | 0.63 | 0.83 | −0.18 | 0.92 | −0.11 | 0.94 | −0.13 | 0.92 |
Scenario #3 | 0.48 | 0.95 | 0.27 | 0.93 | −0.18 | 0.93 | 0.73 | 0.83 | −0.43 | 0.81 | −0.23 | 0.81 | −0.21 | 0.82 |
Scenario #4 | 0.34 | 0.88 | 0.01 | 0.81 | −0.23 | 0.69 | 0.70 | 0.64 | −0.47 | 0.69 | −0.42 | 0.72 | −0.30 | 0.71 |
Scenario #5 | 0.32 | 0.89 | −0.08 | 0.86 | −0.34 | 0.76 | 0.62 | 0.74 | −0.54 | 0.76 | −0.47 | 0.77 | −0.42 | 0.77 |
BA-MPCUBIC | BA-MPCUBIC (ECN Disabled) | Ferlin’s SBD+MPCUBIC | |||||
---|---|---|---|---|---|---|---|
Accuracy (%) | Time (ms) | Accuracy (%) | Time (ms) | Accuracy (%) | Time (ms) | ||
Scenario #1 | B1-1 (NSB) | 99.3 | 1750 | 98.1 | 2000 | 96.2 | 2520 |
B1-2 (NSB) | 99.5 | 1750 | 98.2 | 2000 | 95.5 | 2857 | |
Scenario #2 | B1 (SB) | 99.8 | 1500 | 99.2 | 1500 | 98.1 | 2018 |
Scenario #3 | B1 (NSB) | 98.6 | 2000 | 96.8 | 2000 | 91.2 | 2854 |
B2 (SB) | 98.3 | 1750 | 95.1 | 2250 | 89.6 | 3328 | |
Scenario #4 | B1 (SB/ NSB) | 97.2 | 2500 | 94.5 | 2750 | 85.6 | 4151 |
B2 (SB/NSB) | 97.4 | 2250 | 94.2 | 2750 | 86.4 | 3922 | |
Scenario #5 | B1 (SB) | 97.6 | 2000 | 95.1 | 3250 | 83.4 | 3899 |
B2 (SB/NSB) | 97.1 | 2250 | 94.2 | 3000 | 83.2 | 4563 | |
B3 (SB/NSB) | 96.9 | 2750 | 93.8 | 3000 | 84.1 | 4321 | |
B4 (NSB) | 97.8 | 1750 | 95.6 | 2750 | 89.1 | 2517 |
Publisher’s Note: MDPI stays neutral with regard to jurisdictional claims in published maps and institutional affiliations. |
© 2021 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (https://creativecommons.org/licenses/by/4.0/).
Share and Cite
Mahmud, I.; Lubna, T.; Kim, G.-H.; Cho, Y.-Z. BA-MPCUBIC: Bottleneck-Aware Multipath CUBIC for Multipath-TCP. Sensors 2021, 21, 6289. https://doi.org/10.3390/s21186289
Mahmud I, Lubna T, Kim G-H, Cho Y-Z. BA-MPCUBIC: Bottleneck-Aware Multipath CUBIC for Multipath-TCP. Sensors. 2021; 21(18):6289. https://doi.org/10.3390/s21186289
Chicago/Turabian StyleMahmud, Imtiaz, Tabassum Lubna, Geon-Hwan Kim, and You-Ze Cho. 2021. "BA-MPCUBIC: Bottleneck-Aware Multipath CUBIC for Multipath-TCP" Sensors 21, no. 18: 6289. https://doi.org/10.3390/s21186289
APA StyleMahmud, I., Lubna, T., Kim, G. -H., & Cho, Y. -Z. (2021). BA-MPCUBIC: Bottleneck-Aware Multipath CUBIC for Multipath-TCP. Sensors, 21(18), 6289. https://doi.org/10.3390/s21186289