GH GambleHub

Оптимізація затримок мережі

Коротке резюме

Латентність = сума маленьких затримок по ланцюжку. Поліпшення досягається системно: скоротіть «стрибки» (Anycast/CDN), зменшіть RTT (маршрути/QoS), знизьте «болт» (DNS/TLS/TCP), тримайте черги короткими (AQM/ECN), мінімізуйте байти (стиснення/кеш) і постійно вимірюйте p95/p99. Будь-яка оптимізація без вимірювань - ворожіння.

Бюджет латентності: з чого складається затримка

Спростимо розкладання TTFB (Time To First Byte):

TTFB ≈ t_DNS + t_connect + t_TLS + t_queue + t_routing + t_app + t_first_byte
Де:
  • t_DNS - резол імені.
  • t_connect - встановлення L4 (TCP/QUIC).
  • t_TLS - рукостискання TLS.
  • t_queue/t_routing - черги/переходи (буферизація, перевантаження, NAT).
  • t_app - серверна обробка до першого байта.

Мета - задати SLO по кожному доданку і регулярно звіряти.

SLO/метрики (орієнтири)

DNS p95: локально ≤ 20-30 мс, глобально ≤ 80-120 мс.
TCP connect p95: ≤ 80-120 мс регіонально, ≤ 200-250 мс міжрегіонально.
TLS handshake p95: ≤ 80–120 мс (с OCSP stapling, resumption).
TTFB p95 (статик): ≤ 120-150 мс регіонально.
TTFB p95 (API): ≤ 200-300 мс.
Jitter p95 (UDP/RT): ≤ 15-30 мс; втрати ≤ 0. 1–0. 3%.

Алерти: зростання p95/p99, сплеск'SYN retries', падіння'resumption', зростання'ECN CE'або'packet loss'.

DNS: швидкий старт

Anycast-авторитети + близькі рекурсори (DoH/DoT при необхідності).
Короткий TTL (60-300 с) для динамічних імен; negative-TTL під контролем.
DNS-кеш поруч з додатком;'prefetch'гарячих записів.
Виключити зайві переїзди CNAME → CNAME → A/AAAA.

TLS/HTTP: менше рукостискань, швидше сесії

Увімкніть TLS 1. 3, OCSP stapling, короткі ланцюжки CA.
Session resumption (tickets/IDs) и ALPN (`h2`, `h3`).
HTTP/2: мультиплексування, менше конектів → нижче p95.
HTTP/3 (QUIC): 0-RTT (тільки для ідемпотентних), краща стійкість до втрати/джиттеру.
Preconnect/Prewarm (edge/клієнт): заздалегідь відкривайте з'єднання для «гарячих» доменів.

Транспорт: TCP vs QUIC і стек ядра

TCP

Сучасний Congestion Control: BBR v2 (або CUBIC, якщо консервативно).
RACK/TLP для швидкого ретрансміту; увімкніть SACK.
ECN + AQM (CoDel/FQ_CoDel): зменшує буферблоат і джиттер.
TCP Fast Open - уникати для state-changing запитів; користь спірна.

QUIC (HTTP/3)

Менше «головного блокування» в порівнянні з TCP + TLS + HTTP/2.
Стійкий до реордерингу/втрат; оновлюйте реалізацію (наприклад, Envoy/HAProxy з H3).
Слідкуйте за UDP/443 і MTU/фрагментацією.

MTU/PMTUD і фрагментація

Єдиний MTU end-to-end; для тунелів (IPsec/WireGuard/VXLAN) враховуйте оверхед.
Включити PMTUD і ICMP «Fragmentation needed».
Для QUIC - стежити за max datagram і не різати ICMP на периметрі.

Маршрутизація і фізика шляху

Anycast для публічних IP API/edge-фронтів.
Geo/Latency routing (GSLB) + health-checks.
ECMP і BFD в фабриці (Leaf-Spine), щоб виключати погані стежки за <1 с.
Узгоджуйте аплинки/бенкети (IX) в регіонах концентрації користувачів.

Черги та QoS: тримайте буфери короткими

