토픽 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, 화상회의, 스트리밍, 실시간 통신