RTCDataChannel ist eine Schnittstelle der WebRTC-API, über die zwei Browser beliebige Daten direkt miteinander austauschen — ohne Server-Umweg. Während RTP für Audio- und Videoströme zuständig ist, transportiert der DataChannel Text, Dateien, Spielzüge oder Binärdaten. Die Verbindung ist, wie alle WebRTC-Verbindungen, per DTLS verschlüsselt und über ICE ausgehandelt.
Technik: SCTP über DTLS
Der Datenkanal läuft nicht über RTP, sondern nutzt das Stream Control Transmission Protocol (SCTP) — eingebettet in die per DTLS abgesicherte Verbindung der PeerConnection. Dadurch stehen flexible Übertragungsmodi zur Verfügung:
- Zuverlässig und geordnet: TCP-ähnlich — Pakete werden bei Verlust erneut gesendet, die Reihenfolge bleibt erhalten.
- Unzuverlässig und ungeordnet: UDP-ähnlich — keine Wiederholungen, keine Warteschlangen. Ideal für schnelle, verlusttolerante Daten wie Spielpositionen.
- Mischformen: über die Optionen
maxRetransmits(Anzahl der Wiederholungen) odermaxPacketLifeTime(Lebensdauer eines Pakets) lässt sich die Zuverlässigkeit pro Kanal einstellen.
Die Übertragung erfolgt nachrichtenbasiert: Anwendungen senden ganze Nachrichten (Strings, Blob, ArrayBuffer) statt eines kontinuierlichen Bytestroms.
Einsatz in der Praxis
- Chat und Dateitransfer: Direkte Übertragung zwischen den Teilnehmern, oft mit
bufferedAmountals Fortschrittsanzeige. - Spiele: niedrige Latenz für Eingaben und Positionen — verlorene Zwischenstände sind weniger schlimm als Verzögerung.
- Screen-Sharing-Steuerung und Fernwartung: Steuerbefehle laufen neben dem Medienstrom.
Für große Gruppen wird der Datenaustausch oft über einen SFU-Server geroutet, der die Kanäle bündelt und verteilt — reine Peer-to-Peer-Verbindungen skalieren bei vielen Teilnehmern nicht.
Verwandte Grundlagen: WebRTC, MediaStream, SFU.