2014-10-17 5 views
0

P2P 게임 애플리케이션을 개발하고 싶습니다. NAT 통과 및 피어 검색을 구현하는 가장 빠르고 효율적인 방법은 무엇입니까? STUN 및 TURN 서버에 대해 읽었습니다. 그러나 사용 가능한 오픈 소스 부품은 무엇이며 어떻게 사용할 수 있습니까? 1. STUN 서버가 3G 네트워크에서 작동합니까? 2. UDP HOLE PUNCHING은 3G 네트워크에서 작동합니까?P2P 애플리케이션 개발

답변

0
  1. 비디오 게임을 사용하는 경우 모든 게임 데이터가 포함되어 있고 사용자가 클라이언트가 될 수있는 중앙 서버가 있어야합니다. Puzzles and Dragons와 같이 사용자 이름과 비밀번호가 있고 서버에 로그인하는 곳입니다.

  2. Google "Stun Client"및 "ICE protocol". 많은 오픈 소스 구현이 있습니다

  3. 모바일 네트워크는 대칭적이고 대규모 NAT를 가지고 있기 때문에 모바일 네트워크에서는 STUN이 실패합니다. NAT의 종류는 STUN 작동하지 않습니다 순회

왜 모바일 광대역 NAT를 우회 할 수없는 (아래 이유 참조)?

통계로 귀결됩니다. 연결을 설정하려면 패킷이있는 포트로 보내야하며 포트에 패킷을 보내야합니다. 잘못된 포트 번호로 보내거나 잘못된 포트 번호로 보내면 놓치게되고 연결이 설정되지 않습니다. 두 사람이 동시에 포트에 바인딩하고 다른 사람의 IP 주소로 지정된 패킷을 보내면 65535에 1이 있고 (65535는 IP 주소의 포트 번호 임) 해당 포트로 패킷을 보낼 수있는 기회가 있으며 포트에 패킷을 전송할 확률은 65535 명 중 1 명입니다. 따라서 연결을 설정할 수있는 기회는 (1/65535) * (1/65535) 또는 (1/65535^2)입니다.

모든 새로운 아웃 바운드 연결에 대해 라우터가 1024와 65535 사이의 간격으로 무작위로 새 포트 번호를 제공하기 때문에 후속 연결에 대한 포트 번호를 알 수 없습니다. 따라서 서버에 IP 및 포트 번호는, 그것은 당신에게 당신의 전화기 또는 그와 비슷한 것을 끄지 않는 한 당신의 IP 주소 (당신의 IP 주소는 자주 바뀌지 않는다)를 말할 수도 있지만, 포트 번호는 바뀔 것이다. 포트 번호를 추측하려고 시도하는 경우 ((65535-1024-1)/(65535-1024)) 또는 99.998 %의 변경이있을 수 있습니다. 가능한 포트 번호의 수는 다음과 같이 가정합니다. 65535-1024).

포트 번호가 예측 가능하지 않으면 (많은 4G 네트워크에서는 그렇지 않습니다), 기회가 없습니다.

가장 좋은 방법은 기절을 사용하고 악의적 인 라우터를 지원하지 않는 것입니다.