Return to article

Сетевые протоколы транспортного уровня для реализации взаимодействия в многопользовательских играх

Таблица 1 - Характеристики транспортных протоколов в контексте игр

Протокол

Состояние соединения

Доставка и порядок

Задержка (RTT)

Встроенная безопасность

Применение в играх

TCP

С установлением (3-way handshake)

Надёжная, строго упорядоченная (байтовый поток)

Средняя — +1–2 RTT на установление; возможен head-of-line blocking

Поддерживает TLS (шифрование поверх TCP)

Пошаговые игры, чаты, транзакции. Гарантирует консистентность, но не подходит для частых обновлений позиций из-за лагов.

UDP

Без установления (датаграммы)

Ненадёжная, без гарантии порядка (можно реализовать свой порядок)

Минимальная — нет доп. RTT; потери не блокируют последующие пакеты

Нет (можно применять DTLS отдельно)

Экшен, шутеры, MOBA. Обеспечивает мгновенную отправку обновлений; требует реализовать логику повторов и защиты от потерь на уровне игры.

SCTP

С установлением; многопотоковый (multi-stream)

Настраиваемая надежность: может быть надежным или частично надежным; порядок обеспечивается в границах каждой потока

Низкая —средняя — установление как у TCP, но параллельные потоки устраняют HOL-блокировку

Нет встроенного шифрования (обычно используют DTLS поверх)

Перспективен для игр: позволяет несколько потоков (например, отдельный для позиций, отдельный для событий) внутри одного соединения. Однако поддержка ограничена, в реальных играх почти не используется напрямую.

QUIC

С установлением на основе UDP (1-RTT handshake, возможен 0-RTT при повторном подключении)

Надёжная, многопотоковая (несколько параллельных потоков с независимым порядком); + имеется необязательный ненадёжный режим (datagram)

Низкая — ускоренное установление (TLS 1.3 внутри); нет HOL-блокировки между потоками, но в пределах одного потока соблюдается порядок

Да, шифрование по умолчанию (TLS 1.3 встроен в протокол)

Новейший протокол, уже внедрён в веб (HTTP/3). Для игр интересен тем, что сочетает преимущества UDP (низкая задержка, мультиплексирование) и TCP (надежность). Может использоваться для шифрованных игровых соединений с быстрым стартом сессии. Пока мало используется в игровой индустрии, но рассматривается для облачных игр и новых проектов.