TCP tarmoqlari bilan aloqa qilish uchun Nagle algoritmi

Muhandis John Nagle nomidagi Nagle algoritmi TCP ilovalari bilan "kichik paket muammolari" sababli tarmoq to'siqlarini kamaytirish uchun mo'ljallangan. UNIX dasturlari Nagle algoritmini 1980-yillarda ishlatishdan boshlandi va bugungi kunda TCPning standart xususiyati bo'lib qolmoqda.

Qanday qilib Nagle algoritmi ishlaydi?

Nagle ning algoritmida nagling deb ataladigan usul yordamida TCP ilovalarini jo'natuvchi tomonida ma'lumotlar ishlov beradi. U kichik o'lchamli xabarlarni aniqlaydi va ularni sim orqali ma'lumotlarni yuborishdan oldin katta TCP paketlariga to'playdi, shuning uchun keraksiz ko'p sonli kichik paketlarni ishlab chiqarishdan qochadi. Nagle algoritmining texnik spetsifikatsiyasi 1984 yilda QRK 896 deb e'lon qilindi. Ko'p ma'lumotlarning to'planishi va yuborilishi o'rtasida qancha vaqt kutish kerakligi haqidagi qarorlar uning umumiy ishlashi uchun juda muhimdir.

Nagling tarmoqqa ulanishning tarmoqli kengligidan kechikishlar ( kechikish ) qo'shish hisobiga yanada samarali foydalanishi mumkin. QRM 896 da tasvirlangan misol potentsial tarmoqli kengligi foydani va uning yaratilish sababini ko'rsatadi:

Ilovalar, Nagle algoritmini TCP_NODELAY soket dasturlash opsiyasi bilan qo'llashni nazorat qiladi. Windows, Linux va Java tizimlari odatda Nagle-ni odatiy ravishda faollashtiradi, shuning uchun u muhitlar uchun yozilgan dasturlar TCP_NODELAYni algoritmni o'chirishni istagan paytda belgilashi kerak.

Cheklovlar

Nagle algoritmi faqat TCP bilan ishlatilishi mumkin. UDP , shu jumladan boshqa protokollar uni qo'llab-quvvatlamaydi.

Internet orqali telefon orqali qo'ng'iroq qilish yoki birinchi odam otishni o'rganish o'yinlari kabi tezkor tarmoq javobiga muhtoj bo'lgan TCP ilovalari Nagle yoqilganda yaxshi ishlamasligi mumkin. Algoritm ma'lumotlarning kichikroq qismlarini yig'ish uchun qo'shimcha vaqt talab qiladigan kechikishlar ekranda ingl. Sifatida yoki raqamli audio oqimida sezilarli lagni tetiklashi mumkin. Ushbu ilovalar odatda Nagle-ni o'chirib qo'yadi.

Ushbu algoritm aslida kompyuter tarmoqlari bugungi kunda nisbatan kamroq tarmoqli kengligi qo'llab-quvvatlagan bir vaqtda ishlab chiqilgan. Yuqorida tavsiflangan misol 1980-yillarning boshlarida "Ford Aerospace" dagi John Nagle-ning tajribasiga asoslangan bo'lib, u erda ularning sekin, og'ir yuklangan uzoq masofaviy tarmoqlari bilan ish yuritishni yaxshi tushunish mumkin edi. Tarmoq ilovalari bugungi kunda uning algoritmidan foyda ko'rishlari mumkin bo'lgan holatlar tobora kamayib bormoqda.