Подтвердить что ты не робот

Использует ли WebRTC TCP или UDP?

Это звучит как очень простой вопрос, но мне нужно подтверждение

  • Использует ли WebRTC TCP или UDP в качестве своего однорангового транспорта? Как мне знаете?
  • Я читал, что есть режим надежности и соглашение DTLS, как они влияют?
  • Является ли этот перенос одинаковым как для Media, так и для DataChannel?
  • Как переключаться между TCP и UDP?

Я спрашиваю об этом, потому что я знаю, что у браузеров есть ограничение на количество параллельных подключений (я думаю, они говорят о TCP), и, возможно, соединение UDP не ограничено.

4b9b3361

Ответ 1

  • Он может использовать любой из них. По умолчанию предпочтение отдано UDP, но в зависимости от брандмауэра (ов) между одноранговыми соединениями он может подключаться только к TCP. Вы можете использовать Wireshark для захвата пакетов и проверки использования TCP или UDP. В Chrome вы также можете просмотреть информацию о выбранном кандидате (googActiveConnection), перейдя в chrome://webrtc-internals.

  • "Режим надежности", вероятно, относится к режиму надежности DataChannel, который может быть настроен для работы в надежном или ненадежном режиме. DTLS ссылается на необязательный, но метод по умолчанию для обмена ключами шифрования (другой режим устаревания - SDES). Firefox поддерживает только DTLS, поэтому для взаимодействия браузера в данный момент вам необходимо включить его в Chrome.

  • RTCPeerConnection (media) будет использовать TCP или UDP, в то время как DataChannel использует SCTP. Реализация SCTP, используемая Firefox, реализована поверх UDP: https://code.google.com/p/sctp-refimpl/.

  • Возможно, отфильтровать кандидатов TCP или UDP ICE, прежде чем добавлять их с помощью addIceCandidate. Как правило, вы не должны пытаться принудительно использовать транспорт, поскольку WebRTC будет "делать правильные вещи". Браузер не ограничивает количество TCP-соединений, используемых WebRTC, без каких-либо ограничений на RTCPeerConnection или DataChannel (т.е. Если вы можете иметь 10 PeerConnections, каждый из них может использовать TCP без каких-либо проблем).