Propozimi për të aktivizuar modalitetin TCP_NODELAY si standard.

Marc Brooker, inxhinier nga kompania Amazon Web Services (AWS), analizoi keqkuptimet lidhur me përmirësimin e efikasitetit të transmetimit të mesazheve të vogla duke përdorur algoritmin e Nagle, i cili aplikohet si parazgjedhje në stakun TCP/IP. Rekomandimet përfshijnë çaktivizimin e algoritmit të Nagle si parazgjedhje, që në kontekstin e aplikacioneve të veçanta mund të bëhet përmes vendosjes së opsionit TCP_NODELAY për soketat rrjetërore përmes thirrjes setsockopt, një praktikë që është përdorur prej kohësh në projekte si Node.js dhe curl.

Algoritmi i Nagle lejon agregimin e mesazheve të vogla për të zvogëluar trafikun - ndalon dërgimin e segmenteve të rinj TCP deri sa të merret konfirmimi për pranimin e të dhënave të dërguara më parë. Për shembull, pa përdorur agregimin, kur dërgohet 1 byte, dërgohen gjithashtu 40 byte me header-a TCP dhe IP. Në kushtet moderne, përdorimi i algoritmit të Nagle çon në rritje të dukshme të vonesave, të papranueshme për aplikacione interaktive dhe të shpërndara.

Tri argumente kryesore janë dhënë për përdorimin si parazgjedhje të opsionit TCP_NODELAY, i cili çaktivizon algoritmin e Nagle:

  • Inkompatibiliteti i algoritmit tĂ« Nagle me optimizimin 'delayed ACK', ku pĂ«rgjigja ACK dĂ«rgohet jo menjĂ«herĂ«, por pasi merret tĂ« dhĂ«na tĂ« pĂ«rgjigjes. Problemi Ă«shtĂ« se nĂ« algoritmin e Nagle, marrja e paketĂ«s ACK Ă«shtĂ« njĂ« sinjal pĂ«r dĂ«rgimin e tĂ« dhĂ«nave tĂ« agreguara, dhe nĂ«se paketa ACK nuk arrin, dĂ«rgimi realizohet vetĂ«m pas njĂ« kohĂ« tĂ« kaluar. KĂ«shtu, krijohet njĂ« cikĂ«l vicioz dhe paketa ACK si sinjal nuk funksionon, pasi ana tjetĂ«r nuk merr tĂ« dhĂ«na pĂ«r shkak tĂ« akumulimit nĂ« anĂ«n dĂ«rguese, dhe dĂ«rguesi nuk dĂ«rgon deri sa tĂ« kalojĂ« koha, pasi nuk merr paketĂ«n ACK.
  • RFC pĂ«r algoritmin e Nagle u miratua nĂ« 1984 dhe ai nuk Ă«shtĂ« i optimizuar pĂ«r parametrat e rrjeteve tĂ« shpejta moderne dhe servera nĂ« qendrat e tĂ« dhĂ«nave, çka shkakton probleme me reagimin. Vonesa midis dĂ«rgimit tĂ« njĂ« kĂ«rkese dhe marrjes sĂ« njĂ« pĂ«rgjigje (RTT) nĂ« rrjetet moderne Ă«shtĂ« 0.5 ms + disa milisekonda gjatĂ« shkĂ«mbimit tĂ« tĂ« dhĂ«nave midis qendrave tĂ« tĂ« dhĂ«nave nĂ« njĂ« rajon + deri nĂ« njĂ«qind milisekonda kur dĂ«rgohet nĂ« mbarĂ« botĂ«n. NĂ« kĂ«to milisekonda, serverĂ«t modernĂ« janĂ« nĂ« gjendje tĂ« kryejnĂ« njĂ« sasi tĂ« madhe pune.
  • Aplikacionet moderne tĂ« shpĂ«rndara prej kohĂ«sh nuk dĂ«rgojnĂ« byte tĂ« vetme tĂ« dhĂ«nash, dhe agregimi i tĂ« dhĂ«nave tĂ« vogla zakonisht realizohet nĂ« nivelin e aplikacionit. Edhe nĂ«se madhĂ«sia e tĂ« dhĂ«nave tĂ« dobishme Ă«shtĂ« disa byte, zakonisht madhĂ«sia reale e informacionit tĂ« dĂ«rguar rritet nĂ« mĂ«nyrĂ« tĂ« konsiderueshme pas aplikimit tĂ« serializimit, pĂ«rdorimit tĂ« API-ve nĂ« JSON dhe dĂ«rgimit me enkriptim TLS. Kursimi i 40 byte nuk bĂ«het aq i rĂ«ndĂ«sishĂ«m.

Burimi: opennet.ru

Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster