Odporność na połączenia sieciowe
(Sekcja: Ekosystem i sieć)
1) Cel i obszar
„Odporność sieci” to zdolność ekosystemu do utrzymania dostępności i przewidywalnej jakości interakcji między uczestnikami (operatorzy, dostawcy, studia, oddziały, węzły/walidatory, usługi płatnicze i KYC) w przypadku awarii kanałów, węzłów, regionów i ataków zewnętrznych. Kluczowe cele to minimalizacja MTTR, zawierająca awarie kaskadowe, kontrolowana degradacja i szybkie odzyskiwanie docelowych SLO.
2) Model zagrożenia
Sieć: utrata pakietu/jitter, zator łącza, klapa BGP, przerwy międzyregionalne, asymetryczne routing.
Transport/gniazda: połowa otwartych połączeń, blokowanie głowicy linii (TCP), wyczerpanie stanu (NAT/conn-track).
Warstwa aplikacji: kolce ruchu, „długotrwałe” żądania, n + 1 RPC, burza retray.
Zależności: degradacja DNS, KMS/PKI, kolejki, TURN/przekaźnik, API osób trzecich.
Bezpieczeństwo: L3/L4/L7 DDoS, powódź bot, zatrucie pamięci podręcznej, próby Sybil/spam.
System operacyjny: nieprawidłowe flagi funkcji, „gorące” wydania bez ograniczeń, nieprawidłowe timeouts.
3) Zasady projektowania zrównoważonego
1. Redundancja na wszystkich warstwach: ścieżki, regiony, dostawcy, węzły przekaźnikowe, DNS, tajne magazyny.
2. Izolacja usterek: architektura oparta na komórkach, wyłączniki, grodzie, granice połączeń krzyżowych.
3. Fast-fast i time-boks: krótki czas na połączenia zewnętrzne, zakaz „czekaj na zawsze”.
4. Idempotencja i bezpieczne rekolekcje: idempotencja klucze, deadup w odbiorniku.
5. Domyślna obserwowalność: ślady, identyfikatory korelacji, próbki syntetyczne.
6. Tryby degradacji: tylko do odczytu, tylko do pamięci podręcznej, funkcje upuszczania, priorytet krytycznych wątków.
7. Inżynieria chaosu: dowód stabilności przez eksperyment.
4) Topologie i redundancja
Hybrydowe P2P + super-peers + DHT: lokalne siatki w grupach „kontraktowych”, super węzły jako powtórki i bufory, DHT do wyszukiwania.
Anycast/Geo-DNS/SD-WAN: bliskie wejście, kontrolowane przepływy, routing w oparciu o zdrowie.
Przekaźnik wielopoziomowy (tunele TURN/HTTP3): niezależni dostawcy, budżet przekaźnika tylko w razie potrzeby.
Aktywne regiony: synchroniczne dla idempotenta odczytuje/zdarzenia; dla transakcji pieniężnych - końcowa spójność + ścisłe zakończenie.
5) Protokoły, terminy i rekolekcje
Transport: QUIC/HTTP3 (multipleksowanie bez blokowania HoL, migracja ścieżki), TCP - jako awaryjny.
Terminy (punkty orientacyjne):- Timeout klienta RPC: p99_latency×1. 5 (ale ≤ 2-3 s międzyregionalnie).
- Podłącz czas: 200-500 ms lokalnie, 700-1200 ms międzyregionalnie.
- Backoff: wykładniczy z jitterem; max-retries 2-3 do „czytania” połączeń.
- Żądania zabezpieczane: po opóźnieniu p95 wyślij drugi wykonawca (tylko operacje idempotent).
- Idempotencja: nagłówek/pole 'klucz rentgenowski', przechowywanie dzienników dedup ≥ retras TTL.
- Kolejki i skrzynki: gwarantowana dostawa zdarzeń, powtarzanie w przypadku awarii sieci, dedup na konsolach.
6) Zarządzanie obciążeniem i „samoobrona”
Limity stawek i kwoty: wyciek-wiadro/wiadro-token w RPC/temat.
Adaptacyjne przesuwanie obciążenia - resetuje żądania o niskim priorytecie, gdy zwiększa się opóźnienie.
Priorytety: pieniądze/wypłaty> gry> telemetria.
Backpressure: dynamiczne okno, ograniczenia jednoczesności, „limity kredytowe” rówieśników.
Łączenie połączeń: ciepłe baseny, limity otwartych gniazd/stanów NAT.
7) Bezpieczeństwo DDoS i kanału
L3/L4: upstream scrubbing/Anycast, conn-track бакита, SYN-cookies, UDP-rate.
L7: WAF/WAAP, proof-of-work/fee-gate dla otwartych tematów, captcha/przyrzeczenia portfela przed spamem.
mTLS/TLS 1. 3 + E2E: szyfrowanie „w drodze”, przypinanie klawiszy super-węzłów, rotacja certyfikatów.
Anty-Sybil: zaufany rejestr peer-ID, reputacja, KYB/KYC za wpływ na role.
Domyślne zabezpieczenia: „zabronione, jeśli nie dozwolone”, ACL według tematu, minimalizując prawa.
8) SLO, SLI i wskaźniki odporności
SLO (przykład):- Czas trwania krytycznych punktów końcowych ≥ 99. 95 %/30d
- p99 opóźnienie międzyregionalnie ≤ 600 ms; wskaźnik błędu ≤ 0. 2%.
- Wskaźnik sukcesu P2P-RPC ≥ 99. 5%; Pub/Sub E2E p95 ≤ 2 ".
- Udział przekaźnika ≤ 30%; Rozdzielczość DHT p95 ≤ 300 со.
- MTTR SEV-1 ≤ 30 min; MTTA ≤ 5 min.
- Łączność%, odsetek połączeń bezpośrednich, średnia liczba sąsiadów.
- RTT/Jitter/Loss według klasy ruchu; RPC sukces/awaria taksonomii.
- Głębokość kolejki/opóźnienie w maklerach/przekaźniku; DHT hit/miss i wiek rekordów.
- Prędkość spalania według SLO (1h/6h/24h); wpływ na KPI dla przedsiębiorstw (straty GTV/MAU).
9) Obserwowalność i próbki syntetyczne
Śledzenie: end-to-end trace-ID, eksport za pośrednictwem OpenTelemetry, semantyka przęseł dla chmielu sieciowego.
Kłody/mierniki: kłody konstrukcyjne, kardynalność pod kontrolą, kruszywa p95/p99.
RUM + syntetyka: metryka użytkownika rzeczywistego i globalna siatka próbek (co 1-5 min) z kluczowych regionów/dostawców.
Deski rozdzielcze SLO: „światła drogowe” dla przepływów krytycznych, mapy opóźnień/dostępności, raporty o degradacji.
10) Tryby degradacji
Tylko do odczytu/pamięci podręcznej: podczas przycinania rekordu do backendów.
Stale-while-revalidate: rozdajemy przestarzałą, ale dobrą pamięć podręczną z aktualizacją tła.
Funkcja kill-switch: szybki przełącznik niestabilnych części.
Ograniczenie wentylatora: zakaz żądań „wentylatora”, głęboka synteza.
11) Inżynieria chaosu (plan)
Błędy sieciowe: 1-5% utrata pakietu, 100-300 ms jitter, czarna dziura poszczególnych ASN.
Awaria przekaźnika/skrętu: wyłączenie N% super węzłów, sprawdzenie proporcji połączeń bezpośrednich.
Degradacja DNS/KMS: sztuczne timeouts/błędy, walidacja pęcherzyków.
Burza retray: kontrola ochrony przed kaskadami (jitter, limity, deadup).
Zasady dnia gry: hipoteza → wtrysk → metryki → poprawa → powtórzenie.
12) Strategia i cele DR
RPO/RTO: dla tych konfiguracji i ACL - RPO ≤ 0 (migawki synchroniczne), RTO ≤ 15 min; dla telemetrii, RPO jest dozwolone ≤ 5 minut.
Katalogi i klucze: rezerwy zimne, okresowe awaryjne kopie zapasowe, „trening odzyskiwania”.
Katastrofy regionalne: przełączanie Anycast/Geo-DNS, ocieplanie pamięci podręcznej, replikacja kolejki/tematu.
13) Pseudo-konfiguracje
Harmonogram klienta i zasady wycofywania się (YAML)
yaml client:
rpc:
connect_timeout_ms: 400 request_timeout_ms: 1500 retries:
max_attempts: 2 backoff: exponential base_ms: 100 jitter: true hedging:
enabled: true threshold_ms: 800 # p95 idempotent_only: true
Wyłącznik i priorytety
yaml resilience:
circuit_breaker:
error_rate_threshold: 0. 02 rolling_window_sec: 60 open_duration_sec: 15 priorities:
payouts: high game_events: medium telemetry: low load_shedding:
target_p99_ms: 600 drop_low_priority: true
Kanały ACL i e2e
yaml security:
mtls: required e2e_topics: [payouts. status, limits. update]
acl:
operators: [12D3KooA..., 12D3KooB...]
providers: [12D3KooC..., 12D3KooD...]
14) Deski rozdzielcze: układy
Operacje (godzina/czas rzeczywisty): łączność%, RPC p99, błąd, przekaźnik-udział, DHT-latency, kolejka-lag, prędkość spalania SLO.
Zdrowie sieci (tydzień): relay-% i RTT trendy, listy „hałaśliwych” rówieśników, sukces traversal NAT, koszty ruchu.
Strategia (miesiąc): SEV, MTTA/MTTR, incydenty szkoleniowe DR, korelacja z metrykami biznesowymi.
15) Incydenty Playbook (oszustwo arkusza)
Skok p99 i błędy: włącz degradację (tylko do odczytu, tylko do pamięci podręcznej), zabezpieczenie, zwiększenie kwot na przepływy krytyczne, otwarte bilety na ścieżce „gorącej”.
Przekaźnik-share> próg: przełącznik basenów STUN/TURN, rozszerzenie super-węzłów, wzmocnienie dziurkowania, tymczasowe podniesienie pamięci podręcznej TTL.
Burza retray: zmniejszyć max-retries, zwiększyć jitter, włączyć globalną flagę backoff za pośrednictwem usługi config.
DDoS L7: włączyć zasady WAAP, podpis/blok prędkości, włączyć PoW/bramę opłat na tematy publiczne, off. punkty końcowe inne niż istotne.
Problemy z DNS/KMS: używać dostawców wtórnych, lokalnych buforów kluczy, rozdzielaczy przełączania.
Region niedostępny: ruch awaryjny (Anycast/Geo-DNS), ocieplenie innego regionu, przeliczanie limitów.
16) Lista kontrolna wdrażania
1. Rekord SLO/SLI i właścicieli (według strumieni/tematów).
2. Wdrożenie harmonogramów/przekwalifikowań/zabezpieczeń/idempotencji.
3. Konfiguracja wyłączników, grodzi i priorytetów.
4. Uruchom próbki syntetyczne i globalne deski rozdzielcze.
5. Wprowadź plan DR (RPO/RTO), regularne szkolenie odzyskiwania.
6. Przeprowadzenie kwartalnego dnia chaosu i przegląd parametrów.
7. Tryby degradacji dokumentów i wzorce komunikacji.
17) Słownik
Grodzisko - izolacja podsystemów zapobiegających kaskadom.
Wyłącznik - automatycznie wyłącza niestabilną zależność.
Zabezpieczenie - konkurencyjne wnioski po opóźnieniu progu.
Skrzynka odbiorcza/skrzynka odbiorcza - niezawodne wysyłanie/odbieranie zdarzeń z deduplikacją.
RPO/RTO - dopuszczalny czas utraty/odzyskiwania danych.
Wskaźnik spalania SLO - wskaźnik „spalania” budżetu błędu względem SLO.
Najważniejsze: stabilność połączeń sieciowych nie jest „jedną cechą”, lecz dyscypliną: nadmiarowość i izolacja awarii, kompetentne timeouts and retrays, ścisłe ustalanie priorytetów, obserwowalność i regularne testy. Podejście to zmienia nieuniknione awarie sieci w zdarzenia zarządzane, co ma minimalny wpływ na przepływy biznesowe ekosystemu.