ICE

ICE (Interactive Connectivity Establishment) is a framework used by WebRTC (among other technologies) for connecting two peers to each other, regardless of network topology (usually for audio and/or 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:

  1. Direct UDP connection (In this case—and only this case—a STUN server is used to find out the network-facing address of a peer
  2. Direct TCP connection, via the HTTP port
  3. Direct TCP connection, via the HTTPS port
  4. Indirect connection via a relay/TURN server (if a direct connection fails, e.g. if one peer is behind a firewall that blocks NAT traversal)

Learn more

General knowledge

Technical reference

Document Tags and Contributors

 Contributors to this page: Jeremie, Sheppy, Andrew_Pfeiffer, teoli
 Last updated by: Jeremie,