Définition simple
ICE (Interactive Connectivity Establishment) est un mécanisme utilisé par les applications temps réel pour trouver un chemin réseau utilisable entre deux correspondants, notamment à travers les NAT et pare-feu.
Définition technique
ICE collecte et teste plusieurs candidats de connectivité : adresses locales, adresses publiques découvertes via STUN et relais fournis par TURN. Les candidats sont échangés entre les pairs puis vérifiés afin de sélectionner une paire capable de transporter le média.
Fonctionnement / rôle
Le rôle d’ICE est d’automatiser la traversée réseau. Il ordonne les candidats, lance des contrôles de connectivité et conserve le meilleur chemin valide. Une communication directe est généralement privilégiée ; un relais TURN sert de solution de repli lorsque le NAT ou le filtrage empêche le trafic direct.
À quoi cela sert ?
Établir plus fiablement des sessions WebRTC, voix ou vidéo lorsque les terminaux se trouvent derrière des réseaux différents ou des NAT.
Exemple concret
Un navigateur derrière un NAT d’entreprise et un correspondant sur Internet échangent leurs candidats ICE. Si le chemin direct échoue, le média peut être relayé par un serveur TURN.
Problèmes fréquents
- Serveur STUN ou TURN inaccessible
- Ports UDP bloqués ou politique firewall trop restrictive
- Candidats privés ou publics incorrectement annoncés
- Expiration ou mauvais identifiants TURN
À retenir : ICE choisit le chemin de transport ; STUN aide à découvrir l’adressage public et TURN fournit un relais lorsque le direct ne fonctionne pas.