Interactive Connectivity Establishment (ICE) Extensions protocol.
ICE specifies a protocol for setting up Real-Time Transport Protocol (RTP) streams in a way that allows the streams to traverse network address translation (NAT) and firewalls.
ICE uses protocols such as Simple Traversal of UDP through NAT (STUN) and Traversal Using Relay NAT (TURN) to establish and verify connectivity.
ICE sequence diagram
Host Candidate
Server Reflexive Candidate
Relayed Candidate
Real-Time Transport Protocol (RTP)
Real-Time Transport Control Protocol (RTCP)