QUIC is not quick enough over fast internet | Hacker News
- syscall interfaces are a mess, the primitive APIs are too slow for regular sized packets (~1500 bytes), the overhead is too high. GSO helps but it’s a horrible API, and it’s been buggy even lately due to complexity and poor code standards. - the syscall costs got even higher with spectre mitigation - and this story likely isn’t over. We need a replacement for the BSD sockets / POSIX APIs they’re terrible this decade. Yes, uring is fancy, but there’s a tutorial level API middle ground possible that should be safe and 10x less overhead without resorting to uring level complexity. - system udp buffers are far too small by default - they’re much much smaller than their tcp siblings, essentially no one but experts have been using them, and experts just retune stuff. - udp stack optimizations are possible (such as possible route lookup reuse without connect(2)), gso demonstrates this, though as noted above gso is highly fallible, quite expensive itself, and the design is wholly unnecessari
There are a number of concrete problems: - syscall interfaces are a mess, the primitive APIs are too slow for regular sized packets (~1500 bytes), the overhead is too high. GSO helps but it’s a horrible API, and it’s been buggy even lately due to complexity and poor code standards. - the syscall costs got even higher with spectre mitigation - and this story likely isn’t over. We need a replacement for the BSD sockets / POSIX APIs they’re terrible this decade. Yes, uring is fancy, but there’s a tutorial level API middle ground possible that should be safe and 10x less overhead without…
saved by
related reading
- Everything I know about good system designseangoedecke.com
- The C10K problemkegel.com
- Beej's Guide to Network Programmingbeej.us
- Devlog ⚡ Zig Programming Languageziglang.org
- Queues Don't Fix Overloadferd.ca
- The ultimate SO_LINGER page, or: why is my tcp not reliableblog.netherlabs.nl
- abseil / Performance Hintsabseil.io
- Production Twitter on One Machine? 100Gbps NICs and NVMe are fast - Tristan Humethume.ca
- Why your website should be under 14kB in size | endtimes.devendtimes.dev
- Everything I know about good API designseangoedecke.com
- Let's code a TCP/IP stack, 1: Ethernet & ARPsaminiir.com
- Behind The Scenes of Bun Install | Bun Blogbun.com