Hacker News new | ask | show | jobs
by benmmurphy 2247 days ago
How are you handling connections? I think the original ngrok had a control connection and then opened a new connection for each request. I think they have now switched to multiplexing. I've heard multiplexing multiple HTTP connections over a single HTTP connection can have issues if there is packet loss.

For example if you have 1% chance of dropping a packet, and your conversation involves 1 packet then if you have 10 conversions each with its own TCP connection you will average 0.1 conversations being stalled from packet loss.

But if you multiplex those 10 conversations over 1 TCP connection then you will average ~ 1 conversation being stalled from packet loss.

I'm guessing this is not such a big problem with typical packet loss and a low number of conversations but if you are pushing a lot of conversations simultaneously over a single TCP connection then it could become noticeable.