ICE (Interactive Connectivity Establishment) est un framework utilisé par WebRTC (parmi d'autres technologies) pour connecter deux pairs ensemble, indépendamment de la topologie réseau (en général pour des conversations audio et/ou vidéo). Ce protocole laisse les deux pairs chercher et établir une connexion avec l'autre même s'ils utilisent tous les deux de la translation d'adresses (NAT) pour partager une adresse IP globale avec d'autres périphériques sur leurs réseaux locaux respectifs.
L'algorithme du framework recherche le chemin avec la plus faible latence pour connecter les deux pairs, en essayant ces possibilités dans cet ordre :
- Connexion UDP directe (dans ce cas—et uniquement dans ce cas—un serveur STUN sert à trouver l'adresse de réseau du pair opposé
- Connexion TCP directe, via le port HTTP
- Connexion TCP directe, via le port HTTPS
- Connexion indirecte via un serveur TURN/relais (si une connexion directe échoue, e.g. si un des pairs est situé derrière un pare-feu qui empêche la traversée du NAT)
Pour approfondir
Culture générale
- WebRTC, le principal protocole relatif au web qui utilise ICE
- Protocoles WebRTC
Référence technique
- RFC 5245, la spécification IETF pour ICE
RTCIceCandidate
, l'interface représentant un candidat ICE