WCF P2P через Интернет

Привет, ребята, я пытаюсь научиться создавать приложение P2P в Windows Communication Foundation, и у меня есть простой тестовый клиент, созданный до сих пор, который может нормально общаться в интрасети. То есть... Я могу запускать приложение несколько раз на своем компьютере, и все они могут общаться друг с другом, и я также могу разместить его на другом компьютере в своей домашней сети, и все они могут общаться друг с другом.

Проблема заключается в том, когда я отправляю приложение другу для тестирования. Все работает нормально, только сообщения не приходят. Как будто никого нет.

Я провел всевозможные исследования обхода границы NAT, и я поражен информацией, и куда бы я ни посмотрел, люди, похоже, не решили проблему.

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

Может ли кто-нибудь дать какое-либо представление о том, как эффективно пробиться и заставить эти приложения общаться без необходимости выполнять всевозможные процедуры настройки и ручную настройку брандмауэра (которые все еще не работают)?


person Raziaar    schedule 03.09.2011    source источник
comment
это больше проблема сети, чем проблема WCF. У вас больше шансов получить ответ по ошибке сервера   -  person Shiraz Bhaiji    schedule 03.09.2011


Ответы (1)


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

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

person svick    schedule 03.09.2011
comment
Большое спасибо за Вашу помощь! Да, я думаю, не было фантастического суперрешения, как я думал. Я немного запутался в суперузлах... разве это не противоречит всей цели бессерверного P2P? Разве суперноды не похожи на набор мини-серверов, за обслуживание инфраструктуры которых нужно платить? Мысль, что P2P заключается в том, чтобы позволить распределить мощность хранилища и пропускную способность на всех, а не на какие-либо серверы. - person Raziaar; 05.09.2011
comment
Дело в том, что вы не платите за суперноды. Некоторые пользователи имеют общедоступные IP-адреса или могут правильно настроить переадресацию портов, чтобы они могли быть суперузлами. - person svick; 05.09.2011