3 ms·
It’s amazing we’re still finding serious perf issues in TCP stacks, some of the most battletested subsystems we have. It’s really a testament to how complicated
by klabb3 3y ago
It’s amazing we’re still finding serious perf issues in TCP stacks, some of the most battletested subsystems we have. It’s really a testament to how complicated flow control, congestion control etc is. There are so many little gotchas that can wreak havoc, especially in the face of shared resources.
Makes me worried about QUIC and how long it will take to build up the same level of rigor as TCP stacks, plus all the other fancy features. And who’s going to maintain std lib for every popular language? Heck many of them don’t even provide HTTP or recent TLS versions.
They’ve just started building a QUIC stack in Go (std) and the excellent community project quic-go is something like 8y in with 70kLOC (although mostly tests). And there are still important perf improvements missing.
Having TCP provided by the kernel is something I’ve come to appreciate more and more. Plus the kernel can divide up resources and schedule based on information that simply doesn’t exist in user-space.
- tedd4u 3y agoGreat insights, and I would add that it’s not just the internet consumer side where there is pressure on TCP evolution, it’s in the datacenter, too. [1] [1] https://arxiv.org/abs/2210.00714 https://arxiv.org/abs/2210.00714