NAT - Network Address Translation
Private IP를 Public IP로 1 대 1 대응시켜 변환하는 장치
IP 패킷이 있는 출발지 및 목적지의 IP 주소와
TCP/UDP 포트 숫자 등을 바꿔 재기록하면서 네트워크 트래픽을
주고 받게 하는 기술
장점 - IP 주소 절약, 보안
WebRTC는 peer to peer 방식으로 서로 데이터를 주고 받음
보내고 받는 Peer의 Public IP를 알고 있어야 함
Public IP는 요청을 보낼 때마다
private IP > public IP 로 NAT가 변환
동일한 Public IP로 통신할 수 없음
현재는 NAT와 방화벽을 필수 포함
ICE - Interactive Connectivity Establishment
두 단말이 서로 통신할 수 있는 최적의 경로를 찾을 수 있도록 도와주는 프레임워크
두 단말이 방화벽이 존재하면 통과하고
단말의 Public IP가 없다면 유일한 주소값을 할당
라우터가 Peer 간의 직접 연결을 허용하지 않을 때는 데이터를 릴레이
ICE를 사용하면 NAT가 통신을 위해 필요한 모든 포트를 열고
두 단말 모두 다 연결할 수 있는 IP주소, 포트에 대한 완전한 정보를 갖게 된다
STUN - Session Traversal Utilities for NAT
STUN 서버 - 해당 Peer의 Public IP 주소를 보내는 역할
STUN 방식 : 단말이 자신의 공인 IP 주소와 포트를 확인하는 과정에 대한 프로토콜
클라이언트가 STUN 서버에 요청을 보내면
공인 IP 주소와 함께 통신에 필요한 정보를 보내줌
클라이언트는 이 정보를 이용해 다른 기기와 통신
하지만 이러한 경우에도 통신이 되지 않으면 TURN 서버로 넘김
TURN - Traversal Using Relay NAT
STUN의 확장
NAT 환경에서 릴레이해서 통신