WebRTC使用TCP还是UDP?

WebRTC使用TCP还是UDP?,tcp,udp,webrtc,channel,transport,Tcp,Udp,Webrtc,Channel,Transport,这听起来是个很基本的问题,但我需要确认一下 WebRTC是否使用TCP或UDP作为其对等传输?我该怎么办 知道吗 我读到有可靠性模式和DTLS协议,怎么办 他们影响到什么 媒体和数据通道的传输方式是否相同 如何在TCP和UDP之间切换 我这样问是因为我知道浏览器对并行连接的数量有限制(我想他们谈论的是TCP),也许UDP连接是不受限制的 它可以使用任何一种。默认情况下,首选UDP,但根据连接的对等方之间的防火墙,它可能只能与TCP连接。您可以使用来捕获数据包并验证是否正在使用TCP或UDP。在C

这听起来是个很基本的问题,但我需要确认一下

  • WebRTC是否使用TCP或UDP作为其对等传输?我该怎么办 知道吗
  • 我读到有可靠性模式和DTLS协议,怎么办 他们影响到什么
  • 媒体和数据通道的传输方式是否相同
  • 如何在TCP和UDP之间切换
  • 我这样问是因为我知道浏览器对并行连接的数量有限制(我想他们谈论的是TCP),也许UDP连接是不受限制的

  • 它可以使用任何一种。默认情况下,首选UDP,但根据连接的对等方之间的防火墙,它可能只能与TCP连接。您可以使用来捕获数据包并验证是否正在使用TCP或UDP。在Chrome中,您还可以通过转到
    chrome://webrtc-internals

  • “可靠性模式”可能是指的可靠性模式,可配置为在可靠或不可靠模式下运行。DTLS指的是当前可选的,但用于交换加密密钥的模式(另一种不推荐使用的模式是SDE)。Firefox只支持DTL,所以对于浏览器互操作,您当前需要

  • RTPeerConnection(媒体)将使用TCP或UDP,而数据通道使用SCTP。Firefox使用的SCTP实现是在UDP:之上实现的

  • 在添加TCP或UDP ICE候选项之前,可以过滤掉它们。通常,您不应该试图强制使用传输,因为WebRTC只会“做正确的事情”。浏览器不会将WebRTC使用的TCP连接数限制在RTPEERCONNECTION或DataChannel上的任何限制之外(即,如果您可以有10个PEERCONNECTION,则每个PEERCONNECTION都可以毫无问题地使用TCP)


  • 回答得好!在Chrome31中,SCTP默认用于数据通道。这是一个很棒的答案。谢谢你的来源。@音频/视频不使用SCTP的原因是什么?对于未来的用户来说,使用“extras”(目前主要是在udp之上实现)的udp不是很有效吗:在1中<代码>chrome://webrtc-internals,您必须选择“Read Stats From:Legacy”(读取统计数据来源:Legacy)。我个人提出“WebRTC是否使用TCP或UDP”这一问题的原因是看它是否可靠。第3点说,媒体将使用TCP或UDP,但数据通道将使用SCTP,因此数据通道应该是可靠的,因为SCTP是可靠的(根据协议)。这与第2点相矛盾,所以如果有人能澄清,那就太好了!