Skip to content
This repository has been archived by the owner on Apr 18, 2024. It is now read-only.

Bandwidth not increased in MPTCP connection #464

Open
adriansotop opened this issue Feb 4, 2022 · 1 comment
Open

Bandwidth not increased in MPTCP connection #464

adriansotop opened this issue Feb 4, 2022 · 1 comment
Labels

Comments

@adriansotop
Copy link

Hello everybody

I have an AWS EC2 instance running RHEL 8 as a server with MPTCP 0.95.1 (I installed the rpm packages from https://github.com/multipath-tcp/mptcp/releases/tag/v0.95.1) and a Raspberry Pi 3 as a client running MPTCP 0.95.1 (I followed the cross-compiler guide from https://github.com/the-loudspeaker/raspi-mptcp-kernel). The RHEL 8 instance only has 1 network interface, while the RPi 3 is connected to the internet via ethernet (50 Mbps) and USB tethering (Mbps). I manually configured routing on the RPi 3 because the scripts didn't work for me, but on the RHEL 8 instance I wasn't allowed to configure routing. They both use the fullmesh path manager and the default scheduler, but RPi 3 uses LIA for congestion control and RHEL 8 uses Cubic (I didn't know how to change it to LIA).

Why when I run iperf3 does the bandwidth not increase on the client? I almost always get an average bandwidth of 50 Mbps, when I expect to get 100 Mbps on average.

Note: Using Wireshark I can verify that the two flows are created on the MPTCP connection.

@matttbe
Copy link
Member

matttbe commented Feb 4, 2022

Hi,

There can be a lot of reasons explaining that. Here are a few clues:

  • path created on the second link but not used:
    • one interface is flagged as "backup" and is then not used? https://multipath-tcp.org/pmwiki.php/Users/Tools
    • maybe the network blocking MPTCP → what if the flow is initialised on the other link first?
    • is it a download (server sending with CUBIC) or upload? LIA → if you want to maximum the use of your network, you should not use LIA but CUBIC or other non coupled ones
  • Perfs:
    • Maybe limited by the CPU? → check htop
    • one of the host is setting mptcp checksum? → net.mptcp.mptcp_checksum sysctl
    • or RPi buses that are shared? → what if you run 2 plain TCP connections
  • limited by network:

Ideally, check the traces to find what is limiting you: sending window? congestion? etc.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

No branches or pull requests

2 participants