2012-08-06 14 views
11

DNS-SD के माध्यम से एक सेवा की खोज हो जाने के बाद, उस होस्ट का पता कैसे हल किया जाता है, और क्या इसमें काफी समय/ओवरहेड लगता है?एमडीएनएस पते को कैसे हल करता है?

इसके अलावा, अगर मैं जेएमडीएनएस या बोनजोर का उपयोग कर रहा हूं तो serviceFound और serviceResolved दोनों के लिए कॉल-बैक हैं। यदि मुझे बस एक निश्चित सेवा प्रकाशित करने वाले डिवाइस के आईपी पते में दिलचस्पी है, तो serviceFound और serviceResolved दोनों के माध्यम से पता करने से पता करने का एक तेज़/अधिक प्रभावी तरीका है?

धन्यवाद

उत्तर

23

DNS-SD का उपयोग करता है मल्टीकास्ट DNS (mDNS) जो एक निश्चित बहुस्त्र्पीय पता करने के लिए UDP पर DNS पैकेट भेजने के द्वारा काम करता है। नेटवर्क में सभी एमडीएन-सक्षम मेजबान भी इस पते को सुनते हैं। यह यूडीपी का उपयोग करता है, इसलिए यह काफी कम ओवरहेड है। साथ ही, ग्राहकों को इस तरह से डिजाइन किया गया है कि व्यापक कैशिंग का उपयोग करके नेटवर्क पर चाप की मात्रा कम से कम रखी जाती है।

सेवा खोज एक दो चरण प्रक्रिया है। पहला कदम सभी होस्टों के नामों को एक निश्चित सेवा प्रदान करना है (उदाहरण के लिए प्रिंटिंग)। यह आपको अभी तक आईपी पता नहीं देगा, इसके बजाय यह आपको एमडीएनएस नाम देता है (.local के साथ समाप्त होता है)। ऐसा इसलिए है क्योंकि आईपी संभवतः बदल सकता है, जबकि नाम नहीं होगा।

सेवा खोज में दूसरा चरण mdns पर होस्ट के .local नाम को हल करना है। आप मल्टीकास्ट के माध्यम से पूछते हैं जो foo.local है, foo.local उस पैकेट को देखेगा, और इसके आईपी पते, पोर्ट नंबर और अन्य जानकारी के साथ प्रसारण के माध्यम से प्रतिक्रिया देगा।

+0

कृपया इस प्रश्न के साथ सहायता करें http://stackoverflow.com/questions/40662608/service-discovery-using-dns-sd – Daemon

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