Bufferingul excesiv al rețelei ( ing. Bufferbloat - umflarea bufferului) este un fenomen care apare în rețelele cu comutare de pachete, când tamponarea excesivă determină o creștere a timpului de tranzit al pachetelor (latența) și răspândirea întârzierii pachetelor (jitter) și, ca urmare, o scădere. în debit. Proiectul www.bufferbloat.net a definit în derizoriu acest termen ca „deteriorarea performanței internetului cauzată de încercările anterioare de a-l îmbunătăți” [1] .
Termenul Bufferbloat a fost inventat la sfârșitul anului 2010 de Jim Gettys de la Bell Labs , membru al comitetului W3C și unul dintre editorii specificației HTTP/1.1 [2] .
Problema suprabufferării apare atunci când există un dispozitiv cu un buffer prea mare pe calea de la sursă la destinația pachetelor. De regulă, bufferele sunt prezente în aproape toate nodurile de rețea: comutatoare, routere, stive de sistem de operare etc. Sunt concepute pentru a stoca temporar pachete „în plus”, astfel încât acestea să nu se piardă atunci când expeditorul transmite date către nod mai repede decât acesta. poate obține destinatarul. Acest lucru se întâmplă atunci când lățimea de bandă a expeditorului este mai mare decât cea a receptorului. Buffering-ul întârzie transmiterea unui pachet cu câteva milisecunde. Dacă tamponul se umple, atunci următorul pachet este aruncat. Protocoalele de control al congestionării detectează acest lucru din partea expeditorului și reduc rata de transmisie. Datele continuă să fie transmise folosind lățimea de bandă maximă posibilă.
Dar dacă tamponul dintr-un nod de rețea este prea mare, atunci continuă să acumuleze pachete pentru o lungă perioadă de timp. Din cauza acestei lungi pauze, algoritmii de control al congestiei se rătăcesc și nu funcționează așa cum ar trebui. Fenomenul de întârziere a pachetelor mari și variabile începe să apară, blocajele de rețea „se sufocă” de la un exces de pachete dintr-un flux TCP, iar alte pachete sunt aruncate. Există o aglomerație. După un timp, tampoanele sunt eliberate, apoi rata de transfer este crescută până când tampoanele sunt din nou pline, până la următoarea congestie.
Din punctul de vedere al utilizatorilor obișnuiți, principalele simptome ale tamponării excesive a rețelei sunt atunci când rețeaua este sub încărcare (se transferă o mulțime de date), paginile web obișnuite durează foarte mult să se încarce (câteva secunde sau chiar minute) ; orice servicii care necesită o lățime de bandă constantă (fie mare sau mică), cum ar fi VoIP, jocuri de rețea, chat, aplicații interactive precum accesul de la distanță, devin inutilizabile. Metodele de prioritizare (QoS), în care este creată o coadă separată de pachete pentru un anumit tip de trafic, nu rezolvă problema.
Problema tamponării excesive este cauzată în principal de producătorii de routere, switch-uri și dezvoltatori de sisteme de operare, care în ultimii ani au început să instaleze buffere prea mari (câțiva megaocteți) pe dispozitive, ceea ce, la rândul său, este cauzat de o reducere bruscă a costul memoriei.
Problema poate fi rezolvată pur și simplu prin reducerea dimensiunii bufferelor de pe echipamentul de rețea. Cu toate acestea, nu este configurat pe majoritatea routerelor și switch-urilor, mai ales dacă acestea sunt situate în afara accesului utilizatorilor obișnuiți.
Bufferingul excesiv al rețelei poate fi cauzat de orice serviciu sau activitate din rețea care trimite cantități mari de date sau un număr mare de pachete prin rețea. Printre ei:
Fenomenul poate apărea oriunde are loc tamponarea. În primul rând, se creează congestie pe nod după care există cea mai îngustă lățime de bandă. De exemplu:
Multe protocoale și servicii de rețea suferă de congestie și timpi de răspuns lenți. De exemplu:
Cu toate acestea, sunt necesare tamponuri mari de rețea pentru a procesa corect pachetele cu un MTU mare , cum ar fi cadrele jumbo .
Problema congestionării rețelelor este o problemă veche a rețelelor care există încă de la începuturile existenței lor. Congestia rețelei cauzează degradarea debitului, creșterea timpului de tranzit al pachetelor și pierderea pachetelor. Ca urmare a congestionării rețelei, unele servicii de rețea pur și simplu nu mai funcționează.
Prima manifestare a congestionării rețelei pe scară largă a avut loc în 1986 pe NSFNet [3] . Ca răspuns la acest eveniment, protocolul Van Jacobson de control al congestionării a fost dezvoltat în 1988 .
Internetul a continuat să crească. În 1993, S. Floyd și W. Jacobson au dezvoltat algoritmul RED ( Random early detection - Arbitrary Early Detection ) pentru a controla depășirea cozilor de ruter [ 4 ] .
În 1997, a fost publicat RFC 2068 , care a formulat „principiul a două conexiuni”: un client nu trebuie să folosească mai mult de două conexiuni în același timp cu același server [5] . Potrivit aceluiași RFC, această recomandare este dată „pentru a reduce timpul de răspuns HTTP și a evita încărcarea excesivă pe Internet sau alte rețele”.
Un an mai târziu, apare RFC 2309 , „Recomandări pentru managementul cozilor de internet și evitarea congestionării”, propunând măsuri de îmbunătățire și păstrare a performanței Internetului.
În 2001, a fost lansat RFC 3168 : „Adăugarea unei notificări explicite de congestie (ECN) la IP”, care propunea adăugarea unui câmp ECN în pachetele IP și TCP, rezervând 2 biți pentru aceasta.
În 2004-2007, Comcast, unul dintre cei mai mari furnizori de servicii de internet din SUA, se confruntă cu dificultăți din cauza congestionării rețelei. Acest lucru este dovedit de opririle repetate ale internetului pentru utilizatorii „grei” [6] . Iar în 2007, Comcast, conform lui Jim Gettis, „s-a sufocat” de bittorrents [7] . Compania a fost acuzată de blocarea traficului cu torrent [8] [9] și chiar este dat în judecată [10] .
Potrivit lui Jim Gettis, prima persoană care a descoperit problema rețelei tampon a fost Dave Clark [7] . În 2004, el a observat acest fenomen pe DSLAM -ul său și l-a folosit pentru a-și descuraja fiul să joace ore lungi la WOW [11] .
În 2007, Jim Gettis însuși începe să primească plângeri din partea familiei sale cu privire la internetul defectuos și se confruntă cu deteriorarea echipamentelor din cauza fulgerelor [7] .
În 2009, Dave Reed a raportat un timp de călătorie dus-întors (RTT) prea mare al pachetelor (până la 30 de secunde) cu pierderi reduse de pachete în rețelele 3G prin postarea pe lista de corespondență cu ciclu complet. Jim Gettis însuși a înregistrat în rețelele 3G RTT până la 6 secunde.
Gettys continuă să primească plângeri din partea familiei despre internetul lent. În aprilie 2010, a efectuat un test de lățime de bandă/latență [12] . Rezultatul testului a arătat că timpul de așteptare (întârziere) al pachetelor crește odată cu un transfer lung de date. Pe 15 iulie 2010, Gettys a avut un prânz comun cu reprezentanții Comcast [13] , unde a fost sugerată cauza problemei: tampoane prea mari. Motivul, la rândul său, a fost propus companiei de Dave Clark cu doi ani mai devreme, dar compania nu a putut găsi dovezi în acest sens. Alte motive pentru umflarea tamponului: RED este adesea inclus în rețele, deoarece necesită o configurație complexă; ECN-urile sunt blocate pe unele rețele, deoarece blochează routerele de acasă.
Gettys și-a continuat cercetările, luând măsurători acasă și în călătorii de afaceri. Măsurătoarea din 20 septembrie a arătat o întârziere de 8 s pe o cale care de obicei este parcursă în 10 ms [14] . Apoi, Gettis a reprodus acest lucru pe alte routere de la diferiți producători.
În noiembrie, Gettys a reprodus problema pe diferite sisteme de operare. S-a dovedit că sub Linux și Mac această problemă este mai ușor de reprodus decât în Windows. Gettys a concluzionat: „există ceva în stivele de rețea ale sistemelor de operare” [15] .
3 decembrie 2010 Jim Gettis publică pe blogul său articolul „The criminal mastermind: bufferbloat!”, unde dă numele acestui fenomen - bufferbloat . În acest articol și în articolele ulterioare, Gettis vorbește despre esența fenomenului, locurile de apariție, cauze și consecințe [16] .
Robert Kringley, un jurnalist care scrie pentru InfoWorld, în articolul său „Predicții pentru 2011: Un cuvânt - bufferbloat. Sau sunt două cuvinte? prezice că tamponarea excesivă a rețelei va fi cea mai mare problemă a anului 2011 [17] . Referindu-se la Gettys, el oferă o descriere a problemei. 3 zile mai târziu, ars technica a publicat un articol al lui Ilici van Beinum, în care a subliniat că unele dintre detaliile descrise de Kringley sunt incorecte, dar în același timp a confirmat existența problemei buffering-ului excesiv al rețelei [18] .
Un proiect www.bufferbloat.net Arhivat la 4 decembrie 2012 pe Wayback Machine a fost în curând creat pentru a coordona eforturile persoanelor interesate de a aborda problema bufferingului excesiv al rețelei. Principalele sarcini ale proiectului: