← Back to context

Comment by parasubvert

3 years ago

It’s not a defect, and it’s not unusual to enable TCP_NODELAY.

As a default, it’s a design decision. It’s documented in the Golang Net library.

I remember learning all of this stuff in 1997 in my first Java job and witnessing same shock and horror at TCP_NODELAY being disabled (!) by default when most server developers had to enable it to get any reasonable latency for their RPC type apps, because most clients had delayed TCP ACKs on by default. Which should never be used with Nagle’s algorithm!

This Internet folklore gets relearned by every new generation. Golang’s default has decades of experience in building server software behind the decision to enable it. As many other threads here have explained, including Nagle himself.