为好奇的人提供的 WebRTC|11 常见问题

本系列文章跳转目录如下:

  1. 是什么,为什么,如何使用
  2. 信令(交换信令消息后,WebRTC Agent才可以直接相互通信。)
  3. 连接( 为什么WebRTC需要专用的子系统进行连接,又是怎样连接的?)
  4. 安全性( WebRTC具有哪些安全性保障,又是如何做到的?)
  5. 搭建实时网络(网络在实时通信中的重要性以及如何处理网络中的各种问题)
  6. 媒体通信(WebRTC媒体通信的作用及其工作原理)
  7. 数据通信(WebRTC数据通信的作用及其工作原理)
  8. WebRTC应用场景(人们使用WebRTC构建什么以及他们是如何实现的)
  9. 调试(如何分析并定位相关问题,以及一些流行的调试工具)
  10. 历史(对WebRTC一系列协议作者的采访)
  11. 常见问题( 使用WebRTC时常见的问题及解答)
  12. 术语

常见问题

为什么WebRTC使用UDP?

NAT穿透需要UDP。没有NAT穿透,就无法建立P2P连接。UDP不像TCP那样"保证送达",因此WebRTC在用户级别提供这一特性。

要了解更多信息,请参考 此篇文章

数据通道最多可以有几个?

因为流标识符有16位,所以最多有65534个通道。你可以随时关闭再创建一个新的。

WebRTC是否有带宽限制?

数据通道和RTP都使用拥塞控制。这意味着WebRTC会主动测量你的带宽并尝试使用最佳数值。这是一种平衡措施,这样可以尽量发送数据,而不会使网络连接过载。

我可以发送二进制数据吗?

是的,你可以通过数据通道发送文本和二进制数据。

WebRTC延迟怎么样?

对于未作调整的媒体,估计不到500毫秒。如果你愿意为延迟调整或牺牲音质/画质,有开发人员将延迟降到了100ms以下。

数据通道支持"部分可靠性"选项,该选项可以减少由于有损连接上的数据重传而引起的延迟。如果配置正确的话,速度可以超过TCP TLS连接。

什么情况下我会需要无序交付的数据通道?

有时,新的信息会淘汰旧的信息(例如对象的位置信息);或者,每个消息都是彼此独立的,并且你需要避免行头阻塞延迟。

我可以通过数据通道发送音频或视频吗?

是的,你可以通过数据通道发送任何数据。如果是在浏览器中这样使用,你就需要自行对数据进行解码,然后将其传递给媒体播放器进行渲染;在使用媒体通道时,这部分是自动完成的。

原文地址:FAQ | WebRTC for the Curious

您好,想请教一下,我在Android端实现了webrtc datachannel 创建和收发消息,但是在发送大文件方面发现大于65664byte的数据会丢包,请问有什么方法可以扩大datachannel收发的缓存区吗,谢谢:pray: