データチャネルを介してデータを送信するときに WebRTC が生成するオーバーヘッドの量を知りたいです。Websocket には、フレームごとに 2 ~ 14 バイトのオーバーヘッドがあることを知っています。WebRTC はより多くのオーバーヘッドを使用しますか? ウェブ上で有用な情報を見つけることができません。データチャネルは今のところ使用できないことは明らかです。Mediastreams で使用されるオーバーヘッドはどれくらいですか?
ありがとう
データチャネルを介してデータを送信するときに WebRTC が生成するオーバーヘッドの量を知りたいです。Websocket には、フレームごとに 2 ~ 14 バイトのオーバーヘッドがあることを知っています。WebRTC はより多くのオーバーヘッドを使用しますか? ウェブ上で有用な情報を見つけることができません。データチャネルは今のところ使用できないことは明らかです。Mediastreams で使用されるオーバーヘッドはどれくらいですか?
ありがとう
アプリケーション層では、DataChannel を SCTP を介した送受信と考えることができます。SCTP ヘッダーの PPID (Payload Protocol Identifier) フィールドで、Datachannel は、UTF-8 データを送信していることを示す値 0x51 と、バイナリ データの値 0x52 を設定します。
はい、あなたは正しいです。RTCDataChannel は、DTLS および UDP 上の SCTP を使用します。セキュリティには DTLS が使用されます。ただし、SCTP には、ほとんどの NAT/ファイアウォール設定を通過する際に問題があります。したがって、それを克服するために、SCTP は UDP を介してトンネリングされます。したがって、データを送信するための全体的なオーバーヘッドは、次のオーバーヘッドになります。
SCTP + DTLS + UDP + IP
そしてそれは:
28 bytes + 20-40 bytes + 8 bytes + 20 - 40 bytes
したがって、オーバーヘッドはおよそ120 バイトになります。WebRTC クライアントが送信できる SCTP パケットの最大サイズは 1280 バイトです。したがって、最大で、SCTP パケットごとに約 1160 バイトのデータを送信できます。
WebRTC は RTP を使用してメディアを送信します。RTP は UDP を介して実行されます。
通常の IP および UDP ヘッダーに加えて、2 つの追加ヘッダーがあります。
RTP は、より良いメディア品質を達成したいという基本的な理由により、ペイロードのオーバーヘッドをできるだけ少なくするように設計されています。つまり、メディア自体にできるだけ多くのビットを割り当てることを意味します。