Strona główna Sieci Kontrola przeciążenia TCP

🌐 Kontrola przeciążenia TCP

Okno przeciążenia TCP w akcji: podwajanie w slow-start, addytywny wzrost AIMD i multiplikatywne zmniejszenie po stracie (Tahoe/Reno/CUBIC). Obserwuj piłokształtny przebieg cwnd oraz zapełnianie się i porzucanie pakietów w buforze wąskiego gardła.

Sieci2DZaawansowany60 FPS
tcp-congestion ↗ Otwórz osobno
Interfejs samej symulacji jest w języku angielskim.

O tej symulacji

Ten symulator uruchamia prawdziwą pętlę kontroli przeciążenia TCP, RTT po RTT: cwnd podwaja się co obieg podczas wolnego startu (slow start), przełącza się na liniowy addytywny wzrost w fazie unikania przeciążenia po przekroczeniu ssthresh, i zostaje ścięte — multiplikatywnie — w chwili, gdy bufor wąskiego gardła się przepełni lub wystąpi losowa strata. Przełączaj między Tahoe, Reno, NewReno i wariantem zbliżonym do CUBIC, by zobaczyć, jak każdy z nich inaczej się wycofuje, i dostrajaj pasmo, RTT, rozmiar bufora oraz współczynnik strat, by odtworzyć zawodne łącza bezprzewodowe, małe bufory routera lub ścieżki o wysokim iloczynie pasma i opóźnienia.

🔬 Co przedstawia

Klasyczny ząb piły cwnd: cyjanowe wykładnicze narastanie podczas wolnego startu, fioletowy liniowy wzrost podczas unikania oraz czerwony spadek przy stracie, gdy bufor wąskiego gardła (pokazany napełniający się w schemacie rury) przepełnia się lub losowy pakiet zostaje odrzucony.

🎮 Jak korzystać

Dostosuj pasmo wąskiego gardła, RTT, rozmiar bufora i losowy współczynnik strat, wybierz wariant algorytmu (Reno, Tahoe, zbliżony do CUBIC, NewReno) lub wczytaj predefiniowany układ (Idealne łącze, Zawodne bezprzewodowe, Mały bufor, Wysoki BDP) i obserwuj fazę, cwnd, ssthresh, przepustowość i straty aktualizujące się na żywo.

💡 Czy wiesz, że?

Tahoe resetuje cwnd całkowicie z powrotem do 1 pakietu przy każdej stracie i zaczyna wolny start od nowa, podczas gdy Reno i NewReno jedynie zmniejszają cwnd o połowę i wracają prosto do unikania przeciążenia — to jeden z powodów, dla których TCP z rodziny Reno odzyskuje przepustowość znacznie szybciej po utracie pojedynczego pakietu.

Najczęściej zadawane pytania

Czym jest okno przeciążenia (cwnd)?

To liczba pakietów, jaką nadawca TCP może mieć w locie bez potwierdzenia. Zaczyna się od 1 pakietu i rośnie zgodnie z bieżącą fazą — wolnym startem lub unikaniem przeciążenia — aż strata zmusi je z powrotem w dół.

Co wywołuje wzorzec ząbka piły?

cwnd wciąż rośnie (wykładniczo podczas wolnego startu, potem liniowo podczas unikania), aż przekroczy to, co łącze wąskiego gardła i bufor mogą wchłonąć. Pakiet zostaje odrzucony, cwnd zostaje ścięte multiplikatywnie, a narastanie zaczyna się od nowa — powtarzanie tego cyklu rysuje znany ząb piły.

Czym jest ssthresh?

To próg wolnego startu: wartość cwnd, przy której nadawca przełącza się z podwajania co RTT na dodawanie w przybliżeniu jednego pakietu na RTT. Jest ustawiany na połowę cwnd zaraz po stracie, dlatego obniża się przy każdym spadku ząbka piły.

Czym CUBIC różni się od Reno?

Reno zwiększa cwnd liniowo niezależnie od tego, jak dawno temu wystąpiła ostatnia strata. Wzrost zbliżony do CUBIC podąża tutaj za funkcją sześcienną czasu od ostatniej straty, rosnąc powoli zaraz po wycofaniu, a następnie przyspieszając z powrotem w stronę poprzedniego rozmiaru okna — przydatne na ścieżkach o wysokim iloczynie pasma i opóźnienia, gdzie sam liniowy wzrost odzyskuje przepustowość zbyt wolno.

Dlaczego mały bufor powoduje częstsze straty?

Mały bufor wąskiego gardła zapełnia się, gdy tylko cwnd nieznacznie przekroczy pasmo łącza, więc przepełnia się szybciej i częściej niż zrobiłby to duży bufor — wypróbuj predefiniowany układ „Mały bufor” i porównaj częstotliwość ząbka piły z „Idealne łącze”.

Podobne symulacje