2014-10-13 14 views
6

इस सवाल WebRTC - How many STUN/TURN servers do I need to specify?WebRTC कैसे तय करता है जो सर्वर बारी

निर्धारित WebRTC कैसे जो सर्वर मोड़ जब एक से अधिक प्रदान की जाती है का उपयोग करने के लिए बंद शाखाओं में बंटी का उपयोग करने के लिए?

+0

यह द्वारा हर एक को देखते हुए उनके [बर्फ सभा चरण के दौरान सेट प्राथमिकता] इकट्ठा बर्फ उम्मीदवारों का आयोजन (http://tools.ietf.org/html/rfc5245#section-4.1.2) और यह वह जगह है कार्यान्वयन विशिष्ट मैं मानता हूं (जिसका अर्थ है एफएफ और क्रोम विभिन्न उम्मीदवारों को पसंद करते हैं)। –

+0

@ बेंजामिन ट्रेंट बहुत बहुत धन्यवाद, मैं आरएफसी में उस प्राथमिक मूल्य पर ठोकर नहीं लगा था। यदि आप चाहें, इसे एक उत्तर के रूप में जोड़ें और मैं इसे स्वीकार करूंगा। – Ternary

उत्तर

6

प्रत्येक बर्फ उम्मीदवार को इकट्ठा होने पर प्राथमिकता दी जाती है। यह कुछ चीजों का मिश्रण है और मुझे विश्वास है कि प्रत्येक मंच (क्रोम, फ़ायरफ़ॉक्स, आदि) की अपनी प्राथमिकताएं होती हैं।

यहां link to the RFC बताया गया है कि प्राथमिकताओं को कैसे उत्पन्न किया जाना है। प्रत्येक प्राथमिकता को अद्वितीय होने की गारंटी दी जाती है क्योंकि उम्मीदवार आईडी अद्वितीय होनी चाहिए (यदि आरएफसी का पालन किया जाता है)। तो, आपको प्राथमिकताओं में कभी टाई नहीं होनी चाहिए। उच्च प्राथमिकताओं वाले लोगों को पहले कोशिश की जाती है, यदि उनके साथ कोई कनेक्शन नहीं बनाया जा सकता है, तो अगली पंक्ति में उपयोग किया जाता है। आरएफसी से

उद्धरण प्राथमिकता के बारे में:

सूत्र का उपयोग करते हैं, एक एजेंट उम्मीदवार के प्रत्येक प्रकार (सर्वर कर्मकर्त्ता के लिए एक प्राथमिकता का निर्धारण करके प्राथमिकता गणना करता है, सहकर्मी
, कर्मकर्त्ता प्रसारित किया गया, और मेजबान), और, जब एजेंट बहुमुखी है,
अपने आईपी पते के लिए प्राथमिकता चुनना। इन दो प्राथमिकताओं
को उम्मीदवार के लिए प्राथमिकता की गणना करने के लिए संयुक्त किया जाता है। यही कारण है कि
प्राथमिकता निम्न सूत्र का उपयोग कर की जाती है:

priority = (2^24)*(type preference) + 
       (2^8)*(local preference) + 
       (2^0)*(256 - component ID) 

प्रकार प्राथमिकता 0 से 126 समावेशी करने के लिए एक पूर्णांक होना चाहिए, और उम्मीदवार के प्रकार (जहां
के लिए प्राथमिकता का प्रतिनिधित्व करता है प्रकार स्थानीय, सर्वर रिफ्लेक्सिव, सहकर्मी रिफ्लेक्सिव, और रिलेड हैं)। एक
126 उच्च प्राथमिकता है, और 0 सबसे कम है।
0 को मानने का अर्थ है कि इस प्रकार के उम्मीदवारों का उपयोग केवल अंतिम उपाय के रूप में
के रूप में किया जाएगा। प्रकार वरीयता सभी
उसी प्रकार के उम्मीदवारों के लिए समान होनी चाहिए और
विभिन्न प्रकार के उम्मीदवारों के लिए अलग होना चाहिए। सहकर्मी रिफ्लेक्सिव उम्मीदवारों के लिए प्रकार वरीयता
सर्वर रिफ्लेक्सिव उम्मीदवारों की तुलना में अधिक होना चाहिए। ध्यान दें कि
अनुभाग 4.1.1 की प्रक्रियाओं के आधार पर इकट्ठे हुए उम्मीदवार
कभी भी सहकर्मी रिफ्लेक्सिव उम्मीदवार नहीं होंगे; इन प्रकार के उम्मीदवार
आईसीई द्वारा किए गए कनेक्टिविटी चेक से सीखे गए हैं।

स्थानीय वरीयता 0 से 65535 समावेशी से एक पूर्णांक होना चाहिए। यह विशेष आईपी पते के लिए प्राथमिकता का प्रतिनिधित्व करता है, जिसमें
उम्मीदवार प्राप्त किया गया था, ऐसे मामलों में जहां एक एजेंट बहुमुखी है।
65535 उच्चतम प्राथमिकता, और एक शून्य, सबसे कम दर्शाता है।
जब केवल एक ही आईपी पता होता है, तो यह मान 65535 पर सेट होना चाहिए। अधिक आम तौर पर, यदि किसी विशेष मीडिया स्ट्रीम के लिए एक विशेष घटक के लिए कई उम्मीदवार हैं, तो प्रकार है, तो स्थानीय वरीयता अद्वितीय होनी चाहिए प्रत्येक के लिए। इस
विनिर्देशन में, यह केवल बहुआयामी मेजबानों के लिए होता है।यदि कोई होस्ट
बहुआयामी है क्योंकि यह दोहरी स्टैक है, स्थानीय प्राथमिकता
आरएफसी
3484 [RFC3484] में वर्णित आईपी पते के लिए प्राथमिकता मान के बराबर सेट होना चाहिए।

घटक आईडी उम्मीदवार के लिए घटक आईडी है, और 0 और 356 समावेशी के बीच होना चाहिए।

आप बारी सर्वर आईपी देख सकते हैं और बंदरगाह एक रिले उम्मीदवार में दिखाया गया है। निम्नलिखित the RFC page 82 और webrtc hacks से लिया गया है।

a=candidate:2157334355<ID> 2<Component> udp<NetType> 33562367<Prioirty> 180.6.6.6<NAT pub IP> 54278<NAT pub Port> typ relay<Means it needs to be relayed through Turn> raddr 46.2.2.2<Relay address of turn> rport 38135<relay port of turn> generation 0 
+1

ऐसा लगता है कि क्रोम (ब्लिंक) स्थानीय वरीयता को दूरी/विलंबता से भी संशोधित करता है। एकाधिक मोड़ सर्वर का उपयोग करते समय, करीब वाले लोगों की आमतौर पर बहुत अधिक प्राथमिकता होती है। – Someone

संबंधित मुद्दे