2012-03-30 2 views
1

내가 처리해야 할 이상한 상황이 발생했습니다.포트 포워딩 (P2P 연결)

상황은 다음과 같습니다. 2 개의 라우터 (ISP의 고정 IP 사용)와 각 라우터 뒤에 2 개의 호스트 컴퓨터. IP 주소가 R1_IPAddr (라우터 1)이고 R1_IPAddr_LocalH1 (라우터 1 뒤에있는 호스트 1)이 첫 번째 그룹이고 R2_IPAddr (라우터 2)이고 R2_IPAddr_LocalH2 (라우터 2 뒤에 호스트 2)가 두 번째 그룹에 속한다고 가정 해 봅시다.

내 목표는 : R1_IPAddr_LocalH1을 R2_IPAddr_LocalH2에 연결하는 것입니다. 내가 한 일 : R2_IPAddr_LocalH2 및 R2_IPAddr 라우터의 내 서버 코드 (C#)가 포트 5000을 R2_IPAddr_LocalH2 (구성되었지만 다른 설정이 필요함)로 전달합니다. 서버 코드는 5000 포트 번호의 R2_IPAddr_LocalH2를 바인딩하고 R1_IPAddr_LocalH1 컴퓨터가 포트 5000의 R2_IPAddr 라우터에 연결을 시도 할 때까지 대기합니다.

참고 : 라우터에는 방화벽 옵션이 없으므로 가장 저렴한 시스템을 의미합니다. 로컬에 내 코드를 테스트했습니다. LAN, 잘 작동!

누군가가 공유 할 아이디어가 있다면? 미리 감사드립니다.

답변

0

이 기능을 아직 만들지는 않았지만 포트 포워딩 구성 및 관리에 사용되는 NATUPnP 1.0 유형 라이브러리를 부분적으로 설명하면서 Microsoft에서 만든 기능에 대해 잘 기록했습니다.

http://pietschsoft.com/post/2009/02/05/NET-Framework-Communicate-through-NAT-Router-via-UPnP.aspx

+0

답장을 보내 주셔서 감사합니다. 당신은 기술이 풍부합니다 :) 자, 내 질문이 다시 당신에게 간다 :) 나는 내 호스트 컴퓨터에 5000 포트를 전달하도록 라우터를 구성하지 않았다. 그러나 포트 포워딩을 로컬 컴퓨터에 등록하면 (게시 한 프로그램의 NAT 테이블에서) 정상적으로 작동합니다. 그래서이 시점부터 라우터는 포워딩하지 않지만 머신은 라우터에서 5000 포트를 포워드하도록 요청합니다. 아니면 내가 혼란 스럽습니까? –

+0

당신이 맞습니다, 프로그램은 기본적으로 귀하의 컴퓨터에 데이터 전송을 처리하기 위해 포트 xxxx에있는 모든 데이터를 지시 라우터를 알려줍니다. 그것이 비트 토 런트가 작동하는 방식입니다. – Rich

+0

굉장해! 내 포인트를 확인해 주셔서 감사합니다. 당신이 더 부자가 되었으면 좋겠다 :) –