반응형
팀뷰어와 같은 원격제어 프로그램은 서버로 동작하지만 공유기의 포트포워딩 없이도 동작한다. 팀뷰어에서 사용하는 공유기와 같은 방화벽을 통과하는 기법은 UDP Hole Punching이다.
2개의 프로그램이 있을 때 한쪽에서 다른 쪽으로 패킷을 보내면 공유기에서 차단된다. 원격제어 프로그램에서는 중앙 서버를 두고 각각의 클라이언트에서 서버에 접속하여 각 클라이언트 IP 주소를 중계하여 서로 통신한다. 이 때 데이터 패킷은 클라이언트 사이에서만 전달된다. 데이터 패킷까지 서버에서 중계하면 서버의 부하가 너무 걸리기 때문에 그렇게 사용하지 않는다.
클라이던트 A에서 B로 UDP 통신으로 UDP Hole Punching 하는 구체적인 과정은 다음과 같다.
1. A와 B에서 서버에 접속하여 UDP 패킷을 보내고. A와 B에서는 상대편의 IP 주소와 포트 번호를 서버로부터 받는다.
2. 서버에서 받은 주소와 포트로 A에서 B로 UDP 패킷을 보내고, B에서 A로 UDP 패킷을 보낸다.
3. A에서 나가는 패킷에 의해 공유기의 NAT이 만들어지고 B로 부터 들어오는 패킷은 이 NAT에 의해 패킷이 차단되지 않고 전달된다. B에서도 동일하게 동작한다. 패킷이 도착하는 타이밍에 따라 패킷이 차단 될 수도 있다.
팀뷰어는 HTTP가 사용하는 UDP 80번 포트를 사용한다.
반응형
'컴퓨터공학 > 네트워크' 카테고리의 다른 글
공유기에서 IP을 동적으로 할당하는 원리 (0) | 2018.03.08 |
---|---|
HTTP 프로토콜 (0) | 2018.02.28 |
Ping 통신 (992) | 2017.12.15 |
많이 사용하는 TCP/UDP 포트 리스트 (1350) | 2017.12.14 |
텍스트 프로토콜 (Text Protocol) 이란? (0) | 2017.12.07 |
댓글