WebRTC (Web Real-Time Communication)

1. 브라우저 간 실시간 데이터 공유, WebRTC의 개념

개념도개념
플러그인 없이 브라우저를 통해 실시간 음성, 영상 및 데이터를 공유하기 위한 HTML5, JavaScript API 기반 개방형 실시간 통신 프레임워크
  • W3C에서 제시된 표준이며, 서로 다른 웹 브라우저(크롬-파이어폭스 등) 간 음성 통화, 영상 통화, P2P 파일 공유 등으로 활용

 

2. WebRTC 통신 구조, 연결 과정, 프로토콜 스택

(1) WebRTC 통신 구조

(2) WebRTC 연결 과정

(3) WebRTC 프로토콜 스택

 

3. WebRTC의 기술 구조 및 구성 요소

(1) WebRTC의 기술 구조

(2) WebRTC의 구성 요소

구분구성 요소역할
APIgetIUserMedia()– 장치의 카메라, 오디오 권한 요청 및 승인
RTCPeerConncion()– 영상통화 혹은 보이스톡을 설정하는 인터페이스
TCDataChannel()– 양방향 P2P 통신을 위한 데이터 채널을 오픈
프로토콜STUN– Session Traversal Utilities for NAT
– NAT / 방화벽 제한 여부 확인, 유형 전달
TURN– Traversal Using Relays around NAT
– 유저간 P2P 통신 실패 시 Peer간 연결
ICE– Interactive Connectivity Establishment
– Public IP 확인 및 대국 데이터 전송 Peer간 응답
SDP– Session Description Protocol
– Peer 간 세션 정보 저장 및 교환
SRTP– Secure Real-time Transport Protocol
– RTP에 보안기술 접목, 실시간 전송 데이터 암호화
코덱VP8– WebM 기반 동영상 압축 코덱
iSAC/ iLBC– VoIP 및 오디오 스트리밍 코덱
  • WebRTC는 2017년에 표준 스펙이 완성되었고, W3C에서 WebRTC-NV(Next Version)의 성능 향상 및 개발 고도화를 위해 QUIC 도입, SDP 제거 및 ORTC(Object-Real Time Communication)로 통합 진행

 
[참고] 

  • webrtc.github.io, “what-is-webrtc”
  • developer.mozilla.org, “WebRTC connectivity”
  • W3C(w3.org), “WebRTC Next Version Use Cases”

콘텐츠 사용 시 출처 표기 부탁 드리고, 댓글은 큰 힘이 됩니다^^