Application Performance Pitfalls and TCP's Nagle Algorithm
Performance improvements to networked applications can have unintended consequences. In a study of the performance of the Network News Transport Protocol (NNTP), the initial results suggested it would be useful to disable TCP's Nagle algorithm for this application. Doing so significantly improved latencies. However, closer observation revealed that with the Nagle algorithm disabled, the application was transmitting an order of magnitude more packets. We found that proper application buffer management significantly improves performance, but that the Nagle algorithm still slightly increases mean latency. We suggest that modifying the Nagle algorithm would eliminate this cost.
Greg Minshall has been writing network and operating systems for over 30 years, and working on TCP/IP and Berkeley Unix for over 15 years. He developed the K-Star code for the Kinetics' FastPath, as well as the first commercial TCP/IP implementation for the Macintosh. He was a founder of Ipsilon Networks and, later, Siara Systems. These days he spends his time at Redback Networks, developing tools to support the verification of packet processing ASICs. He has an A.B. in pure math from UC Berkeley.