Što je Nagleov algoritam?

Nagleov algoritam je sustav koji se koristi za poboljšanje učinkovitosti mreža, ponajprije Interneta. Sustav uključuje izbjegavanje slanja podataka u nepotrebno malim serijama, što također povećava broj poslanih serija. Iako ima svoje koristi, Nagleov algoritam može loše komunicirati s drugim elementima mrežne komunikacije.

Stvorio ga je čovjek po imenu John Nagle, Nagleov algoritam radi s mrežama koje koriste TCP/IP protokole. To su protokoli ili “pravila” za način na koji mreža prenosi podatke. Iako se protokoli mogu primijeniti na bilo koju mrežu, najčešće su povezani s internetom.

Algoritam se bavi načinom na koji se podaci prenose u malim komadima ili “paketima”. Svaki paket sadrži neke podatke plus informacije zaglavlja, što je ekvivalent adresama pošiljatelja i primatelja na fizičkoj omotnici. Paket također sadrži kontrolni zbroj, matematički ekvivalent uključivanju popisa pakiranja kako bi primatelj znao da je sav sadržaj paketa stigao sigurno.

Iako ovaj sustav normalno radi dobro, može biti neučinkovit ako su dijelovi podataka posebno mali. U ekstremnim slučajevima, podaci u paketu mogu biti samo jedan bajt, ali informacija zaglavlja zauzima 40 bajtova bez obzira na veličinu podataka. Ovo je otprilike isto kao da nekome napišete pismo, ali ga zatim izrežete i pošaljete svaku riječ u zasebnoj omotnici. Zapravo, budući da se poruke šalju u binarnom obliku, to je čak i neučinkovitije od ovoga. Uz gubitak propusnosti, ovo također povećava broj paketa koji se moraju poslati, što povećava mogućnost pojave greške u procesu prijenosa.

Princip Nagleovog algoritma je da nakon slanja paketa, računalo koje odašilje čeka da se dogodi jedna od dvije stvari prije nego što pošalje sljedeći paket. Ako primi potvrdu da je zadnji paket primljen, odmah će poslati podatke koje ima, bez obzira na njegovu veličinu. Inače će pričekati dok ne bude imao “pun” paket za slanje. Kada se to dogodi, poslat će cijeli paket bez obzira na to je li primljen prethodni paket ili ne.

U nekim situacijama Nagleov algoritam može učiniti više štete nego koristi. Jedan primjer je on-line videoigre koje su dizajnirane uz pretpostavku da će se podaci odmah poslati. Ako se koristi Nagleov algoritam, neki podaci će biti odgođeni dok cijeli paket ne bude spreman. To može imati primjetan učinak na to koliko je igra osjetljiva na igrača i učinkovito će usporiti njihovo vrijeme reakcije u usporedbi s drugim igračima.