Mühəndis Con Naqlın adını daşıyan Nagle alqoritmi TCP tətbiqləri ilə bağlı kiçik paket problemlərinin yaratdığı şəbəkə sıxlığını az altmaq üçün nəzərdə tutulmuşdur. UNIX tətbiqləri 1980-ci illərdə Nagle alqoritmindən istifadə etməyə başladı və bu gün TCP-nin standart xüsusiyyəti olaraq qalır.
Nagle Alqoritmi Necə İşləyir
Nagle alqoritmi nagling adlı üsulla TCP proqramlarının göndərilən tərəfindəki məlumatları emal edir. O, kiçik ölçülü mesajları aşkarlayır və məlumatı tel vasitəsilə göndərməzdən əvvəl həmin mesajları daha böyük TCP paketlərində toplayır. Bu proses lazımsız çoxlu sayda kiçik paketlərin yaranmasının qarşısını alır.
Nagle alqoritmi üçün texniki spesifikasiya 1984-cü ildə RFC 896 kimi nəşr edilmişdir. Nə qədər məlumatın toplanacağı və göndərilmələr arasında nə qədər gözlənəcəyi ilə bağlı qərarlar onun ümumi performansı üçün vacibdir.
Naglingin Faydaları
Nagling gecikmələr və ya gecikmə əlavə etmək hesabına şəbəkə bağlantısının bant genişliyindən səmərəli istifadə edə bilər. RFC 896-da təsvir edilən nümunə potensial bant genişliyi faydalarını və onun yaradılmasının səbəbini göstərir:
- Klaviatura düymələrini kəsən TCP tətbiqi yazılan hər simvolu qəbulediciyə çatdırmaq istəyirsə, o, hər biri 1 bayt data olan bir sıra mesajlar yarada bilər.
- Bu mesajlar şəbəkə üzrə göndərilməmişdən əvvəl, hər biri TCP/IP tələb etdiyi kimi TCP başlıq məlumatı ilə paketlənməlidir. Hər başlığın ölçüsü 20-60 bayt arasında dəyişir.
- Tələsmədən, bu nümunə proqram göndərənin klaviaturasından 95 faiz və ya daha çox başlıq məlumatından (21 baytın ən azı 20-si) və 5 faiz və ya daha az faktiki məlumatdan ibarət şəbəkə mesajları yaradacaq. Nagle alqoritmindən istifadə etməklə, eyni data daha az mesaj vasitəsilə çatdırıla bilər ki, bu da böyük bant genişliyinə qənaətlə nəticələnir.
Tətbiqlər TCP_NODELA yuva proqramlaşdırma seçimi ilə Nagle alqoritmindən istifadələrinə nəzarət edir. Windows, Linux və Java sistemləri adətən Nagle-ni defolt olaraq aktivləşdirir. Buna görə də, həmin mühitlər üçün yazılmış proqramlar alqoritmi söndürmək üçün TCP_NODELAY təyin etməlidir.
Məhdudiyyətlər
Video zənglər və onlayn oyun kimi sürətli şəbəkə cavabı tələb edən proqramlar Nagle aktiv olduqda yaxşı işləməyə bilər. Alqoritmin daha kiçik məlumat hissələrini toplamaq üçün əlavə vaxt tələb etdiyi zaman yaranan gecikmələr ekranda və ya rəqəmsal audio axınında vizual olaraq nəzərəçarpacaq geriləmələrə səbəb ola bilər. Bu cür proqramlar adətən Nagle'i deaktiv edir.
Bu alqoritm əvvəlcə kompüter şəbəkələrinin indiki ilə müqayisədə daha az ötürmə genişliyini dəstəklədiyi bir vaxtda hazırlanmışdır. Yuxarıda təsvir edilən nümunə Con Nagle-nin 1980-ci illərin əvvəllərində Ford Aerospace-dəki təcrübələrinə əsaslanırdı, burada Fordun yavaş, ağır yüklü, uzun məsafəli şəbəkəsi ilə bağlı mübahisələr yaxşı məna kəsb edirdi. Bu gün şəbəkə proqramlarının onun alqoritmindən faydalana biləcəyi vəziyyətlər getdikcə daha azdır.
Nagle alqoritmi yalnız TCP ilə istifadə edilə bilər. UDP kimi digər protokollar onu dəstəkləmir.