web-dev-qa-db-fra.com

WebRTC utilise-t-il TCP ou UDP?

Cela ressemble à une question très basique, mais j'ai besoin d'une confirmation

  1. WebRTC utilise-t-il TCP ou UDP comme transport peer-to-peer? Comment savoir?
  2. J'ai lu qu'il existe un mode de fiabilité et un accord DTLS, comment affectent-ils?
  3. Ce transport est-il le même pour Media et DataChannel?
  4. Comment basculer entre TCP et UDP?

Je pose cette question car je sais que les navigateurs ont une limite sur le nombre de connexions parallèles (je pense qu'ils parlent de TCP), et peut-être que la connexion UDP n'est pas limitée.

64
onmyway133
  1. Il peut utiliser l'un ou l'autre. Par défaut, la préférence est donnée à UDP, mais en fonction du ou des pare-feu entre les pairs qui se connectent, il se peut qu'il ne puisse se connecter qu'avec TCP. Vous pouvez utiliser Wireshark pour capturer les paquets et vérifier si TCP ou UDP est utilisé. Dans Chrome vous pouvez également voir des détails sur le candidat sélectionné (googActiveConnection) en allant à chrome://webrtc-internals.

  2. Le "mode de fiabilité" fait probablement référence au mode de fiabilité du DataChannel , qui peut être configuré pour fonctionner en mode fiable ou non fiable. DTLS fait référence à l'option actuellement facultative, mais qui deviendra bientôt la méthode par défaut d'échange de clés de chiffrement (l'autre mode obsolète est SDES). Firefox ne prend en charge que DTLS, donc pour l'interopérabilité du navigateur, vous devrez actuellement l'activer dans Chrome .

  3. Le RTCPeerConnection (média) utilisera TCP ou UDP, tandis que le DataChannel utilise SCTP. L'implémentation SCTP utilisée par Firefox est implémentée par dessus UDP: https://code.google .com/p/sctp-refimpl / .

  4. Il est possible de filtrer les candidats TCP ou UDP ICE avant de les ajouter avec addIceCandidate . En règle générale, vous ne devriez pas essayer de forcer le transport utilisé depuis WebRTC va juste "faire la bonne chose". Le navigateur ne limite pas le nombre de connexions TCP utilisées par WebRTC au-delà de toute limite sur le RTCPeerConnection ou DataChannel (c'est-à-dire, si vous pouvez avoir 10 PeerConnections, ils peut chacun utiliser TCP sans aucun problème).

89
tom