📝Trickle ICE
Vanilla ICE requires harvesting all candidates before sending an Offer. Gathering must be performed on all interfaces, some of which might not be connected to the internet and would need to timeout. Furthermore, the receiving end does not start harvesting before it receives the offer. As a result, traditional ICE connectivity establishment could take a considerable amount of time (tens of seconds).
Trickle ICE is an ICE extension that allows sending candidates as soon as they are discovered, speeding up the connectivity establishment process.
As a result both clients perform discovery and connectivity checks simultaneously and it is possible for call establishment to happen in milliseconds. Also, possibly even more importantly, it is no longer possible for half-dead interfaces and inaccessible servers to delay the process.
Major downside: backward compatibility.
Trickle ICE is mandatory for WebRTC.
Resources: