2014-01-05 6 views
4

Я пытаюсь сделать программу P2P и нуждаюсь в помощи при прохождении через NAT клиентов. Я прочитал много вопросов здесь о stackoverflow, но я никогда не получал недостатков и преимуществ всех Методов, чтобы пройти через NAT. Сколько маршрутизаторов поддерживает какие методы? Какие методы обычно используются крупными компаниями? (BitTorrent, TeamViewer, ...) Каковы недостатки/преимущества трех перечисленных мной методов, а какие еще существуют?UDP/TCP отверстие перфорация против UPnP против STUN vs?

ответ

7

UPnP требует поддержки программного обеспечения в вашем маршрутизаторе. Даже когда маршрутизаторы имеют его, иногда он отключается из-за проблем с безопасностью.

STUN использует простой общедоступный сервер для обнаружения присутствия NAT и реальных IP-адресов. Это полезно для других протоколов более высокого уровня, которые делают полезную работу.

Отверстие для отверстий - это простой способ подключения двух компьютеров. Это требует, чтобы 3-й общедоступный компьютер связывался между двумя компьютерами за NAT. Вы можете запустить собственный сервер с помощью специального протокола, и вы можете использовать STUN и существующие STUN-серверы. (Для установки требуется только несколько пакетов, остальные - одноранговые).

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