2016-10-17 3 views
1

WebRTC를 활성화 한 상태에서 Asterisk를 사용한다고 가정합니다. 서로 다른 네트워크에있는 두 호스트 간의 연결을 설정하려고 할 때 NAT 뒤에있는 경우에 대비하여 자신의 공용 주소를 올바르게 결정하려면 STUN 서버를 사용해야합니다. 그러나 연결의 두 끝이 동일한 네트워크에 상주 할 때마다 우리는 STUN 서버에 의지 할 필요가 없습니다. 그래서 문제는 클라이언트가 동일한 네트워크에 있는지 여부를 어떻게 판단 할 수 있는지 여부입니다.조건부로 STUN 서버 사용

+2

사실, STUN 서버를 사용하면 두 클라이언트가 같은 네트워크에 있는지 알 수 있지만 STUN을 사용하면 피해야 할 것이므로 no입니다. :) – jib

답변

1

신뢰할 수 없습니다.

하지만 상관 없습니다. STUN은 싸고 빠릅니다. 공개적으로 표시되는 IP : 포트 주소가 무엇인지 다시 나타냅니다. WebRTC가 연결을 협상하면 발견 된 모든 주소 (로컬 및 스턴 매핑 됨)가 사용됩니다.

두 개의 노드가 동일한 사설 LAN에있는 경우 WebRTC가 사용하는 알고리즘은 STUN에서 가져온 매핑 된 주소 대신 두 노드의 개인 IP 주소를 사용하여 수렴합니다. STUN을 통해 연결할 때, 연결은 여전히 ​​중계되지 않고 직접적입니다.

마찬가지로 TURN 릴레이를 사용하는 경우 WebRTC (및 모든 ICE 프로토콜)는 비공개 및 STUN 주소로 기본 설정되어 돌아 가기 전에 떨어집니다.

관련 문제