Was sind ICE-Kandidaten und wie wählt die Peer-Verbindung zwischen ihnen?

Ich habe neu eine einfache Chat-Anwendung geschrieben, aber den Hintergrund der ICE-Kandidaten nicht wirklich verstanden. Wenn der Peer eine Verbindung herstellt, erhält er ICE-Kandidaten und tauscht sie aus und setzt sie schließlich auf die Peer-Verbindung. Meine Frage ist also, woher kommen die...