我想知道,WebRTC在通过数据通道发送数据时会产生多少开销。 我知道Websockets每帧有2到14个字节的开销。 WebRTC是否使用更多的开销?我在网上找不到一些有用的信息。对我来说很清楚,Datachannels目前还不能使用。 Mediastreams使用了多少开销?
由于
答案 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标头之外,还有两个额外的标头:
由于您希望获得更好的媒体质量的基本原因,RTP被设计为在其有效载荷上具有尽可能少的开销,这意味着将尽可能多的位专用于媒体本身。
答案 2 :(得分:0)