1. ホーム
  2. tcp

[解決済み] WebRTCはTCPとUDPのどちらを使用するのですか?

2023-02-28 15:49:13

質問

これは非常に基本的な質問のように聞こえますが、私は確認が必要です。

  1. WebRTC はピアツーピアのトランスポートとして TCP と UDP のどちらを使用するのでしょうか。どうすれば を知ることができますか?
  2. 信頼性モードとDTLS合意があるようですが、どのように影響するのでしょうか? どのように影響するのでしょうか?
  3. このトランスポートは、MediaとDataChannelの両方で同じですか?
  4. TCP と UDP の切り替えはどのように行うのですか?

私がこれを尋ねるのは、ブラウザには並列接続の数に制限があることを知っているからです (彼らは TCP について話していると思います)、そしておそらく UDP 接続は制限されていません。

どのように解決するのですか?

  1. どちらかを使用することができます。デフォルトでは UDP が優先されますが、接続するピアの間にあるファイアウォールによっては TCP でのみ接続できる場合があります。使用できるのは ワイヤーシャーク を使ってパケットをキャプチャし、TCP と UDP のどちらを使用しているかを確認することができます。Chrome では、選択した候補の詳細も見ることができます ( googActiveConnection ) に移動することで、選択した候補の詳細 ( chrome://webrtc-internals .

  2. "信頼性モード"は、おそらくは データチャンネル の信頼性モードのことで、信頼できるモードと信頼できないモードで実行するように設定することができます。DTLS は、現在オプションとなっている まもなくデフォルトになるメソッド を指します (他の非推奨モードは SDES です)。Firefox は DTLS のみをサポートしているため、ブラウザの相互運用のためには、現在 Chrome で有効にする .

  3. RTCPeerConnection (メディア) は TCP または UDP を使用し、DataChannel は SCTP を使用します。Firefox で使用される SCTP の実装は、UDP の上に実装されています。 https://code.google.com/p/sctp-refimpl/ .

  4. TCP または UDP ICE の候補をフィルタリングしてから追加することは addIceCandidate . 一般に、WebRTC は正しい動作をするだけなので、使用するトランスポートを強制するべきではありません。ブラウザは、RTCPeerConnection や DataChannel の制限を超えて、WebRTC が使用する TCP 接続の数を制限しません(つまり、10 の PeerConnections を持つことができれば、それぞれ問題なく TCP を使用できます)。