1. 시그널링이란?
- 서로 다른 네트워크에 있는 2개의 디바이스들을 통신하기 위해서는, 각 디바이스들의 위치(IP) 발견 및 미디어 포맷 협의가 필요
- 이 프로세스를 시그널링 signaling 이라 부르고 각 디바이스들을 상호간에 동의된 서버(socket.io 혹은 websocket을 이용한 서버)에 연결시킴
2. 시그널링 서버
- 두 디바이스들 사이에 WebRTC 커넥션을 만들기 위해, 인터넷 네트워크에서 그 둘을 연결 시키는 작업을 해줄 시그널링 서버(signaling server) 가 필요함.
3. STUN & TURN
- 시그널링 서버를 통해 Peer To Peer로 연결하기 위해선 상대방의 Public IP주소를 알아야함
- 하지만 클라이언트가 방화벽이나 NAT뒤에 있는 경우가 대부분이기 때문에 Public IP주소를 알기 어려움
- 이 문제를 해결하기 위해서 WebRTC는 STUN 서버 사용을 권장함.
- 때로는 NAT에 따라 정보를 가져오기 힘들 수 있어 이 경우는 TURN 서버를 사용하여 해결하기도 함
# NAT란?
- NAT(Network Address Translation) 이란 Public IP 주소 하나로 여러 호스트가 인터넷을 사용하는 것(예를들면 공유기가있습니다.)