Naglen algoritmi on järjestelmä, jota käytetään parantamaan verkkojen, erityisesti Internetin, tehokkuutta. Järjestelmässä vältetään tietojen lähettäminen tarpeettomasti pieninä erinä, mikä lisää myös lähetettyjen erien määrää. Vaikka sillä on käyttötarkoituksiaan, Naglen algoritmi voi toimia huonosti muiden verkkoviestinnän elementtien kanssa.
John Nagle -nimisen miehen luoma Naglen algoritmi toimii TCP/IP -protokollia käyttävien verkkojen kanssa. Nämä ovat protokollia tai “sääntöjä” siitä, miten verkko lähettää tietoja. Vaikka protokollat voivat koskea mitä tahansa verkkoa, ne liittyvät yleisimmin Internetiin.
Algoritmi käsittelee tapaa, jolla tiedot lähetetään pieninä paloina tai “paketeina”. Jokainen paketti sisältää joitakin tietoja ja otsikkotietoja, jotka vastaavat fyysisen kirjekuoren lähettäjän ja vastaanottajan osoitetta. Paketti sisältää myös tarkistussumman, joka vastaa matemaattisesti pakkausluettelon sisällyttämistä, jotta vastaanottaja tietää, että kaikki paketin sisältö on saapunut turvallisesti.
Vaikka tämä järjestelmä toimii normaalisti hyvin, se voi olla tehotonta, jos datanpalat ovat erityisen pieniä. Äärimmäisissä tapauksissa paketin tiedot voivat olla vain yksi tavu, mutta otsikkotiedot vievät 40 tavua datan koosta riippumatta. Tämä vastaa suunnilleen kirjeen kirjoittamista jollekin, mutta sen leikkaamista ja jokaisen sanan lähettämistä erillisessä kirjekuoressa. Itse asiassa, koska viestit lähetetään binäärinä, se on vielä tehottomampaa kuin tämä. Kaistanleveyden tuhlaamisen lisäksi tämä lisää myös lähetettävien pakettien määrää, mikä lisää lähetysprosessissa tapahtuvan virheen mahdollisuutta.
Naglen algoritmin periaate on, että paketin lähettämisen jälkeen lähettävä tietokone odottaa jonkin seuraavista tapahtumista ennen seuraavan paketin lähettämistä. Jos se saa vahvistuksen siitä, että viimeinen paketti on vastaanotettu, se lähettää sen tiedot välittömästi sen koosta riippumatta. Muussa tapauksessa se odottaa, kunnes sillä on “täysi” paketti lähetettäväksi. Kun tämä tapahtuu, se lähettää koko paketin riippumatta siitä, onko edellinen paketti vastaanotettu.
Joissakin tilanteissa Naglen algoritmi voi tehdä enemmän haittaa kuin hyötyä. Yksi esimerkki on online -videopelit, jotka on suunniteltu olettaen, että tiedot lähetetään välittömästi. Jos Naglen algoritmia käytetään, jotkin tiedot viivästyvät, kunnes täysi paketti on valmis. Tällä voi olla huomattava vaikutus siihen, kuinka reagoiva peli tuntuu pelaajalle, ja se hidastaa tehokkaasti heidän reaktioaikojaan verrattuna muihin pelaajiin.