Инженер Жон Наглийн нэрээр нэрлэгдсэн Нагле алгоритм нь TCP программуудын жижиг пакетийн асуудлаас үүдэлтэй сүлжээний түгжрэлийг бууруулах зорилготой юм. UNIX хэрэгжүүлэлтүүд нь 1980-аад оноос Нагле алгоритмыг ашиглаж эхэлсэн бөгөөд энэ нь өнөөдөр TCP-ийн стандарт функц хэвээр байна.
Нагле алгоритм хэрхэн ажилладаг вэ
Нагле алгоритм нь TCP программуудын илгээх тал дахь өгөгдлийг nagling гэх аргаар боловсруулдаг. Энэ нь жижиг хэмжээтэй мессежийг илрүүлж, утсаар өгөгдөл илгээхийн өмнө тэдгээр мессежийг том TCP пакетуудад хуримтлуулдаг. Энэ процесс нь шаардлагагүй олон тооны жижиг пакетуудыг үүсгэхээс зайлсхийдэг.
Нагле алгоритмын техникийн үзүүлэлтүүд нь 1984 онд RFC 896 нэртэйгээр хэвлэгдсэн. Хэр их өгөгдөл хуримтлуулах, илгээлтийн хооронд хэр удаан хүлээх зэрэг шийдвэрүүд нь түүний ерөнхий гүйцэтгэлд чухал үүрэгтэй.
Наглингын ашиг тус
Nagling нь саатал, хоцрогдол нэмэх зардлаар сүлжээний холболтын зурвасын өргөнийг үр ашигтайгаар ашиглах боломжтой. RFC 896-д тайлбарласан жишээ нь зурвасын өргөний боломжит ашиг тус, түүнийг үүсгэсэн шалтгааныг харуулж байна:
- Хэрэв гарны даралтыг тасалдаг TCP програм нь бичиж буй тэмдэгт бүрийг хүлээн авагчтай холбогдохыг хүсвэл тус бүр нь 1 байт өгөгдөл агуулсан цуврал мессеж үүсгэж болно.
- Эдгээр мессежийг сүлжээгээр илгээхээс өмнө TCP/IP-ийн шаардсан TCP толгойн мэдээллийг агуулсан байх ёстой. Гарчиг бүрийн хэмжээ 20-60 байт байна.
- Хэлэлцэхгүйгээр энэ жишээ аппликейшн нь илгээгчийн гараас 95 хувь буюу түүнээс дээш толгой мэдээлэл (21 байтаас 20-оос доошгүй хувь) болон 5 хувь буюу түүнээс бага бодит өгөгдлөөс бүрдсэн сүлжээний мессежийг үүсгэх болно. Nagle алгоритмыг ашигласнаар ижил өгөгдлийг цөөн мессеж ашиглан хүргэх боломжтой бөгөөд ингэснээр зурвасын өргөнийг хэмнэх боломжтой.
Програмууд нь TCP_NODELA сокет програмчлалын сонголтоор Nagle алгоритмын хэрэглээгээ хянадаг. Windows, Linux болон Java системүүд нь ихэвчлэн Nagle-г анхдагчаар идэвхжүүлдэг. Иймд тэдгээр орчинд зориулагдсан программууд алгоритмыг унтраахын тулд TCP_NODELAY-г зааж өгөх шаардлагатай.
Хязгаарлалт
Видео дуудлага, онлайн тоглоом зэрэг сүлжээний хурдан хариу үйлдэл шаарддаг програмууд Nagle-г идэвхжүүлсэн үед сайн ажиллахгүй байж магадгүй. Алгоритм нь жижиг хэсгүүдийг цуглуулахад нэмэлт цаг зарцуулж байх үед үүссэн саатал нь дэлгэц эсвэл дижитал аудио дамжуулалт дээр мэдэгдэхүйц хоцрогдол үүсгэдэг. Ийм программууд ихэвчлэн Nagle-г идэвхгүй болгодог.
Компьютерийн сүлжээнүүд одоогийнхоос бага зурвасын өргөнийг дэмждэг байсан үед энэ алгоритмыг анх боловсруулсан. Дээр дурдсан жишээг 1980-аад оны эхээр Жон Наглын Форд Аэроспэйс дэх туршлага дээр үндэслэсэн бөгөөд Фордын удаан, их ачаалалтай, холын зайн сүлжээн дэх үл ойлголцол нь маш сайн ач холбогдолтой байв. Өнөөдөр түүний алгоритмаас сүлжээний програмууд ашиг тусаа өгөх нөхцөл байдал улам цөөрсөөр байна.
Нагле алгоритмыг зөвхөн TCP-д ашиглах боломжтой. UDP зэрэг бусад протоколууд үүнийг дэмждэггүй.