这听起来像一个非常基本的问题,但我需要确认
- WebRTC是否使用TCP或UDP作为其对等传输?我怎么知道 ?
- 我读到有可靠性模式和DTLS协议,它们如何影响?
- Media和DataChannel的传输方式是否相同?
- 如何在TCP和UDP之间切换?
我之所以这样问,是因为我知道浏览器对并行连接的数量有限制(我认为他们谈论的是TCP),也许UDP连接不受限制。
Answers:
它可以使用。默认情况下,优先级为UDP,但取决于连接它的对等方之间的防火墙可能只能与TCP连接。您可以使用Wireshark捕获数据包并验证是否正在使用TCP或UDP。在Chrome浏览器中,您还可以googActiveConnection
转到来查看有关所选候选者()的详细信息chrome://webrtc-internals
。
“可靠性模式”可能是指DataChannel的可靠性模式,可以将其配置为以可靠或不可靠模式运行。DTLS是当前可选的,但很快将成为交换加密密钥的默认方法(另一种不建议使用的模式是SDES)。Firefox仅支持DTLS,因此对于浏览器互操作,您当前需要在Chrome中启用它。
RTCPeerConnection(媒体)将使用TCP或UDP,而DataChannel使用SCTP。Firefox使用的SCTP实现是在UDP之上实现的:https : //code.google.com/p/sctp-refimpl/。
在添加之前,可以过滤掉TCP或UDP ICE候选者addIceCandidate
。通常,您不应尝试强制使用所使用的传输方式,因为WebRTC只会“做正确的事”。浏览器不会限制WebRTC使用的TCP连接的数量超过RTCPeerConnection或DataChannel的任何限制(即,如果您有10个PeerConnections,则它们每个都可以使用TCP而没有任何问题)。
chrome://webrtc-internals
,您必须选择“读取统计信息:旧版”