Info form the project
For more info whats the goal of the project, please visit my first blogpost which is here.
What done yet
I created this simple topology for trying out the technologies. I’m still in experimenting status but have some results as well. This virtualized test enviroment run on my machine. The paths between the MPTCP supported machines are shaped to 10 Mbps. With iperf3 and Wireshark I verified that the MPTCP protocol is working fine: clearly shows 20 Mbps between the two MPTCP supported machine (I use the latest 0.92 MPTCP kernel which is based on the 4.4 kernel version). Tha path between the MPTCP and Endhost machines are not shaped, so the throughput is much higher than 20 Mbps. I configured shadowsocks-libev on MPTCP1 (ss-server) and Endhost1 (ss-redir) machine. Then I tired an iperf3 download between Endhost1 and MPTCP2. This looks like:
Endhost1 <——————]TCP[——————-> MPTCP1 <———————]MPTCP[——————–> MPTCP2
I successfully get the 20 Mbps on Enhost1 which is the aggregated throughput of path1 and path2. (continue)
Another track: test how fast is the shadowsocks-libev on different machines. In my case I this was a Raspberry Pi2 with an ARM CPU. This CPU brings about the same single core performance as cheap routers. I downloaded and compiled the latest and a legacy version of shadowsocks-libev and tested the cipher peformance on loopback interface. The measurement scripts: the test and the automation. Seems like the legacy version is much faster. Also, the fastest cipher is the aes-128-gcm
Version 2.6.3: https://pastebin.com/Fa37Gc5X
Version 3.0.6: https://pastebin.com/GaAwQtgu
- Get the aggregated speed between the Endhost1 and Endhost2 machine. This needs different and more complicated SOCKS configuration.
- Integrate the MPTCP kernel patches into LEDE and build some x86 image for testing, then for the routers.
- Repeat the measurements on this real life environment.