
시그널링
두 피어가 서로 연결하려면 먼저 정보를 교환해야 한다
SDP라는 프로토콜로 서로 지원하는 미디어 형식이나 네트워크 정보를 주고받는다
보통 웹소켓 같은 시그널링 서버를 통해 이 정보를 교환한다
NAT 통과하기
STUN 서버로 각자의 공인 IP 주소를 확인한다
직접 연결이 안 되면 TURN 서버가 중계한다
ICE라는 프로세스로 가장 좋은 연결 경로를 찾아낸다
연결 과정은 이렇게 된다
클라이언트 A가 Offer SDP를 보내고
클라이언트 B가 Answer SDP로 응답하고
서로 ICE Candidate 정보를 주고받아서
최종적으로 P2P 연결이 만들어진다
데이터 주고받기
영상/음성은 MediaStream API로 전송한다
다른 데이터는 RTCDataChannel로 직접 보낸다
UDP로 실시간 통신이 가능하다
이렇게 연결되면 서버 없이도 브라우저끼리 직접 데이터를 주고받을 수 있다!