2017-06-19 2 views
2

Ich bin neu in WebRTC.Webrtc-Medien über TCP?

Ich wurde über den Turn-Server gelernt.

Die folgende Sache wird verwendet, um den Turn-Server zu konfigurieren funktioniert TCP für eine webrtc-Anwendung.

Beispiel wiederum Serverkonfiguration in WebRTC Anwendung: -

{ 

     url: ‘turn:192.158.29.39:3478?transport=tcp’, 
     credential: ‘JZEOEt2V3Qb0y27GRntt2u2PAYA=’, 
     username: ‘28224511:1379330808′ 

} 

Die Bedeutung für den Transport = tcp ist es auf TCP-Protokoll wie funktioniert, dass sie gesagt hat.

Meine Frage ist,

Die Turn-Server arbeitet auf TCP bedeutet, es ist nur für eine Verbindung zwischen Server wiederum Festlegung auf TCP arbeitet oder ein WebRTC Medien für die Übertragung via wiederum Server das TCP-Protokoll verwendet. Zu welchem ​​Zweck wird das TCP-Paket verwendet?

Ist es möglich, die WebRTC-Medien über das TCP-Paket zu übertragen?

Antwort

2

Das Erzwingen von WebRTC-Medien über TCP wird nicht empfohlen, es ist nur eine Fallback-Option für strikte Firewalls.

Wenn Sie in TURN-URLs ?transport=tcp angeben, stellt der WebRTC-Client eine Verbindung mit TURN Server über TCP her.
Clients senden STUN-Anfragen über TCP, um Relay-Kandidaten zuzuweisen (soweit ich weiß, fordert chrome/firefox derzeit nur UDP-Relay-Kandidaten an).

strengen TCP über TURN-Server zu erzwingen:

  • Nur url TURN mit ?transport=tcp
  • iceTransportPolicy:"relay" angeben, so dass alle Medien über TURN

Nach Austausch des Relais fließt Kandidaten (udp) zwischen Peer-Verbindungen, der Medienpfad wird wie folgt sein

P1 < --tcp -> P1TURN < --UDP -> P2TURN < --tcp -> P2

Wenn beide P1TURN & P2TURN sind immer gleich, dann können Sie TURN Relais Weg wählen als LAN/lo Schnittstelle dh Sie erhalten UDP Relais-Kandidaten mit LAN/lo IP.

Wenn Sie UDP vermeiden wollen & zwei Mal in der Medienpfad TURN, müssen Sie einige SFU/SVC verwenden, wie Jitsi (pseudo-SSL-Kandidaten unterstützt)/Janus.
Dann wird Medienpfad sein, wie unten

P1 < --tcp -> SFU/MCU < --tcp -> P2