2012-06-01 2 views
0

Кто-нибудь знает ответ на этот вопрос?Обход NAT при подключении мобильного телефона по http

Я читал Практические JXTA II (также в http://www.scribd.com/doc/47538921/Practical-JXTA-II). Я смущен заявлением на втором параграфе, касающимся установления связи с одноранговым узлом за NAT: «такие сверстники остаются недоступными ... до тех пор, пока ... или b) недоступный одноранговый узел автоматически установит соединение с удаленным партнером».

Это, по-видимому, означает, что NAT-перевод локальных адресов IPv4 на общедоступные адреса всегда одинаковый. Если маршрутизатор сопоставляет большой набор адресов с меньшим набором общедоступных адресов, результаты не будут отличаться? Как только HTTP-ответ будет получен, сеанс будет прекращен, а кто-то другой сможет использовать этот открытый IP-адрес, верно? После завершения сеанса HTTP маршрутизатор больше не будет записывать используемое сопоставление.

Я пытаюсь реализовать идею для веб-служб, где аспект приложения - P2P (мне нужно, чтобы оба узла действовали как клиент и сервер в разы). На центральном сервере может быть зарегистрированный DNS-адрес, но различные потенциально мобильные узлы могут находиться за NAT и т. Д. После прочтения этого я подумал, что я буду в порядке, если бы узлы за NAT установили соединение при запуске, сообщив центральному регистру DNS узел их общего адреса, но теперь я думаю, что адрес, скорее всего, изменится.

ответ

0

Это мое понимание того, что имел в виду Жером.

Скажите, что одноранговое соединение A является видимым WAN, а одноранговое устройство B работает с брандмауэром. Peer A может отправлять данные в Peer B, когда

  • Одноранговые и одноранговые узлы B устанавливают исходящие соединения с сервером ретрансляции. Одноранговое устройство A отправляет данные в ретрансляцию исходящего запроса о том, что реле пересылается в одноранговую сеть B на синхронный ответ (одноранговое соединение B с реле).

  • Peer B устанавливает соединение с равным A, а одноранговое устройство A отправляет данные обратно в одноранговую систему B на синхронный отклик. Механизм «обратного вызова».

WRT к JXTA, одноранговое публикует в сеть локальный адрес и необязательно адрес WAN (адрес пара хоста + порт). Для однорангового узла может быть только один адрес WAN, если вы хотите установить прямое подключение к этому одноранговому узлу с использованием NAT.

Наличие центрального сервера - плохая идея в сети P2P: вы создаете единую точку сбоя, что и делает сети P2P превосходными.

Однако, как вы намекаете, по-прежнему необходимо вести реестр «адресов/мест сверстников». Однако этот реестр должен быть распространен. Для этого потребуется книга, но здесь есть два подхода:

  • распределенной хэш-таблица (DHT) на узлах: каждый узел имеет и делитесь копией части реестра. JXTA имеет такой механизм, но проверяет Kademlia на Wikipedia за очень успешный алгоритм.

  • Глобальный подход к индексам (я считаю, похоже на Skype): ограниченное количество выделенных узлов/узлов, которые хранят реестр с использованием DHT или других алгоритмов репликации. Одноранговые узлы подключаются к GIN для адресов с использованием протоколов, поддерживающих межсетевой экран (HTTP), и GINs разговаривают друг с другом с помощью быстрых подключений сокета к соке (проверьте Hazelcast на быстрый способ реализации GIN).

+0

Спасибо. Я планирую коммерческое приложение, которое не является чистым P2P. По своему характеру я бы требовал центрального координатора. Поэтому, как вы полагаете, мне придется подумать об ошибке - возможно, использовать кластеризацию и т. Д. – user1069528

+0

Я полагаю, что после того, как IPV6 будет установлен в крупных коммерческих сетях, это будет прежде всего проблемой только в корпоративных сетях, где есть интерес к скрытию реальных IP-адресов. Мой основной интерес - мобильные устройства. – user1069528

Смежные вопросы