2014-01-05 5 views
4

나는 P2P 프로그램을 만들고 클라이언트의 NAT를 통과하는 데 도움이 필요합니다. 여기 stackoverflow에 대한 많은 질문을 읽었지만, NAT를 통과하는 데있어 모든 메소드의 단점과 이점을 얻지 못했습니다. 몇 개의 라우터가 어떤 방법을 지원합니까? 대기업에서 일반적으로 사용하는 방법은 무엇입니까? (BitTorrent, TeamViewer, ...) 내가 열거 한 세 가지 방법의 단점/이점은 무엇입니까?UDP/TCP 구멍 펀칭 vs UPnP vs STUN vs?

답변

7

UPnP는 라우터에서 소프트웨어 지원이 필요합니다. 라우터가 가지고있는 경우에도 보안 문제로 인해 라우터가 꺼지는 경우가 있습니다.

STUN은 간단한 공개 서버를 사용하여 NAT 및 실제 IP 주소의 존재를 감지합니다. 이는 유용한 작업을 수행하는 다른 상위 프로토콜에 유용합니다.

구멍 펀치는 두 대의 컴퓨터를 연결하는 간단한 기술입니다. NAT 뒤에있는 두 대의 컴퓨터간에 통신하려면 3 대의 공용 컴퓨터가 필요합니다. 사용자 정의 프로토콜을 사용하여 자체 서버를 실행할 수 있습니다. 우리는 STUN 및 기존 STUN 서버를 사용할 수 있습니다. (설정에는 몇 개의 패킷 만 필요하고 나머지는 피어 투 피어입니다.)

물론 일부 NAT 방화벽은 위와 호환되지 않으므로 사용자 지정 프로토콜이 필요할 수 있습니다. 비트 토 런트 (Bittorrent)는 이것을 수행합니다. 방화벽과 기타 프로토콜 뒤에있는 클라이언트에 따라 다른 기술을 사용합니다.