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:
- TCP forrit sem afskræmir lyklaborðinu á lyklaborðinu og vill senda hvert staf sem er slegið til móttakanda, getur búið til röð skilaboða sem innihalda 1 bæti af gögnum.
- Áður en þessi skilaboð geta verið sent yfir netið verður hver um sig að vera pakkað saman með TCP header upplýsingar eins og krafist er af TCP / IP. Hver haus er í stærð á milli 20 og 60 bæti.
- Án nöglna, þetta dæmi umsókn myndi búa til net skilaboð sem samanstendur af 95% eða fleiri haus upplýsingar (að minnsta kosti 20 af 21 bæti) og 5% eða minna raunveruleg gögn frá lyklaborð sendanda. Með því að nota Nagle reikniritið gæti sömu gögn staðið í staðinn með því að nota margar færri skilaboð og að 95% af innihaldi sé lyklaborðsupplýsingar - mjög stór sparnaður bandbreiddar.
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.