Dyluniwyd algorithm Nagle , a enwyd ar ôl y peiriannydd John Nagle, i leihau tagfeydd rhwydwaith a achosir gan "broblemau pecyn bach" gyda cheisiadau TCP . Dechreuodd gweithrediadau UNIX ddefnyddio algorithm Nagle yn yr 1980au, ac mae'n parhau i fod yn nodwedd safonol o TCP heddiw.
Sut mae'r Algorithm Nagle yn Gweithio
Mae algorithm Nagle yn prosesu data ar ochr anfon ceisiadau TCP trwy ddull o'r enw nagling . Mae'n canfod negeseuon bach eu maint ac yn eu cronni i mewn i becynnau TCP mwy cyn anfon data ar draws y wifren, gan osgoi cynhyrchu nifer fawr o becynnau bach yn ddiangen. Cyhoeddwyd y fanyleb dechnegol ar gyfer algorithm Nagle ym 1984 fel RFC 896. Mae'r penderfyniadau ar gyfer llawer o ddata i'w casglu a pha mor hir y bydd disgwyl i chi aros rhwng hyn yn hanfodol i'w berfformiad cyffredinol.
Gall Nagling ddefnyddio lled band cysylltiad rhwydwaith yn fwy effeithlon ar draul ychwanegu oedi ( latency ). Mae enghraifft a ddisgrifir yn RFC 896 yn dangos y buddion lled band posibl a'r rheswm dros ei greu:
- Mae cais TCP sy'n rhychwantu keystrokes bysellfwrdd ac eisiau cyfathrebu pob cymeriad yn cael ei deipio i dderbynnydd, yn gallu creu cyfres o negeseuon pob un sy'n cynnwys 1 byte o ddata.
- Cyn y gellir anfon y negeseuon hyn ar draws y rhwydwaith, rhaid pecynnu pob un ynghyd â gwybodaeth pennawd TCP fel sy'n ofynnol gan TCP / IP. Mae pob pennawd yn amrywio o ran maint rhwng 20 a 60 bytes.
- Heb nagling, byddai'r enghraifft hon yn creu negeseuon rhwydwaith sy'n cynnwys 95% neu fwy o wybodaeth pennawd (o leiaf 20 allan o 21 bytes) a 5% neu lai o ddata go iawn o bysellfwrdd yr anfonwr. Gan ddefnyddio'r algorithm Nagle, gellid cyflwyno'r un data yn lle hynny gan ddefnyddio llawer llai o negeseuon a bod 95% o'r cynnwys yn wybodaeth bysellfwrdd - arbedion lled band mawr iawn.
Mae ceisiadau yn rheoli eu defnydd o'r algorithm Nagle gyda'r opsiwn rhaglennu soced TCP_NODELAY. Mae systemau Windows, Linux a Java fel arfer yn galluogi Nagle yn ddiofyn, felly mae angen i geisiadau a ysgrifennwyd ar gyfer yr amgylcheddau hynny bennu TCP_NODELAY pan fyddant am newid yr algorithm i ffwrdd.
Cyfyngiadau
Dim ond gyda TCP y gellir defnyddio algorithm Nagle. Nid yw protocolau eraill gan gynnwys CDU yn ei gefnogi.
Efallai na fydd ceisiadau TCP sydd angen ymateb rhwydwaith cyflym, fel galwadau ffôn Rhyngrwyd neu gemau saethu person-gyntaf, yn gweithio'n dda pan gaiff Nagle ei alluogi. Gall yr oedi a achosir tra bod yr algorithm yn cymryd amser ychwanegol i ymgynnull darnau llai o ddata gyda'i gilydd yn gallu achosi golwg amlwg ar sgrin neu mewn nwd sain ddigidol. Fel arfer, mae'r ceisiadau hyn yn analluogi Nagle.
Datblygwyd yr algorithm hwn yn wreiddiol ar adeg pan oedd rhwydweithiau cyfrifiadurol yn cefnogi llawer llai o lled band nag y maent yn ei wneud heddiw. Roedd yr enghraifft a ddisgrifir uchod yn seiliedig ar brofiadau John Nagle yn Ford Aerospace yn gynnar yn yr 1980au, lle roedd rhwydweithiau rhyfeddol ar eu rhwydwaith pellter hir a oedd yn cael eu llwytho'n helaeth yn gwneud synnwyr da. Mae yna fwyfwy lai o sefyllfaoedd lle gall ceisiadau rhwydwaith elwa ar ei algorithm heddiw.