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) oder maxPacketLifeTime (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 bufferedAmount als 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.