WebRTC使用TCP还是UDP?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (172)

这听起来像一个非常基本的问题,但我需要确认:

  1. WebRTC是否使用TCP或UDP作为其对等传输?我怎么知道 ?
  2. 我读过有可靠性模式和DTLS协议,它们是如何影响的?
  3. 媒体和DataChannel的传输是否相同?
  4. 如何在TCP和UDP之间切换?
提问于
用户回答回答于
  1. 它也可以使用。默认情况下,优先考虑UDP,但取决于连接对等设备之间的防火墙,它可能只能与TCP连接。你可以使用Wireshark捕获数据包并验证是否正在使用TCP或UDP。在Chrome中,您还可以googActiveConnection通过转到查看所选候选人()的详细信息chrome://webrtc-internals
  2. “可靠性模式”可能是指DataChannel的可靠性模式,它可以配置为以可靠或不可靠的模式运行。DTLS指的是当前可选的,但即将成为交换加密密钥的默认方法(另一种不推荐使用的模式是SDES)。Firefox仅支持DTLS,因此对于浏览器互操作,您目前需要在Chrome中启用它。
  3. RTCPeerConnection(媒体)将使用TCP或UDP,而DataChannel使用SCTP。Firefox使用的SCTP实现在UDP之上实现:https://code.google.com/p/sctp-refimpl/。
  4. 在添加TCP或UDP CE候选项之前,可以过滤掉它们。一般来说,您不应该尝试强制使用交通工具,因为WebRTC只会“做正确的事情”。浏览器不会限制WebRTC使用的TCP连接的数量超过RTCPeerConnection或DataChannel的任何限制(即,如果可以有10个PeerConnection,它们都可以使用TCP而不会有任何问题)。addIceCandidate

扫码关注云+社区

领取腾讯云代金券