Nagle Algoritması, TCP/IP ağlarının verimliliğini artırmak amacıyla geliştirilmiş bir yöntemdir. John Nagle tarafından 1984 yılında RFC 896 olarak yayımlanan bu algoritma, özellikle "küçük paket sorunu" olarak bilinen durumu ele alır. Bu sorun, uygulamaların genellikle tek baytlık verileri bile ayrı ayrı paketler halinde göndermesiyle ortaya çıkar. Örneğin, bir Telnet oturumunda her tuş vuruşu 1 bayt veri üretirken, TCP paketlerinin 40 baytlık başlık (header) bilgisi içermesi, 1 baytlık faydalı veri için 41 baytlık bir paket oluşturarak ciddi bir ek yük (overhead) yaratır. Bu durum, özellikle yavaş bağlantılarda ağ tıkanıklığına (congestion collapse) yol açabilir.
Nagle Algoritması, bu sorunu çözmek için küçük boyutlu giden mesajları birleştirerek tek seferde gönderme prensibiyle çalışır. Algoritma, gönderilen bir paket için henüz bir onay (acknowledgment - ACK) alınmadığı sürece, yeni verileri bir tamponda (buffer) tutar. Bu tampon, tam bir paket boyutuna ulaştığında veya bir onay alındığında birikmiş tüm veriyi tek seferde gönderir. Böylece, gereksiz yere çok sayıda küçük paket göndermek yerine, daha az sayıda ve daha büyük paketlerle veri iletimi sağlanarak ağ trafiği optimize edilir.
Ancak Nagle Algoritması, TCP'nin gecikmeli onay (delayed ACK) özelliği ile birlikte kullanıldığında bazı sorunlara yol açabilir. Her iki algoritma da etkin olduğunda, bir TCP bağlantısına art arda iki yazma işlemi (write) yapan ve ardından ikinci yazma verisi hedefe ulaşana kadar yerine getirilemeyecek bir okuma işlemi (read) bekleyen uygulamalar, "ACK gecikmesi" olarak bilinen 500 milisaniyeye kadar sabit bir gecikme yaşayabilir. Bu etkileşimi önlemek için genellikle Nagle Algoritması'nın devre dışı bırakılması önerilir, zira gerçek zamanlı uygulamalar için bu tür bir anahtar zaten mevcuttur. Nagle, bu sorunu aşmak için uygulama seviyesinde yazma işlemlerini tamponlayıp ardından boşaltmayı tavsiye eder.
Nagle Algoritması, küçük veri paketlerinin neden olduğu ağ tıkanıklığını azaltarak TCP/IP ağlarının verimliliğini önemli ölçüde artıran kritik bir optimizasyon tekniğidir.