ICE-TCP is an extension to the ICE protocol that allows WebRTC connectivity checks to be performed over TCP instead of only UDP.
Why ICE-TCP exists
Some restrictive corporate firewalls and networks block all UDP traffic, which would completely prevent standard WebRTC connections. ICE-TCP provides a fallback path by attempting to establish connectivity over TCP, which is more commonly allowed through firewalls.
ICE-TCP vs TURN/TCP
ICE-TCP attempts a direct TCP connection between peers, while TURN/TCP relays media through a TURN server over TCP. ICE-TCP is preferred when direct connectivity is possible because it avoids the cost and added latency of a relay server.
The browser implementation of WebRTC offers an ICE-TCP client only. ICE-TCP kicks in and is attempted to connect when the media server supports it and signals that support towards the client. In many cases, ICE-TCP is used as a replacement of TURN/TCP.
ICE-TCP doesn’t work between two browsers in peer-to-peer mode. It can be used in browser to media server deployments.


