Job Snijders, tunnustatud OpenBSD arendaja, IETF (Internet Engineering Task Force) ĂŒhe komitee juht ja 11 RFC autor, mis on seotud suunamis- ja RPKI-ga ning IRRd (Internet Routing Registry Daemon) looja, avaldas komplekti patĆĄi OpenBSD-le, mis lisab uue sysctl parameetri ânet.inet.tcp.nodelayâ, et eemaldada Nagle'i algoritm sĂŒsteemi tasemel. See parameeter vabastab rakenduste arendajad TCP_NODELAY lipu seadmisest eraldi soketitele.
Nagle'i algoritm kasutatakse vĂ€ikeste sĂ”numite kogumiseks, et vĂ€hendada liiklust. Algoritm peatab uute TCP segmentide saatmise, kuni kinnitust eelnevalt saadetud andmete vastuvĂ”tmise kohta on saadud vĂ”i kuni ajutine katkestus toimub. NĂ€iteks ilma kogumist rakendamata, kui saadetakse 1 bait, saadetakse tĂ€iendavalt 40 baiti TCP ja IP paketi pealkirjadega, kuid Nagle'i algoritmi rakendamisel koguneb sĂ”num, mis on saadetud enne kinnituse saamistĂ€htaega, ja saadetakse ĂŒhe paketina. Kuna eksisteerib âviivitatud ACKâ optimeerimine, mis viib ACK-pakettide saatmise edasi, ei tööta signaal kinnituste kaudu tegelikult ja kogutud sĂ”numite saatmine toimub ajutise katkestuse saabumisel.
Snijders on arvamusel, et tÀnapÀeva tingimustes on Nagle'i algoritm, mis loodi ajal, mil mitmed kasutajad vÔistlesid 1200 baudil oleva ribalaiuse pÀrast, ajale jalgu jÀÀnud ja kÔrge ribalaiusega vÔrkudes on sellest rohkem kahju kui kasu. Hiljaaegu vÀljendas sarnast seisukohta ka Marc Brooker Amazon Web Servicesest (AWS). TÔendid Nagle'i algoritmi vaikeseadmest eemaldamise toetuseks on kajastatud mÔni pÀev tagasi avaldatud artiklis.
Nagle'i algoritmi eemaldamiseks on ette nĂ€htud TCP_NODELAY valik, mida saab seada eraldi vĂ”rgu soketitele. TCP_NODELAY reĆŸiimi on juba pikka aega kasutatud paljudes OpenBSD rakendustes, sealhulgas openssh, httpd, iscsid, relayd, bgpd ja unwind, ja Snijders peab Ă”igeks vĂ”imalust selle rakendamist kĂ”igi TCP sokettide tasemel. Samuti soovitab Snijders arutada TCP_NODELAY vaikeseadmestamist ja Nagle'i algoritmi muutmist eraldi aktiveeritavaks valikuks.
Allikas: opennet.ru
