Dlaczego Twoja sieć traci połączenie o 20:00
Twój proxy działa dobrze przez cały dzień. Potem nadchodzi 20:00. Nagle połączenie zamarza. Opóźnienia gwałtownie rosną. Twoja aplikacja zostaje rozłączona.
Możesz obwiniać swoje Wi-Fi. Prawdziwym problemem jest globalna infrastruktura sieciowa.
O 20:00 miliony ludzi zaczyna oglądać wideo w streamingu i grać w gry. Powoduje to ogromny ruch na bramach międzynarodowych (gateways).
Oto dlaczego Twoje połączenie zawodzi:
- Nasycenie bram (Gateway Saturation): Gdy routery osiągają pełną przepustowość, wykonują Tail Drop. Po prostu odrzucają nowe pakiety, ponieważ nie mają już na nie miejsca.
- Panika TCP: Większość systemów używa algorytmu Cubic. Gdy wykryje utratę pakietów, zmniejsza prędkość o połowę. Tworzy to błędne koło retransmisji i wyższych opóźnień.
- BGP Flapping: W godzinach szczytu routery odnotowują duże straty i próbują znaleźć nowe ścieżki. Ta rekalibracja przerywa Twoje aktywne połączenie.
Standardowe publiczne trasowanie nie jest w stanie obsłużyć takiego obciążenia. Zespoły korporacyjne używają dedykowanych linii, aby pozostać online.
Porównanie trasowania publicznego do linii prywatnych:
• Ścieżka trasowania: Trasowanie publiczne korzysta ze współdzielonych ścieżek. IPLC i IEPL wykorzystują stałe, prywatne światłowody. • Opóźnienia: Trasowanie publiczne charakteryzuje się dużymi skokami. Linie prywatne pozostają stabilne. • Utrata pakietów: Trasowanie publiczne osiąga 5% lub 10% strat w nocy. Linie prywatne oferują 0% strat. • Bezpieczeństwo: Trasowanie publiczne przechodzi przez zapory sieciowe (firewalle). Linie prywatne je omijają.
IPLC to prywatny, fizyczny kanał. Nie styka się on z publicznym internetem, więc ignoruje wieczorny wzrost ruchu o 20:00. IEPL to podobne rozwiązanie działające w warstwie łącza danych.
Jeśli nie możesz kupić linii prywatnych, wypróbuj te dwa rozwiązania na swoim serwerze Linux:
- Przełącz się na BBR Congestion Control. W przeciwieństwie do Cubic, BBR nie wpada w panikę podczas utraty pakietów. Utrzymuje prędkość poprzez modelowanie rzeczywistej przepustowości sieci.
Uruchom te polecenia, aby zaktualizować swój sysctl.conf:
net.core.default_qdisc = fq
net.ipv4.tcp_congestion_control = bbr
- Obniż MTU. Zmień Maximum Transmission Unit z 1500 na 1420 lub 1360. Zapobiega to dzieleniu Twoich zaszyfrowanych pakietów na mniejsze części przez routery.