Алгоритм Нейгла — це спосіб підвищення ефективності мереж TCP/IP шляхом зменшення кількості пакетів, які необхідно надсилати мережею. Його визначив Джон Нейгл під час роботи у Ford Aerospace. У 1984 році він був опублікований як RFC під назвою Congestion Control in IP/TCP Internetworks у .

У RFC описується те, що Нейгл називає «проблемою малих пакетів», коли застосунок неодноразово видає дані невеликими частинами, часто розміром лише в 1 байт. Оскільки пакети TCP мають 40-байтовий заголовок (20 байтів для TCP, 20 байтів для IPv4), у результаті для 1 байта корисної інформації утворюється пакет розміром 41 байт, що створює величезні накладні витрати. Така ситуація часто виникає в сеансах Telnet, де більшість натискань клавіш генерують один байт даних, який негайно передається. Ще гірше, що в повільних каналах багато таких пакетів можуть одночасно перебувати в процесі передавання, що потенційно може призвести до колапсу через перевантаження.

Алгоритм Нейгла працює шляхом об'єднання певної кількості невеликих вихідних повідомлень і надсилання їх усіх одночасно. Зокрема, доти, доки існує надісланий пакет, для якого відправник не отримав підтвердження, відправник повинен продовжувати буферизувати свої вихідні дані, доки не накопичиться обсяг даних, достатній для повного пакета, що дозволяє надіслати дані одним разом.

Затримка Через буферизацію даних перед відправкою, підтвердження ACK може приходити запізно, тому в протоколі є прапорці щоб вимкнути буферизацію і відправляти дані без затримки. Це важливо для застосунків, що передають дані в реальному часі і хочу зменшити затримку.

Посилання Nagle delays in Nagle's Algorithm Nagle's algorithm TCP Performance problems caused by interaction between Nagle's Algorithm and Delayed ACK Design issues - Sending small data segments over TCP with Winsock