Можно ли использовать P2P без переадресации портов?

Я делал простую программу передачи файлов через IRC, и когда я читал ее, я увидел, что IRC при совместном использовании файла создает прямое соединение между двумя пользователями независимо от сервера (DCC, Direct Client Connect). После некоторого поиска я нашел это: Direct Connect и Advanced Direct Connect.

Ни одна из этих страниц не отвечает на вопрос, который я не могу выбросить из головы: Возможна ли передача данных P2P без какого-либо пользователя, выполняющего специальную переадресацию портов? Промежуточный сервер, который помогает установить соединение ( как в примерах IRC) разрешено. Сама передача данных не должна зависеть от сервера.


person orlp    schedule 14.01.2011    source источник


Ответы (2)


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

Обратите внимание, что они не обязательно работают на всех NAT, но они работают на довольно многих из них.

person bdonlan    schedule 14.01.2011
comment
+1 за дырокол, именно то, что я имел в виду, не знал, что такое терминология. - person orlp; 14.01.2011

В практическом JXTA II (доступном для чтения на Scribd) есть глава, объясняющая методы выполнения обхода NAT. Пробивка отверстий - это подмножество методов для выполнения обхода NAT.

person Jérôme Verstrynge    schedule 10.02.2011