WebRTC의 전반적인 아키텍처

WebRTC(Web Real-Time Communication)는 브라우저 또는 모바일 애플리케이션에서 플러그인 없이 실시간 통신을 가능하게 하는 기술이다. WebRTC의 기술적 구성 요소는 여러 계층으로 나뉘며, 각각이 실시간 통신을 원활하게 하기 위해 필요한 특정 기능을 수행한다.

네트워크 계층: ICE (Interactive Connectivity Establishment)

ICE는 WebRTC의 핵심적인 네트워크 계층 구성 요소로, 두 클라이언트 간의 네트워크 경로를 설정하는 데 사용된다. ICE는 여러 가지 후보 경로(candidate)들을 생성하고, 이를 기반으로 가장 최적의 경로를 선택하여 두 클라이언트 간의 연결을 설정한다.

시그널링 (Signaling) 프로토콜

WebRTC 자체는 시그널링 방법론을 정의하지 않지만, 시그널링은 두 클라이언트 간에 연결 설정, 세션 관리, 미디어 설정 등의 메타 데이터를 교환하는 중요한 단계이다. 시그널링은 SIP(Session Initiation Protocol), XMPP(Extensible Messaging and Presence Protocol), HTTP 등을 통해 이루어질 수 있다.

미디어 처리 계층

WebRTC는 음성, 영상 등의 실시간 미디어 처리를 위해 다양한 기술을 사용한다. 이 계층에서는 미디어 캡처, 인코딩, 전송, 디코딩, 렌더링 등의 과정을 다룬다.

데이터 채널 (Data Channel)

WebRTC의 데이터 채널은 P2P 연결을 통해 낮은 지연 시간으로 데이터(텍스트, 파일 등)를 주고받을 수 있게 한다. 이 채널은 SCTP(Stream Control Transmission Protocol) 위에서 동작하며, 신뢰성, 순서 보장, 다중 스트림 등의 기능을 제공한다.

보안 계층

WebRTC는 통신의 보안을 매우 중요시하며, 기본적으로 모든 미디어와 데이터 전송은 암호화된다.

연결 관리와 QoS

WebRTC는 다양한 네트워크 환경에서도 안정적인 통신을 유지하기 위해 QoS(Quality of Service) 및 연결 관리 기술을 사용한다.

WebRTC API와 개발 도구

WebRTC는 다양한 API를 통해 개발자들이 쉽게 실시간 통신 기능을 구현할 수 있게 한다. 주요 API는 다음과 같다.


관련 자료:

  1. WebRTC 1.0: Real-Time Communication Between Browsers, W3C Recommendation, 2021.
  2. Interactive Connectivity Establishment (ICE): A Protocol for NAT Traversal for Offer/Answer Protocols, IETF RFC 8445, 2018.
  3. SRTP: Secure Real-time Transport Protocol, IETF RFC 3711, 2004.
  4. DTLS-SRTP Key Transport for Media, IETF RFC 5764, 2010.
  5. Stream Control Transmission Protocol, IETF RFC 4960, 2007.