Я согласен с советом Селби в комментарии выше.
Короткий ответ заключается в том, что для создания одноранговых сетей вы должны иметь базовое представление обо всех технологиях, которые вы упомянули.
Должен ли я иметь дело с беспорядком брандмауэра?
Если одноранговые узлы находятся за NAT, вам нужно будет иметь дело с обходом NAT.
Нужно ли устанавливать переадресацию портов?
Тебе обязательно"? Нет. Но вы могли бы рассматривать это как решение вашей проблемы. Переадресация портов — это способ настроить брандмауэр таким образом, чтобы ваши одноранговые узлы эффективно взаимодействовали, как если бы они не находились за брандмауэром. Это означает, что вы можете писать свое программное обеспечение, как если бы брандмауэра не было. Пробивка отверстий NAT является альтернативой ручной переадресации портов. Вы можете думать об этом как об «автоматической переадресации портов».
Мне нужны JXTA или JGroups?
Прости. Я не знаю, что это такое.
UPNP что-то, что мне нужно изучить?
UPnP — одна из возможных стратегий обхода NAT:
http://en.wikipedia.org/wiki/Universal_Plug_and_Play#NAT_traversal
Обратите внимание, что UPnP известен как небезопасный и, вероятно, его не следует включать, см., например:
http://www.zdnet.com/how-to-fix-the-upnp-security-holes-7000010584/
У меня сложилось впечатление, что UPnP — не самый важный метод обхода NAT, но его можно было бы использовать для достижения большей совместимости (т. е. в качестве запасного варианта в случае сбоя STUN).
UDP Hole Punching - это то, на что я должен обратить внимание?
Вам понадобится стратегия обхода NAT. UDP Hole Punching (STUN и т. д.) является одной из таких стратегий, и, как говорит Селби, она является распространенной. Существуют также бессерверные методики (посмотрите на механизм, который использует SubEthaEdit).
Полный стек обхода NAT может потребовать использования нескольких подходов для максимальной совместимости с различными маршрутизаторами/брандмауэрами.
person
Ross Bencina
schedule
28.02.2014