I’m trying to use a VPN on an unreliable network that blocks UDP and randomly kills TCP connections (by spoofing RST packets). With OpenVPN this is tough because all the tunnel traffic gets sent through a single TCP connection. When that connection gets killed, the client has to open a new connection and start a new session, and the overall connection speed suffers.
I think if there were several TCP connections available for tunnel traffic, then when one of them goes down, the traffic could be sent through the others without disrupting the VPN session. I could implement something like this myself by writing a simple muxer/demuxer on the client/server, rewriting packet headers and then splitting them up across connections.
But I haven’t heard of this being done with VPNs before, so I’m wondering if it will break the VPN somehow, or have other unexpected downsides? Or maybe if it won’t work with OpenVPN, is there another VPN protocol it would work with?