
ICE (Interactive Connectivity Establishment)
glossary.categories.protocolFramework zur Herstellung von Peer-Verbindungen durch Firewalls und NAT hindurch.
Was ist ICE?
Interactive Connectivity Establishment (ICE) ist ein Framework, das WebRTC verwendet, um direkte Verbindungen zwischen Browsern oder Geräten trotz Netzwerkhindernissen wie NAT (Network Address Translation) und Firewalls herzustellen. ICE fungiert als intelligenter Verhandler, der gleichzeitig mehrere Verbindungsstrategien ausprobiert, um den besten Pfad zwischen zwei Peers zu finden.
ICE transportiert selbst keine Medien – es ist der Prozess, der herausfindet, WIE zwei Geräte verbunden werden, damit Medien (Video, Audio, Daten) zwischen ihnen fließen können.
Wie ICE funktioniert: Schritt für Schritt
1. Sammlung von ICE-Kandidaten
Jeder Peer sammelt „Kandidaten“ – potenzielle Verbindungspfade. ICE entdeckt drei Typen:
- Host-Kandidaten: Lokale IP-Adressen Ihres Geräts. Funktionieren nur im selben lokalen Netzwerk.
- Server-reflexive Kandidaten: Ihre öffentliche IP-Adresse, ermittelt durch Abfrage eines STUN-Servers.
- Relay-Kandidaten: Eine Adresse auf einem TURN-Relay-Server als Rückfalllösung.
2. Austausch über Signalisierung
Die Kandidaten jedes Peers werden über einen Signalisierungskanal an den anderen Peer gesendet. Modernes WebRTC verwendet „Trickle ICE“, das Kandidaten inkrementell sendet, sobald sie entdeckt werden.
3. Konnektivitätsprüfungen
ICE kombiniert lokale und entfernte Kandidaten zu Paaren und testet jedes Paar durch Senden von STUN-Binding-Anfragen. Tests laufen parallel, priorisiert nach Kandidatenqualität.
4. Auswahl des besten Pfads
ICE wählt das erfolgreichste Kandidatenpaar basierend auf Latenz, Kandidatentyp-Priorität und Zuverlässigkeit. Der gesamte Prozess dauert typischerweise 2–5 Sekunden, mit Trickle ICE oft unter 1 Sekunde.
Verbindungserfolgsraten
- 75–85 % der Verbindungen: Gelingen über direkte Peer-to-Peer-Pfade mittels STUN
- 15–25 % der Verbindungen: Benötigen TURN-Relay aufgrund von Symmetric NAT oder restriktiven Firewalls
- <1 % der Verbindungen: Scheitern vollständig, meist wegen Unternehmens-Proxys, die WebRTC komplett blockieren