WebRTC
IT 위키
- WebRTC; Web Real-Time Communication
- 웹 브라우저끼리 플러그인 없이 음성·영상·데이터를 실시간으로 주고받게 해 주는 개방 표준
구글이 2011년 공개했고 W3C 와 IETF 가 표준화했다. 서버를 거치지 않고 브라우저끼리 직접(P2P) 연결하는 것이 핵심이어서 지연이 짧다.
- getUserMedia — 카메라와 마이크에 접근해 미디어 스트림을 얻는다
- RTCPeerConnection — 상대와 연결을 맺고 미디어를 주고받는다. 코덱 협상, 암호화, 혼잡 제어를 담당한다
- RTCDataChannel — 미디어가 아닌 임의의 데이터를 주고받는다
- 시그널링 — 서로의 주소와 코덱 정보를 교환한다.
WebRTC 표준은 시그널링 방법을 정하지 않는다. 웹소켓 등으로 각자 구현해야 한다
- STUN — 공인 IP와 포트를 알아내 NAT 뒤에 있는 단말끼리 직접 연결을 시도한다
- TURN — 직접 연결이 안 되면 중계 서버를 거친다
- ICE — 가능한 후보 경로를 모아 실제로 통하는 경로를 고른다
- 미디어는 SRTP, 데이터 채널은 DTLS 로 암호화된다. 암호화를 끌 수 없다
- 카메라와 마이크 사용에는 사용자 동의가 필요하다
화상회의, 원격 지원, 클라우드 게임 스트리밍에 쓰인다.
