Глобальна мережева затримка: пояснення

Затримка вбиває сучасне програмне забезпечення. Мілісекунда затримки на мережевому рівні спричиняє секундні гальмування у вашому застосунку. Це псує досвід користування інструментами реального часу та стрімінгом ШІ.

Більшість інженерів сприймають інтернет як магічну хмару. Реальність — фізична та негнучка.

Обмеження швидкістю світла

Дані передаються через підводні оптоволоконні кабелі. Світло рухається в склі повільніше, ніж у вакуумі. У волокні світло поширюється зі швидкістю приблизно 204 500 км/с.

Шлях довжиною 9 000 км через Тихий океан має мінімальну затримку 88 мс. Ви не можете подолати це обмеження. Фізика встановлює нижню межу вашої продуктивності.

Anycast проти Unicast

У мережі Unicast кожен сервер має одну унікальну IP-адресу. Якщо користувач у Лондоні звертається до сервера в Нью-Йорку, пакети долають великі відстані через багато вузлів (hops). Це створює високу затримку.

Anycast змінює це. Ви призначаєте одну й ту саму IP-адресу кільком крайовим вузлам (edge locations).

  • Маршрутизатори знаходять найкоротший шлях за допомогою BGP.
  • Пакети спрямовуються до найближчого фізичного вузла.
  • З'єднання встановлюється поруч із користувачем. Це наближає вашу мережу до ваших клієнтів.

Небезпека втрати пакетів

Багато адміністраторів вважають, що 1% втрати пакетів — це нормально. Для високошвидкісних API це катастрофа.

Стандартні протоколи TCP, такі як Cubic, сприймають втрату пакетів як повне перевантаження мережі. Якщо пакет втрачається, система різко знижує швидкість на 30%. Повторювані втрати заважають з'єднанню коли-небудь досягти повної швидкості.

Якщо з'єднання переривається через таймаут, час очікування подвоюється щоразу. Незначна втрата може заморозити застосунок на кілька секунд.

Як це виправити

Сучасні команди використовують два основні інструменти, щоб подолати ці обмеження:

  • BBR: Цей алгоритм вимірює фактичну пропускну здатність замість того, щоб сліпо реагувати на кожен втрачений пакет. Він підтримує стабільну швидкість.
  • QUIC: Цей протокол працює поверх UDP. Він запобігає ситуації, коли один втрачений пакет зупиняє всі інші потоки даних. Це усуває зависання, які спостерігаються у традиційному TCP.

Розуміння цих фізичних правил та правил маршрутизації допоможе вам створювати швидші глобальні системи.

Джерело: https://dev.to/taohuawu/demystifying-global-network-latency-the-mechanics-of-anycast-routing-cross-border-fiber-optics-1bpa