ICE stands for Interactive Connectivity Establishment.

It is a standard method of NAT traversal used in WebRTC. It is defined in IETF RFC 5245.

ICE deals with the process of connecting media through NATs by conducting connectivity checks.

ICE collects all available candidates (local IP addresses, reflexive addresses – STUN ones and relayed addresses – TURN ones). All the collected addresses are then sent to the remote peer via SDP.

Once the WebRTC Client has all the collected ICE addresses of itself and its peer, it starts initiating connectivity checks. These checks essentially try sending media over the various addresses until success.

The downside of using ICE is the time it takes, which can be 10s of seconds. To run faster, a new mechanism was added in WebRTC called Trickle ICE.


About WebRTC Glossary

WebRTC Glossary is a collaborative space where users can learn more about WebRTC related terms. Anyone can also modify or add new terms to this glossary, but it requires registration to the site first.