WebRTC 【Web Real-Time Communication】
概要
WebRTC(Web Real-Time Communication)とは、Webブラウザ間でリアルタイム通信を行うための仕組み。端末上で動作するブラウザ間を直に接続し、音声や映像によるビデオ通話・会議を行なったり、任意のデータを交換することができる。利用者の端末間をP2P(Peer-to-Peer)方式で直接結び、カメラやマイクから取得した映像や音声を一定の形式で圧縮して、RTP/RTCPなどのプロトコル(通信規約)でリアルタイムに送受信することができる。
メディアデータ以外にもSCTP(Stream Control Transmission Protocol)というプロトコルで任意の形式のデータを送受信する伝送路(データチャネル)を開くことができ、ホワイトボードやファイルの共有などに用いられる。
こうした機能は従来Webブラウザのみでは実現できず、プラグインやネイティブアプリケーションの導入が必要だったが、WebRTCを利用することでWebページ内に記述されるスクリプトなどの標準仕様のみで実現できる。
データの伝送には信頼性よりも高速性と実時間性を重視するUDP(User Datagram Protocol)を用い、安全のためUDP用のSSL/TLSであるDTLS(Datagram Transport Layer Security)で通信内容を暗号化する。
データ本体の送受信はブラウザ間でP2Pで行うが、互いにプライベートネットワーク内にある端末同士がインターネットを介して接続する場合などには、伝送路の確立のために外部のサーバの助けが必要となる。これにはSTUNやTURNなどのいわゆるNAT越え技術が用いられる。
また、通信開始時には接続の可否の通知や、動画や音声の圧縮方式(コーデック)や品質の指定・選択といった調整作業が行われる。サーバを介してこのような接続や調整を行う過程を「シグナリング」(singaling)という。
(2020.4.23更新)