【问题标题】:WebRTC on Chrome; how do I know if it's using UDP or TCPWebRTC在Chrome上;我如何知道它使用的是 UDP 还是 TCP
【发布时间】:2015-07-17 08:40:42
【问题描述】:

我目前正在公司防火墙后面的 Chrome 上使用 WebRTC,使用 Google 的演示应用程序:https://apprtc.appspot.com。是否有任何可靠的方法来确定与我公司防火墙外的另一个应用程序用户的连接是通过 UDP 还是通过 Google 的 STUN/TURN 服务器流式传输 TCP? chrome://webrtc-internals 提供了很多统计数据,但对我来说没有什么明显的。或者我可以在会话期间进行 API 调用以确定传输类型吗?谢谢

===========更新==============

仅供参考,this 提供更多信息 - 使用演示应用程序时按“i”将显示是否使用 TURN 服务器(但如果使用 tcp/udp 则不显示)。

【问题讨论】:

  • 你在使用什么操作系统?
  • 实际上,这似乎并不重要。像 WireShark (wireshark.org) 这样的东西有用吗?这使您可以监控机器上的进出流量,并且它似乎在所有平台(Windows、OS X 和 Linux)上都可用。如果您知道另一端的 IP,您可以过滤数据包,然后从那里查看它们是什么类型的数据包。通常,WebRTC 中涉及的所有媒体流数据包都是 UDP,我认为其中的信令位通常是 TCP。
  • 这是 OSX - 我希望这些信息隐藏在 Chrome WebRTC 内部数据的某个地方。 Wireshark 和 Netstat 类似吗?
  • WireShark 类似于 netstat,但根据我的经验,WireShark 有更详细的信息。 WireShark 包括发送和接收的整个数据包。因此,您实际上可以查看数据包的内容(尽管媒体数据包的内容是加密的,所以阅读这些内容很有趣)。但是,您至少可以看到每个数据包的所有信息。我建议要么过滤流量,要么在 WireSharking 时不做任何其他事情,因为会有大量的数据包打印到程序中。
  • 用有关以编程方式获取它的信息更新了我的答案。

标签: sockets google-chrome tcp udp webrtc


【解决方案1】:

Wireshark 可以很好地解决这个问题。在 Firefox 上,您可以转到 about:webrtc,单击 peerconnection,然后查看从 ICE 中选择了哪些候选者(以及它们是 TCP 还是 UDP 等)。

[编辑-添加] 以编程方式,您可以使用统计报告(例如this examplethis PR)并使用 type 属性查看候选人的类型。您可能必须解析 SDP 以从 Firefox 中的候选人那里获得优先级。 (感谢 Fippo 指出这一点)。

【讨论】:

  • 不幸的是,我只能使用 Chrome 而不是 firefox
  • Chrome 迫切需要关于 Firefox 的 about:webrtc ICE Stats 报告! Chrome 的 webrtc-internals 肯定更难阅读,尤其是当您尝试实时调试 webrtc 连接时。
猜你喜欢
  • 2013-09-24
  • 2015-05-11
  • 1970-01-01
  • 2012-06-20
  • 1970-01-01
  • 2015-03-08
  • 2011-08-20
  • 1970-01-01
  • 2014-12-20
相关资源
最近更新 更多