Порт UDP меняется каждый раз при подключении 3G

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


person Dingxin Xu    schedule 05.11.2010    source источник
comment
Какой 3g модуль? RTP/RTSP? Обратите внимание, что это определено в стандарте, то же самое в Интернете.   -  person TomTom    schedule 05.11.2010
comment
Вы пробовали опубликованный ответ?   -  person Yandry Pozo    schedule 22.09.2017


Ответы (1)


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

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

person bew    schedule 05.11.2010