warp to warp상태에 udp연결을 뚫을 수 없다는 결론 ㅠ
wrap이랑 warp에 차이가 무엇인지 아시나요.
udp hole punching이라는 기법이 있어요.
[1] udp hole punch and port restricted cone NAT - Stack Overflow
stun 서버에서 설정된 포트 넘버를 알아내서 연결을 뚫어주는 것이 핵심인데요.
클라우드 플레어 워프 처럼 restricted NAT으로 작동하는 경우에는 포트 넘버가 랜덤으로 부여되어요.
방화벽이나 NAT환경에서 포트 고갈을 예방하려고 address:port-address:port 키 한 쌍으로 해시 테이블을 만들 수도 있어요.
source(local) | destination | source(warp) | destination | |
|---|---|---|---|---|
1.2.3.4:1234 | 1.1.1.1:19302 | -> | 5.6.7.8:23523 | 1.1.1.1:19302 |
1.2.3.4:1234 | 1.1.1.1:19303 | -> | 5.6.7.8:21324 | 1.1.1.1:19303 |
클라우드 플레어에서 turn 서버도 제공하는 듯 싶은데요. warp to warp 상태에서 순수한 데이터 연동이 필요한 경우에 제한적으로 사용 할 수 있을 것 같아요.
[2] Overview · Cloudflare Calls docs
망했네요 ..
M:N p2p는 비트 토렌트에서 핵심적으로 사용하는 방식인데요. 온라인 게임에 이런 통신 방식을 사용하면 트래픽이 과도해져서 모바일 게임 운영에 나쁜 영향을 주어요. 5g 무선 통신이 일일 트래픽을 많이 부여해주지만 이런데도 빠르게 소진될 것이어서 망해요.
결과적으로 토르 프로젝트처럼 별도에 릴레이 서버를 두는 구현이 확실한 것 같은데요. 작은 데이터를 전송하려고 한다면 파이어베이스를 사용하는 것도 좋겠어요. 무료로 제공되는 플랫폼으로 하면 유지비가 덜 들어가요.
