L- algoritmu ta 'Nagle , imsemmi wara l-inġinier John Nagle, kien imfassal biex inaqqas il-konġestjoni tan-netwerk ikkawżata minn "problemi żgħar ta' pakketti" b'applikazzjonijiet TCP . L- implimentazzjonijiet UNIX bdew jużaw l-algoritmu ta 'Nagle fis-snin 80, u jibqa' karatteristika standard ta 'TCP illum.
Kif taħdem l-Algoritmu ta 'Nagle
L-algoritmu ta 'Nagle jipproċessa d-dejta fuq in-naħa li tibgħat l-applikazzjonijiet tat-TCP permezz ta' metodu msejjaħ nagling . Jiskopri messaġġi ta 'daqs żgħir u jakkumulahom f'pakketti TCP akbar qabel ma jibgħat data madwar il-wajer, u b'hekk jevita l-ġenerazzjoni ta' numri kbar bla bżonn ta 'pakketti żgħar. L-ispeċifikazzjoni teknika għall-algoritmu ta 'Nagle ġiet ippubblikata fl-1984 bħala RFC 896. Id-deċiżjonijiet għal ħafna dejta li jakkumulaw u għal kemm żmien biex tistenna bejn il-bidliet huma kruċjali għall-prestazzjoni ġenerali tagħha.
Nagling jista 'jutilizza b'mod aktar effiċjenti l- bandwidth ta' konnessjoni tan-netwerk għad-detriment taż-żieda ta 'dewmien ( latency ). Eżempju deskritt f'RFC 896 juri l-benefiċċji tal-bandwidth potenzjali u r-raġuni għall-ħolqien tiegħu:
- Applikazzjoni tat-TCP li tinterċetta l-buttuni tat-tastiera u trid tikkomunika kull karattru li jkun ittajpjat lil riċevitur, tista 'tiġġenera sensiela ta' messaġġi kull wieħed li jkun fih 1 byte ta 'data.
- Qabel ma dawn il-messaġġi jistgħu jintbagħtu madwar in-netwerk, kull wieħed irid jiġi ppakkjat flimkien ma 'l-informazzjoni tal- header tat-TCP kif meħtieġ mit-TCP / IP. Kull header tvarja fid-daqs bejn 20 u 60 bytes.
- Mingħajr nagling, din l-applikazzjoni ta 'eżempju tiġġenera messaġġi ta' netwerk li jikkonsistu f'95% jew aktar informazzjoni ta 'header (mill-inqas 20 minn 21 bytes) u 5% jew inqas data attwali mit-tastiera tal-mittent. Bl-użu tal-algoritmu ta 'Nagle, l-istess dejta tista' minflok titwassal bl-użu ta 'bosta messaġġi inqas u li 95% tal-kontenut ikun l-informazzjoni tat-tastiera - iffrankar ta' frekwenza kbira ħafna.
L-applikazzjonijiet jikkontrollaw l-użu tagħhom tal-algoritmu Nagle mal-għażla ta 'programmazzjoni tas - sokit TCP_NODELAY. Sistemi Windows, Linux u Java kollha normalment jippermettu lil Nagle b'mod awtomatiku, u għalhekk l-applikazzjonijiet miktuba għal dawk l-ambjenti għandhom jispeċifikaw TCP_NODELAY meta jixtiequ jaqilbu l-algoritmu.
Limitazzjonijiet
L-algoritmu ta 'Nagle huwa biss li jista' jintuża ma 'TCP. Protokolli oħra inklużi UDP ma jappoġġjawhiex.
L-applikazzjonijiet tat-TCP li jeħtieġu rispons rapidu għan-netwerk, bħat -telefonati bl-Internet jew il-logħob li jispara l-ewwel persuna, jistgħu ma jaħdmux sewwa meta Nagle jiġi attivat. Id-dewmien ikkawżat waqt li l-algoritmu jieħu aktar ħin biex jgħaqqad biċċiet iżgħar ta 'data flimkien jista' jikkawża dewmien notevoli viżwalment fuq skrin jew fluss ta 'awdjo diġitali. Dawn l-applikazzjonijiet tipikament jiskonnettjaw Nagle.
Dan l-algoritmu kien oriġinarjament żviluppat fi żmien meta n-netwerks tal-kompjuter appoġġjaw ħafna inqas bandwidth milli jagħmlu llum. L-eżempju deskritt hawn fuq kien ibbażat fuq l-esperjenzi ta 'John Nagle fil-Ford Aerospace fil-bidu tas-snin tmenin, fejn in-negozji tan-nagging fuq in-netwerk ta' distanza twila mtawla u mgħobbija b'mod qawwi għamlu sens. Hemm dejjem inqas sitwazzjonijiet fejn l-applikazzjonijiet tan-netwerk jistgħu jibbenefikaw mill-algoritmu tiegħu illum.