Qu'est-ce que les candidats de L'ICE et comment la connexion par les pairs choisit-elle entre eux?

j'ai récemment écrit une application de chat simple, mais je ne comprenais pas vraiment l'arrière-plan des candidats ICE.

lorsque le Pair créer une connexion ils obtiennent des candidats ICE et ils les échangent et mettent enfin au peerconnection.

Donc ma question est, où la GLACE Candidats viennent et comment sont-ils utilisés et sont-ils tous réellement utilisés ?

j'ai remarqué que mon collègue a obtenu moins de candidats lorsqu'il exécute l'application sur son machine, quelle pourrait être la raison pour un nombre différent de candidats ?

45
demandé sur Antonin M. 2014-01-12 04:57:03

2 réponses

la réponse de @Ichigo est correcte, mais elle est un peu plus grande. Chaque ICE contient 'un noeud' de votre réseau, jusqu'à ce qu'il atteigne l'extérieur. Par ceci vous envoyez ces glaçons à l'Autre pair, ainsi ils savent par quels points de connexion ils peuvent vous atteindre. Voyez - le comme un grand bâtiment: l'un est dans le bâtiment, et doit dire à l'autre (qui n'est pas familier) comment le traverser. Même chose ici, si j'ai beaucoup de périphériques réseau, la connexion entrante doit trouver le bon chemin à mon ordinateur. En fournissant tous les nœuds, la connexion RTC trouve elle-même la route la plus courte. Donc quand vous vous connectez à l'ordinateur à côté de vous, qui est connecté au même routeur/commutateur/n'importe quoi, il utilise tous les ICE et de déterminer le plus court, et qui est directement à travers ce point. Que votre collège ait moins de candidats de glace a à voir avec le nombre d'appareils qu'il doit passer à travers. S'il vous plaît noter que chaque adaptateur de réseau à l'intérieur de votre ordinateur qui a une adresse IP (j'ai un vEthernet commutateur de hyper-v), il crée également une GLACE.

62
répondu MarijnS95 2014-01-14 00:12:42

glace représente Interactive Connectivity Establishment , c'est une des techniques utilisées dans le NAT( network address translator ) pour establishing communication for VOIP, peer-peer, instant-messaging, and other kind of interactive media.

généralement le candidat ice fournit les informations sur l'ipaddress et le port d'où les données vont être échangées.

C'est le format est quelque chose comme suit

a = candidat: 1 1 UDP 2130706431 192.168.1.102 1816 typ accueil

ici UDP spécifie le protocole à utiliser, le typ host spécifie quel type de candidat ice il s'agit, host signifie que le candidat est généré dans le pare-feu. Si vous utilisez wireshark pour surveiller le trafic alors vous pouvez voir les ports qui sont utilisés pour le transfert de données sont les mêmes que celui présent dans ice-candidats.

un autre type est relay, ce qui indique que ce candidat peut être utilisé lorsque la communication doit être faite à l'extérieur de la pare.

Il peut contenir plus d'informations, selon le navigateur que vous utilisez. Plusieurs fois j'ai vu 8-12 Ice-candidats sont générés par navigateur.

58
répondu Ichigo Kurosaki 2014-01-12 04:54:58