ICE
ICE(Interactive Connectivity Establishment) is a framework used byWebRTC(among other technologies) for connecting two peers, regardless of network topology (usually for audio and video chat). This protocol lets two peers find and establish a connection with one another even though they may both be using Network Address Translator (NAT) to share a global IP address with other devices on their respective local networks.
The framework algorithm looks for the lowest-latency path for connecting the two peers, trying these options in order:
- Direct UDP connection (In this case—and only this case—aSTUNserver is used to find the network-facing address of a peer)
- Direct TCP connection, via the HTTP port
- Direct TCP connection, via the HTTPS port
- Indirect connection via a relay/TURNserver (if a direct connection fails, e.g., if one peer is behind a firewall that blocks NAT traversal)
See also
- WebRTC,the principal web-related protocol which uses ICE
- WebRTC protocols
- RFC 8445,the IETF specification for ICE
RTCIceCandidate
,the interface representing an ICE candidate