background preloader

Performance

Facebook Twitter

Testing

Optimization. Scaling. Benchmark. Tweaks. TCP Performance problems caused be interaction between Nagle's Algorithm and Delayed ACK. Stuart Cheshire20th May 2005 This page describes a TCP performance problem resulting from a little-known interaction between Nagle’s Algorithm and Delayed ACK. At least, I believe it’s not well known: I haven’t seen it documented elsewhere, yet in the course of my career at Apple I have run into the performance problem it causes over and over again (the first time being the in the PPCToolbox over TCP code I wrote back in 1999), so I think it’s about time it was documented. The overall summary is that many of the mechanisms that make TCP so great, like fast retransmit, work best when there’s a continuous flow of data for the TCP state machine to work on.

If you send a block of data and then stop and wait for an application-layer acknowledgment from the other end, the state machine can falter. Interestingly, the performance benefit you get from going from single-buffering to double, triple, quadruple, etc., is not a linear slope. Delayed ACK Nagle’s Algorithm Usually this is a good idea. Nzakas's cssembed at master - GitHub. ICSI Netalyzr. ICSI Netalyzr. M-Lab | Welcome to Measurement Lab.