Путь игрока до сервера: как работает маршрутизация и почему иногда бывает пинг 1000
Разбираемся, почему твой пинг до европейского сервера может идти через Америку, и как один сломанный маршрутизатор в Германии может испортить игру всей России
Ты запускаешь любимый онлайн-шутер, заходишь на "ближайший" европейский сервер и видишь пинг 800мс. В чате начинается срач: "у меня 15мс, купи нормальный интернет", "провайдер говно", "переезжай в цивилизацию". Но, на самом деле, причина может быть куда интереснее — твои пакеты могут лететь до Франкфурта через Лос-Анджелес, потому что какой-то админ в DTAG неправильно настроил BGP.
Как интернет находит дорогу: основы маршрутизации
Internet Protocol и концепция пакетов
Начнем с основ. Когда ты нажимаешь WASD в игре, твой компьютер формирует IP-пакет согласно RFC 791 (Internet Protocol). Этот пакет содержит:
- Source IP — твой IP-адрес
- Destination IP — IP сервера игры
- TTL (Time To Live) — счетчик "прыжков", который уменьшается на каждом маршрутизаторе
- Payload — собственно данные игры
Пакет не знает, как добраться до цели. Он просто отдается первому маршрутизатору (обычно это роутер провайдера), а дальше начинается магия.
Border Gateway Protocol: как интернет договаривается сам с собой
Сердце интернет-маршрутизации — протокол BGP (Border Gateway Protocol), описанный в RFC 4271. Представь интернет как огромный город, где каждая автономная система (AS) — это район со своими дорогами.
Автономная система — это сеть под единым административным управлением. У провайдера "Ростелеком" есть своя AS (AS12389), у Cloudflare— своя (AS13335), у хостинга игрового сервера — своя.
BGP работает как система навигации между районами. Каждая AS объявляет соседям: "До сетей 203.0.113.0/24 и 198.51.100.0/24 лучше всего идти через меня". Эти объявления называются анонсами (announcements).
AS12389 (Ростелеком) → AS3356 (Level3)
Маршрут до 203.0.113.0/24, AS-path: 12389
AS3356 → AS174 (Cogent)
Маршрут до 203.0.113.0/24, AS-path: 3356 12389
Почему "кратчайший путь" не всегда кратчайший
BGP выбирает маршрут не по географической близости, а по сложному алгоритму:
- Local preference — внутренние предпочтения AS
- AS-path length — количество автономных систем в пути
- Origin type — как маршрут был изучен
- Multi-Exit Discriminator (MED) — предпочтения соседней AS
Получается, что маршрут через 3 AS может быть предпочтительнее географически короткого через 5 AS.
Реальные примеры: когда маршрутизация идет не так
Case 1: Сломанный анонс и черные дыры(BGP-Hijack)
В 2008 году пакистанский провайдер Pakistan Telecom (AS17557) по ошибке анонсировал всему интернету, что YouTube находится у них. Согласно RFC 4271, более специфичный маршрут (/24 вместо /22) имеет приоритет.
Результат: половина мира не могла попасть на YouTube, потому что трафик уходил в "черную дыру" в Пакистане.
Case 2: Submarine cable break
Когда в 2008 году были повреждены подводные кабели в Средиземном море, трафик из Европы в Азию пошел через трансатлантические кабели и США. Пинг из Лондона в Мумбаи вырос с 150мс до 400мс.
Техническая сторона: что происходит с твоим пакетом
OSPF vs BGP: внутренняя и внешняя маршрутизация
Обычно внутри автономной системы работает протокол внутренней маршрутизации (IGP). Чаще всего это OSPF (Open Shortest Path First, RFC 2328), который строит граф сети и ищет кратчайший путь по метрикам типа задержки или пропускной способности. Но в некоторых сетях вместо него используют, например, IS-IS или даже более простые протоколы вроде RIP — всё зависит от архитектуры и политики провайдера.
BGP работает на границах AS и учитывает политические и коммерческие соображения. Твой пакет может пройти такой путь:
[Твой ПК] → OSPF внутри провайдера → BGP границы → BGP границы игрового хостинга → OSPF до сервера → [Игровой сервер]
Анатомия высокого пинга
Пинг 1000мс может складываться из:
- Propagation delay: физическое время распространения сигнала (≈1мс на 300км)
- Transmission delay: время передачи пакета в сеть
- Processing delay: время обработки на маршрутизаторах
- Queuing delay: время в очереди на отправку
Если твой пакет летит из Владивостока в Москву (9000 км), только физическая задержка в оптоволокне составит около 45 мс в одну сторону. А если маршрут идёт через спутниковую связь (геостационарная орбита 36 000 км), добавляется ещё примерно 240 мс в одну сторону или почти 500 мс туда-обратно. И это без учёта обработки и очередей — поэтому в реальности на спутнике легко поймать 600–700 мс пинга.
Quality of Service и игровой трафик
Современные сети используют механизмы QoS для приоритизации трафика. RFC 2475 описывает Differentiated Services — способ маркировки пакетов по важности.
DSCP маркировка игрового трафика:
- EF (Expedited Forwarding) — критически важные пакеты
- AF31 (Assured Forwarding) — важные пакеты с низким drop rate
- BE (Best Effort) — обычный трафик
Но реальность такова: большинство провайдеров игнорирует DSCP маркировку от клиентов или сбрасывает ее на границах AS.
Современные решения и их ограничения
Content Delivery Networks (CDN)
Игровые компании размещают сервера в CDN-сетях типа Cloudflare или Akamai. Эти сети имеют точки присутствия (PoP) в крупных интернет-узлах и соглашения о пиринге с большинством провайдеров.
Но CDN хорош для статического контента. Для реального времени игр нужны dedicated серверы в правильных местах.
Anycast и игровые серверы
Anycast (RFC 4786) позволяет анонсировать один IP-адрес из разных географических точек. BGP автоматически направит игрока на ближайший сервер.
Игрок из Казани → 203.0.113.1 (анонсируется из Москвы)
Игрок из Киева → 203.0.113.1 (анонсируется из Варшавы)
Проблема в том, что при изменении маршрутизации игрок может «перепрыгнуть» на другой сервер прямо в середине матча. Поэтому Anycast не самое популярное решение для игровых серверов — куда чаще его используют для DNS или CDN. Но иногда и в играх можно встретить такие схемы.
Заключение
Высокий пинг в играх — это редко проблема "плохого интернета". Чаще всего это следствие сложной экосистемы интернет-маршрутизации, где технические решения переплетаются с коммерческими интересами провайдеров.
Понимание принципов работы BGP, автономных систем и пиринга поможет тебе:
- Правильно диагностировать проблемы с подключением
- Выбирать интернет-провайдера осознанно
- Объяснять тиммейтам, что "лагает не у меня, а интернет устроен сложно"
В следующий раз, когда увидишь пинг 500мс до европейского сервера, запусти mtr и посмотри, через какие страны летают твои пакеты. Возможно, твой виртуальный солдат успевает увидеть половину мира, прежде чем выстрелить. Подписывайся на наш блог, здесь мы объясняем про сети и многое другое.
Ваши Cloud & Coffee и HostVDS.com