WebRTC开销

cha*_*hne 5 webrtc

我想知道,WebRTC在通过数据通道发送数据时会产生多少开销.我知道Websockets每帧的开销为2-14个字节.WebRTC是否使用更多的开销?我在网上找不到一些有用的信息.对我来说很清楚,Datachannels目前还不能使用.Mediastreams使用了多少开销?

谢谢

小智 5

在应用程序层,您可以将DataChannel视为通过SCTP发送和接收。在SCTP标头的PPID(有效负载协议标识符)字段中,数据通道将值0x51设置为指示它正在发送UTF-8数据,将值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字节的数据。


Tsa*_*evi 2

WebRTC 使用 RTP 发送其媒体。RTP 运行在 UDP 之上。

除了常见的 IP 和 UDP 标头之外,还有两个附加标头:

  1. RTP 标头本身从 12 个字节开始,并可以从那里开始增长,具体取决于所使用的内容。
  2. 有效负载标头 - 用于所使用的特定编解码器的每个数据包的标头。这取决于编解码器本身。

RTP 被设计为在其有效负载上具有尽可能少的开销,因为基本原因是您希望获得更好的媒体质量,这意味着将尽可能多的比特专用于媒体本身。