naoki9911 / MPTCP-Proxy

7 stars 1 forks source link

Low performance #2

Open naoki9911 opened 2 years ago

naoki9911 commented 2 years ago

The throughput of SE-VPN with mptcp-proxy is slow.

naoki@ubuntu-2204-dev:~/mptcp-proxy/test/sevpn$ docker-compose exec client-vpn /bin/bash
root@a6d963d95c44:/usr/vpnserver# iperf3 -c 10.100.1.3
Connecting to host 10.100.1.3, port 5201
[  5] local 10.100.1.5 port 38732 connected to 10.100.1.3 port 5201
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec   111 MBytes   927 Mbits/sec   28   1.29 MBytes       
[  5]   1.00-2.00   sec   122 MBytes  1.03 Gbits/sec    0   1.41 MBytes       
[  5]   2.00-3.00   sec   119 MBytes   996 Mbits/sec    6   1.07 MBytes       
[  5]   3.00-4.00   sec   120 MBytes  1.01 Gbits/sec    0   1.14 MBytes       
[  5]   4.00-5.00   sec   119 MBytes   996 Mbits/sec    0   1.22 MBytes       
[  5]   5.00-6.00   sec   121 MBytes  1.02 Gbits/sec    0   1.29 MBytes       
[  5]   6.00-7.00   sec   122 MBytes  1.03 Gbits/sec    0   1.36 MBytes       
[  5]   7.00-8.00   sec   120 MBytes  1.01 Gbits/sec    0   1.42 MBytes       
[  5]   8.00-9.00   sec   124 MBytes  1.04 Gbits/sec   24   1.21 MBytes       
[  5]   9.00-10.00  sec   119 MBytes   996 Mbits/sec    0   1.17 MBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec  1.17 GBytes  1.00 Gbits/sec   58             sender
[  5]   0.00-10.01  sec  1.17 GBytes  1.00 Gbits/sec                  receiver
naoki9911 commented 2 years ago

From #1

The sevpn script test found that the throughput through the mptcp-proxy proxy is extremely low, and the iperf3 through the > mptcp-proxy proxy can reach 100Mbps/s, while the speed of sevpn after passing through the proxy is abnormally low, only hovering between 500Kbps - 10Mbps. The above test is based on tencent lighthouse to me home network

Sunser commented 2 years ago

QQ图片20220501233810

This is the experimental effect of using the sevpn test case in the test

naoki9911 commented 2 years ago

This issue is related to SE-VPN server https://serverfault.com/questions/832640/softether-vpn-has-very-slow-download-while-upload-is-high

naoki9911 commented 2 years ago

Latest test/sevpn uses tap device and bridge in SE-VPN server.

$ docker-compose exec client-vpn iperf3 -c 10.100.1.3 -R
Connecting to host 10.100.1.3, port 5201
Reverse mode, remote host 10.100.1.3 is sending
[  5] local 10.100.1.5 port 41804 connected to 10.100.1.3 port 5201
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-1.00   sec   323 MBytes  2.71 Gbits/sec                  
[  5]   1.00-2.00   sec   294 MBytes  2.46 Gbits/sec                  
[  5]   2.00-3.00   sec   316 MBytes  2.65 Gbits/sec                  
[  5]   3.00-4.00   sec   313 MBytes  2.63 Gbits/sec                  
[  5]   4.00-5.00   sec   294 MBytes  2.46 Gbits/sec                  
[  5]   5.00-6.00   sec   291 MBytes  2.44 Gbits/sec                  
[  5]   6.00-7.00   sec   277 MBytes  2.32 Gbits/sec                  
[  5]   7.00-8.00   sec   277 MBytes  2.32 Gbits/sec                  
[  5]   8.00-9.00   sec   276 MBytes  2.32 Gbits/sec                  
[  5]   9.00-10.00  sec   286 MBytes  2.40 Gbits/sec                  
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec  2.88 GBytes  2.47 Gbits/sec  195             sender
[  5]   0.00-10.00  sec  2.88 GBytes  2.47 Gbits/sec                  receiver

iperf Done.

$ docker-compose exec client-vpn iperf3 -c 10.100.1.3
Connecting to host 10.100.1.3, port 5201
[  5] local 10.100.1.5 port 41808 connected to 10.100.1.3 port 5201
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec   181 MBytes  1.51 Gbits/sec   65   1.30 MBytes       
[  5]   1.00-2.00   sec   182 MBytes  1.53 Gbits/sec    0   1.42 MBytes       
[  5]   2.00-3.00   sec   174 MBytes  1.46 Gbits/sec    0   1.51 MBytes       
[  5]   3.00-4.00   sec   171 MBytes  1.44 Gbits/sec    0   1.58 MBytes       
[  5]   4.00-5.00   sec   172 MBytes  1.45 Gbits/sec    3   1.20 MBytes       
[  5]   5.00-6.00   sec   170 MBytes  1.43 Gbits/sec    0   1.30 MBytes       
[  5]   6.00-7.00   sec   170 MBytes  1.43 Gbits/sec    0   1.39 MBytes       
[  5]   7.00-8.00   sec   169 MBytes  1.42 Gbits/sec    0   1.48 MBytes       
[  5]   8.00-9.00   sec   164 MBytes  1.37 Gbits/sec    0   1.56 MBytes       
[  5]   9.00-10.00  sec   159 MBytes  1.33 Gbits/sec    1   1.18 MBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec  1.67 GBytes  1.44 Gbits/sec   69             sender
[  5]   0.00-10.01  sec  1.67 GBytes  1.43 Gbits/sec                  receiver

iperf Done.
naoki9911 commented 2 years ago

I closed by mistake.

Sunser commented 2 years ago

I'm going to try it. I used the softether tap mode for testing in the public network environment.

Sunser commented 2 years ago

QQ图片20220501233810 The difference between yellow and red using mptcp and disable-mptcp respectively

naoki9911 commented 2 years ago

Hmm... The result is interesting...

Sunser commented 2 years ago

Well, the fault is very strange. I have tried using ocserv, openvpn, Wireguard (udptunnel or brook to encapsulate tcp) to test MPTCP. The fault phenomenon is the same. Although the speed of docker or internal vm is reduced, it is not as bad as the public network environment.

嗯,故障毛病很奇怪,我曾经尝试过使用 ocserv , openvpn, Wireguard(udptunnel or brook 封装 tcp) 测试MPTCP 故障现象都一样,使用 docker or 内部 vm 虽然速度衰减,但是没有公网环境下那么不堪。

naoki9911 commented 2 years ago

The result is weird. We should evaluate MPTCP performance itself in real environments.

Sunser commented 2 years ago

Another day, I will try to configure a point-to-point tunnel for each wan line, and then run mptcp to run softether internally, so the environment is relatively similar to the environment simulated by docker

naoki9911 commented 2 years ago

Thanks a lot. :) I will investigate in a real environment.