什么是ICE候选人,对等连接如何在它们之间进行选择?

问题描述 投票:59回答:2

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

当对等方创建连接时,他们会获得ICE候选人,他们会交换和设置他们最后到对等连接。

所以我的问题是,ICE候选人来自哪里,如何使用它们,并且它们都被真正使用了吗?

[我注意到我的同事在他的机器上执行该应用程序时,候选人减少了,这可能是候选人数量不同的原因吗?

webrtc candidate ice-protocol
2个回答
81
投票

@ Ichigo的答案是正确的,但是要大得多。每个ICE都包含您网络的“节点”,直到到达外部为止。通过此操作,您可以将这些ICE发送给其他对等方,以便他们知道可以通过哪些连接点到达您。将其视为一栋大型建筑物:一个在建筑物中,需要告诉另一个(不熟悉的人)如何穿过建筑物。同样在这里,如果我有很多网络设备,则传入连接需要以某种方式找到通往计算机的正确方法。通过提供所有节点,RTC连接本身会找到最短的路由。因此,当您连接到旁边的计算机(连接到同一路由器/交换机/任何设备)时,它将使用所有ICE并确定最短的计算机,而这恰恰是通过该点。您的同事获得的ICE候选人减少与它必须经过的设备数量有关。请注意,您计算机中每个具有IP地址的网络适配器(我有来自hyper-v的vEthernet交换机),它也会为其创建一个ICE。


72
投票

ICE代表Interactive Connectivity Establishment,它是establishing communication for VOIP, peer-peer, instant-messaging, and other kind of interactive media.]用于NAT(网络地址转换器)的一种技术。

通常,ice候选人提供有关将要交换数据的ip地址和端口的信息。

它的格式如下

a =候选:1 1 UDP

2130706431 192.168.1.102 1816 typ 主机

此处UDP指定要使用的协议,typ host指定它是哪种候选冰,主机表示候选是在防火墙内生成的。如果使用wireshark监视流量,则可以看到用于数据传输的端口与冰候选人中存在的端口相同。

另一种类型是relay,它表示当要在防火墙外部进行通信时可以使用此候选对象。

它可能包含更多信息,具体取决于您使用的浏览器。很多时候我看到浏览器生成了8-12个冰候选对象。


0
投票

[从早期使用训练轮的新手那里(例如,我正在阅读和学习动手操作... ...这些预加载的WebKit对用户来说有多安全?如果提供个人信息,我们为什么应该信任它? “隐私苹果”。请分享,因为您的信息将使我更容易向未来的用户解释。谢谢

© www.soinside.com 2019 - 2024. All rights reserved.