WebRTC utilise-t-il TCP ou UDP?
Cela ressemble à une question très basique, mais j'ai besoin d'une confirmation
- WebRTC utilise-t-il TCP ou UDP comme transport peer-to-peer? Comment puis-je savez ?
- j'ai lu qu'il y a un mode de fiabilité et un accord DTLS, comment ils affectent?
- ce transport est-il le même pour Media et DataChannel?
- comment basculer entre TCP et UDP?
Je demande cela parce que je sais que les navigateurs ont une limite sur le nombre de connexions parallèles (je pense qu'ils parler de TCP), et peut-être la connexion UDP ne se limite pas.
1 réponses
Il peut utiliser. Par défaut, la préférence est donnée à UDP, mais selon le(S) pare-feu entre les pairs qui se connectent, il peut seulement être capable de se connecter avec TCP. Vous pouvez utiliser Wireshark pour capturer des paquets et vérifier si TCP ou UDP est utilisé. Dans Chrome, vous pouvez également voir les détails sur le candidat retenu (
googActiveConnection
) en allant àchrome://webrtc-internals
."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 à la méthode actuellement facultative, mais sera bientôt la méthode par défaut d'échange de clés de chiffrement (L'autre mode obsolète est SDES). Firefox ne supporte que les DTL, donc pour l'interop du navigateur, vous devrez actuellement l'activer dans Chrome .
RTCPeerConnection (media) utilisera TCP ou UDP, tandis que le DataChannel utilise SCTP. L'implémentation SCTP utilisée par Firefox est implémentée sur UDP: https://code.google.com/p/sctp-refimpl/.
Il est possible de filtrer les candidats TCP ou UDP ICE avant de les ajouter avec
addIceCandidate
. Généralement, vous ne devriez pas essayer de forcer le transport utilisé puisque WebRTC "fera juste la bonne chose". Le navigateur ne limite pas le nombre de connexions TCP utilisées par WebRTC au-delà de toute limite sur RTCPeerConnection ou DataChannel (c.-à-d., Si vous pouvez avoir 10 PeerConnections, ils peuvent chacun utiliser TCP sans aucune problème).