WebRTC - Recherche d'un itinéraire

Pour vous connecter à un autre utilisateur, vous devez trouver un chemin clair autour de votre propre réseau et du réseau de l'autre utilisateur. Mais il y a des chances que le réseau que vous utilisez dispose de plusieurs niveaux de contrôle d'accès pour éviter les problèmes de sécurité. Il existe plusieurs technologies utilisées pour trouver un itinéraire clair vers un autre utilisateur -

  • STUN (utilitaires de traversée de session pour NAT)
  • TURN (Traversée à l'aide de relais autour de NAT)
  • ICE (établissement de connectivité interactive)

Pour comprendre comment ils fonctionnent, voyons à quoi ressemble la disposition d'une connexion WebRTC typique -

La première étape consiste à trouver votre propre adresse IP. Mais il y a un problème lorsque votre adresse IP se trouve derrière un routeur réseau. Pour augmenter la sécurité et permettre à plusieurs utilisateurs d'utiliser la même adresse IP, le routeur cache votre propre adresse réseau et la remplace par une autre. C'est une situation courante lorsque vous avez plusieurs adresses IP entre vous et le Web public.

ÉTOURDIR

STUN aide à identifier chaque utilisateur et à trouver une bonne connexion entre eux. Tout d'abord, il fait une requête à un serveur, activé avec le protocole STUN. Ensuite, le serveur renvoie l'adresse IP du client. Le client peut maintenant s'identifier avec cette adresse IP.

Donc, fondamentalement, il y a deux étapes -

Pour utiliser ce protocole, vous avez besoin d'un serveur compatible STUN auquel vous connecter. La grande chose est que Chrome et Firefox fournissent des serveurs par défaut prêts à l'emploi pour que vous puissiez tester les choses.

Pour une application dans un environnement de production, vous devrez déployer vos propres serveurs STUN et TURN que vos clients pourront utiliser. Il existe aujourd'hui plusieurs services open-source offrant cela.

TOUR

Parfois, un pare-feu n'autorise aucun trafic basé sur STUN vers l'autre utilisateur. Par exemple dans certains NAT d'entreprise. C'est là que TURN apparaît comme une méthode différente de connexion avec un autre utilisateur.

TURN fonctionne en ajoutant un relais entre les clients. Ce relais agit comme une connexion d'égal à égal pour le compte des utilisateurs. L'utilisateur obtient alors ses données du serveur TURN. Ensuite, le serveur TURN obtiendra et redirigera chaque paquet de données qui lui est envoyé pour chaque utilisateur. C'est pourquoi, c'est le dernier recours lorsqu'il n'y a pas d'alternatives.

La plupart du temps, les utilisateurs iront bien sans TURN. Lors de la configuration d'une application de production, il est judicieux de décider si le coût d'utilisation d'un serveur TURN en vaut la peine ou non.

LA GLACE

Nous pouvons maintenant apprendre comment STUN et TURN sont tous réunis grâce à ICE. Il utilise STUN et TURN pour fournir une connexion peer to peer réussie. ICE trouve et teste dans un ordre trié une plage d'adresses qui fonctionnera pour les deux utilisateurs.

Lorsque ICE démarre, il ne sait rien du réseau de chaque utilisateur. Le processus d'ICE passera par un ensemble d'étapes de manière incrémentielle pour découvrir comment le réseau de chaque client est configuré, en utilisant un ensemble différent de technologies. La tâche principale est de trouver suffisamment d'informations sur chaque réseau afin d'établir une connexion réussie.

STUN et TURN sont utilisés pour trouver chaque candidat ICE. ICE utilisera le serveur STUN pour trouver une adresse IP externe. Si la connexion échoue, il essaiera d'utiliser le serveur TURN. Lorsque le navigateur trouve un nouveau candidat ICE, il en informe l'application cliente. Ensuite, l'application envoie le candidat ICE via le canal de signalisation. Lorsque suffisamment d'adresses sont trouvées et testées, la connexion est établie.