2009-12-07 4 views
4

net.p2p 프로토콜을 사용하면 피어가 인터넷을 통해 (NAT, 방화벽 등을 통해) 연결할 수 있습니다.wcf net.p2p : // -이 작업은 인터넷상에서 가능합니까?

PNRP가이 문제를 해결했다는 사실을 이해합니다. (ipv6을 사용하면 좋겠지 만) 맞춤형 해결 프로그램을 사용할 때도이 문제를 해결할 수 있습니까? 즉, 피어가 클라우드에 등록 할 때 net.p2p : // mypcName/endPoint를 다시 가져 오거나 resolver/PNRP가 방화벽 뒤에서 PC를 찾을 수있는 값을 반환합니까?

Im은 .NET의 P2P 솔루션에 대한 좋은 정보를 찾는 데 어려움을 겪고 있습니다. 그리고 그 대부분은 매우 오래되었습니다.이 기술이 실용적인 기술인지 아니면 .NET에서 곧 사라질지 알 수 있습니까?

-edit- 내 리졸버는 공개적으로 액세스 할 수 있으며 동료는 NAT/방화벽 뒤에 있습니다. 당신은 방화벽 뒤의 P2P 서버를 호스트 할 것처럼 사전에

덕분에

답변

6

그것은 모든 MSDN

를 사용하여 마이크로 소프트의 피어 이름 IP6/IP4 액세스 문제를 해결하기 위해 Teredo를 터널링을 사용 확인 프로토콜에 문서화. 또는 자신 만의 CustomPeerResolverService (간단하게 작성)

1

:-)이 여기에주의를 실천하는 것이 바람직 할 것이다. 특히 NAT가 발생하는 곳에서는 ISP가 제공 한대로 외부 IP 주소에서 포트 포워딩을 수행하고 서버가있는 내부 네트워크의 IP 주소로 포워딩해야합니다.

.NET Remoting에서 가장 큰 한계는 특히 NAT를 사용하는 경우 방화벽을 통과 할 수 없다는 것입니다. 방화벽이 내부에 있고 방화벽 뒤에 있고 패킷이 인터넷에 도달하지 않는 경우 원격으로 문제가 없습니다.

방화벽에서 구멍을 뚫어 패킷을 넣고 빼내고 포트를 통해 내부 네트워크의 IP 주소로 전달해야 할 수도 있습니다. 이렇게하면 인터넷을 통해 앞뒤로 움직이는 패킷을 스누핑하거나 네트워크에 침입하려는 악의적 인 해커가 공격을받을 가능성이 더 커지는 단점이 발생할 수 있습니다.

호프가 도움이 되었으면 안녕하세요, 탐.

+0

Skype (또는 다른 채팅 프로그램)은 어떻게 작동합니까? 즉 : 우리는 중앙 서버에 로그인한다는 것을 알고 있지만 다른 피어에게 파일을 보내면 직접 피어 연결이 만들어집니다. 내 사용자 지정 해결 프로그램은 공개적으로 액세스 할 수 있지만 피어는 NAT의 뒤에 있습니다 – schmoopy

+0

@Schmoopy : Skype는 포트 80에서 표준 http 프로토콜을 사용하여이 문제를 해결하므로 방화벽에는 아무런 문제가 없습니다. Skype v4.1.1075에서 확인하려면 도구> 옵션, 고급, 연결을 클릭하십시오. 그런 다음이 탭 페이지를 보면 '포트 80/443을 들어오는 연결의 대안으로 사용하십시오.'가 표시됩니다. – t0mm13b

+0

tommieb75, 고마워요. - .NET에서이 작업을 수행 할 수있는 방법이 있습니까? – schmoopy

1

Skype는 파일을 보내거나 전화를 걸 때 UPnP를 사용하여 자신을 포팅합니다. 사용할 수없는 경우 클라이언트 서버 모드를 사용합니다. Nat Traversal 및 UPnP에 대해 배우십시오 (필자도 필요함).