Порт UDP меняется каждый раз при соединении 3G - PullRequest
3 голосов
/ 05 ноября 2010

Я использую сокеты UDP на основе Java для связи с модулем 3G;но порт (а иногда и IP-адрес) полученного пакета меняется каждый раз, что очень удивительно.Это указывает на то, что я не могу назначить фиксированный IP / порт модулю 3G и связываться с ним, а полагаюсь только на входящие пакеты для получения информации о назначении.Кто-нибудь может сказать мне, почему?В чем разница между TCP / UDP-соединением через 3G и обычным Интернетом? Заранее спасибо!

1 Ответ

9 голосов
/ 05 ноября 2010

Мобильные операторы часто используют межсетевые экраны NAT. Старайтесь поддерживать ваш UDP-сеанс, отправляя UDP-пакеты, которые ваше приложение может игнорировать. Отправка каждые 30 с может быть необходима для сохранения соответствия NAT.

Если брандмауэр NAT оператора мобильной связи не получает пакет от IP-адреса / порта назначения IP-порта источника UDP, равного четырем, он удаляет его и назначает новый IP-порт при получении следующего пакета из вашего приложения.

...