[GPG 5 글 6.5] UDP 홀펀칭 후 미디어 스트림 데이터 전송 질문 드립니다.

GPG 시리즈 관련 질답, 논의 공간.

Moderator: 류광

비회원

UDP 홀펀칭 후 미디어 스트림 데이터 전송 질문 드립니다.

Post by 비회원 »

GPG를 통해 많은 정보와 힌트를 얻어 UDP 홀펀칭까지 성공하였습니다.
여기 계신 고수님들 덕분이네요..


제가 하고자 하는건 Client A,B 가 홀펀칭을 통해 화상 데이터를 주고 받고 싶은데요..


경우 1. A : NAT 사용, B : NAT 미사용

-> 릴레이 서버를 이용한 홀펀칭과 A,B 서로간의 쌍방향 미디어 데이터 전송 성공하였습니다.


경우 2. A : NAT 사용, B : NAT 사용

-> 여기서 문제가 발생하는데요..

A 와 B 가 같은 NAT 일 경우 private ip를 통해 정상적인 미디어 스트림 전송이 되나

서로 다른 NAT 일 경우A,B 클라이언트간 UDP 홀펀칭은 성공 하였으나
미디어 스트림 데이터는 주고 받지 못합니다. (송신은 정상인데요...)

A 와 B 의 public ip 와 port를 통해 홀펀칭이 성공 하였다면..
미디어 스트림 수신도 되야 하는게 정상인거 같은데요..

송신측에서는 홀펀칭 성공한 ip와 port로 스트림을 전송하고
수신단은 본인의 ip(public)와 port 로 수신을 하게 되어 있습니다.
헌데 수신단은 ip를 public, private 둘다 테스트 해봐도 수신하지 못합니다.

뭔가 미심쩍은 부분이나 오류가 발생할 만한 부분이 있으면 조언좀 해주시면 감사하겠습니다...


그리고 하나더 질문이 있는데...
홀펀칭을 시도할때 특정 공유기의 클라이언트가 먼저 상대방에게 홀펀칭을 시도하면
홀펀칭이 되지 않고 반대쪽에서 먼저 시도할때만 이루어 지는 경우가 있는데...
이건 공유기 문제 인가요?
이해하기 쉽게 설명 드리자면

클라이언트 A 와 B 가 릴레이 서버로 패킷을 보내 상대방의 정보를 획득 후
A -> B udp 패킷 전송 , B -> A udp 패킷 전송 -> 홀펀칭 성공
이런 순서로 진행하면 정상이나

B -> A udp 패킷 전송 , A -> B udp 패킷 전송 -> 홀펀칭 실패
이런 결과가 나타납니다.

고수님들의 고견 부탁 드립니다.