diff --git a/content/post/go-faster-with-asio/index.md b/content/post/go-faster-with-asio/index.md index 32d32c0..e964220 100644 --- a/content/post/go-faster-with-asio/index.md +++ b/content/post/go-faster-with-asio/index.md @@ -638,7 +638,7 @@ Unless you have a specific need for `asio::use_awaitable` (e.g. you need to stor ### Nagle's algorithm > This section only applies to TCP streams. If you're only interested in UDP, you can skip it. -One [complaint](https://github.com/chriskohlhoff/asio/issues/1426) that [occasionally](https://stackoverflow.com/questions/2039224/poor-boost-asio-performance) crops up from beginners is how sluggish Asio seems to be when building their introductory TCP networking programs. These programs tend to deal with low traffic volumes in a request -> response pattern, causing them to run head-on into into Nagle's algorithm. +One [complaint](https://github.com/chriskohlhoff/asio/issues/1426) that [occasionally](https://stackoverflow.com/questions/2039224/poor-boost-asio-performance) crops up from beginners is how sluggish Asio seems to be when building their introductory TCP networking programs. These programs tend to deal with low traffic volumes in a request -> response pattern, causing them to run head-on into Nagle's algorithm. Nagle's algorithm, named after its creator, John Nagle, was designed back in the 1980s when bandwidth was at a premium and sending packets containing single keystrokes to a remote machine incurred significant overhead. To improve efficiency, the algorithm delays outgoing traffic in order to coalesce multiple messages into a single packet, thus reducing the overhead of having to send many TCP frames where only one is needed. The downside is that the delay introduced by the algorithm can sometimes have a noticeable impact on applications that are latency-sensitive, particularly those that are relatively low bandwidth or have pauses between outgoing traffic. It isn't just programmers that get bitten by Nagle's; it's not uncommon for gamers to disable Nagle's algorithm at a system level to help improve multiplayer responsiveness.