The Nagle reiknirit fyrir TCP Network Communication

The Nagle reiknirit , sem heitir eftir verkfræðingur John Nagle, var hannað til að draga úr netþrengingu af völdum "smápakkaproblema" með TCP forritum . UNIX innleiðingar hófu að nota reiknirit Nagle í 1980, og það er ennþá staðalbúnaður TCP í dag.

Hvernig vinnur Nagle reikniritin

Reiknirit Nagle fer með gögn á sendisíðu TCP forrita með aðferð sem kallast nagling . Það uppgötvar smærri skilaboð og safnar þeim í stærri TCP-pakka áður en þau senda gögn yfir vírinn og forðast þannig að óþarfa fjölmörg lítill pakki myndist. Tækniforskriftin fyrir reiknirit Nagle var gefin út árið 1984 sem RFC 896. Ákvarðanirnar um mikla gögnum sem safnast upp og hversu lengi á að bíða milli sendinga eru mikilvæg fyrir heildarframmistöðu sína.

Nagling getur skilvirkara nýtt bandbreidd netkerfisins á kostnað þess að bæta töfum ( seinkun ). Dæmi sem lýst er í RFC 896 sýnir hugsanlega bandbreiddarkostnað og ástæðan fyrir stofnun þess:

Umsóknir stjórna notkun þeirra á Nagle reikniritinu með TCP_NODELAY fókusforritunarmöguleikanum. Windows, Linux og Java kerfi gera allt sem venjulega Nagle sjálfgefið, þannig að forrit sem eru skrifuð fyrir þessi umhverfi þurfa að tilgreina TCP_NODELAY þegar þeir vilja breyta reikniritinu.

Takmarkanir

Reiknirit Nagle er aðeins nothæft með TCP. Aðrar samskiptareglur þar á meðal UDP styðja það ekki.

TCP forrit sem þurfa fljótlegan netviðbrögð, eins og símtöl á netinu eða fyrstu skytta leiki, virkar ekki vel þegar Nagle er virkt. Tafir sem stafar af því að reikniritin tekur lengri tíma til að setja saman minni klumpur af gögnum saman getur komið í ljós áberandi töf á skjá eða í stafrænu hljóðstraumi. Þessar umsóknir slökkva venjulega Nagle.

Þessi reiknirit var upphaflega þróuð á þeim tíma þegar tölvunet styður miklu minni bandbreidd en þau gera í dag. Dæmiið sem lýst er hér að framan var byggt á reynslu John Johns í Ford Aerospace snemma á tíunda áratugnum, þar sem naglingaviðskipti á hægum, þungt hlaðnum fjarskiptanetinu gerðu góðan skilning. Það eru sífellt færri aðstæður þar sem netforrit geta notið góðs af reiknirit sinni í dag.