За NAT для подключения за NAT

Я столкнулся с интересной проблемой. В основном у меня есть 2 мобильных телефона, оба за NAT. Я хочу напрямую связываться между двумя устройствами, используя UDP.

Я знаю, что если я инициирую соединение с телефонов на сервер, тогда я могу отправить данные обратно по этому соединению на телефон (т.е. отправить их обратно с того же порта, который получил сообщение на тот же ip и порт, с которого оно было получено). Таким образом, я могу легко общаться между двумя устройствами, подключив оба телефона к серверу. Затем отправляем данные на сервер и перенаправляем обратно на телефоны. Это позволяет обойти любые проблемы с прохождением NAT, с которыми я могу столкнуться.

Однако я бы предпочел просто использовать сервер, чтобы указать 2 устройства друг на друга, а затем позволить им общаться напрямую. Как бы я это сделал? Возможно ли это без использования чего-то вроде uPnP?

Любая помощь будет очень приветствоваться!

Изменить : Я нашел этот документ http://www.brynosaurus.com/pub/net/p2pnat/ Похоже, мне нужен перевод шпильки, но это не так рассчитывать на широкую поддержку. Интересно, насколько хорошо мобильный интернет-провайдер поддерживает UPnP?

10
задан Goz 22 February 2011 в 12:11
поделиться