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:

  1. 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

  1. 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.

Źródło: https://dev.to/wenrugou/why-does-your-network-proxy-keep-disconnecting-at-8-pm-the-engineering-behind-iplc-lines-and-node-4ld