4 ms·
> The retransmit-in-retransmit behavior is precisely the issue. But you're concerned about an issue I do not have. In practice retransmits are rare between my
by aarmenaa 2y ago
> The retransmit-in-retransmit behavior is precisely the issue.
But you're concerned about an issue I do not have. In practice retransmits are rare between my endpoints, and if they did occur poor performance is acceptable for some period of time. I just need it to me fast most of the time. To reiterate: I do not care about what happens in non-optimal conditions.
> it looks like I've just accidentally described phantun (and maybe other solutions): https://github.com/dndx/phantun https://github.com/dndx/phantun
I'll definitely look into that. They specifically mention being more performant than udp2raw, so that's nice.
- lxgr 2y ago> In practice retransmits are rare between my endpoints You seem to be mistaken about how (most) TCP implementations work. They regularly trigger packet loss and retransmissions as part of their mechanism to determine the optimal transmission rate over an entire path (made up of potentially multiple point-to-point connections with dynamically varying capacity). That mechanism breaks down horribly when using TCP-over-TCP.
- mlyle 2y agoBut, my connection speed is usually greater and my loss is much less to my VPN endpoint than to whatever services I am accessing though that endpoint. As a result it doesn't affect things much. Further, accessing it with UDP is not always possible.
- lxgr 2y ago> [...] my loss is much less [...] Unless it's actually zero, any loss on the "outer" TCP stream will cause a retransmission, visible to the inner one as a sharp jump in latency of all data following the loss. Most TCP stacks don't handle that very well either.
- mlyle 2y agoSure, even when outer loss is pretty close to zero, it's conceptually not great. On the other hand, I get 400mbps over TCP-over-TCP connections, and can't connect in any other reasonable way. 400mbps > 0. Even tunneling in UDP is not great due to MTU effects.
- screcth 2y agoCan't the tunneling software detect when the upper TCP is retransmitting segments and drop them? That would give the lower TCP enough time to transmit the original segment.
- lxgr 2y agoMaybe, but packet loss isn't the only problem. You'll also want to preserve latency (TCP has a pretty sophisticated latency estimation mechanism), for example. Some middleboxes will also do terrible things to your TCP streams (restrictive firewalls only allowing TCP are good candidates for that), and then all bets are off. If you're really required to use TCP, the "fake TCP" approach that others in sibling threads have mentioned seems more promising (but again, beware of middleboxes).