ネーグルのアルゴリズム
ジョン・ネーグルが1984年に考案した(RFC 896)、小さな書き込みをまとめて1バイトのパケットを乱発しないようにする仕組み。ネットワークは節約できるが、遅延は増える。
ほぼすべてのTCPスタックで標準で有効になっている。遅延ACK(サーバーが40〜200 msほどACKを待つ)と相性が悪く、やり取りのたびに待ちが生じる。そのためSSH、ゲーム、対話型シェルは通常 TCP_NODELAY でこれを無効にする。PostgreSQLやRedisのクライアントもしばしば同様だ。Googleの検索チームは、NODELAYで100 ms以上の改善があったと報告している。