Класи: real-time (RT/VoIP), interactive (API), bulk (бэкапы/ETL).
LLQ/WRR, пріоритизація API/платежів над bulk.
ECN (CE-маркування) + AQM (CoDel/FQ_CoDel) на граничних чергах.
Різати/переносити бекапи і великі синки з «пікових хвилин».

NAT, проксі і middleboxes

Мінімізуйте каскад NAT/фільтрів.
Stateful middlebox критичний до асиметрії шляхів: баланс по 5-tuple, pin-ning потоків.
Підтримка keepalive і розумні idle-таймаути для довгоживучих конектів (gRPC/WebSocket).

Кеш і розміщення даних

CDN/origin-shield/tiered-cache - менше походів в origin.
Версіоновані асети (immutable, 1 рік).
Короткий TTL +'stale-while-revalidate'для напів-динаміки.
Geo-placement: гарячі дані ближче до користувача (read-replica/edge-KV), а запис - в «джерело правди».

Оптимізація на рівні програми

Скоротіть число запитів (bundling/HTTP/2 push вже не в моді - краще prefetch/preconnect).
Зменшіть payload: стиснення (Brotli), веб-формати зображень, бінарні протоколи (gRPC).
Ідемпотентність запитів → безпечні ретраї і агресивні таймаути.
Async/streaming (SSE/gRPC streaming) для зниження TTFB.

Спостережуваність: Що міряти

Клієнтська телеметрія (RUM): DNS/connect/TLS/TTFB, Geo/ASN, пристрій.
Мережева: RTT, втрати, джиттер, ECN CE/ECT (0/1), черги інтерфейсів, помилки/переповнення.
Транспорт: retransmits, out-of-order, cwnd/BBR state, handshake stats, resumption.
L7: p50/p95/p99, error rate, payload size, гістограми за маршрутами/РоР.
Сегментуйте метрики по регіону/ASN/оператору зв'язку - саме там ховаються «гарячі точки».

Міні-плейбуки

1) Швидкий аудит p95

1. Побудуйте бюджет латентності (DNS/TLS/connect/TTFB) з RUM.
2. Зіставте з мережевими метриками (RTT/loss/ECN) по PoP/ASN.
3. Якщо «connect» і «TLS» домінують → увімкніть preconnect/resumption/HTTP/3.
4. Якщо «TTFB» високий → кеш/edge/репліка і оптимізація програми.

2) Сплеск втрат/джиттера

1. Перевірити uplink/інтерфейси (дропи/черги).
2. Включити/підкрутити AQM (FQ_CoDel), знизити bulk-клас.
3. Перевірити BFD/ECMP-шлях, виключити флапаючий лінк.
4. Для клієнтів - тимчасово підняти ретраї і знизити час між ними.

3) Регіональна деградація

1. Перемкнути GSLB на сусідній PoP; withdraw Anycast/32 на деградному.
2. Знизити TTL, активувати'stale-while-revalidate'.
3. Відправити статус в статус-сторінку, запустити RCA.

4) Міграція на HTTP/3

1. Відкрити UDP/443, включити H3/ALPN'h3'.
2. Проводити A/B: порівняти p95 TTFB і error rate.
3. Спостерігати'udp loss '/активні клієнти/осциляції cwnd.

Конфіг-шпаргалки

Nginx (HTTP/2, OCSP, TLS 1. 3, Brotli)

nginx server {
listen 443 ssl http2 reuseport;
ssl_protocols TLSv1. 2 TLSv1. 3;
ssl_stapling on; ssl_stapling_verify on;
add_header Strict-Transport-Security "max-age=31536000" always;

Compression brotli on; brotli_comp_level 5; gzip on;

Cache static location/static/{
add_header Cache-Control "public, max-age=31536000, immutable" always;
try_files $uri =404;
}

Proxy to API location/api/{
proxy_set_header Connection "";
proxy_http_version 1. 1;
proxy_read_timeout 5s;
proxy_connect_timeout 1s;
proxy_pass https://backend;
}
}

sysctl (Linux мережа: ECN/SACK/RACK підсистема ядра - приблизні параметри)

