매우 기본적인 질문처럼 들리지만 확인이 필요합니다.
- WebRTC는 피어 투 피어 전송으로 TCP 또는 UDP를 사용합니까? 내가 어떻게 알아 ?
- 신뢰성 모드와 DTLS 계약이 있다는 것을 읽었습니다. 어떤 영향을 미칩니 까?
- 이 전송이 미디어와 데이터 채널 모두에 대해 동일합니까?
- TCP와 UDP간에 어떻게 전환합니까?
나는 브라우저가 병렬 연결 수에 제한이 있다는 것을 알고 있고 (TCP에 대해 이야기한다고 생각합니다) UDP 연결이 제한되지 않는다는 것을 알고 있기 때문에 이것을 묻습니다.
답변
-
어느 쪽이든 사용할 수 있습니다. 기본적으로 UDP를 선호하지만 연결하는 피어 사이의 방화벽에 따라 TCP로만 연결할 수 있습니다. Wireshark 를 사용 하여 패킷을 캡처하고 TCP 또는 UDP가 사용 중인지 확인할 수 있습니다 . Chrome에서는
googActiveConnection
로 이동 하여 선택한 후보 ( ) 에 대한 세부 정보를 볼 수도 있습니다chrome://webrtc-internals
. -
‘신뢰성 모드’ 는 신뢰할 수 있거나 신뢰할 수없는 모드에서 실행되도록 구성 할 수있는 DataChannel 의 신뢰성 모드를 나타냅니다 . DTLS는 현재 선택 사항이지만 곧 암호화 키를 교환하는 기본 방법 이 될 것 입니다 (사용되지 않는 다른 모드는 SDES입니다). Firefox는 DTLS 만 지원하므로 브라우저 상호 운용성을 위해 현재 Chrome에서 사용 설정 해야합니다 .
-
RTCPeerConnection (미디어)은 TCP 또는 UDP를 사용하고 DataChannel은 SCTP를 사용합니다. Firefox에서 사용하는 SCTP 구현은 UDP ( https://code.google.com/p/sctp-refimpl/) 위에 구현됩니다 .
-
.NET을 사용하여 추가하기 전에 TCP 또는 UDP ICE 후보를 필터링 할 수 있습니다
addIceCandidate
. 일반적으로 WebRTC는 “올바른 일을 수행”하기 때문에 사용 된 전송을 강제로 사용하지 않아야합니다. 브라우저는 RTCPeerConnection 또는 DataChannel의 제한을 초과하여 WebRTC에서 사용하는 TCP 연결 수를 제한하지 않습니다 (즉, 10 개의 PeerConnection을 가질 수있는 경우 각각 문제없이 TCP를 사용할 수 있음).