네트워크 연결 복원력
(섹션: 생태계 및 네트워크)
1) 목적과 지역
"네트워크 복원력" 은 채널, 노드, 지역 및 외부 공격이 실패 할 때 참가자 (운영자, 제공자, 스튜디오, 계열사, 노드/검증자, 지불 및 KYC 서비스) 간의 접근성 및 예측 가능한 상호 작용 품질을 유지하는 생태계의 능력입니다. 주요 목표는 캐스케이드 고장, 제어 된 저하 및 SLO를 대상으로하는 빠른 복구를 포함하는 MTTR을 최소화하는 것입니다.
2) 위협 모델
네트워크: 패킷 손실/지터, 링크 혼잡, BGP 플랩, 지역 간 휴식, 비대칭 라우팅.
전송/소켓: 하프 오픈 연결, 헤드 오브 라인 차단 (할 수 없음), 상태 소진 (night/conn-track).
응용 프로그램 레이어: 트래픽 스파이크, "긴 재생" 요청, n + 1 RPC, 폭풍 재생.
의존성: DNA, KMS/PKI, 대기열, TURN/릴레이, 타사 API의 저하.
보안: DDoS L3/L4/L7, 봇 플러드, 캐시 중독, Sybil/스팜 시도.
운영 체제: 잘못된 기능 플래그, "핫" 이 제한없이 해제되고 타임 아웃이 잘못되었습니다.
3) 지속 가능성 설계 원칙
1. 경로, 지역, 공급자, 중계 노드, DNA, 비밀 저장고 등 모든 계층에서 중복됩니다.
2. 결함 분리: 셀 기반 아키텍처, 회로 차단기, 벌크 헤드, 교차 셀 호출 제한.
3. 실패하고 타임 복싱: 외부 통화를위한 짧은 타임 아웃, 금지 "영원히 기다리십시오".
4. 이데올로기 및 안전한 퇴각: dempotence 키, 수신기에서의 데드 업.
5. 기본 관찰 가능성: 미량, 상관 ID, 합성 샘플.
6. 분해 모드: 읽기 전용, 캐시 전용, 드롭 기능, 중요한 스레드의 우선 순위.
7. 혼돈 공학: 실험에 의한 안정성 증명.
4) 토폴로지 및 중복
하이브리드 P2P + 슈퍼 피어 + DHT: "계약" 그룹 내의 로컬 메쉬, 리피터 및 캐시로서의 슈퍼 노드, 검색을위한 DHT.
Anycast/Geo-DNA/SD-WAN: 거의 입력, 제어 된 흐름, 건강 기반 라우팅.
멀티 릴레이 (TURN/HTTP3 터널): 독립 공급 업체, 필요한 경우에만 예산을 릴레이합니다.
액티브 액티브 영역: dempotent 읽기/이벤트와 동기화; 통화 거래의 경우-최종 일관성 + 엄격한 마무리.
5) 프로토콜, 타임 아웃 및 퇴각
전송: QUIC/HTTP3 (HoL 차단없이 멀티플렉싱, 경로 마이그레이션), TCP- 폴백으로.
타이밍 (랜드 마크):- RPC 클라이언트 타임 아웃: p99 _ latency × 1. 5 (그러나 지역간 2-3 초간).
- 시간 초과 연결: 로컬 200-500 ms, 지역 간 700-1200 ms.
- 백오프: 지터가있는 지수; "읽기" 호출에 대한 최대 재 시도 2-3.
- Hedged 요청: p95 지연 후 두 번째 집행 인을 보냅니다 (dempotent 작업 만).
- Idempotency: 헤더/필드 'x-dedempotency-key', dedup 로그 저장
- 대기열 및 아웃 박스: 이벤트 전달 보장, 네트워크 장애시 반복, 콘솔 등이 보장됩니다.
6) 로드 관리 및 "자체 보호"
요율 제한 및 할당량: RPC/주제에 누출 버킷/토큰 버킷.
적응 형로드 쉐딩-대기 시간이 증가하면 우선 순위가 낮은 요청을 재설정합니다.
우선 순위: 돈/지불> 게임 이벤트> 원격 측정.
역압: 동적 창, 동시성 제한, 동료의 "신용 한도".
연결 풀링: 따뜻한 수영장, 열린 소켓/NAT 상태에 대한 제한.
7) DDoS 및 채널 보안
L3/L4: 업스트림 스크러빙/애니 캐스트, 콘 트랙 차이도, SYN- 쿠키, UDP- 레이트.
L7: WAF/WAAP, 공개 주제에 대한 작업 증명/유료 게이트, 스팜에 대한 캡차/지갑 서약.
mTLS/TLS 1. 3 + E2E: "이동 중" 암호화, 수퍼 노드 키 고정, 인증서 회전.
Anti-Sybil: 역할에 영향을 미치는 신뢰할 수있는 피어 ID 레지스트리, 평판, KYB/KYC.
보안 불이행: "허용되지 않으면 금지", ACL은 주제별로 권한을 최소화합니다.
8) SLO, SLI 및 탄력성 지표
SLO (예):- 중요한 엔드 포인트의 가동 시간은 99 이상입니다. 95 %/30d
- p99 대기 시간은 지역적으로 약 600 ms입니다. 오류율 λ0. 2%.
- 성공률 P2P-RPC 5%; 펍/서브 E2E p95
- 릴레이 쉐어 DHT 분해 p95
- MTTR SEV-1 약 30 분; MTTA 소 5 분
- 연결%, 직접 연결 비율, 이웃 평균 수.
- 트래픽 클래스 별 RTT/Jitter/손실; RPC 성공/실패 분류법.
- 중개인/릴레이의 큐 깊이/지연; DHT 히트/미스 및 기록 연령.
- SLO (1 시간/6 시간/24 시간) 에 의한 연소 속도; 비즈니스 KPI에 미치는 영향 (GTV/MAU 손실).
9) 관찰 및 합성 샘플
추적: 엔드 투 엔드 트레이스 ID, OpenTelemetry를 통한 내보내기, 네트워크 홉 용 스팬 시맨틱.
로그/메트릭: 구조 로그, 제어중인 카디널리티, p95/p99 집계.
RUM + 합성: 주요 지역/공급자의 실제 사용자 메트릭 및 글로벌 샘플 그리드 (1-5 분마다).
SLO 대시 보드: 중요한 흐름, 지연/가용성 맵, 저하 보고서를위한 "신호등".
10) 분해 모드
읽기 전용/캐시 전용: 레코드를 백엔드로 클리핑 할 때.
부동산 업데이트: 배경 업데이트와 함께 오래되었지만 좋은 캐시를 제공합니다.
킬 스위치 기능: 불안정한 부품의 빠른 스위치.
팬 아웃 제한: "팬" 요청 금지, 심층 융합.
11) 카오스 엔지니어링 (계획)
네트워크 결함: 1-5% 패킷 손실, 100-300ms 지터, 개별 ASN의 블랙홀.
릴레이/TURN 고장: 슈퍼 노드의 N% 를 끄고 직접 연결 비율을 확인합니다.
DNA/KMS 저하: 인공 타임 아웃/오류, 폴백 검증.
폭풍 회복: 캐스케이드 (지터, 한계, 데드 업) 로부터 보호를 확인합니다.
게임 데이 규칙: 가설 → 주입 → 지표 → 개선 → 반복.
12) DR 전략 및 목표
RPO/RTO: 이러한 구성 및 ACL - RPO λ0 (동기 스냅 샷) 의 경우 RTO 원격 측정의 경우 RPO는 1 분에 5 분씩 허용됩니다.
카탈로그 및 키: 콜드 리저브, 정기적 인 백업 실패, "복구 교육".
지역 재난: 애니 캐스트/Geo-DNA 전환, 캐시 온난화, 대기열/주제 복제.
13) 의사 구성
클라이언트 시간 초과 및 퇴각 정책 (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
회로 차단기 및 우선 순위
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
ACL 및 e2e 채널
yaml security:
mtls: required e2e_topics: [payouts. status, limits. update]
acl:
operators: [12D3KooA..., 12D3KooB...]
providers: [12D3KooC..., 12D3KooD...]
14) 대시 보드: 레이아웃
Ops (시간별/실시간): 연결%, RPC p99, 오류율, 중계 공유, DHT 대기 시간, 대기열 지연, SLO 연소율.
네트워크 건강 (주): 릴레이% 및 RTT 트렌드, "시끄러운" 피어 목록, NAT 통과 성공, 트래픽 비용.
전략 (월): SEV, MTTA/MTTR, DR 교육 사건, 비즈니스 지표와의 상관 관계.
15) 플레이 북 사건 (치트 시트)
p99 점프 및 오류: 열화 (읽기 전용, 캐시 전용), 헤징, 중요한 흐름에 대한 할당량 증가, "핫" 경로에서 티켓 열기.
릴레이-공유> 임계 값: 20D/TURN 풀을 전환하고, 슈퍼 노드를 확장하고, 홀 펀치를 강화하고, TTL 캐시를 일시적으로 올립니다.
폭풍 회복: 최대 재시도 감소, 지터 증가, 설정 서비스를 통해 전역 백오프 플래그 켜기.
DDoS L7: WAAP 규칙 활성화, 서명/속도 차단, 공개 주제에 대한 PoW/fee-gate 가능 비 필수 엔드 포인트.
DNA/KMS 문제: 보조 제공 업체, 로컬 키 캐시, 스위치 리졸버 사용.
사용할 수없는 지역: 장애 예방 트래픽 (Anycast/Geo-DNA), 다른 지역의 온난화, 한계 재계산.
16) 구현 점검표
1. SLO/SLI 및 소유자를 기록하십시오 (스트림/주제별로).
2. 타임 아웃/배상/헤징/dedempotency를 구현하십시오.
3. 회로 차단기, 격벽 및 우선 순위 설정
4. 합성 샘플 및 글로벌 대시 보드를 실행하십시오.
5. 정기적 인 복구 교육 인 DR 계획 (RPO/RTO) 을 입력하십시오.
6. 분기 별 혼돈의 날과 매개 변수 수정을 수행하십시오.
7. 문서 저하 모드 및 통신 패턴.
17) 용어집
벌크 헤드-캐스케이드를 방지하기위한 서브 시스템 격리.
회로 차단기-불안정한 종속성을 자동으로 비활성화합니다.
헤징-임계 값 지연 후 경쟁 요청.
송신기/받은 편지함-중복 제거 된 이벤트의 안정적인 전송/수신.
RPO/RTO-허용 가능한 데이터 손실/복구 시간.
SLO 연소율-SLO에 대한 오류 예산을 "연소" 하는 속도.
결론: 네트워크 연결의 안정성은 "하나의 기능" 이 아니라 실패의 중복 및 격리, 유능한 타임 아웃 및 배상, 엄격한 우선 순위 지정, 관찰 가능성 및 정기적 인 테스트입니다. 이 접근 방식은 피할 수없는 네트워크 장애를 생태계 비즈니스 흐름에 미치는 영향을 최소화하면서