bash
SACK/RACK/TLP are typically included in modern cores; specify sysctl -w net for your distribution. ipv4. tcp_sack=1 sysctl -w net. ipv4. tcp_ecn=1 sysctl -w net. ipv4. tcp_fastopen=0 # carefully with TFO sysctl -w net. core. default_qdisc=fq_codel sysctl -w net. ipv4. tcp_congestion_control=bbr

QoS (Cisco-стиль, концепт)


class-map match-any REALTIME match dscp ef class-map match-any INTERACTIVE match dscp af31 af21 class-map match-any BULK match dscp cs1 policy-map WAN-QOS class REALTIME priority percent 10 class INTERACTIVE bandwidth percent 50 class BULK bandwidth percent 20 random-detect ecn

Процеси та операційні практики

Capacity planning: запас за пропускною здатністю ≥ 30% в пікові години.
Change-control: канарні зміни маршрутів/РоР/шлюзів.
Регулярний PMTUD-тест і контроль ICMP.
Документація шляхів: де NAT/проксі/AQM/QoS, які MTU, хто власник.
Угода таймаутів між L7 і мережевими ретраями.

Специфіка для iGaming/фінтех

Час подій (матчі/турніри): прогрів CDN/PoP, preconnect до критичних доменів, тимчасове збільшення resumption-пулу, «сірі» маршрути для ботів.
Платіжні кроки: виділений QoS-клас, Anycast-ендпойнти, короткі ланцюжки TLS і строгі версії/шифри; ретраї тільки ідемпотентні.
Регіональні обмеження/PSP: geo-routing + білі списки ASN/IP; фіксовані egress-пули.
Мобільні мережі: перевага ChaCha20-Poly1305 (при слабкому AES-NI у клієнтів), агресивна компресія і HTTP/3.

Чек-лист впровадження

  • Бюджет латентності (DNS/TLS/connect/TTFB) і SLO по кожній ланці.
  • Anycast/Geo-routing для публічних API/edge, резервні PoP.
  • TLS 1. 3, OCSP stapling, resumption ≥ 70%, HTTP/2/3 включені.
  • BBR + FQ_CoDel, ECN, SACK; PMTUD працює, ICMP не блокується.
  • Єдиний MTU по ланцюжку, облік оверхеда тунелів.
  • QoS: класи real-time/interactive/bulk, AQM на перевантажувальних інтерфейсах.
  • CDN/Tiered-cache/Origin-shield; версіоновані асети і SWR.
  • RUM + мережеві метрики по Geo/ASN; алерти на p95/p99/ECN/втрати.
  • Плейбуки: деградація регіону, сплеск втрат, переклад трафіку.

Типові помилки

Блокування ICMP/PMTUD → фрагментація/перевідправлення і високий p95.
«Товсті» буфери без AQM → буферблоат і джиттер.
Довгі ланцюжки CA і відсутність OCSP stapling → дорогий TLS.
NAT-каскади та асиметрія для stateful-фільтрів → ретраї/таймаути.
Надлишковий'Vary '/неверсіо асети → низький hit-ratio CDN.
Немає сегментації QoS → API конкурує з бекапами в піку.

Підсумок

Оптимізація затримок - це комбінація мережевої інженерії, правильного транспорту та економії «болтів» на DNS/TLS/кеші. Впроваджуйте Anycast/Geo-routing, TLS 1. 3 + resumption, HTTP/3, BBR + FQ_CoDel/ECN, узгодьте MTU, задайте QoS і SLO, міряйте p95/p99 і автоматизуйте плейбуки. Тоді користувачі отримають швидкий відгук навіть у «гарячі» хвилини, а платформа - передбачуваність і запас міцності.

Contact

Зв’яжіться з нами

Звертайтеся з будь-яких питань або за підтримкою.Ми завжди готові допомогти!

Telegram
@Gamble_GC
Розпочати інтеграцію

Email — обов’язковий. Telegram або WhatsApp — за бажанням.

Ваше ім’я необов’язково
Email необов’язково
Тема необов’язково
Повідомлення необов’язково
Telegram необов’язково
@
Якщо ви вкажете Telegram — ми відповімо й там, додатково до Email.
WhatsApp необов’язково
Формат: +код країни та номер (наприклад, +380XXXXXXXXX).

Натискаючи кнопку, ви погоджуєтесь на обробку даних.