同一个物理网络上的 webRTC 点对点

Posted

技术标签:

【中文标题】同一个物理网络上的 webRTC 点对点【英文标题】:webRTC peer to peer on the same physical network 【发布时间】:2014-04-29 09:57:10 【问题描述】:

RTCPeerConnection 管理 NAT 穿越的完整 ICE 工作流程。因此,如果我们假设我们有两台计算机驻留在两个不同的专用网络中,RTCPeerConnection API 将为每个对等方收集可能的 IP 和端口候选者,遍历 NAT,然后运行连接检查以找到工作的那些。

假设一切顺利,我们在两个部分之间建立了开放的点对点连接。在视频会议应用程序中,这意味着第一个对等方的视频和音频流通过其网络网关并一路传输到另一方的 NAT。它进入 NAT,然后被定向到接收端。

但是如果两个对等点驻留在同一个专用网络上怎么办?在那种情况下会发生什么?数据是仅在本地专用网络内传输,还是先从 NAT 出去,然后再重新输入,传输到其他对等方?换句话说,这种数据传输是否会消耗互联网带宽?

【问题讨论】:

【参考方案1】:

是的,当它们在同一个网络中时,它们会直接连接。你可以阅读一些概念here。

【讨论】:

【参考方案2】:

ICE 服务器通常足够聪明,这包括STUNTURN,以识别双方都在同一个 NAT 之后。

如果各方在同一个 NAT 中,则流量不会离开该网络。它将直接在两方之间进行。我特别知道 google 的开放 stun 服务器 (stun.l.google.com:19302 || 23.21.150.121) 和 rfc5766-turn-server 就是这种情况。

您也可以没有任何 ICE 服务器,它只会为候选人使用本地 IP 和端口,它会正常工作。

【讨论】:

以上是关于同一个物理网络上的 webRTC 点对点的主要内容,如果未能解决你的问题,请参考以下文章

使用 WebRTC/Alternative 的点对点 1080p 直播?

为点对点广播转发 WebRTC 视频

使用 WebRtc 和本地点对点连接构建视频流应用程序?

腾讯IVWEB团队:WebRTC 点对点直播

Spring Boot WebSocket + WebRTC 实现点对点视频通话功能Demo

WebRTC 用例和性能