5. ICE Candidate Gathering and Exchange (ICE-Kandidatensammlung und -Austausch)
Im Rahmen der ICE-Verarbeitung sammeln sowohl initiierende als auch antwortende Agenten Kandidaten, priorisieren und eliminieren redundante Kandidaten und tauschen Kandidateninformationen mit dem Peer aus.
5.1. Full Implementation (Vollständige Implementierung)
5.1.1. Gathering Candidates (Sammeln von Kandidaten)
Ein ICE-Agent sammelt Kandidaten, wenn er glaubt, dass die Kommunikation unmittelbar bevorsteht. Jeder Kandidat hat eine Transportadresse. Er hat auch einen Typ und eine Basis. Vier Typen werden definiert: Host-Kandidaten, Server-Reflexive Kandidaten, Peer-Reflexive Kandidaten und Relay-Kandidaten.
5.1.1.1. Host Candidates (Host-Kandidaten)
Host-Kandidaten werden durch Bindung an Ports auf einer IP-Adresse erhalten, die an eine Schnittstelle (physisch oder virtuell, einschließlich VPN-Schnittstellen) auf dem Host angeschlossen ist.
Jeder Komponente wird eine ID zugewiesen, die als "Komponenten-ID" bezeichnet wird. Bei RTP/RTCP-Datenströmen hat RTP selbst eine Komponenten-ID von 1 und RTCP eine Komponenten-ID von 2, es sei denn, beide werden im selben UDP-Port multiplext.
5.1.1.2. Server-Reflexive and Relayed Candidates (Server-Reflexive und Relay-Kandidaten)
Agenten SOLLTEN (SHOULD) Server-Reflexive und Relay-Kandidaten erhalten. Die Verwendung von STUN- und TURN-Servern kann jedoch in bestimmten Netzwerken unnötig sein.