From 3ba0a22c5796fe625e0897f91c6bd1bde4c6cb26 Mon Sep 17 00:00:00 2001 From: Rusty Conover Date: Mon, 27 Jan 2020 14:16:11 -0500 Subject: [PATCH] doc: clarify socket.setNoDelay() explanation Change the description of socket.setNoDelay() to make it clear that sockets have Nagle's algorithm enabled by default. Better document the tradeoff of having the algorithm enabled. Explain the behavior of the function based on the passed arguments. PR-URL: https://github.com/nodejs/node/pull/31541 Reviewed-By: Denys Otrishko Reviewed-By: James M Snell Reviewed-By: Rich Trott --- doc/api/net.md | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/doc/api/net.md b/doc/api/net.md index d04e7eff0789a7..bb5a55e0e48f78 100644 --- a/doc/api/net.md +++ b/doc/api/net.md @@ -879,9 +879,16 @@ added: v0.1.90 * `noDelay` {boolean} **Default:** `true` * Returns: {net.Socket} The socket itself. -Disables the Nagle algorithm. By default TCP connections use the Nagle -algorithm, they buffer data before sending it off. Setting `true` for -`noDelay` will immediately fire off data each time `socket.write()` is called. +Enable/disable the use of Nagle's algorithm. + +When a TCP connection is created, it will have Nagle's algorithm enabled. + +Nagle's algorithm delays data before it is sent via the network. It attempts +to optimize throughput at the expense of latency. + +Passing `true` for `noDelay` or not passing an argument will disable Nagle's +algorithm for the socket. Passing `false` for `noDelay` will enable Nagle's +algorithm. ### `socket.setTimeout(timeout[, callback])`