UDP-клиент - открытые порты? - PullRequest
2 голосов
/ 09 июля 2011

Так что сейчас я использую только TCP для своих клиентов - они подключаются к серверу, открывают сокет и получают пакеты. Но что если я решу использовать в своей игре также UDP? Придется ли им открывать порты? Например, если они используют обычный WiFi, могу ли я отправить UDP клиенту без проблем с открытием портов?

Спасибо.

1 Ответ

6 голосов
/ 09 июля 2011

TCP и UDP - только два примера реализации транспортного уровня.Оба они используют термин «порт», чтобы определить, какое приложение должно получать входящий пакет, но они могут быть по-разному маршрутизированы / отфильтрованы маршрутизаторами / коммутаторами / брандмауэрами / и т. Д.

Так что ответ - нет.У вас будут похожие проблемы с открытием портов.За исключением того, что «TCP-порт xxx должен быть открыт», вы должны требовать «UDP-порт xxx должен быть открыт».

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

Итак, нормальный сценарий такой:

  1. Пакет создан с домашнего компьютера с IP 5.5.5.5.Допустим, у него есть UDP-порт источника 55555, IP-адрес источника 5.5.5.5 и порт назначения 8888.
  2. Пакет достигает домашнего маршрутизатора.Поскольку он идет изнутри - маршрутизатор позволяет ему проходить и создает правило, скажем, в течение 2 минут, чтобы разрешить пакеты, предназначенные для 5.5.5.5 на UDP-порт 55555.
  3. Пакет достигает корпоративного маршрутизатора до вашего сервера.У него есть правило для передачи пакетов по порту 8888, поэтому пакет может отправляться.
  4. Ваш сервер получает пакет и обрабатывает его.В ответ он создает пакет для IP 5.5.5.5 и UDP-порта 55555.
  5. Корпоративный маршрутизатор разрешает отправку ответа.
  6. Домашний маршрутизатор разрешает отправку ответа согласно временному правилу.
  7. Ваш компьютер получает ответ.

Корпоративные компьютеры и маршрутизаторы часто более ограничительны для обеспечения безопасности, поэтому вторая точка может ограничить пакет, если ваш пользователь (IP 5.5.5.5) находится в корпоративной сети.

Это очень упрощенно, так как в действительности почти всегда есть такие вещи, как NAT, а правила более сложные ... Но в целом это дает представление о том, как это работает внутри.

...