짧은 답변 : 당신이 할 수없는
긴 대답 : NAT 통과의 문제는 10 + 사람 년간의 노력이 필요하고, 내가 아는 다른 제품이 거기에 안정적 제외하고는이 작업을 수행하는 없습니다 skype (skype의 경우 skype를 신뢰할 수있는 P2P 연결 제공자로 사용하는 플러그인을 작성할 수 있습니다. 예를 들어 here 및 here 참조). 물론, 스카이프를 "나에게 P2P 연결을 제공하십시오"라고 서비스 제공 업체가 독점적 인 솔루션을 제공하므로 실제로는 솔루션이 아닙니다.
앞으로 몇 년 안에 IPv4에서 NAT 통과에 대해 더욱 엄격해질 다른 문제가 있습니다. 특히 ISP는 "캐리어 급 NAT"(CGN, this 참조)를 소개하기 시작합니다. 소개를 위해) 홈 NAT가 사용하는 것보다 포트 할당을위한 다른 유형의 알고리즘을 사용합니다 (더하기, 이것에 더하여, 처리 할 두 개의 계단식 NAT가 있습니다). 간략히 말하자면, 10 년 이상의 인적 자원을 손에 들고 다니지 않고 IPv4를 통한 P2P는 잊어 버리십시오. BTW, 심지어 스카이 프는 CGN (이미 모바일 연결을위한 NORM입니다. 즉, 공용 IPv4 주소로 핸드셋을 제공하는 이동 통신사가 거의 없다)에 굴복 할 것으로 예상됩니다. 그리고 이것은 (가장 가능성이 큰 IMHO) 이유입니다. MS가 스카 이프를 인수 한 후 수행 한 첫 번째 작업 중 하나는 수천 개의 릴레이를 배치하여 향후 IPv4에서 P2P 연결을 설정하는 것이 불가능할 수 있다는 것입니다 (this 참조). 이 기사의 끝 부분에있는 BS)
IPv6에 대해 더 자세히 배우기 시작하면됩니다. IPv6을 사용하면 더 이상 NAT가 없기 때문에 훨씬 쉬울 것입니다 (NPT라고하는 것이 있습니다. 하지만 그건 P2P 친화적 인 프로토콜입니다). IPv6 라우터의 문제는 (아직까지) 포트 제어 표준 프로토콜이 없다는 것입니다. 그러나 현재 제작중인 것이 있습니다 (this 참조).이/또는 다른 프로토콜이 표준화되어 CPE 제조사에서 채택 될 때 IPv6 라우터 탐색은 사소한 것입니다.
그래서 현재 가장 좋은 옵션은 앞으로 3 ~ 5 년 동안 P2P를 잊어 버리는 것입니다. 불행히도 ...
추신.2 더 많은 링크 : 1) This 내 프로젝트이며, 나를 믿어, 그것은 엉망이야; 2) CGNs in the wild.
http://stackoverflow.com/a/13334629/986760 도움이됩니다. – fayyazkl
http://stackoverflow.com/questions/8523330/programming-p2p-application/8524609#8524609 – selbie