webrtc - 什么是 ICE Candidates?对等连接如何在它们之间进行选择?

标签 webrtc candidate ice-protocol

我新写了一个简单的聊天应用程序,但我不太了解ICE Candidates的背景。

当对等方创建连接时,他们会获得 ICE 候选者,并交换它们并设置 他们最终到达对等连接。

所以我的问题是,ICE 候选者从哪里来,如何使用它们以及它们是否都被真正使用了?

我注意到我的同事在他的机器上执行应用程序时获得的候选数较少,候选数不同的原因可能是什么?

最佳答案

@Ichigo 的答案是正确的,但它有点大。每个 ICE 都包含网络的“一个节点”,直到它到达外部。通过这种方式,您可以将这些 ICE 发送给其他对等方,以便他们知道可以通过哪些连接点联系到您。
将其视为一栋大楼:一个人在大楼内,需要告诉另一个人(不熟悉的人)如何穿过它。同样,如果我有很多网络设备,传入连接以某种方式需要找到通往我的计算机的正确路径。
通过提供所有节点,RTC 连接自行找到最短路径。因此,当您连接到您旁边的计算机(该计算机连接到同一路由器/交换机/其他设备)时,它会使用所有 ICE 并确定最短的,并且直接通过该点。您的同事获得的 ICE 候选者数量较少,这与它必须通过的设备数量有关。

请注意,您计算机内的每个网络适配器都有一个 IP 地址(我有一个来自 hyper-v 的 vEthernet 交换机),它还会为其创建一个 ICE。

关于webrtc - 什么是 ICE Candidates?对等连接如何在它们之间进行选择?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21069983/

相关文章:

ssl - "common name invalid"用于 websocket 服务器的自签名证书

azure - AZURE VM (Ubuntu Server 16.04 LTS) 上的 Coturn WebRTC 问题

Android 示例软键盘 : Partial text deletion/hiding by switiching between ABC and 123? 键盘

javascript - DTLS 握手未完成 - ORTC 原型(prototype)

webrtc - ICE失败的原因是什么?

javascript - 为什么 WebRTC 有时会使用 TURN?

android - WebRTC Android 视频聊天应用程序,无法使一台设备响铃另一台设备

webrtc - 无法通过 OpenTok 在 iPad 上使用 Chrome 观看发布商的视频

android - 如何使软键盘候选 View 不阻止应用程序 View ?