Learning
토픽 118 / 147·네트워크 응용 및 고급 프로토콜

WebRTC (Web Real-Time Communication)

WebRTC (Web Real-Time Communication)

브라우저와 모바일 앱 간 플러그인 없이 P2P(Peer-to-Peer) 실시간 오디오, 비디오, 데이터 통신을 가능하게 하는 오픈 표준 기술로, Google이 개발하고 W3C/IETF가 표준화하였으며 화상회의, 스트리밍에 활용

목적: 브라우저 P2P 통신, 플러그인 없는 실시간 미디어, 낮은 지연, 화상회의, 화면 공유

특징: P2P 통신, 플러그인 불필요, NAT/방화벽 우회, 암호화 기본, 낮은 지연

구성요소

  • MediaStream: 오디오/비디오 캡처, getUserMedia(), 카메라/마이크 접근
  • RTCPeerConnection: P2P 연결, 미디어/데이터 전송, ICE/STUN/TURN
  • RTCDataChannel: P2P 데이터 전송, 텍스트/파일, 게임
  • Signaling Server: 연결 설정, SDP/ICE Candidate 교환, WebSocket/HTTP

연결 과정

프로토콜 스택

  • 시그널링: SDP, ICE(STUN/TURN)
  • 미디어 전송: SRTP(Secure RTP), DTLS 암호화
  • 데이터 전송: SCTP over DTLS, 순서/신뢰성 선택

코덱: 오디오(Opus, G.711), 비디오(VP8, VP9, H.264, AV1)

장점: 플러그인 불필요, P2P(서버 부하 감소), 낮은 지연, 암호화 기본, 표준화

단점: NAT/방화벽 복잡, Signaling 서버 필요, TURN 비용, 브라우저 호환성, 디버깅 어려움

적용사례: 화상회의(Zoom, Google Meet), 스트리밍(Twitch), 원격 데스크톱, P2P 파일 공유, IoT

기술요소: SDP, ICE, STUN, TURN, SRTP, DTLS, SCTP, MediaStream, RTCPeerConnection

비교: WebRTC(P2P/실시간) vs HLS/DASH(스트리밍/지연) vs WebSocket(양방향/서버중심)

연관: P2P, NAT, STUN, TURN, SDP, 화상회의, 스트리밍, 실시간 통신