【问题标题】:Can I use WebRTC to open a UDP connection?我可以使用 WebRTC 打开 UDP 连接吗?
【发布时间】:2012-11-28 12:14:23
【问题描述】:

我们需要使用 TFTP 协议将数据发送到用户的设备,这是一个简单的类似 FTP 的协议,通过 UDP 工作。

由于我们无法使用 javascript 打开 UDP 套接字,我们一直使用我们的服务器作为代理,将数据发送到我们的服务器并打开从服务器到设备的 UDP 连接。这样做的缺点是我们的用户需要了解 NAT 和配置端口转发。

那么问题来了,我们是否可以使用 WebRTC 打开一个直接的 UDP 套接字在浏览器和设备之间进行发送和接收?

http://www.webrtc.org/reference/webrtc-internals/vienetwork#TOC-SendUDPPacket 建议我们可以通过套接字发送一些原始 UDP 数据(也就是说,如果可以通过 javascript 访问该层。我不确定),但我看不到获取原始数据的方法UDP 响应。

非常感谢任何帮助

【问题讨论】:

标签: javascript udp webrtc


【解决方案1】:

不,您不能像这样使用 WebRTC 发送原始 UDP 数据。

您可以在其中找到 SendUDPPacket 方法的 ViENetwork 库在 Chrome 中用于处理数据包传输、Windows QoS 支持和其他网络设置,但您无法直接访问它。

WebRTC 的主要功能之一是Data Channel,它将带来在两个浏览器之间建立对等连接的可能性,以允许交换原始数据。 如您所见here,这仍在 Chrome 和 Firefox 中进行构建。

这可能是您正在搜索的内容,因为您可以建立连接以发送原始数据,并且您只需担心找到一种方法来建立与您的其他端点的连接,如果这是您想要的。

【讨论】:

  • 那行不通,因为我们在另一端讨论非常特定的硬件(主要是 Arduino),它只能通过 TFTP 进行通信。可惜……
【解决方案2】:

没有。允许 WebRTC 发送到随机地址/端口的安全问题太多 - 我们必须确保它不能作为 DDOS 平台工作,因此我们要求目标实现 ICE 作为发送数据的隐式权限,并且我们也不允许发送任意数据,只允许发送 SRTP 媒体流和 DataChannels 中的数据(通过 SCTP over DTLS over UDP+ICE)。

【讨论】:

  • 为什么要担心 WebRTC 中的 DDOS?您不能通过无休止地创建图像、提交表单、XHR 等等来从客户那里做事吗?使用 WebRTC 防止 DDOS 有什么特别之处? webrtc 邮件列表上的一条又一条消息,一个又一个问题突出了能够使用 WebRTC 将数据发送回服务器的巨大愿望,而不仅仅是点对点。我什至不明白为什么首先开发了点对点。只能与另一个人进行语音聊天的用途有限。迫在眉睫的问题是,如何将另一个用户添加到我的通话中?带单片机。不容易。
  • 可以使用已经存在的相同同源策略限制回服务器 webrtc,或者使用 flash 的方式限制原始域上的某些文件。或 CORS 标头。
  • 在网页/广告/等中分发的代码如果可以向 IP 地址发送任意大量(填充上游管道),则可以充当 DDOS。请阅读 rtcweb 安全注意事项草案以获取示例。站点可以更轻松地处理面向连接的 DDOS 攻击,因为它们可以控制接受连接(调整它们的速度等)。我会注意到这里的请求是针对点对点原始 UDP 的,这完全是另外一回事,而不是您想要的。
  • 而且WebRTC绝对可以用来向服务器发送数据;事实上,这是一个主要用例。而对于 A/V 通信(WebRTC 的主要目标),P2P 具有很大的优势,尤其是如果您不是 Google(尤其是较低的延迟,并且服务的带宽成本要低得多,这就是为什么您拥有所有这些免费的 WebRTC网站。)P2P 还支持 DataChannels 的许多有趣用途
  • @JSON 我确实相信屏蔽是为了在 HTTP 握手启动时阻止发送缓存的响应,而不是为了安全。
猜你喜欢
  • 2021-07-28
  • 1970-01-01
  • 2012-10-28
  • 1970-01-01
  • 2023-03-22
  • 1970-01-01
  • 1970-01-01
  • 2010-12-15
  • 1970-01-01
相关资源
最近更新 更多