안녕하세요.


홀펀칭을 구현하다가 막힌 부분이 발생되어서 염치 불구하고 질문 드립니다.


현재 구조는 이렇습니다.


랑데뷰서버 또는 STUN 서버역할을 하는 가칭 [SERVER]가 있습니다.


그리고 각기 아이피 대역이 다른 NAT 밑에 있는 [A] Client와 [B] Client 가있습니다.


[SERVER]를 통하여 [A]를 홀펀칭하고 [B]가 [A]와 P2P 통신을 하도록 하려 합니다.


시나리오

1. [SERVER]와 [A]의 통신

[SERVER]는 공인 아이피에 존재하며 NAT 밑에 있지 않습니다. 

따라서 NAT 밑에있는 [A]가 UDP 패킷을 [SERVER]에 보냅니다.

이때 [SERVER]는 [A]의 NAT 포트를 획득합니다.


2. [SERVER]와 [B]의 통신

[B]는 [SERVER]에게 [A]의 아이피 주소와 NAT 포트를 획득합니다.


3. [B] -> [A] 통신

-- 현재 봉착된 문제

[A]의 아이피 주소와 NAT 포트를 알고있음에도 UDP 패킷을 보내도 [A]가 수신을 하지 못하고있습니다.



혹시 제가 UDP 홀펀칭을 잘못 이해하고있는지, 혹은 뭔가 핵심을 빠뜨린게 있는지 조언을 주시면 감사하겠습니다.


오랜만에 프로그래밍 갤러리에 나타나 불현듯 질문을 올려 불쾌감을 드린 다른 갤러분들껜 죄송한 말씀드립니다.


아무쪼록 모든 분들이 칼퇴신의 가호를 받아 칼퇴 할 수 있도록 기원 드리겠습니다.