{"id":16485,"date":"2026-01-02T18:21:21","date_gmt":"2026-01-02T17:21:21","guid":{"rendered":"https:\/\/webhosting.de\/tcp-congestion-control-auswirkungen-vergleich-latenz\/"},"modified":"2026-01-02T18:21:21","modified_gmt":"2026-01-02T17:21:21","slug":"porownanie-wplywu-kontroli-przeciazenia-protokolu-tcp-na-opoznienia","status":"publish","type":"post","link":"https:\/\/webhosting.de\/pl\/tcp-congestion-control-auswirkungen-vergleich-latenz\/","title":{"rendered":"Algorytmy kontroli przeci\u0105\u017cenia TCP: por\u00f3wnanie skutk\u00f3w"},"content":{"rendered":"<p>TCP Congestion Control okre\u015bla, w jaki spos\u00f3b po\u0142\u0105czenia s\u0105 ustalane przy zmiennej <strong>obci\u0105\u017cenie sieci<\/strong> dostosowa\u0107 szybko\u015b\u0107 transmisji danych i sprawdzi\u0107, jak algorytmy sprawdzaj\u0105 si\u0119 w rzeczywistych konfiguracjach hostingowych. W tym por\u00f3wnaniu pokazuj\u0119 konkretny wp\u0142yw na przepustowo\u015b\u0107, op\u00f3\u017anienia i sprawiedliwo\u015b\u0107 dla <strong>Hosting internetowy<\/strong>, strumieniowanie i obci\u0105\u017cenia w chmurze.<\/p>\n\n<h2>Punkty centralne<\/h2>\n\n<p>Aby u\u0142atwi\u0107 Ci czytanie artyku\u0142u, pokr\u00f3tce podsumuj\u0119 najwa\u017cniejsze aspekty, a nast\u0119pnie umieszcz\u0119 je w odpowiednim kontek\u015bcie. Wyra\u017anie rozr\u00f3\u017cniam metody oparte na stratach i metody oparte na modelach, poniewa\u017c obie rodziny reaguj\u0105 w bardzo r\u00f3\u017cny spos\u00f3b. Wyja\u015bniam, dlaczego cwnd, RTT i pacing maj\u0105 wp\u0142yw na wydajno\u015b\u0107 i <strong>Sprawiedliwo\u015b\u0107<\/strong> Decyduj. Klasyfikuj\u0119 wyniki pomiar\u00f3w, aby\u015b nie podejmowa\u0142 decyzji na podstawie przeczu\u0107. Na koniec przedstawiam pragmatyczne zalecenia dotycz\u0105ce hostingu, kontener\u00f3w i globalnych <strong>U\u017cytkownicy<\/strong>.<\/p>\n\n<ul>\n  <li><strong>AIMD<\/strong> steruje cwnd i reaguje na straty<\/li>\n  <li><strong>CUBIC<\/strong> zapewnia sta\u0142\u0105 wydajno\u015b\u0107 przy du\u017cych RTT<\/li>\n  <li><strong>BBR<\/strong> wykorzystuje model, zmniejsza kolejki i op\u00f3\u017anienia<\/li>\n  <li><strong>BIC<\/strong> zdobywa punkty w sieciach z dropsami<\/li>\n  <li><strong>Hybla<\/strong> przyspiesza d\u0142ugie po\u0142\u0105czenia (satelita)<\/li>\n<\/ul>\n\n\n<figure class=\"wp-block-image size-full is-resized\">\n  <img fetchpriority=\"high\" decoding=\"async\" src=\"https:\/\/webhosting.de\/wp-content\/uploads\/2026\/01\/tcp-algorithmen-serverraum-9182.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>Co kontroluje funkcja kontroli przeci\u0105\u017cenia: cwnd, RTT, sygna\u0142y utraty<\/h2>\n\n<p>Zaczn\u0119 od podstaw, poniewa\u017c maj\u0105 one wp\u0142yw na wszystkie p\u00f3\u017aniejsze wybory. Okno przeci\u0105\u017cenia <strong>(cwnd)<\/strong> ogranicza liczb\u0119 bajt\u00f3w przesy\u0142anych bez potwierdzenia, a AIMD stopniowo zwi\u0119ksza cwnd, a\u017c do wyst\u0105pienia strat. RTT okre\u015bla, jak szybko powracaj\u0105 potwierdzenia i jak agresywnie algorytm mo\u017ce si\u0119 rozwija\u0107. Sygna\u0142y utraty danych powstawa\u0142y wcze\u015bniej w wyniku przekroczenia limit\u00f3w czasu i potr\u00f3jnych duplikat\u00f3w potwierdze\u0144, obecnie dodatkowo brana jest pod uwag\u0119 g\u0142\u0119boko\u015b\u0107 kolejki, minimalny RTT i zmierzona przepustowo\u015b\u0107 w\u0105skiego gard\u0142a. Kto rozumie cwnd, RTT i interpretacj\u0119 strat, mo\u017ce oceni\u0107 wp\u0142yw na przepustowo\u015b\u0107, op\u00f3\u017anienie i <strong>Jitter<\/strong> natychmiast lepiej.<\/p>\n\n<h2>Retrospekcja: Reno, NewReno i Vegas w codziennym \u017cyciu<\/h2>\n\n<p>Reno wykorzystuje Slow Start na pocz\u0105tku, a nast\u0119pnie przechodzi do liniowego wzrostu, ale po stratach drastycznie zmniejsza rozmiar okna o po\u0142ow\u0119. NewReno skuteczniej naprawia wiele strat w jednym oknie, co jest szczeg\u00f3lnie pomocne przy umiarkowanych wska\u017anikach b\u0142\u0119d\u00f3w. Vegas mierzy oczekiwan\u0105 przepustowo\u015b\u0107 w stosunku do rzeczywistej przepustowo\u015bci za pomoc\u0105 RTT i hamuje wcze\u015bnie, aby unikn\u0105\u0107 strat. Ta ostro\u017cno\u015b\u0107 pozwala utrzyma\u0107 ma\u0142e kolejki, ale kosztuje przepustowo\u015b\u0107, gdy strumienie oparte na stratach wysy\u0142aj\u0105 dane r\u00f3wnolegle w bardziej agresywny spos\u00f3b. Je\u015bli zauwa\u017cysz niewyja\u015bnione przekroczenia czasu lub zduplikowane potwierdzenia, powiniene\u015b najpierw <a href=\"https:\/\/webhosting.de\/pl\/siec-utrata-pakietow-strona-internetowa-spowolnienie-analiza\/\">Analiza utraty paczek<\/a> a nast\u0119pnie algorytm do <strong>Topologia<\/strong> Wybierz odpowiedni.<\/p>\n\n\n<figure class=\"wp-block-image size-full is-resized\">\n  <img decoding=\"async\" src=\"https:\/\/webhosting.de\/wp-content\/uploads\/2026\/01\/tcp_algorithmen_besprechung_5632.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>High-BW-RTT: por\u00f3wnanie BIC i CUBIC<\/h2>\n\n<p>BIC zbli\u017ca si\u0119 binarnie do najwy\u017cszego bezstratnego cwnd i utrzymuje t\u0119 warto\u015b\u0107 na zaskakuj\u0105co sta\u0142ym poziomie nawet w przypadku niewielkich b\u0142\u0119d\u00f3w. W laboratoriach o niskim op\u00f3\u017anieniu i wsp\u00f3\u0142czynniku utraty pakiet\u00f3w rz\u0119du 10^-4 BIC osi\u0105ga\u0142 przepustowo\u015b\u0107 powy\u017cej 8 Gbit\/s, podczas gdy klasyczne algorytmy wykazywa\u0142y wahania. CUBIC zast\u0105pi\u0142 BIC jako standard, poniewa\u017c kontroluje sw\u00f3j cwnd za pomoc\u0105 funkcji czasowej sze\u015bciennej, dzi\u0119ki czemu lepiej wykorzystuje d\u0142ugie RTT. Krzywa najpierw ro\u015bnie umiarkowanie po wyst\u0105pieniu utraty, nast\u0119pnie wyra\u017anie przyspiesza, a w pobli\u017cu ostatniej maksymalnej szybko\u015bci ponownie staje si\u0119 ostro\u017cna. W sieciach o d\u0142ugich \u015bcie\u017ckach cz\u0119sto osi\u0105gam wy\u017csze wykorzystanie przy jednoczesnym dobrym <strong>Mo\u017cliwo\u015b\u0107 planowania<\/strong> op\u00f3\u017anie\u0144.<\/p>\n\n<h2>Oparte na modelu: BBR, pacing i bufferbloat<\/h2>\n\n<p>BBR wykorzystuje model oparty na minimalnym RTT i zmierzonej przepustowo\u015bci w\u0105skiego gard\u0142a, ustawia cwnd na oko\u0142o dwukrotno\u015b\u0107 iloczynu przepustowo\u015bci i op\u00f3\u017anienia oraz r\u00f3wnomiernie rozdziela pakiety. Strategia ta zapobiega przepe\u0142nieniu kolejek i ogranicza op\u00f3\u017anienia, nawet w przypadku niewielkich strat. W konfiguracjach o zmiennej jako\u015bci po\u0142\u0105czenia radiowego lub mieszanych \u015bcie\u017ckach przepustowo\u015b\u0107 pozostaje wysoka, poniewa\u017c BBR nie reaguje odruchowo na ka\u017cdy spadek. Wersja 1 jest uwa\u017cana za bardzo szybk\u0105, ale mo\u017ce konkurowa\u0107 z CUBIC w ma\u0142ych buforach, wykazuj\u0105c przy tym nieco niesprawiedliwy podzia\u0142. \u0141\u0105cz\u0119 BBR w <strong>Hosting BBR CUBIC<\/strong> Krajobrazy lubi\u0119 dla strumieni pierwotnych i uruchamiam CUBIC jako kompatybilny fallback.<\/p>\n\n\n<figure class=\"wp-block-image size-full is-resized\">\n  <img decoding=\"async\" src=\"https:\/\/webhosting.de\/wp-content\/uploads\/2026\/01\/tcp-algorithmen-vergleich-9471.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>Satelita i radio: Hybla, Westwood i PCC<\/h2>\n\n<p>Hybla kompensuje wady wysokich warto\u015bci RTT, skaluj\u0105c cwnd tak, jakby istnia\u0142o kr\u00f3tkie referencyjne RTT. Dzi\u0119ki temu d\u0142ugie odleg\u0142o\u015bci, np. satelita, znacznie szybciej osi\u0105gaj\u0105 u\u017cyteczne pr\u0119dko\u015bci i pozostaj\u0105 na nich niezawodne. Westwood szacuje dost\u0119pn\u0105 przepustowo\u015b\u0107 na podstawie szybko\u015bci ACK i mniej drastycznie zmniejsza cwnd po utratach, co pomaga w sieciach radiowych z losowymi b\u0142\u0119dami. PCC idzie o krok dalej i optymalizuje warto\u015b\u0107 u\u017cyteczno\u015bci poprzez kr\u00f3tkie eksperymenty, dzi\u0119ki czemu mo\u017ce osi\u0105gn\u0105\u0107 wysokie kombinacje goodput-latency. W sieciach heterogenicznych z <strong>Mobilno\u015b\u0107<\/strong> Przed przyst\u0105pieniem do tworzenia skomplikowanych regu\u0142 QoS preferuj\u0119 testowanie Hybla i Westwood.<\/p>\n\n<h2>Por\u00f3wnanie wydajno\u015bci: warto\u015bci pomiarowe i uczciwo\u015b\u0107<\/h2>\n\n<p>Por\u00f3wnania pokazuj\u0105 wyra\u017anie r\u00f3\u017cne profile, gdy zmieniaj\u0105 si\u0119 op\u00f3\u017anienia i wska\u017aniki b\u0142\u0119d\u00f3w. Przy niskim RTT BIC cz\u0119sto dominuje w wy\u015bcigu o czyst\u0105 przepustowo\u015b\u0107, podczas gdy CUBIC oferuje niezawodn\u0105 kombinacj\u0119 szybko\u015bci i zachowania w czasie. W przypadku bardzo d\u0142ugich RTT CUBIC wyra\u017anie wygrywa z Reno i NewReno, poniewa\u017c lepiej przek\u0142ada czasy oczekiwania na wzrost. BBR utrzymuje puste kolejki i zapewnia stale niskie op\u00f3\u017anienia, ale w zale\u017cno\u015bci od wielko\u015bci bufora generuje wi\u0119cej ponownych transmisji. W przypadku przep\u0142yw\u00f3w r\u00f3wnoleg\u0142ych CUBIC zazwyczaj wykazuje sprawiedliwy podzia\u0142, BIC ch\u0119tnie utrzymuje przep\u0142yw blisko <strong>Pojemno\u015b\u0107<\/strong>.<\/p>\n\n<table>\n  <thead>\n    <tr>\n      <th>Algorytm<\/th>\n      <th>Zasada<\/th>\n      <th>Si\u0142a<\/th>\n      <th>s\u0142abo\u015b\u0107<\/th>\n      <th>Zalecane dla<\/th>\n    <\/tr>\n  <\/thead>\n  <tbody>\n    <tr>\n      <td>Reno \/ NewReno<\/td>\n      <td>Oparte na stratach, AIMD<\/td>\n      <td>Proste zachowanie<\/td>\n      <td>Powolny przy wysokim RTT<\/td>\n      <td>Stosy starszego typu, <strong>Rozwi\u0105zywanie problem\u00f3w<\/strong><\/td>\n    <\/tr>\n    <tr>\n      <td>Vegas<\/td>\n      <td>Oparty na RTT<\/td>\n      <td>Wczesne zapobieganie zatorom<\/td>\n      <td>Mniejsza przepustowo\u015b\u0107<\/td>\n      <td>Sta\u0142e op\u00f3\u017anienie<\/td>\n    <\/tr>\n    <tr>\n      <td>BIC<\/td>\n      <td>Wyszukiwanie binarne<\/td>\n      <td>Wysoka wydajno\u015b\u0107 przy spadkach<\/td>\n      <td>Agresywny wobec innych<\/td>\n      <td>Niski RTT, wska\u017aniki b\u0142\u0119d\u00f3w<\/td>\n    <\/tr>\n    <tr>\n      <td>CUBIC<\/td>\n      <td>Funkcja czasowa sze\u015bcienna<\/td>\n      <td>Dobra uczciwo\u015b\u0107<\/td>\n      <td>Rozproszenie w przypadku kropli<\/td>\n      <td>D\u0142ugie \u015bcie\u017cki, centra danych<\/td>\n    <\/tr>\n    <tr>\n      <td>BBR<\/td>\n      <td>Oparte na modelu, Pacing<\/td>\n      <td>Niskie op\u00f3\u017anienia<\/td>\n      <td>Niesprawiedliwe w ma\u0142ych buforach<\/td>\n      <td>Hosting, u\u017cytkownicy globalni<\/td>\n    <\/tr>\n    <tr>\n      <td>Hybla<\/td>\n      <td>Kompensacja RTT<\/td>\n      <td>Szybkie przyspieszenie<\/td>\n      <td>Charakter szczeg\u00f3lny<\/td>\n      <td>Satelita, <strong>morski<\/strong><\/td>\n    <\/tr>\n  <\/tbody>\n<\/table>\n\n\n<figure class=\"wp-block-image size-full is-resized\">\n  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/webhosting.de\/wp-content\/uploads\/2026\/01\/tcp_algorithmen_vergleich_4923.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>Przewodnik praktyczny: wyb\u00f3r wed\u0142ug op\u00f3\u017anienia, straty i celu<\/h2>\n\n<p>Ka\u017cd\u0105 decyzj\u0119 podejmuj\u0119, maj\u0105c jasno okre\u015blone cele: niskie op\u00f3\u017anienia, maksymalny goodput lub r\u00f3wnowaga dla wielu strumieni. W przypadku mocno ograniczonych rozmiar\u00f3w bufor\u00f3w i wra\u017cliwych wymaga\u0144 dotycz\u0105cych op\u00f3\u017anie\u0144, najpierw si\u0119gam po BBR. Je\u015bli dominuj\u0105 d\u0142ugie \u015bcie\u017cki i wsp\u00f3\u0142istnieje wiele host\u00f3w, nie ma alternatywy dla CUBIC. W sieciach o dobrze obserwowalnych wzorcach spadk\u00f3w BIC nadal zapewnia imponuj\u0105ce pr\u0119dko\u015bci, o ile sprawiedliwo\u015b\u0107 ma drugorz\u0119dne znaczenie. W przypadku satelit\u00f3w i bardzo wysokich koszt\u00f3w \u015bcie\u017cek RTT Hybla eliminuje typowe wady ramp-up i zapewnia szybkie <strong>\u0142adowno\u015b\u0107<\/strong>.<\/p>\n\n<h2>Linux, Windows i kontenery: aktywacja i dostrajanie<\/h2>\n\n<p>W systemie Linux sprawdzam aktywny algorytm za pomoc\u0105 sysctl net.ipv4.tcp_congestion_control i celowo wdra\u017cam go za pomoc\u0105 sysctl net.ipv4.tcp_congestion_control=bbr. W przypadku CUBIC zwracam uwag\u0119 na domy\u015blne ustawienia j\u0105dra, ale dostosowuj\u0119 net.core.default_qdisc i parametry pacingowe, gdy \u0142agodz\u0119 kolejki host\u00f3w. W kontenerach przenosz\u0119 ustawienia na hosta, poniewa\u017c przestrzenie nazw nie izoluj\u0105 ka\u017cdej kolejki. W systemie Windows od aktualnych wersji mo\u017cna aktywowa\u0107 BBR w odpowiednich edycjach, podczas gdy starsze systemy nadal u\u017cywaj\u0105 CUBIC lub Compound. Bez solidnego systemu i <strong>Kolejka<\/strong>Ka\u017cdy algorytm traci znacz\u0105co na skuteczno\u015bci.<\/p>\n\n\n<figure class=\"wp-block-image size-full is-resized\">\n  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/webhosting.de\/wp-content\/uploads\/2026\/01\/tcp_control_workspace_4821.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>Perspektywa hostingu internetowego: sprawiedliwo\u015b\u0107 wieloprzep\u0142ywowa i goodput<\/h2>\n\n<p>W klastrach hostingowych liczy si\u0119 suma wielu r\u00f3wnoczesnych przep\u0142yw\u00f3w, a nie najlepsza warto\u015b\u0107 pojedynczego transferu. CUBIC zapewnia przewidywalno\u015b\u0107 po\u0142\u0105cze\u0144 i zazwyczaj sprawiedliwie rozdziela przepustowo\u015b\u0107, co sprzyja scenariuszom z du\u017c\u0105 liczb\u0105 u\u017cytkownik\u00f3w. BBR redukuje kolejki i zapewnia kr\u00f3tki czas odpowiedzi dla interfejs\u00f3w API oraz dynamicznych stron internetowych. Osoby analizuj\u0105ce obci\u0105\u017cenie protoko\u0142u powinny przetestowa\u0107 transport przy u\u017cyciu wersji HTTP; moim punktem wyj\u015bcia jest <a href=\"https:\/\/webhosting.de\/pl\/http3-vs-http2-sprawdzanie-wydajnosci-webhostingu-topserver\/\">HTTP\/3 vs. HTTP\/2<\/a> w po\u0142\u0105czeniu z wybran\u0105 metod\u0105 CC. W przypadku u\u017cytkownik\u00f3w globalnych preferuj\u0119 niskie szczyty op\u00f3\u017anie\u0144, poniewa\u017c czas reakcji ma bezpo\u015bredni wp\u0142yw na postrzeganie <strong>Pr\u0119dko\u015b\u0107<\/strong> kszta\u0142tuje.<\/p>\n\n<h2>QUIC i BBR: wp\u0142yw wykraczaj\u0105cy poza TCP<\/h2>\n\n<p>QUIC posiada w\u0142asn\u0105 kontrol\u0119 zator\u00f3w opart\u0105 na protokole UDP i wykorzystuje podobne zasady jak BBR, np. pacing i obserwacj\u0119 RTT. W nowoczesnych stosach wydajno\u015b\u0107 stopniowo przenosi si\u0119 z TCP do warstwy aplikacji. Zwi\u0119ksza to stopie\u0144 swobody, ale wymaga dok\u0142adnych pomiar\u00f3w na poziomie \u015bcie\u017cki, hosta i aplikacji. Do cel\u00f3w planowania zalecam <a href=\"https:\/\/webhosting.de\/pl\/protokol-quic-rewolucja-w-komunikacji-internetowej\/\">Protok\u00f3\u0142 QUIC<\/a> w por\u00f3wnaniu z CUBIC\/BBR\u2011TCP przy rzeczywistych profilach obci\u0105\u017cenia. Dzi\u0119ki temu mog\u0119 wcze\u015bnie rozpozna\u0107, gdzie powstaj\u0105 kolejki i jak mo\u017cna wyeliminowa\u0107 w\u0105skie gard\u0142a poprzez regulacj\u0119 tempa lub <strong>Kszta\u0142towanie<\/strong> g\u0142adko\u015b\u0107.<\/p>\n\n\n<figure class=\"wp-block-image size-full is-resized\">\n  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/webhosting.de\/wp-content\/uploads\/2026\/01\/tcp-vergleich-serverraum-8362.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>AQM, ECN i dyscyplina buforowania: wsp\u00f3\u0142dzia\u0142anie z algorytmami<\/h2>\n\n<p>Kontrola zator\u00f3w osi\u0105ga pe\u0142n\u0105 skuteczno\u015b\u0107 dopiero w po\u0142\u0105czeniu z zarz\u0105dzaniem kolejk\u0105 urz\u0105dze\u0144 sieciowych. Klasyczne Tail Drop wype\u0142nia bufory do granic mo\u017cliwo\u015bci, a nast\u0119pnie nagle odrzuca pakiety, co powoduje szczyty op\u00f3\u017anie\u0144 i efekty synchronizacji. Aktywne zarz\u0105dzanie kolejk\u0105 (AQM), takie jak CoDel lub FQ-CoDel, oznacza lub odrzuca pakiety na wczesnym etapie i rozdziela przepustowo\u015b\u0107 bardziej sprawiedliwie mi\u0119dzy strumienie. Jest to korzystne dla wszystkich proces\u00f3w: CUBIC traci mniej cwnd z powodu burst drop\u00f3w, a BBR utrzymuje swoj\u0105 <strong>Pacing<\/strong>Strategia jest bardziej stabilna, poniewa\u017c kolejki nie \u201ep\u0119kaj\u0105\u201c.<\/p>\n\n<p>ECN (Explicit Congestion Notification) uzupe\u0142nia ten obraz. Zamiast odrzuca\u0107 pakiety, routery oznaczaj\u0105 zatory bitem CE; punkty ko\u0144cowe ograniczaj\u0105 przepustowo\u015b\u0107 bez konieczno\u015bci ponownego przesy\u0142ania. Algorytmy oparte na utracie danych reaguj\u0105 w ten spos\u00f3b szybciej i \u0142agodniej, a metody oparte na modelach, takie jak BBR, interpretuj\u0105 sygna\u0142y w kontek\u015bcie minimalnego RTT. W centrach danych DCTCP z konsekwentnym ECN umo\u017cliwia bardzo niskie op\u00f3\u017anienia kolejkowania przy wysokim obci\u0105\u017ceniu. W sieci WAN stosuj\u0119 ECN selektywnie: tylko wtedy, gdy \u015bcie\u017cki konsekwentnie przekazuj\u0105 oznaczenia, a urz\u0105dzenia po\u015brednicz\u0105ce nie ingeruj\u0105. W mieszanych sieciach publicznych nadal obowi\u0105zuje zasada, aby konfigurowa\u0107 AQM w spos\u00f3b przejrzysty, zamiast po prostu zwi\u0119ksza\u0107 bufory.<\/p>\n\n<h2>Porywy, odci\u0105\u017cenia i tempo po stronie hosta<\/h2>\n\n<p>Wiele spadk\u00f3w wydajno\u015bci wynika z wysy\u0142ania burst\u00f3w na ho\u015bcie. Du\u017ce operacje offload (TSO\/GSO) \u0142\u0105cz\u0105 segmenty w bardzo du\u017ce ramki; bez <strong>Pacing<\/strong> pakiety te s\u0105 roz\u0142adowywane w kr\u00f3tkich szczytach i wype\u0142niaj\u0105 kolejki prze\u0142\u0105cznik\u00f3w. Dlatego w systemie Linux ustawiam sch_fq lub FQ\u2011CoDel jako default_qdisc i stosuj\u0119 wsp\u00f3\u0142czynniki pacingowe okre\u015blone przez algorytm CC. Szczeg\u00f3lnie korzysta na tym BBR, ale r\u00f3wnie\u017c CUBIC dzia\u0142a spokojniej. Zbyt du\u017ce bufory pier\u015bcieniowe NIC i zbyt wysokie txqueuelen wyd\u0142u\u017caj\u0105 kolejki w ho\u015bcie \u2013 wybieram umiarkowane warto\u015bci i obserwuj\u0119 za pomoc\u0105 tc -s qdisc, czy nie powstaj\u0105 tam spadki lub znaki ECN.<\/p>\n\n<p>Po stronie odbiorczej GRO\/LRO wp\u0142ywaj\u0105 na op\u00f3\u017anienia ma\u0142ych przep\u0142yw\u00f3w. W przypadku obci\u0105\u017ce\u0144 zwi\u0105zanych z API warto przetestowa\u0107 lub ograniczy\u0107 te odci\u0105\u017cenia w zale\u017cno\u015bci od karty sieciowej i j\u0105dra, aby przyspieszy\u0107 przetwarzanie potwierdze\u0144. W konfiguracjach kontenerowych sprawdzam pary veth i host-Qdiscs: kolejka znajduje si\u0119 na interfejsie hosta, a nie w przestrzeni nazw. Kto u\u017cywa cgroups do zarz\u0105dzania przepustowo\u015bci\u0105, powinien ustawi\u0107 granice sp\u00f3jne z CC i AQM, w przeciwnym razie dojdzie do nieprzewidywalnych zak\u0142\u00f3ce\u0144 mi\u0119dzy przep\u0142ywami.<\/p>\n\n<h2>Profile obci\u0105\u017cenia: kr\u00f3tkie strumienie, s\u0142onie i strumieniowanie<\/h2>\n\n<p>Nie ka\u017cda aplikacja wymaga takiej samej kontroli zator\u00f3w. Przep\u0142ywy \u201emice\u201c (ma\u0142e transfery) dominuj\u0105 w interfejsach API sieci Web i stronach dynamicznych. Tutaj liczy si\u0119 szybko\u015b\u0107 nawi\u0105zania po\u0142\u0105czenia w fazie u\u017cytkowania oraz niskie op\u00f3\u017anienia ogona. BBR utrzymuje kolejki na niskim poziomie i sprzyja przep\u0142ywom kr\u00f3tkotrwa\u0142ym, podczas gdy CUBIC zapewnia solidne warto\u015bci \u015brednie przy sprawiedliwym podziale przepustowo\u015bci. Pocz\u0105tkowy rozmiar okna (initcwnd) i ustawienia op\u00f3\u017anionego potwierdzenia (Delayed ACK) maj\u0105 wp\u0142yw na pierwsze RTT: konserwatywne ustawienia domy\u015blne chroni\u0105 przed przepe\u0142nieniem, ale nie mog\u0105 zbytnio spowalnia\u0107 pierwszych kilobajt\u00f3w.<\/p>\n\n<p>\u201ePrzep\u0142ywy typu \u201cElephant\u201d (kopie zapasowe, replikacja, du\u017ce pliki do pobrania) wymagaj\u0105 stabilnego obci\u0105\u017cenia przez d\u0142ugi czas. CUBIC skaluje si\u0119 tutaj solidnie w r\u00f3\u017cnych RTT i dzieli si\u0119 r\u00f3wno z r\u00f3wnoleg\u0142ymi przep\u0142ywami. BIC zapewnia maksymalne pr\u0119dko\u015bci w kontrolowanych sieciach o znanych wzorcach spadk\u00f3w, ale ma wady w przypadku wsp\u00f3\u0142istnienia. W przypadku transmisji na \u017cywo i interakcji w czasie rzeczywistym (VoIP, gry) konsekwentnie unikam sta\u0142ych kolejek: BBR pozostaje pierwszym wyborem, o ile bufory s\u0105 ma\u0142e i dzia\u0142a AQM. Interakcje Nagle (TCP_NODELAY) i przetwarzanie wsadowe aplikacji maj\u0105 tu znaczenie: kto generuje wiele ma\u0142ych zapis\u00f3w, powinien celowo wy\u0142\u0105czy\u0107 Nagle i pozostawi\u0107 precyzyjne dostosowanie tempa.<\/p>\n\n<h2>Metodologia pomiaru: realistyczne testy i miarodajne wska\u017aniki<\/h2>\n\n<p>Dobre decyzje wymagaj\u0105 powtarzalnych pomiar\u00f3w. \u0141\u0105cz\u0119 obci\u0105\u017cenie syntetyczne z rzeczywistymi warunkami \u015bcie\u017cki: kontrolowan\u0105 emulacj\u0105 RTT, jitterem i utrat\u0105 (np. na linkach testowych) oraz rzeczywistymi lokalizacjami docelowymi. Przepustowo\u015b\u0107 mierz\u0119 jako goodput i koreluj\u0119 j\u0105 z przebiegami RTT, retransmisjami i udzia\u0142ami out-of-order. Op\u00f3\u017anienia P50\/P95\/P99 m\u00f3wi\u0105 wi\u0119cej ni\u017c \u015brednie warto\u015bci \u2013 szczeg\u00f3lnie w przypadku czas\u00f3w odpowiedzi API i interaktywno\u015bci. W przypadku TCP sprawdzam przebiegi cwnd i pacing_rate oraz kontroluj\u0119 statystyki Qdisc po stronie hosta, a tak\u017ce nasycenie procesora, aby prawid\u0142owo przyporz\u0105dkowa\u0107 w\u0105skie gard\u0142a.<\/p>\n\n<p>Pojedyncze testy mog\u0105 by\u0107 myl\u0105ce: r\u00f3wnoleg\u0142e przep\u0142ywy na host i ruch krzy\u017cowy tworz\u0105 realistyczne sytuacje konkurencyjne. Pora dnia, \u015bcie\u017cki peeringowe i warunki radiowe s\u0105 zmienne; powtarzam pomiary w seriach czasowych i sprawdzam wra\u017cliwo\u015b\u0107 na niewielkie spadki przepustowo\u015bci. W przypadku QUIC por\u00f3wnuj\u0119 identyczne obci\u0105\u017cenia z TCP, aby mo\u017cna by\u0142o wyra\u017anie oddzieli\u0107 ocen\u0119 poziomu aplikacji od poziomu transportu. Dopiero gdy pomiary pozostaj\u0105 stabilne pomimo zak\u0142\u00f3ce\u0144, podejmuj\u0119 decyzj\u0119 o wdro\u017ceniu w produkcji.<\/p>\n\n<h2>Cz\u0119ste b\u0142\u0119dy i szybkie rozwi\u0105zania<\/h2>\n\n<p>Sta\u0142y wzrost RTT pod obci\u0105\u017ceniem przy jednoczesnym spadku goodput wskazuje na <strong>Bufferbloat<\/strong> Aktywuj AQM, popraw tempo hosta, w razie potrzeby zastosuj BBR. Wiele retransmisji bez wyra\u017anych wzorc\u00f3w spadk\u00f3w wskazuje na konieczno\u015b\u0107 reorderingu lub kompresji ACK \u2013 pomocne s\u0105 dyski Qdisc oparte na FQ i czyste pacing. Nag\u0142e zawieszanie si\u0119 bez brakuj\u0105cych ACK cz\u0119sto wskazuje na problemy z Path-MTU; aktywuj\u0119 MTU-Probing i ustawiam MSS-Clamping na odpowiednich przej\u015bciach.<\/p>\n\n<p>Niesprawiedliwy podzia\u0142 mi\u0119dzy strumieniami wyst\u0119puje, gdy poszczeg\u00f3lne po\u0142\u0105czenia maj\u0105 trwa\u0142\u0105 przewag\u0119: CUBIC poprawia sprawiedliwo\u015b\u0107 RTT w por\u00f3wnaniu ze starszymi algorytmami strat, BBR wymaga czystej dyscypliny buforowania; w przypadku ma\u0142ych bufor\u00f3w bardziej precyzyjna regulacja tempa lub powr\u00f3t do CUBIC mo\u017ce zapewni\u0107 wsp\u00f3\u0142istnienie. W \u015brodowiskach kontenerowych powstaj\u0105 \u201eukryte\u201c kolejki na ko\u0144cach veth \u2013 bez skoordynowanych limit\u00f3w Qdisc i cgroup zatory przenosz\u0105 si\u0119 do hosta, daleko od aplikacji.<\/p>\n\n<h2>Wytyczne operacyjne: decyzje dotycz\u0105ce zespo\u0142u i platformy<\/h2>\n\n<p>Wprowadzam kontrol\u0119 zator\u00f3w do standard\u00f3w platformy: jednolite domy\u015blne ustawienia Qdisc, zdefiniowane profile CC dla ka\u017cdego klastra i scenariusze post\u0119powania w przypadku odchyle\u0144. W przypadku globalnych <strong>U\u017cytkownicy<\/strong> Rozdzielam obci\u0105\u017cenia wed\u0142ug wra\u017cliwo\u015bci na op\u00f3\u017anienia: priorytetowo traktuj\u0119 interfejsy API frontendu z BBR i \u015bcis\u0142ym AQM, a transfery masowe z CUBIC. Telemetria jest obowi\u0105zkowa: rozk\u0142ad RTT, goodput, retransmisje i wsp\u00f3\u0142czynniki ECN jako szeregi czasowe. Zesp\u00f3\u0142 wdra\u017ca zmiany poprzez eksperymenty procentowe i por\u00f3wnuje P95\/P99, a nie tylko warto\u015bci \u015brednie. Dzi\u0119ki temu decyzje CC staj\u0105 si\u0119 powtarzalne i zrozumia\u0142e \u2013 i nie pozostaj\u0105 tylko przeczuciem.<\/p>\n\n<h2>Lista kontrolna dotycz\u0105ca decyzji<\/h2>\n\n<p>Najpierw sprawdzam zakresy RTT i wska\u017aniki b\u0142\u0119d\u00f3w, poniewa\u017c maj\u0105 one dominuj\u0105cy wp\u0142yw na zachowanie. Nast\u0119pnie decyduj\u0119, czy priorytetem jest op\u00f3\u017anienie, czy przepustowo\u015b\u0107, i przeprowadzam testy ukierunkowane na te wska\u017aniki. W kolejnym kroku mierz\u0119 sprawiedliwo\u015b\u0107 za pomoc\u0105 r\u00f3wnoleg\u0142ych przep\u0142yw\u00f3w, aby unikn\u0105\u0107 niespodzianek podczas pracy. Nast\u0119pnie sprawdzam rozmiary bufor\u00f3w, procedury AQM i ustawienia tempa na ho\u015bcie oraz bramach. Na koniec sprawdzam pod obci\u0105\u017ceniem, czy wyb\u00f3r jest prawid\u0142owy, korzystaj\u0105c z prawdziwych u\u017cytkownik\u00f3w i prawdziwych <strong>Trasy<\/strong> nosi.<\/p>\n\n<h2>Kr\u00f3tki bilans<\/h2>\n\n<p>Reno i NewReno zapewniaj\u0105 wyra\u017ane zachowanie referencyjne, ale dzia\u0142aj\u0105 wolniej w przypadku d\u0142ugich \u015bcie\u017cek. CUBIC jest standardem w prawie ka\u017cdym hostingu Linux, poniewa\u017c dobrze wykorzystuje d\u0142ugie RTT i zachowuje si\u0119 uczciwie. BIC sprawdza si\u0119 w sieciach z zauwa\u017calnymi spadkami, gdy maksymalne obci\u0105\u017cenie jest wa\u017cniejsze ni\u017c s\u0105siedztwo. BBR umo\u017cliwia niskie op\u00f3\u017anienia i sta\u0142e czasy odpowiedzi, ale wymaga uwagi w zakresie bufor\u00f3w i wsp\u00f3\u0142istnienia. Kto dok\u0142adnie dopasowuje cele, charakterystyk\u0119 \u015bcie\u017cki i kolejki host\u00f3w, ten traktuje kontrol\u0119 zator\u00f3w jako prawdziw\u0105 <strong>D\u017awignia<\/strong> dla komfortu u\u017cytkowania i koszt\u00f3w.<\/p>","protected":false},"excerpt":{"rendered":"<p>Algorytmy kontroli przeci\u0105\u017cenia TCP, takie jak BBR i CUBIC, maj\u0105 znacz\u0105cy wp\u0142yw na wydajno\u015b\u0107 sieci \u2013 por\u00f3wnanie i wskaz\u00f3wki dotycz\u0105ce hostingu.<\/p>","protected":false},"author":1,"featured_media":16478,"comment_status":"","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_crdt_document":"","inline_featured_image":false,"footnotes":""},"categories":[922],"tags":[],"class_list":["post-16485","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-technologie"],"acf":[],"_wp_attached_file":null,"_wp_attachment_metadata":null,"litespeed-optimize-size":null,"litespeed-optimize-set":null,"_elementor_source_image_hash":null,"_wp_attachment_image_alt":null,"stockpack_author_name":null,"stockpack_author_url":null,"stockpack_provider":null,"stockpack_image_url":null,"stockpack_license":null,"stockpack_license_url":null,"stockpack_modification":null,"color":null,"original_id":null,"original_url":null,"original_link":null,"unsplash_location":null,"unsplash_sponsor":null,"unsplash_exif":null,"unsplash_attachment_metadata":null,"_elementor_is_screenshot":null,"surfer_file_name":null,"surfer_file_original_url":null,"envato_tk_source_kit":null,"envato_tk_source_index":null,"envato_tk_manifest":null,"envato_tk_folder_name":null,"envato_tk_builder":null,"envato_elements_download_event":null,"_menu_item_type":null,"_menu_item_menu_item_parent":null,"_menu_item_object_id":null,"_menu_item_object":null,"_menu_item_target":null,"_menu_item_classes":null,"_menu_item_xfn":null,"_menu_item_url":null,"_trp_menu_languages":null,"rank_math_primary_category":null,"rank_math_title":null,"inline_featured_image":null,"_yoast_wpseo_primary_category":null,"rank_math_schema_blogposting":null,"rank_math_schema_videoobject":null,"_oembed_049c719bc4a9f89deaead66a7da9fddc":null,"_oembed_time_049c719bc4a9f89deaead66a7da9fddc":null,"_yoast_wpseo_focuskw":null,"_yoast_wpseo_linkdex":null,"_oembed_27e3473bf8bec795fbeb3a9d38489348":null,"_oembed_c3b0f6959478faf92a1f343d8f96b19e":null,"_trp_translated_slug_en_us":null,"_wp_desired_post_slug":null,"_yoast_wpseo_title":null,"tldname":null,"tldpreis":null,"tldrubrik":null,"tldpolicylink":null,"tldsize":null,"tldregistrierungsdauer":null,"tldtransfer":null,"tldwhoisprivacy":null,"tldregistrarchange":null,"tldregistrantchange":null,"tldwhoisupdate":null,"tldnameserverupdate":null,"tlddeletesofort":null,"tlddeleteexpire":null,"tldumlaute":null,"tldrestore":null,"tldsubcategory":null,"tldbildname":null,"tldbildurl":null,"tldclean":null,"tldcategory":null,"tldpolicy":null,"tldbesonderheiten":null,"tld_bedeutung":null,"_oembed_d167040d816d8f94c072940c8009f5f8":null,"_oembed_b0a0fa59ef14f8870da2c63f2027d064":null,"_oembed_4792fa4dfb2a8f09ab950a73b7f313ba":null,"_oembed_33ceb1fe54a8ab775d9410abf699878d":null,"_oembed_fd7014d14d919b45ec004937c0db9335":null,"_oembed_21a029d076783ec3e8042698c351bd7e":null,"_oembed_be5ea8a0c7b18e658f08cc571a909452":null,"_oembed_a9ca7a298b19f9b48ec5914e010294d2":null,"_oembed_f8db6b27d08a2bb1f920e7647808899a":null,"_oembed_168ebde5096e77d8a89326519af9e022":null,"_oembed_cdb76f1b345b42743edfe25481b6f98f":null,"_oembed_87b0613611ae54e86e8864265404b0a1":null,"_oembed_27aa0e5cf3f1bb4bc416a4641a5ac273":null,"_oembed_time_27aa0e5cf3f1bb4bc416a4641a5ac273":null,"_tldname":null,"_tldclean":null,"_tldpreis":null,"_tldcategory":null,"_tldsubcategory":null,"_tldpolicy":null,"_tldpolicylink":null,"_tldsize":null,"_tldregistrierungsdauer":null,"_tldtransfer":null,"_tldwhoisprivacy":null,"_tldregistrarchange":null,"_tldregistrantchange":null,"_tldwhoisupdate":null,"_tldnameserverupdate":null,"_tlddeletesofort":null,"_tlddeleteexpire":null,"_tldumlaute":null,"_tldrestore":null,"_tldbildname":null,"_tldbildurl":null,"_tld_bedeutung":null,"_tldbesonderheiten":null,"_oembed_ad96e4112edb9f8ffa35731d4098bc6b":null,"_oembed_8357e2b8a2575c74ed5978f262a10126":null,"_oembed_3d5fea5103dd0d22ec5d6a33eff7f863":null,"_eael_widget_elements":null,"_oembed_0d8a206f09633e3d62b95a15a4dd0487":null,"_oembed_time_0d8a206f09633e3d62b95a15a4dd0487":null,"_aioseo_description":null,"_eb_attr":null,"_eb_data_table":null,"_oembed_819a879e7da16dd629cfd15a97334c8a":null,"_oembed_time_819a879e7da16dd629cfd15a97334c8a":null,"_acf_changed":null,"_wpcode_auto_insert":null,"_edit_last":null,"_edit_lock":null,"_oembed_e7b913c6c84084ed9702cb4feb012ddd":null,"_oembed_bfde9e10f59a17b85fc8917fa7edf782":null,"_oembed_time_bfde9e10f59a17b85fc8917fa7edf782":null,"_oembed_03514b67990db061d7c4672de26dc514":null,"_oembed_time_03514b67990db061d7c4672de26dc514":null,"rank_math_news_sitemap_robots":null,"rank_math_robots":null,"_eael_post_view_count":"2137","_trp_automatically_translated_slug_ru_ru":null,"_trp_automatically_translated_slug_et":null,"_trp_automatically_translated_slug_lv":null,"_trp_automatically_translated_slug_fr_fr":null,"_trp_automatically_translated_slug_en_us":null,"_wp_old_slug":null,"_trp_automatically_translated_slug_da_dk":null,"_trp_automatically_translated_slug_pl_pl":null,"_trp_automatically_translated_slug_es_es":null,"_trp_automatically_translated_slug_hu_hu":null,"_trp_automatically_translated_slug_fi":null,"_trp_automatically_translated_slug_ja":null,"_trp_automatically_translated_slug_lt_lt":null,"_elementor_edit_mode":null,"_elementor_template_type":null,"_elementor_version":null,"_elementor_pro_version":null,"_wp_page_template":null,"_elementor_page_settings":null,"_elementor_data":null,"_elementor_css":null,"_elementor_conditions":null,"_happyaddons_elements_cache":null,"_oembed_75446120c39305f0da0ccd147f6de9cb":null,"_oembed_time_75446120c39305f0da0ccd147f6de9cb":null,"_oembed_3efb2c3e76a18143e7207993a2a6939a":null,"_oembed_time_3efb2c3e76a18143e7207993a2a6939a":null,"_oembed_59808117857ddf57e478a31d79f76e4d":null,"_oembed_time_59808117857ddf57e478a31d79f76e4d":null,"_oembed_965c5b49aa8d22ce37dfb3bde0268600":null,"_oembed_time_965c5b49aa8d22ce37dfb3bde0268600":null,"_oembed_81002f7ee3604f645db4ebcfd1912acf":null,"_oembed_time_81002f7ee3604f645db4ebcfd1912acf":null,"_elementor_screenshot":null,"_oembed_7ea3429961cf98fa85da9747683af827":null,"_oembed_time_7ea3429961cf98fa85da9747683af827":null,"_elementor_controls_usage":null,"_elementor_page_assets":[],"_elementor_screenshot_failed":null,"theplus_transient_widgets":null,"_eael_custom_js":null,"_wp_old_date":null,"_trp_automatically_translated_slug_it_it":null,"_trp_automatically_translated_slug_pt_pt":null,"_trp_automatically_translated_slug_zh_cn":null,"_trp_automatically_translated_slug_nl_nl":null,"_trp_automatically_translated_slug_pt_br":null,"_trp_automatically_translated_slug_sv_se":null,"rank_math_analytic_object_id":null,"rank_math_internal_links_processed":null,"_trp_automatically_translated_slug_ro_ro":null,"_trp_automatically_translated_slug_sk_sk":null,"_trp_automatically_translated_slug_bg_bg":null,"_trp_automatically_translated_slug_sl_si":null,"litespeed_vpi_list":null,"litespeed_vpi_list_mobile":null,"rank_math_seo_score":null,"rank_math_contentai_score":null,"ilj_limitincominglinks":null,"ilj_maxincominglinks":null,"ilj_limitoutgoinglinks":null,"ilj_maxoutgoinglinks":null,"ilj_limitlinksperparagraph":null,"ilj_linksperparagraph":null,"ilj_blacklistdefinition":null,"ilj_linkdefinition":null,"_eb_reusable_block_ids":null,"rank_math_focus_keyword":"TCP Congestion Control","rank_math_og_content_image":null,"_yoast_wpseo_metadesc":null,"_yoast_wpseo_content_score":null,"_yoast_wpseo_focuskeywords":null,"_yoast_wpseo_keywordsynonyms":null,"_yoast_wpseo_estimated-reading-time-minutes":null,"rank_math_description":null,"surfer_last_post_update":null,"surfer_last_post_update_direction":null,"surfer_keywords":null,"surfer_location":null,"surfer_draft_id":null,"surfer_permalink_hash":null,"surfer_scrape_ready":null,"_thumbnail_id":"16478","footnotes":null,"_links":{"self":[{"href":"https:\/\/webhosting.de\/pl\/wp-json\/wp\/v2\/posts\/16485","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/webhosting.de\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/webhosting.de\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/webhosting.de\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/webhosting.de\/pl\/wp-json\/wp\/v2\/comments?post=16485"}],"version-history":[{"count":0,"href":"https:\/\/webhosting.de\/pl\/wp-json\/wp\/v2\/posts\/16485\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/webhosting.de\/pl\/wp-json\/wp\/v2\/media\/16478"}],"wp:attachment":[{"href":"https:\/\/webhosting.de\/pl\/wp-json\/wp\/v2\/media?parent=16485"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/webhosting.de\/pl\/wp-json\/wp\/v2\/categories?post=16485"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/webhosting.de\/pl\/wp-json\/wp\/v2\/tags?post=16485"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}