WebRTC开销

WebRTC开销,webrtc,Webrtc,我想知道,当通过数据通道发送数据时,WebRTC会产生多少开销。 我知道WebSocket每帧有2-14字节的开销。WebRTC是否会使用更多的开销?我在网上找不到一些有用的信息。我很清楚,目前无法使用数据通道。Mediastreams使用了多少开销 谢谢WebRTC使用RTP发送媒体。RTP通过UDP运行 除了常见的IP和UDP标头外,还有两个附加标头: RTP报头本身从12个字节开始,可以从那里开始增长,具体取决于使用的内容 有效负载标头-用于所使用特定编解码器的每个数据包的标头。这取决于编

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


谢谢

WebRTC使用RTP发送媒体。RTP通过UDP运行

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

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

  • RTP被设计为在其有效负载上拥有尽可能少的开销,这是因为您希望获得更好的媒体质量,这意味着为媒体本身贡献尽可能多的位。

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

    是的,你说得对。RTCDataChannel通过DTL和UDP使用SCTP。DTLS用于 安全但是,SCTP在穿越大多数NAT/防火墙设置时存在问题。 因此,为了克服这个问题,SCTP通过UDP进行隧道传输。所以总的开销 发送数据的开销为:

    SCTP+DTLS+UDP+IP

    也就是说:

    28字节+20-40字节+8字节+20-40字节

    因此,开销大约为120字节。SCTP的最大大小 WebRTC客户端可以发送的数据包为1280字节。所以在max,你可以发送 每个SCTP数据包大约有1160字节的数据。

    下面是2个peer.js实例(巴比伦前端)的屏幕截图,每16ms(~60秒)发送3个字节

    探查器显示每秒30000位:

    30000位/8位/字节/60位/秒=62.5字节,因此根据分析器,在我发送的3个字节之后,它是~59.5字节


    我不确定传入的数据是否不被计算在内,因为它只分析了一半,15k位/秒

    谢谢,数据通道呢?我了解到他们正在通过UDP通过DTLS使用SCTP,但在应用层上使用的协议是什么?请参阅jesup rtcweb数据协议草案-因此WebRTC通过UDP使用SRTP进行语音和视频传输(有时,如果UDP不起作用,则通过TCP)。但是数据通道并不是通过这种方式发送的。它通过DTL之上的SCTP发送。所以上面的答案有点偏离了问题的主题