WebRTC开销

时间:2012-08-13 12:43:21

标签: webrtc

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

由于

3 个答案:

答案 0 :(得分:4)

在应用程序层,您可以将DataChannel视为发送和 通过SCTP接收。在PPID(有效载荷协议标识符)字段中 SCTP标头,Datachannel设置值0x51,表示它正在发送UTF-8 数据和二进制数据的0x52。

是的,你是对的。 RTCDataChannel使用SCTP over DTLS和UDP。 DTLS用于 安全。但是,SCTP在遍历大多数NAT /防火墙设置时遇到问题。 因此,为了克服这个问题,SCTP通过UDP进行隧道传输。所以整体开销 发送数据将是开销:

SCTP + DTLS + UDP + IP

那就是:

28 bytes + 20-40 bytes + 8 bytes + 20 - 40 bytes

因此,关于 120字节的开销会很粗糙。 SCTP的最大大小 WebRTC客户端可以发送的数据包是1280字节。所以在最大,你可以发送 每个SCTP数据包大约有1160个字节的数据。

答案 1 :(得分:2)

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

除了通常的IP和UDP标头之外,还有两个额外的标头:

  1. RTP标头本身从12个字节开始,可以从那里开始增长,具体取决于使用的内容。
  2. 有效负载标头 - 用于正在使用的特定编解码器的每个数据包的标头。这个取决于编解码器本身。
  3. 由于您希望获得更好的媒体质量的基本原因,RTP被设计为在其有效载荷上具有尽可能少的开销,这意味着将尽可能多的位专用于媒体本身。

答案 2 :(得分:0)

enter image description here

这是2个peer.js实例(babylon.js前端)的屏幕截图,每16ms发送3个字节(每秒约60个)。

分析器显示30,000位/秒:

30,000位/每字节8位/每秒60位= 62.5字节,因此在3个字节之后,我根据探查器发送它的〜 59.5字节

我不确定是否有东西不计入传入,因为它只是分析了一半,15k位/秒