5 ms·
Super interesting, thanks for sharing. You mentioning SSH makes me curious, could this be used for roaming SSH? With only? patching the client?
by gnyman 5y ago
Super interesting, thanks for sharing.
You mentioning SSH makes me curious, could this be used for roaming SSH? With only? patching the client?
- brenns10 5y agoYes, roaming is an explicit goal of MPTCP. MPTCP even contains a "break before make" functionality. If you think about it there's two options: 1. Make a new connection subflow on your new IP address, while still holding onto the old IP address and subflow. Once this is done, you can close the old connection and disconnect your old network interface. This is "make before break" and it is limited to those who actually have two separate network interfaces, and can only be used if they overlap (e.g. wifi connections plus a persistent LTE connection). 2. Break the existing subflow in a way that the higher-level MPTCP session management knows that you don't want to tear down the whole connection. Then, roam to a new IP address, and re-connect to the server using your new IP. So long as you cryptographically prove you're the same client (which MPTCP already requires), then you can re-establish the same logical connection. The MPTCP socket never "disconnected", and the application (in this case, SSH) continues to believe it has one connection. This is break-before-make. MPTCP break before make is awesome because it's one of the few benefits which is available for single-homed clients. You don't need multiple interfaces (e.g. ethernet, wifi, and lte) to benefit from it!
- gnyman 5y agook, I'm not following completely but I'm curious enough they I need to try to compile a ssh client with this, appreciate the explanation though