Позволяет ли технология.NET Peer to Peer взаимодействовать через маршрутизатор?

Недавно у меня был случай, когда я пытался установить p2p-соединение с использованием технологии Microsoft PNRP между двумя приложениями. Одно приложение было на Lan, а другое - на том же Lan (другой компьютер, но тот же поставщик услуг), но за маршрутизатором WiFi. С тех пор я зарегистрировал двух пиров во всех облаках (глобальные и локальные ссылки) в соответствующей системе, но когда я попытался разрешить другую, я не смог найти соответствующих пиров. Насколько я знаю, эти одноранговые узлы должны быть обнаружены, так как я также зарегистрировал их в глобальном облаке (Интернет). Как я могу достичь вышеупомянутого сценария?

1 ответ

Решение

Использование PNRP таким образом зависит от нескольких технологий, наиболее важной из которых является туннелирование Teredo. Вы, вероятно, столкнулись с ограничением туннелирования Teredo и тем, как оно работает за брандмауэрами.

Подводя итог, Teredo направляет трафик IPv6 через пакеты UDP, отправленные на определенный порт с IPv4. Из-за этого для определенных соединений поддерживаются только определенные виды NAT. Вы, вероятно, обнаружите, что каждая из ваших систем может разрешать себя и другие службы, но не друг друга в брандмауэре, если они находятся в разных сетях.

Самый простой способ решить эту проблему - подключить компьютеры к совершенно разным сетям или подключить их к одной и той же сети (так как PNRP также поддерживает обнаружение локальной связи).

Более подробную информацию можно найти в Википедии.

Другие вопросы по тегам