TCP и UDP

TCP и UDP протоколы используются для передачи информации по интернету - по сути, это два основных протокола, которые используются по всему интернету: TCP был разработан в 1970 году, пока UDP был готов уже в 1980 году. Однако, важно отметить некоторые важные отличия TCP и UDP соединений:

  • TCP обладает встроенной надежностью, гарантирующей правильную передачу данных из пункта А в пункт В с более высокой задержкой.

  • UDP имеет меньшую задержку при передаче данных, но данный протокол ненадежен по своей природе и не дает никаких гарантий, что данные будут отправлены из пункта А в пункт В корректно.

Как уже говорилось ранее, TCP является самым популярным протоколом в Интернете. Протокол TCP используется для HTTP, SSH, FTP и многих других приложений. Основные функции TCP облегчают программистам работу с протоколом, поскольку программист сможет гарантировать, что данные будут отправлены из пункта А в пункт В корректно. Однако, хотя это звучит заманчиво, это может привести к увеличению задержки, когда соединения работают со сбоями или испытывают сильную задержку.

В игровой среде протокол TCP лучше подходит для игр с более медленным темпом, где задержка не важна, но игровые данные важны.

Ключевые особенности включают в себя

  • Надежность: Приложениям не нужно беспокоиться о пропущенных пакетах. Если пакет будет потерян, TCP отправит его повторно. Все данные либо передаются успешно, либо вы получаете сообщение об ошибке и соединение закрывается.

  • Упорядоченность: TCP гарантирует, что каждое сообщение поступит в том же порядке, в каком оно было отправлено. Если вы отправите "a", затем "b", вы получите "a", затем "b" и на другой стороне.

  • Ориентированность на подключение: В протоколе TCP есть концепция соединения. Соединение будет оставаться открытым до тех пор, пока клиент или сервер не решат закрыть его. И клиент, и сервер получают уведомление о завершении соединения.

  • Контроль загрузки: Если сервер перегружен, TCP ограничит передачу данных, чтобы избежать коллапса из-за перегрузки.

Транспорты, использующие TCP протокол

UDP используется для приложений реального времени, таких как быстро развивающиеся экшн-игры или передача голоса по IP (VoIP), где низкая задержка важнее надежности. Примерами приложений являются Skype, Discord, Zoom и многие другие.

В игровой среде мощь UDP может быть использована для обеспечения большего контроля над отправкой данных, что позволяет быстрее отправлять некритичные данные. Это, в свою очередь, делает UDP более удобным для быстро развивающихся игр, где важна задержка между сервером и клиентом, и если несколько пакетов потеряно, игра может восстановиться.

Ключевые особенности включают в себя

  • Маленькая задержка: UDP работает быстрее, потому что ему не нужно ждать подтверждения пакетов удаленной стороной. Вместо этого он может отправлять и продолжать отправлять новые пакеты данных один за другим. Он также известен как протокол "scattershot", поскольку он просто отправляет данные клиентам без каких-либо гарантий того, что они действительно получат эти данные.

  • Поддержка каналов: Каналы допускают различные типы доставки. В зависимости от реализации, один канал может использоваться для передачи критически важных данных, которые необходимо доставить по назначению, в то время как другой канал может использоваться для передачи данных "отправить и забыть" без какой-либо надежности.

  • Различные типы пакетов: В зависимости от реализации поверх протокола UDP некоторые транспортные средства предлагают различные методы отправки пакетов, такие как Надежный упорядоченный, надежный неупорядоченный, ненадежный и другие, в зависимости от реализации. Надежная передача UDP зависит от реализации, но обычно она моделируется по образцу системы надежности TCP.

Транспорты, использующие UDP протокол

Выбор за тобой

Зеркало не зависит от транспорта, его можно просто добавить в ваш игровой объект NetworkManager. Mirror поставляется вместе с KCP транспортом (все платформы кроме WebGL) и Websocket (WebGL) транспортом по умолчанию. Смотрите раздел Транспорты для получения большей информации о транспортах.

Выберите тот транспорт, который лучше всего подходит для вас и вашей игры. Мы рекомендуем вам создать профиль сети вашей игры и собрать реальные цифры, прежде чем принимать окончательное решение.

Last updated