WebRTC
ブラウザ同士でリアルタイムコミュニケーションを実現するための仕組み.
WebRTCを使うと,
パケットロスを許容する(通常のUDPと同じ)
輻輳制御する(通常のUDPは輻輳制御しない)
パケットの順序列を保証する(通常のUDPはパケットの順序列を保証しない)
UDP通信ができる.
WebRTC (Web Real-Time Communication、ウェブリアルタイムコミュニケーション) は、ウェブアプリケーションやウェブサイトにて、仲介を必要とせずにブラウザー間で直接、任意のデータの交換や、キャプチャした音声/映像ストリームの送受信を可能にする技術です。 WebRTC に関する一連の標準規格は、ユーザーがプラグインやサードパーティ製ソフトウェアをインストールすることなく、ピアーツーピアーにて、データ共有や遠隔会議を実現することを可能にします。
WebRTC コトハジメ
ブラウザ同士でリアルタイムコミュニケーションを実現するための仕組み
WebRTC は P2P を利用したブラウザ同士を前提とした技術として作られている。 もちろん、WebRTC 自体はプロトコルの組み合わせでしかないため、 P2P を使わなかったり、ブラウザ以外を使ったりすることもできる。
WebRTC の通信プロトコルには TCP ではなく、 UDP が採用されている。 これは音声や映像のデータを扱う以外に、大量のデータを高速に送ることができるよう、再送を自前でコントロールできるようにするためである。
通信はデフォルトで暗号化されており、データグラム向けの TLS である DTLS が採用されている。
直接相手とやりとりをする P2P を実現する機能が含まれており、 NAT 越えを実現する仕組みが含まれる。 NAT 越えをするためのプロトコルには STUN/TURN そしてそれら2つの技術を組み合わせた ICE と呼ばれる仕組みを採用した。
実際に NAT 越えを実現するためには STUN サーバや TURN サーバが必要となる。 通常は TURN/STUN サーバとして 1 台で提供される。
WebRTCの構成図
何を、なぜ、どのように | 好奇心旺盛な人のためのWebRTC
https://scrapbox.io/files/683fd06d76dd37e0085bfca8.png https://webrtcforthecurious.com/ja/docs/01-what-why-and-how/