- 1. Signalisierung
- Fyla nutzt sie zuerst, damit sich die Geräte finden und ein Verbindungsangebot samt Antwort austauschen. Dabei werden nur Verbindungsdaten vermittelt, keine Datei-Inhalte. Ohne diesen Austausch wissen die Browser nicht, wie sie eine WebRTC-Verbindung starten sollen.
- 2. WebRTC (Web Real-Time Communication)
- Der Browserstandard für Echtzeitverbindungen. Er umfasst die folgenden Bausteine; WebRTC selbst ist kein einzelner Transportweg und ersetzt die Signalisierung nicht.
- PeerConnection
- Das WebRTC-Verbindungsobjekt, das Angebot und Antwort verarbeitet und ICE, Verschlüsselung sowie Datenkanäle koordiniert. Es braucht zuerst passende Verbindungsbeschreibungen aus der Signalisierung.
- 3. ICE (Interactive Connectivity Establishment)
- Sammelt und prüft mögliche Netzwerkwege und wählt einen erreichbaren Weg aus. ICE braucht die von beiden Geräten über die Signalisierung ausgetauschten Kandidaten. Es folgt auf Angebot und Antwort, kann aber bereits während des Kandidatenaustauschs anlaufen.
- 4. DTLS (Datagram Transport Layer Security)
- Handelt die Verschlüsselung für die direkte Verbindung aus. Dafür muss ICE zunächst einen funktionierenden Netzwerkweg gefunden haben; DTLS schützt danach den Transport zwischen den Browsern.
- 5. SCTP (Stream Control Transmission Protocol)
- Transportiert Nachrichten zuverlässig und geordnet innerhalb der DTLS-verschlüsselten Verbindung. SCTP kann erst arbeiten, wenn ICE den Weg bereitgestellt und DTLS den verschlüsselten Transport aufgebaut hat.
- 6. Datenkanal (RTCDataChannel)
- Der logische Kanal, den Fyla für Dateien und Steuerinformationen verwendet. Er liegt auf SCTP und wird nutzbar, sobald ICE, DTLS und SCTP bereit sind. Ein zusätzlicher Kanal kann auf einer bestehenden Verbindung geöffnet werden, ohne ICE vollständig neu aufzubauen.