Инженер Жон Нагле нэрээр нэрлэгдсэн Нагл алгоритм нь TCP-ийн програмуудтай "жижиг пакет асуудлууд" -ын улмаас үүссэн сүлжээний түгжрэлийг багасгах зорилготой юм. UNIX-ийн шийдэл 1980-аад онд Наглегийн алгоритмыг ашиглаж эхэлсэн бөгөөд одоо TCP-ийн стандарт шинж чанар хэвээр байна.
Nagle алгоритм хэрхэн ажилладаг талаар
Нөөмийн алгоритм нь TCP програмуудын илгээсэн тал дээр өгөгдлийг явуулдаг. Энэ нь жижиг хэмжээний мэдээллүүдийг илрүүлж TCP пакетууд руу утсаар датаг илгээхээсээ өмнө хуримтлуулж, тиймээс маш олон тооны жижиг пакетуудыг үүсгэхээс зайлсхийдэг. Наглегийн алгоритмийн техникийн тодорхойлолтыг 1984 онд RFC 896 болгон хэвлэн гаргасан. Өгөгдөл цуглуулахад их хэмжээний өгөгдөл гаргах, илгээх хооронд хэр удаан хүлээх шийдвэрүүд нь ерөнхий гүйцэтгэлд чухал ач холбогдолтой.
Наглинг нь сүлжээний холболтын зурвасын өргөнийг илүү удаашруулж ( хоцролт ) нэмдэг. RFC 896-д тодорхойлсон жишээ нь зурвасын өргөн боломжит ашиг тус ба түүний үүсгэх шалтгааныг харуулсан болно:
- Гарын товчлуурыг дарах TCP програм нь хүлээн авагч уруу бичдэг тэмдэгт бүрийн харилцахыг хүсэх бөгөөд 1 байт өгөгдлийг агуулсан цуврал мессежийг үүсгэж болно.
- Эдгээр мессежийг сүлжээгээр дамжуулж илгээхээсээ өмнө TCP / IP шаардсанчлан TCP толгойн мэдээлэлтэй хамт багцлана. Толгой бүр нь 20-60 байт хэмжээтэй байна.
- Энэ жишээн дээр програмын 95% буюу түүнээс дээш толгой мэдээлэл (21 байтаас 20-с доошгүй тооны 20-с ихэвчлэн), мөн илгээгчийн keyboard-аас 5% эсвэл бага бодит өгөгдлүүдээс бүрдэх сүлжээний мэдэгдлүүдийг үүсгэдэг. Наглэ алгоритмийг ашигласнаар ижил өгөгдөл нь олон цөөн мэдээ ашиглан гар утсаа хүргэх боломжтой ба агуулгын 95% нь гарын мэдээлэл болох маш өргөн зурвасын хэмнэлт юм.
Applications нь TCP_NODELAY серверийн програмчлалын сонголттой Наглэ алгоритмийг ашиглахыг хянадаг. Windows, Linux, болон Java системүүд нь анхдагчаар Nagle-г идэвхжүүлдэг болохоор тэдгээр орчны програмууд нь алгоритмыг унтрааснаар TCP_NODELAY-ийг зааж өгөх шаардлагатай байдаг.
Хязгаарлалтууд
Nagle-ийн алгоритм нь зөвхөн TCP-т хэрэглэгддэг. UDP зэрэг бусад протокол үүнийг дэмждэггүй.
Наулт идэвхжиж байх үед интернет утасны дуудлага эсвэл анхны цочролын тоглоом гэх мэт хурдан сүлжээний хариулт хэрэгтэй TCP програмууд нь ажиллахгүй байж магадгүй юм. Алгоритм нь алсаас өгөгдөл үүсгэхийн тулд нэмэлт цаг шаардагдах үед үүсэх саатал нь дэлгэцэн дээр эсвэл дижитал аудио урсгал дээр мэдэгдэхүйц хоцрогдол үүсгэдэг. Эдгээр програмууд нь ихэвчлэн Nagle-г идэвхгүй болгодог.
Энэхүү алгоритм нь компьютерийн сүлжээнүүд нь өнөөгийнхөөс харьцангуй их зурвасын өргөнийг дэмжиж байсан үеийн үед боловсруулагдсан байсан. Дээр тайлбарласан жишээ нь 1980-аад оны эхээр Жон Наглын Ford Aerospace-ийн туршлага дээр үндэслэсэн бөгөөд удаан хугацаанд ачаалал ихтэй алсын зайн сүлжээнд удаан хугацаагаар ажиллах чадвартай болсон. Сүлжээний програмууд түүний алгоритмаас ашиг тус хүртэж болох цөөн тохиолдлууд байдаг.