NAT 환경에서 TCP / UDP
글쓴이: raphael.jeon / 작성시간: 목, 2012/07/19 - 11:06오후
일반적으로 C/S를 만든다고 가정을 할 때, NAT 되는 환경에서 TCP 통신은 가능할 것으로 예상이 되는데.
세션 유지로 인해서 오버헤드가 무척 클것 같다는 생각이 듭니다. 물론 UDP도 가능하다고 생각을 하는뎅...
대신에 연결이 NAT 쪽에서 ===> 공인되는 쪽에 대한 서버로 구성하는 경우에 가능할 것 같다는 생각이 듭니다.
역으로 Sever ==> Nat 되는 쪽으로 TCP, UDP 구성이 가능한가요?
또 궁금한 점이 있습니다. NAT == NAT는 연결이 될 수 있나요? 이 부분은 불가능하다고 봅니다.
쩝.. 어떻게 접근을 해야할지 모르겠네요.
감사합니다.
Forums:
gilgil.net
IP 통신을 할 때에는 five tuple(TCP or UDP, src_ip, dst_ip, src_port, dst_port) 정보가 존재하게 되죠.
안쪽(NAT내부)에서 바깥쪽(NAT외부)으로 packet이 나갈 때 five tuple 정보를 기억하고 있다가
외부에서 내부로 packet이 들어 와야 할 때 이 five tuple 정보를 이용해서 어떤 Host(내부에 있는)로 보내 져야 할 지를 결정하게 됩니다.
그 결정 방식에 따라 NAT(PAT)의 종류는 크게 4가지로 나누어 집니다.
Full Cone
IP Restrict
Port Restrict
Symmetric
NAT <---> NAT 간의 direct 통신은 양자가 모두 Symmetric인 경우를 제외하고는 UDP 통신이 가능한 것이 일반적입니다.
게임(총 쏘는)에서 상대방의 움직임 정보를 주고 받을 때, UDP 통신을 사용하는 것이 일반적이고, 이러한 기법을 Hole Punching 혹은 STUN이라고 합니다.
자세한 사항은 구글링... ^^
www.gilgil.net
댓글 달기