डिस्ट्रिब्यूटेड हैश टेबल: Difference between revisions

From Vigyanwiki
No edit summary
No edit summary
 
(9 intermediate revisions by 4 users not shown)
Line 1: Line 1:
{{Short description|Decentralized distributed system with lookup service}}
{{Short description|Decentralized distributed system with lookup service}}
डिस्ट्रीब्यूटेड [[ हैश तालिका |हैश तालिका]] (DHT)   [[ वितरित अभिकलन |वितरित अभिकलन]] है जो की हैश टेबल के समान लुकअप सेवा प्रदान करती है। कुंजी-मूल्य जोड़े को DHT में संग्रहीत किया जाता है, और कोई भी भाग लेने वाला [[नोड (नेटवर्किंग)]] किसी दिए गए [[कुंजी (कंप्यूटिंग)]] से जुड़े मूल्य को कुशलतापूर्वक पुनः प्राप्त कर सकता है। DHT का मुख्य लाभ यह है कि कुंजियों को पुनः वितरित करने के लिए न्यूनतम कार्य के साथ नोड्स को जोड़ा या हटाया जा सकता है। ''कुंजियाँ'' अद्वितीय पहचानकर्ता हैं जो विशेष ''मानों'' को मैप करती हैं, जो बदले में पते से लेकर [[इलेक्ट्रॉनिक दस्तावेज़]] तक, मनमाने [[डेटा (कंप्यूटिंग)]] तक कुछ भी हो सकती हैं।<ref name=StoicaEtAl2001>{{Cite journal | last1 = Stoica | first1 = I. | author-link1 = Ion Stoica| last2 = Morris | first2 = R. | last3 = Karger | first3 = D. | author-link3 = David Karger| last4 = Kaashoek | first4 = M. F. | last5 = Balakrishnan | first5 = H. | author-link5 = Hari Balakrishnan| title = Chord: A scalable peer-to-peer lookup service for internet applications| doi = 10.1145/964723.383071 | journal = ACM SIGCOMM Computer Communication Review | volume = 31 | issue = 4 | pages = 149 | year = 2001 | url = http://pdos.csail.mit.edu/papers/chord:sigcomm01/chord_sigcomm.pdf |quote=A value can be an address, a document, or an arbitrary data item. }}</ref> कुंजी से मान तक मैपिंग को बनाए रखने की ज़िम्मेदारी नोड्स के बीच वितरित की जाती है, इस तरह से कि प्रतिभागियों के सेट में बदलाव से न्यूनतम मात्रा में व्यवधान होता है। यह DHT को अत्यधिक बड़ी संख्या में नोड्स को स्केल करने (कंप्यूटिंग) करने और निरंतर नोड आगमन, प्रस्थान और विफलताओं को संभालने की अनुमति देता है।
'''डिस्ट्रिब्यूटेड [[ हैश तालिका |हैश टेबल]]''' (डीएचटी) [[ वितरित अभिकलन |डिस्ट्रिब्यूटेड अभिकलन]] है जो की हैश टेबल के समान लुकअप सेवा प्रदान करती है। और कुंजी-मूल्य जोड़े को डीएचटी में संग्रहीत किया जाता है, चूंकि कोई भी भाग लेने वाला [[नोड (नेटवर्किंग)]] किसी दिए गए [[कुंजी (कंप्यूटिंग)]] से जुड़े मूल्य को कुशलतापूर्वक पुनः प्राप्त कर सकता है। डीएचटी का मुख्य लाभ यह है कि कुंजियों को पुनः डिस्ट्रिब्यूटेड करने के लिए न्यूनतम कार्य के साथ नोड्स को जोड़ा या घटाया जा सकता है। इस प्रकार से ''कुंजियाँ'' अद्वितीय पहचानकर्ता हैं जो विशेष ''मानों'' को मैप करती हैं, जो परिवर्तन करने में एड्रेसिंग से लेकर [[इलेक्ट्रॉनिक दस्तावेज़|इलेक्ट्रॉनिक डॉक्युमेंटेशन]] तक, इच्छानुकूल [[डेटा (कंप्यूटिंग)]] तक कुछ भी हो सकती हैं।<ref name=StoicaEtAl2001>{{Cite journal | last1 = Stoica | first1 = I. | author-link1 = Ion Stoica| last2 = Morris | first2 = R. | last3 = Karger | first3 = D. | author-link3 = David Karger| last4 = Kaashoek | first4 = M. F. | last5 = Balakrishnan | first5 = H. | author-link5 = Hari Balakrishnan| title = Chord: A scalable peer-to-peer lookup service for internet applications| doi = 10.1145/964723.383071 | journal = ACM SIGCOMM Computer Communication Review | volume = 31 | issue = 4 | pages = 149 | year = 2001 | url = http://pdos.csail.mit.edu/papers/chord:sigcomm01/chord_sigcomm.pdf |quote=A value can be an address, a document, or an arbitrary data item. }}</ref> कुंजी से मान तक मैपिंग को बनाए रखने की दायित्व नोड्स के मध्य डिस्ट्रिब्यूटेड की जाती है, इस प्रकार से कि प्रतिभागियों के सेट में परिवर्तन से न्यूनतम मात्रा में व्यवधान होता है। यह डीएचटी को अत्यधिक उच्च संख्या में नोड्स को स्केल करने (कंप्यूटिंग) करने और निरंतर नोड आगमन, प्रस्थान और विफलताओं को संभालने की अनुमति देता है।


डीएचटी   बुनियादी ढांचा बनाते हैं जिसका उपयोग अधिक जटिल सेवाओं के निर्माण के लिए किया जा सकता है, जैसे [[एनीकास्ट]], सहकारी [[वेब कैशिंग]], [[वितरित फ़ाइल सिस्टम]], डोमेन नाम प्रणाली, त्वरित संदेश, [[ बहुस्त्र्पीय |बहुस्त्र्पीय]] , और [[पीयर-टू-पीयर फ़ाइल साझाकरण]] और [[सामग्री वितरण]] प्रणाली भी। डीएचटी का उपयोग करने वाले उल्लेखनीय वितरित नेटवर्क में [[बिटटोरेंट (प्रोटोकॉल)]] का वितरित ट्रैकर, [[समय नेटवर्क]], [[ तूफ़ान बॉटनेट |तूफ़ान बॉटनेट]] , [[टॉक्स (प्रोटोकॉल)]], [[ फ़्रीनेट |फ़्रीनेट]] , [[ YaCy |YaCy]] सर्च इंजन और [[इंटरप्लेनेटरी फ़ाइल सिस्टम]] शामिल हैं। [[होलोचेन]]   परियोजना है जिसका लक्ष्य घरेलू कंप्यूटर DHT होस्टिंग प्रदान करना है।
चूंकि डीएचटी मूलभूत रूप से इसे बनाते हैं जिसका उपयोग अधिक समष्टि सेवाओं के निर्माण के लिए किया जा सकता है, जैसे [[एनीकास्ट]], सहकारी [[वेब कैशिंग]], [[वितरित फ़ाइल सिस्टम|डिस्ट्रिब्यूटेड फ़ाइल सिस्टम]], डोमेन नाम प्रणाली, त्वरित संदेश, बहुस्त्र्पीय , और पीयर-टू-पीयर फ़ाइल साझाकरण और [[सामग्री वितरण]] प्रणाली भी है। डीएचटी का उपयोग करने वाले उल्लेखनीय डिस्ट्रिब्यूटेड नेटवर्क में [[बिटटोरेंट (प्रोटोकॉल)]] का डिस्ट्रिब्यूटेड ट्रैकर, [[समय नेटवर्क|स्टॉर्म नेटवर्क]], [[ तूफ़ान बॉटनेट |टॉक्स इंस्टेंट मैसेंजर, फ़्रीनेट,]] [[टॉक्स (प्रोटोकॉल)|(प्रोटोकॉल)]], [[ YaCy |वाईएसीवाई]] सर्च इंजन और [[इंटरप्लेनेटरी फ़ाइल सिस्टम]] सम्मिलित हैं। इस प्रकार से [[होलोचेन]] एक परियोजना है जिसका लक्ष्य घरेलू कंप्यूटर डीएचटी होस्टिंग प्रदान करना है।


[[File:DHT en.svg|500px|right|thumb|वितरित हैश टेबल]]
[[File:DHT en.svg|500px|right|thumb|डिस्ट्रिब्यूटेड हैश टेबल ]]


== इतिहास ==
== इतिहास ==
डीएचटी अनुसंधान मूल रूप से, आंशिक रूप से, फ़्रीनेट, [[ग्नुटेला]], [[बिटटोरेंट]] और [[नैप्स्टर]] जैसे पीयर-टू-पीयर (पी2पी) सिस्टम द्वारा प्रेरित था, जिसने उपयोगी एप्लिकेशन प्रदान करने के लिए इंटरनेट पर वितरित संसाधनों का लाभ उठाया। विशेष रूप से, उन्होंने फ़ाइल-साझाकरण सेवा प्रदान करने के लिए बढ़ी हुई [[बैंडविड्थ (कंप्यूटिंग)]] और [[हार्ड डिस्क]] क्षमता का लाभ उठाया।<ref>{{cite journal |last1=Liz, Crowcroft|display-authors=et al |title=पीयर-टू-पीयर ओवरले नेटवर्क योजनाओं का सर्वेक्षण और तुलना|journal=IEEE Communications Surveys & Tutorials |date=2005 |volume=7 |issue=2 |pages=72–93|doi=10.1109/COMST.2005.1610546 |citeseerx=10.1.1.109.6124 |s2cid=7971188 |url=http://www.cl.cam.ac.uk/teaching/2005/AdvSysTop/survey.pdf }}</ref>
डीएचटी अनुसंधान मूल रूप से, आंशिक रूप से, फ़्रीनेट, [[ग्नुटेला]], [[बिटटोरेंट]] और [[नैप्स्टर]] जैसे पीयर-टू-पीयर (पी2पी) सिस्टम द्वारा प्रेरित था, जिसने एकल उपयोगी एप्लिकेशन प्रदान करने के लिए इंटरनेट पर डिस्ट्रिब्यूटेड संसाधनों का लाभ उठाया है। विशेष रूप से, उन्होंने फ़ाइल-साझाकरण सेवा प्रदान करने के लिए बढ़ी हुई [[बैंडविड्थ (कंप्यूटिंग)]] और [[हार्ड डिस्क]] क्षमता का लाभ उठाया है।<ref>{{cite journal |last1=Liz, Crowcroft|display-authors=et al |title=पीयर-टू-पीयर ओवरले नेटवर्क योजनाओं का सर्वेक्षण और तुलना|journal=IEEE Communications Surveys & Tutorials |date=2005 |volume=7 |issue=2 |pages=72–93|doi=10.1109/COMST.2005.1610546 |citeseerx=10.1.1.109.6124 |s2cid=7971188 |url=http://www.cl.cam.ac.uk/teaching/2005/AdvSysTop/survey.pdf }}</ref>


ये प्रणालियाँ इस बात में भिन्न थीं कि वे अपने साथियों द्वारा पेश किए गए डेटा का पता कैसे लगाते हैं। नैप्स्टर, पहली बड़े पैमाने की पी2पी सामग्री वितरण प्रणाली, को   केंद्रीय सूचकांक सर्वर की आवश्यकता होती है: प्रत्येक नोड, शामिल होने पर, स्थानीय रूप से रखी गई फ़ाइलों की   सूची सर्वर को भेजेगा, जो खोज करेगा और प्रश्नों को उन नोड्स को संदर्भित करेगा जो इसे धारण करते हैं। परिणाम। इस केंद्रीय घटक ने सिस्टम को हमलों और मुकदमों के प्रति संवेदनशील बना दिया।
इस प्रकार की प्रणालियाँ इस तथ्य में भिन्न थीं कि वे अपने सहकर्मी द्वारा उपयोग किए गए डेटा का एड्रेस कैसे लगाते हैं। और नैप्स्टर, पहले उच्च माप की पी2पी सामग्री वितरण प्रणाली, को केंद्रीय सूचकांक सर्वर की आवश्यकता होती है: इस प्रकार से प्रत्येक नोड, सम्मिलित होने पर, स्थानीय रूप से रखी गई फ़ाइलों की सूची सर्वर को भेजता है , जो खोज करके और प्रश्नों को उन नोड्स को संदर्भित करता है जो इसे धारण करते हैं। अर्थात परिणाम यह है, की केंद्रीय घटक ने सिस्टम को अटैक और स्तिथियों के प्रति संवेदनशील बना दिया है।


गुटेला और इसी तरह के नेटवर्क   [[क्वेरी बाढ़]] मॉडल में चले गए{{spaced ndash}} संक्षेप में, प्रत्येक खोज के परिणामस्वरूप नेटवर्क में हर दूसरी मशीन पर   संदेश प्रसारित होगा। विफलता के   भी बिंदु से बचते हुए, यह विधि नैप्स्टर की तुलना में काफी कम कुशल थी। गुटेला क्लाइंट के बाद के संस्करण   गतिशील क्वेरी मॉडल में चले गए जिससे दक्षता में काफी सुधार हुआ।<ref>{{cite journal |last1=Richter, Stevenson|display-authors=et al |title=क्लाइंट-सर्वर संबंधों पर गतिशील क्वेरी मॉडल के प्रभाव का विश्लेषण|journal=Trends in Modern Computing |date=2009 |pages=682–701}}</ref>
किन्तु गुटेला और इसी प्रकार के नेटवर्क [[क्वेरी बाढ़|क्वेरी फ्लडिंग]] मॉडल में चले गए{{spaced ndash}} संक्षेप में, प्रत्येक खोज के परिणामस्वरूप नेटवर्क में हर दूसरी मशीन पर संदेश प्रसारित की जाती है। और विफलता के बिंदु से बचते हुए, यह विधि नैप्स्टर की तुलना में अधिक कम कुशल थी। गुटेला क्लाइंट के पश्चात्के संस्करण गतिशील क्वेरी मॉडल में चले गए जिससे दक्षता में अधिक सुधार किया गया है।<ref>{{cite journal |last1=Richter, Stevenson|display-authors=et al |title=क्लाइंट-सर्वर संबंधों पर गतिशील क्वेरी मॉडल के प्रभाव का विश्लेषण|journal=Trends in Modern Computing |date=2009 |pages=682–701}}</ref>


फ़्रीनेट पूरी तरह से वितरित है, लेकिन  [[ह्यूरिस्टिक (कंप्यूटर विज्ञान)]] [[कुंजी-आधारित रूटिंग]] को नियोजित करता है जिसमें प्रत्येक फ़ाइल   कुंजी से जुड़ी होती है, और समान कुंजी वाली फ़ाइलें नोड्स के समान सेट पर क्लस्टर होती हैं। कई साथियों से मिलने की आवश्यकता के बिना प्रश्नों को नेटवर्क के माध्यम से ऐसे क्लस्टर में भेजे जाने की संभावना है।<ref>{{citation |url=https://freenetproject.org/papers/lic.pdf |title=Searching in a Small World Chapters 1 & 2 |access-date=2012-01-10}}</ref> हालाँकि, फ़्रीनेट यह गारंटी नहीं देता कि डेटा मिल जाएगा।
फ़्रीनेट पूर्ण रूप से डिस्ट्रिब्यूटेड है, किन्तु [[ह्यूरिस्टिक (कंप्यूटर विज्ञान)]] [[कुंजी-आधारित रूटिंग]] को नियोजित करता है जिसमें प्रत्येक फ़ाइल कुंजी से जुड़ी होती है, और समान कुंजी वाली फ़ाइलें नोड्स के समान सेट पर क्लस्टर होती हैं। इस प्रकार अनेक सहकर्मी से मिलने की आवश्यकता के बिना प्रश्नों को नेटवर्क के माध्यम से ऐसे क्लस्टर में भेजे जाने की संभावना है।<ref>{{citation |url=https://freenetproject.org/papers/lic.pdf |title=Searching in a Small World Chapters 1 & 2 |access-date=2012-01-10}}</ref> चूंकि , फ़्रीनेट ने यह प्रमाण नहीं दिया कि डेटा पुनः प्राप्त होता है।


वितरित हैश टेबल फ़्रीनेट और गुटेला के विकेंद्रीकरण और नैप्स्टर की दक्षता और गारंटीकृत परिणाम दोनों प्राप्त करने के लिए अधिक संरचित कुंजी-आधारित रूटिंग का उपयोग करते हैं।   कमी यह है कि, फ़्रीनेट की तरह, डीएचटी केवल कीवर्ड खोज के बजाय सीधे सटीक-मिलान खोज का समर्थन करते हैं, हालांकि फ़्रीनेट के [[रूटिंग एल्गोरिदम]] को किसी भी कुंजी प्रकार के लिए सामान्यीकृत किया जा सकता है जहां निकटता ऑपरेशन को परिभाषित किया जा सकता है।<ref>{{citation |chapter-url=https://freenetproject.org/papers/ddisrs.pdf |title=A Distributed Decentralized Information Storage and Retrieval System |chapter=Section 5.2.2 |access-date=2012-01-10}}</ref>
इस प्रकार से डिस्ट्रिब्यूटेड हैश टेबल फ़्रीनेट और गुटेला के विकेंद्रीकरण और नैप्स्टर की दक्षता और प्रमाण कृत परिणाम दोनों प्राप्त करने के लिए अधिक संरचित कुंजी-आधारित रूटिंग का उपयोग करते हैं। एक कमी यह है कि, फ़्रीनेट की तरह, डीएचटी केवल कीवर्ड खोज के अतिरिक्त सीधे स्पष्ट -मिलान खोज का समर्थन करते हैं, चूंकि फ़्रीनेट के [[रूटिंग एल्गोरिदम]] को किसी भी कुंजी प्रकार के लिए सामान्यीकृत किया जा सकता है जहां निकटता ऑपरेशन को परिभाषित किया जा सकता है।<ref>{{citation |chapter-url=https://freenetproject.org/papers/ddisrs.pdf |title=A Distributed Decentralized Information Storage and Retrieval System |chapter=Section 5.2.2 |access-date=2012-01-10}}</ref>


2001 में, चार सिस्टम-[[ सामग्री पतायोग्य नेटवर्क | सामग्री पतायोग्य नेटवर्क]] ,<ref name="Ratnasamy01">{{cite journal |title=एक स्केलेबल कंटेंट-एड्रेसेबल नेटवर्क|publisher=In Proceedings of ACM SIGCOMM 2001 |author=Ratnasamy |year=2001 |url=http://www.eecs.berkeley.edu/~sylvia/papers/cans.pdf |access-date=2013-05-20|display-authors=etal}}</ref> [[कॉर्ड (पीयर-टू-पीयर)]],<ref>[[Hari Balakrishnan]], [[M. Frans Kaashoek]], David Karger, [[Robert Tappan Morris|Robert Morris]], and Ion Stoica. [http://www.cs.berkeley.edu/~istoica/papers/2003/cacm03.pdf Looking up data in P2P systems]. In [[Communications of the ACM]], February 2003.</ref> पेस्ट्री (डीएचटी), और [[टे[[पेस्ट्री (DHT)]]]]डीएचटी) - ने डीएचटी को   लोकप्रिय शोध विषय के रूप में प्रज्वलित किया।
अतः 2001 में, चार सिस्टम-[[ सामग्री पतायोग्य नेटवर्क | सामग्री एड्रेसयोग्य नेटवर्क]] ,<ref name="Ratnasamy01">{{cite journal |title=एक स्केलेबल कंटेंट-एड्रेसेबल नेटवर्क|publisher=In Proceedings of ACM SIGCOMM 2001 |author=Ratnasamy |year=2001 |url=http://www.eecs.berkeley.edu/~sylvia/papers/cans.pdf |access-date=2013-05-20|display-authors=etal}}</ref> [[कॉर्ड (पीयर-टू-पीयर)]],<ref>[[Hari Balakrishnan]], [[M. Frans Kaashoek]], David Karger, [[Robert Tappan Morris|Robert Morris]], and Ion Stoica. [http://www.cs.berkeley.edu/~istoica/papers/2003/cacm03.pdf Looking up data in P2P systems]. In [[Communications of the ACM]], February 2003.</ref> पेस्ट्री (डीएचटी), और टेपेस्ट्री (डीएचटी) - ने डीएचटी को लोकप्रिय शोध विषय के रूप में प्रज्वलित किया है।


इंफ्रास्ट्रक्चर फॉर रेजिलिएंट इंटरनेट सिस्टम्स (आइरिस) नामक   परियोजना को 2002 में यूनाइटेड स्टेट्स [[ राष्ट्रीय विज्ञान संस्था |राष्ट्रीय विज्ञान संस्था]] से 12 मिलियन डॉलर के अनुदान द्वारा वित्त पोषित किया गया था।<ref>{{Cite news |title= New P2P network funded by US government |author= David Cohen |work= New Scientist |date= October 1, 2002 |url= https://www.newscientist.com/article.ns?id=dn2861 |access-date= November 10, 2013 }}</ref>
इंफ्रास्ट्रक्चर फॉर रेजिलिएंट इंटरनेट सिस्टम्स (आइरिस) नामक परियोजना को 2002 में यूनाइटेड स्टेट्स [[ राष्ट्रीय विज्ञान संस्था |राष्ट्रीय विज्ञान संस्था]] से 12 मिलियन डॉलर के अनुदान द्वारा वित्त पोषित किया गया था।<ref>{{Cite news |title= New P2P network funded by US government |author= David Cohen |work= New Scientist |date= October 1, 2002 |url= https://www.newscientist.com/article.ns?id=dn2861 |access-date= November 10, 2013 }}</ref>


शोधकर्ताओं में [[सिल्विया रत्नासामी]], [[आयन स्टोइका]], [[बालकृष्णन दिवस]] और [[स्कॉट शेन्कर]] शामिल थे।<ref>{{Cite news |title= एमआईटी, बर्कले, आईसीएसआई, एनवाईयू और राइस ने आईआरआईएस प्रोजेक्ट लॉन्च किया|work= Press release |publisher= MIT |date= September 25, 2002 |url= https://iris.pdos.csail.mit.edu/MITPressRelease1.doc |access-date= November 10, 2013 |url-status= dead |archive-url= https://web.archive.org/web/20150926070618/https://iris.pdos.csail.mit.edu/MITPressRelease1.doc |archive-date= September 26, 2015 }}</ref>
शोधकर्ताओं में [[सिल्विया रत्नासामी]], [[आयन स्टोइका]], [[बालकृष्णन दिवस]] और [[स्कॉट शेन्कर]] सम्मिलित थे।<ref>{{Cite news |title= एमआईटी, बर्कले, आईसीएसआई, एनवाईयू और राइस ने आईआरआईएस प्रोजेक्ट लॉन्च किया|work= Press release |publisher= MIT |date= September 25, 2002 |url= https://iris.pdos.csail.mit.edu/MITPressRelease1.doc |access-date= November 10, 2013 |url-status= dead |archive-url= https://web.archive.org/web/20150926070618/https://iris.pdos.csail.mit.edu/MITPressRelease1.doc |archive-date= September 26, 2015 }}</ref>


शिक्षा जगत के बाहर, डीएचटी तकनीक को बिटटोरेंट और कोरल कंटेंट डिस्ट्रीब्यूशन नेटवर्क के   घटक के रूप में अपनाया गया है।
शिक्षा जगत के बाहर, डीएचटी विधियों को बिटटोरेंट और कोरल कंटेंट डिस्ट्रीब्यूशन नेटवर्क के घटक के रूप में अपनाया गया है।


== गुण ==
== गुण ==
DHT विशेष रूप से निम्नलिखित गुणों पर जोर देते हैं:
इस प्रकार से डीएचटी विशेष रूप से निम्नलिखित गुणों पर महत्त्व देते हैं:


* [[विकेंद्रीकृत कंप्यूटिंग]]: नोड्स बिना किसी केंद्रीय समन्वय के सामूहिक रूप से सिस्टम बनाते हैं।
* [[विकेंद्रीकृत कंप्यूटिंग]]: नोड्स बिना किसी केंद्रीय समन्वय के सामूहिक रूप से सिस्टम बनाते हैं।
* दोष सहनशीलता: नोड्स के लगातार जुड़ने, छोड़ने और विफल होने पर भी सिस्टम विश्वसनीय (कुछ अर्थों में) होना चाहिए।<ref>R Mokadem, A Hameurlain and AM Tjoa. [https://www.irit.fr/~Riad.Mokadem/wp-content/uploads/sites/67/2020/12/Resource-discovery-service-while-minimizing-maintenance-overhead-in-hierarchical-DHT-systems-iiWas2010.pdf Resource discovery service while minimizing maintenance overhead in hierarchical DHT systems]. Proc. iiWas, 2010</ref>
* दोष सहनशीलता: नोड्स के निरंतर जुड़ने, छोड़ने और विफल होने पर भी सिस्टम विश्वसनीय (कुछ अर्थों में) होना चाहिए।<ref>R Mokadem, A Hameurlain and AM Tjoa. [https://www.irit.fr/~Riad.Mokadem/wp-content/uploads/sites/67/2020/12/Resource-discovery-service-while-minimizing-maintenance-overhead-in-hierarchical-DHT-systems-iiWas2010.pdf Resource discovery service while minimizing maintenance overhead in hierarchical DHT systems]. Proc. iiWas, 2010</ref>
* स्केल (कंप्यूटिंग): सिस्टम को हजारों या लाखों नोड्स के साथ भी कुशलतापूर्वक कार्य करना चाहिए।
* स्केल (कंप्यूटिंग): सिस्टम को हजारों या लाखों नोड्स के साथ भी कुशलतापूर्वक कार्य करना चाहिए।


इन लक्ष्यों को प्राप्त करने के लिए उपयोग की जाने वाली   प्रमुख तकनीक यह है कि किसी भी   नोड को सिस्टम में केवल कुछ अन्य नोड्स के साथ समन्वय करने की आवश्यकता होती है - आमतौर पर, एन प्रतिभागियों के [[ बिग ओ अंकन |बिग ओ अंकन]] (लॉग एन) (नीचे देखें) - ताकि केवल   सीमित नोड हो सदस्यता में प्रत्येक परिवर्तन के लिए कितना कार्य करने की आवश्यकता है।
इन लक्ष्यों को प्राप्त करने के लिए उपयोग की जाने वाली प्रमुख विधिय यह है कि किसी भी नोड को सिस्टम में केवल कुछ अन्य नोड्स के साथ समन्वय करने की आवश्यकता होती है सामान्यतः , एन प्रतिभागियों के [[ बिग ओ अंकन |बिग ओ अंकन]] (लॉग एन) (नीचे देखें) - जिससे केवल सीमित नोड हो सदस्यता में प्रत्येक परिवर्तन के लिए कितना कार्य करने की आवश्यकता है।


कुछ DHT डिज़ाइन दुर्भावनापूर्ण प्रतिभागियों के विरुद्ध [[सुरक्षित संचार]] चाहते हैं<ref>Guido Urdaneta, Guillaume Pierre and Maarten van Steen. [http://www.globule.org/publi/SDST_acmcs2009.html A Survey of DHT Security Techniques]. ACM Computing Surveys 43(2), January 2011.</ref> और प्रतिभागियों को गुमनाम रहने की अनुमति देना, हालांकि यह कई अन्य पीयर-टू-पीयर (विशेष रूप से फ़ाइल साझाकरण) प्रणालियों की तुलना में कम आम है; [[अनाम पी2पी]] देखें।
कुछ डीएचटी डिज़ाइन दुर्भावनापूर्ण प्रतिभागियों के विरुद्ध [[सुरक्षित संचार]] चाहते हैं <ref>Guido Urdaneta, Guillaume Pierre and Maarten van Steen. [http://www.globule.org/publi/SDST_acmcs2009.html A Survey of DHT Security Techniques]. ACM Computing Surveys 43(2), January 2011.</ref> और प्रतिभागियों को गुमनाम रहने की अनुमति देना, चूंकि यह कई अन्य पीयर-टू-पीयर (विशेष रूप से फ़ाइल साझाकरण) और [[अनाम पी2पी]] देखें अतः इस प्रकार से यह प्रणालियों की तुलना में कम समान है;


== संरचना ==
== संरचना ==
DHT की संरचना को कई मुख्य घटकों में विघटित किया जा सकता है।<ref>Moni Naor and Udi Wieder. [http://www.wisdom.weizmann.ac.il/~naor/PAPERS/dh.pdf Novel Architectures for P2P Applications: the Continuous-Discrete Approach]. Proc. SPAA, 2003.</ref><ref>Gurmeet Singh Manku. [http://www-db.stanford.edu/~manku/phd/index.html Dipsea: A Modular Distributed Hash Table] {{webarchive|url=https://web.archive.org/web/20040910154927/http://www-db.stanford.edu/~manku/phd/index.html |date=2004-09-10 }}. Ph. D. Thesis (Stanford University), August 2004.</ref> आधार   अमूर्त [[कीस्पेस (वितरित डेटा स्टोर)]] है, जैसे कि 160-बिट [[स्ट्रिंग (कंप्यूटर विज्ञान)]] का सेट।  कीस्पेस [[विभाजन (डेटाबेस)]] योजना इस कीस्पेस के स्वामित्व को भाग लेने वाले नोड्स के बीच विभाजित करती है।   [[ओवरले नेटवर्क]] तब नोड्स को जोड़ता है, जिससे उन्हें कीस्पेस में किसी भी कुंजी के मालिक को ढूंढने की अनुमति मिलती है।
डीएचटी की संरचना को कई मुख्य घटकों में विघटित किया जा सकता है।<ref>Moni Naor and Udi Wieder. [http://www.wisdom.weizmann.ac.il/~naor/PAPERS/dh.pdf Novel Architectures for P2P Applications: the Continuous-Discrete Approach]. Proc. SPAA, 2003.</ref><ref>Gurmeet Singh Manku. [http://www-db.stanford.edu/~manku/phd/index.html Dipsea: A Modular Distributed Hash Table] {{webarchive|url=https://web.archive.org/web/20040910154927/http://www-db.stanford.edu/~manku/phd/index.html |date=2004-09-10 }}. Ph. D. Thesis (Stanford University), August 2004.</ref> किन्तु आधार एब्स्ट्रेक्ट [[कीस्पेस (वितरित डेटा स्टोर)|कीस्पेस (डिस्ट्रिब्यूटेड डेटा स्टोर)]] है, जैसे कि 160-बिट [[स्ट्रिंग (कंप्यूटर विज्ञान)]] का सेट है। चूंकि कीस्पेस [[विभाजन (डेटाबेस)]] योजना इस कीस्पेस के स्वामित्व को भाग लेने वाले नोड्स के मध्य विभाजित करती है। और [[ओवरले नेटवर्क]] तब नोड्स को जोड़ता है, जिससे उन्हें कीस्पेस में किसी भी कुंजी के उत्तरदायित्व के रूप में अनुमति मिलती है।  


बार ये घटक स्थापित हो जाएं, तो भंडारण और पुनर्प्राप्ति के लिए डीएचटी का सामान्य उपयोग निम्नानुसार आगे बढ़ सकता है। मान लीजिए कि कीस्पेस 160-बिट स्ट्रिंग्स का सेट है। किसी फ़ाइल को दिए गए के साथ अनुक्रमित करने के लिए {{Var serif|filename}} और {{mvar|data}} DHT में, [[SHA-1]] हैश {{mvar|filename}} 160-बिट कुंजी उत्पन्न करते हुए उत्पन्न होता है {{mvar|k}}, और   संदेश {{math|''put''(''k, data'')}} DHT में भाग लेने वाले किसी भी नोड को भेजा जाता है। संदेश को ओवरले नेटवर्क के माध्यम से नोड से नोड तक अग्रेषित किया जाता है जब तक कि यह कुंजी के लिए जिम्मेदार  ल नोड तक नहीं पहुंच जाता {{mvar|k}} जैसा कि कीस्पेस विभाजन द्वारा निर्दिष्ट किया गया है। वह नोड फिर कुंजी और डेटा संग्रहीत करता है। कोई अन्य क्लाइंट फिर से हैशिंग द्वारा फ़ाइल की सामग्री को पुनः प्राप्त कर सकता है {{mvar|filename}} उत्पन्न करना {{mvar|k}} और किसी भी DHT नोड से संबद्ध डेटा ढूंढने के लिए कहना {{mvar|k}}  संदेश के साथ {{math|''get''(''k'')}}. संदेश को फिर से ओवरले के माध्यम से जिम्मेदार नोड तक भेजा जाएगा {{mvar|k}}, जो संग्रहीत के साथ उत्तर देगा {{mvar|data}}.
इस प्रकार से एक बार ये घटक स्थापित हो जाएं, तो संचयन और पुनर्प्राप्ति के लिए डीएचटी का सामान्य उपयोग निम्नानुसार आगे बढ़ सकता है। मान लीजिए कि कीस्पेस 160-बिट स्ट्रिंग्स का सेट है। डीएचटी में दिए गए {{mvar|filename                                                                               }} और डेटा के साथ एक फ़ाइल को अनुक्रमित करने के लिए, {{mvar|filename                                                                                  }} का [[SHA-1|एसएचए-1]] हैश उत्पन्न होता है, जिससे 160-बिट कुंजी {{mvar|k}} उत्पन्न होती है, और डीएचटी में भाग लेने वाले किसी भी नोड को एक संदेश {{math|''put''(''k, data'')                                                                   }} भेजा जाता है। इस प्रकार से संदेश को ओवरले नेटवर्क के माध्यम से नोड से नोड तक अग्रेषित किया जाता है जब तक कि यह कीस्पेस विभाजन द्वारा निर्दिष्ट कुंजी k के लिए उत्तरदायित्व एकल नोड तक नहीं पहुंच जाता। वह नोड फिर कुंजी और डेटा संग्रहीत करता है। कोई अन्य क्लाइंट फिर से {{mvar|k}} उत्पन्न करने के लिए {{mvar|filename}} को हैश करके फ़ाइल की सामग्री को पुनः प्राप्त कर सकता है और किसी भी डीएचटी नोड को एक संदेश {{math|''get''(''k'')}} के साथ k से जुड़े डेटा को खोजने के लिए कह सकता है। संदेश को फिर से ओवरले के माध्यम से {{mvar|k}} के लिए उत्तरदायित्व नोड पर भेजा जाएगा, जो संग्रहीत {{mvar|data}} के साथ उत्तर देता है।


अधिकांश डीएचटी के लिए सामान्य प्रमुख विचारों को पकड़ने के लक्ष्य के साथ कीस्पेस विभाजन और ओवरले नेटवर्क घटकों का वर्णन नीचे किया गया है; कई डिज़ाइन विवरण में भिन्न होते हैं।
अतः अधिकांश डीएचटी के लिए सामान्य प्रमुख विचारों को पकड़ने के लक्ष्य के साथ कीस्पेस विभाजन और ओवरले नेटवर्क घटकों का वर्णन नीचे किया गया है; कई डिज़ाइन विवरण में भिन्न होते हैं।


=== कीस्पेस विभाजन ===
=== कीस्पेस विभाजन ===
अधिकांश डीएचटी नोड्स की कुंजियों को मैप करने के लिए सुसंगत हैशिंग या मिलनसार हैशिंग के कुछ प्रकार का उपयोग करते हैं। ऐसा प्रतीत होता है कि वितरित हैश तालिका समस्या को हल करने के लिए दो एल्गोरिदम स्वतंत्र रूप से और   साथ तैयार किए गए हैं।
इस प्रकार से अधिकांश डीएचटी नोड्स की कुंजियों को मैप करने के लिए सुसंगत हैशिंग या मिलनसार हैशिंग के कुछ प्रकार का उपयोग करते हैं। ऐसा प्रतीत होता है कि डिस्ट्रिब्यूटेड हैश टेबल समस्या को हल करने के लिए दो एल्गोरिदम स्वतंत्र रूप से और साथ तैयार किए गए हैं।


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


==== लगातार हैशिंग ====
==== निरंतर हैशिंग ====
{{further|Consistent hashing}}
{{further|निरंतर हैशिंग}}


लगातार हैशिंग   फ़ंक्शन को नियोजित करती है <math>\delta(k_1, k_2)</math> यह कुंजियों के बीच की दूरी की   अमूर्त धारणा को परिभाषित करता है <math>k_1</math> और <math>k_2</math>, जो भौगोलिक दूरी या [[नेटवर्क विलंबता]] से असंबंधित है। प्रत्येक नोड को   कुंजी सौंपी जाती है जिसे उसका पहचानकर्ता (आईडी) कहा जाता है। आईडी के साथ   नोड <math>i_x</math> सभी चाबियों का स्वामी है <math>k_m</math> जिसके लिए <math>i_x</math> निकटतम आईडी है, जिसके अनुसार मापा जाता है <math>\delta(k_m, i_x)</math>.
निरंतर हैशिंग फ़ंक्शन <math>\delta(k_1, k_2)</math> को नियोजित करती है यह कुंजियों के मध्य की दूरी की एब्स्ट्रेक्ट धारणा को परिभाषित करता है मान लीजिये <math>k_1</math> और <math>k_2</math>, जो भौगोलिक दूरी या [[नेटवर्क विलंबता]] से असंबंधित है। प्रत्येक नोड को कुंजी सौंपी जाती है जिसे उसका पहचानकर्ता (आईडी) कहा जाता है। आईडी के साथ नोड <math>i_x</math> सभी कुंजियों <math>k_m</math> का स्वामित्व है जिसके लिए <math>i_x</math> निकटतम आईडी है, जिसके अनुसार <math>\delta(k_m, i_x)</math> मापा जाता है .


उदाहरण के लिए, कॉर्ड (पीयर-टू-पीयर) लगातार हैशिंग का उपयोग करता है, जो नोड्स को   सर्कल पर बिंदुओं के रूप में मानता है, और <math>\delta(k_1, k_2)</math> वृत्त के चारों ओर दक्षिणावर्त यात्रा करने वाली दूरी है <math>k_1</math> को <math>k_2</math>. इस प्रकार, वृत्ताकार कुंजीस्थान सन्निहित खंडों में विभाजित हो जाता है जिनके समापन बिंदु नोड पहचानकर्ता होते हैं। अगर <math>i_1</math> और <math>i_2</math> दो आसन्न आईडी हैं, जिनकी दक्षिणावर्त दूरी कम है <math>i_1</math> को <math>i_2</math>, फिर आईडी वाला नोड <math>i_2</math> बीच में पड़ने वाली सभी कुंजियों का स्वामी है <math>i_1</math> और <math>i_2</math>.
इस प्रकार से उदाहरण के लिए, कॉर्ड (पीयर-टू-पीयर) निरंतर हैशिंग का उपयोग करता है, जो नोड्स को सर्कल पर बिंदुओं के रूप में मानता है, और <math>\delta(k_1, k_2)</math> वृत्त के चारों ओर दक्षिणावर्त यात्रा करने वाली दूरी है <math>k_1</math> को <math>k_2</math>. इस प्रकार, वृत्ताकार कुंजीस्थान सन्निहित खंडों में विभाजित हो जाता है जिनके समापन बिंदु नोड पहचानकर्ता होते हैं। यदि <math>i_1</math> और <math>i_2</math> दो आसन्न आईडी हैं, जिनकी दक्षिणावर्त दूरी कम है यदि <math>i_1</math> को <math>i_2</math>, फिर आईडी वाला नोड <math>i_2</math> मध्य में पड़ने वाली सभी कुंजियों का स्वामित्व है <math>i_1</math> और <math>i_2</math>. आदि


==== मिलन स्थल हैशिंग ====
==== [[मिलन स्थल हैशिंग|रेनडेज़वोअस]] हैशिंग ====
{{further|Rendezvous hashing}}
{{further|रेनडेज़वोअस हैशिंग}}
 
[[मिलन स्थल हैशिंग|'''रेनडेज़वोअस''']] '''हैशिंग''' में, जिसे उच्चतम यादृच्छिक मूल्यांकन (एचआरडब्ल्यू) हैशिंग भी कहा जाता है, सभी क्लाइंट समान हैश फ़ंक्शन <math>h()                                                                                                                                                                                                                </math> का उपयोग करते हैं (समय से पहले चुना गया) किसी कुंजी को उपलब्ध सर्वरों में से किसी से संबद्ध करने के लिए उपयोग किया गया है।
 
प्रत्येक ग्राहक के पास पहचानकर्ताओं की समान सूची {{math|{{mset|''S''<sub>1</sub>, ''S''<sub>2</sub>, ..., ''S''<sub>''n''</sub> }}}} होती है , प्रत्येक सर्वर के लिए गणना करता है।
 
{{math|1=''w''<sub>1</sub> = ''h''(''S''<sub>1</sub>, ''k''), ''w''<sub>2</sub> = ''h''(''S''<sub>2</sub>, ''k''), ..., ''w''<sub>''n''</sub> = ''h''(''S''<sub>''n''</sub>, ''k'')}} कुछ कुंजी k दिए जाने पर, ग्राहक n हैश भार की गणना करता है .


मिलन स्थल हैशिंग में, जिसे उच्चतम यादृच्छिक वजन (एचआरडब्ल्यू) हैशिंग भी कहा जाता है, सभी क्लाइंट समान हैश फ़ंक्शन का उपयोग करते हैं <math>h()</math> (समय से पहले चुना गया) किसी कुंजी को उपलब्ध सर्वरों में से किसी  से संबद्ध करने के लिए।
प्रत्येक ग्राहक के पास पहचानकर्ताओं की समान सूची होती है {{math|{{mset|''S''<sub>1</sub>, ''S''<sub>2</sub>, ..., ''S''<sub>''n''</sub> }}}}, प्रत्येक सर्वर के लिए  ।
कुछ कुंजी k दिए जाने पर, ग्राहक n हैश भार की गणना करता है {{math|1=''w''<sub>1</sub> = ''h''(''S''<sub>1</sub>, ''k''), ''w''<sub>2</sub> = ''h''(''S''<sub>2</sub>, ''k''), ..., ''w''<sub>''n''</sub> = ''h''(''S''<sub>''n''</sub>, ''k'')}}.
क्लाइंट उस कुंजी को उस कुंजी के उच्चतम हैश भार के अनुरूप सर्वर के साथ जोड़ता है।
क्लाइंट उस कुंजी को उस कुंजी के उच्चतम हैश भार के अनुरूप सर्वर के साथ जोड़ता है।
आईडी वाला   सर्वर <math>S_x</math> सभी चाबियों का स्वामी है <math>k_m</math> जिसके लिए हैश वजन <math>h(S_x, k_m)</math> उस कुंजी के लिए किसी अन्य नोड के हैश भार से अधिक है।
 
आईडी वाला सर्वर <math>S_x</math> सभी कुंजियों का स्वामित्व है <math>k_m</math> जिसके लिए हैश वजन <math>h(S_x, k_m)</math> उस कुंजी के लिए किसी अन्य नोड के हैश भार से अधिक है।


==== स्थानीयता-संरक्षण हैशिंग ====
==== स्थानीयता-संरक्षण हैशिंग ====
{{further|Locality-preserving hashing}}
{{further|स्थानीयता-संरक्षण हैशिंग}}


स्थानीयता-संरक्षण हैशिंग यह सुनिश्चित करती है कि समान वस्तुओं को समान कुंजियाँ सौंपी गई हैं। यह रेंज क्वेरीज़ के अधिक कुशल निष्पादन को सक्षम कर सकता है, हालांकि, लगातार हैशिंग का उपयोग करने के विपरीत, इस बात का कोई आश्वासन नहीं है कि कुंजी (और इस प्रकार लोड) कुंजी स्थान और भाग लेने वाले साथियों पर समान रूप से यादृच्छिक रूप से वितरित की जाती है। डीएचटी प्रोटोकॉल जैसे सेल्फ-कॉर्ड और ऑस्कर<ref>{{Cite journal|last1=Girdzijauskas|first1=Šarūnas|last2=Datta|first2=Anwitaman|last3=Aberer|first3=Karl|date=2010-02-01|title=विषम वातावरण के लिए संरचित ओवरले|journal=ACM Transactions on Autonomous and Adaptive Systems|volume=5|issue=1|pages=1–25|doi=10.1145/1671948.1671950|s2cid=13218263|issn=1556-4665|url=http://infoscience.epfl.ch/record/134972}}</ref> ऐसे मुद्दों का समाधान करें. सेल्फ-कॉर्ड, सहकर्मी आईडी से ऑब्जेक्ट कुंजियों को अलग करता है और [[झुंड खुफिया]] प्रतिमान के आधार पर सांख्यिकीय दृष्टिकोण के साथ रिंग के साथ कुंजियों को सॉर्ट करता है।<ref>{{cite journal |last1=Forestiero |first1=Agostino |last2=Leonardi |first2=Emilio |last3=Mastroianni |first3=Carlo |last4=Meo |first4=Michela |title=Self-Chord: A Bio-Inspired P2P Framework for Self-Organizing Distributed Systems |journal=IEEE/ACM Transactions on Networking |date=October 2010 |volume=18 |issue=5 |pages=1651–1664 |doi=10.1109/TNET.2010.2046745 |s2cid=14797120 |url=http://porto.polito.it/2370172/ }}</ref> सॉर्टिंग यह सुनिश्चित करती है कि समान कुंजियाँ पड़ोसी नोड्स द्वारा संग्रहीत की जाती हैं और रेंज क्वेरी (डेटा संरचना) सहित खोज प्रक्रियाएं, लॉगरिदमिक समय में की जा सकती हैं। ऑस्कर [[ यादृच्छिक चाल |यादृच्छिक चाल]] सैंपलिंग के आधार पर   नौगम्य [[लघु-विश्व नेटवर्क]] का निर्माण करता है जो लॉगरिदमिक खोज समय का भी आश्वासन देता है।
इस प्रकार से स्थानीयता-संरक्षण हैशिंग यह सुनिश्चित करती है जो कि समान वस्तुओं को समान कुंजियाँ सौंपी गई हैं। यह रेंज क्वेरीज़ के अधिक कुशल निष्पादन को सक्षम कर सकता है, चूंकि , निरंतर हैशिंग का उपयोग करने के विपरीत, इस तथ्य का कोई आश्वासन नहीं है कि कुंजी (और इस प्रकार लोड) कुंजी स्थान और भाग लेने वाले सहकर्मी पर समान रूप से यादृच्छिक रूप से डिस्ट्रिब्यूटेड की जाती है। डीएचटी प्रोटोकॉल जैसे सेल्फ-कॉर्ड और ऑस्कर <ref>{{Cite journal|last1=Girdzijauskas|first1=Šarūnas|last2=Datta|first2=Anwitaman|last3=Aberer|first3=Karl|date=2010-02-01|title=विषम वातावरण के लिए संरचित ओवरले|journal=ACM Transactions on Autonomous and Adaptive Systems|volume=5|issue=1|pages=1–25|doi=10.1145/1671948.1671950|s2cid=13218263|issn=1556-4665|url=http://infoscience.epfl.ch/record/134972}}</ref> ऐसे नियमो का समाधान करें. और सेल्फ-कॉर्ड, सहकर्मी आईडी से ऑब्जेक्ट कुंजियों को अलग करता है और [[झुंड खुफिया|समूह बुद्धिमत्ता]] प्रतिमान के आधार पर सांख्यिकीय दृष्टिकोण के साथ रिंग के साथ कुंजियों को सॉर्ट करता है।<ref>{{cite journal |last1=Forestiero |first1=Agostino |last2=Leonardi |first2=Emilio |last3=Mastroianni |first3=Carlo |last4=Meo |first4=Michela |title=Self-Chord: A Bio-Inspired P2P Framework for Self-Organizing Distributed Systems |journal=IEEE/ACM Transactions on Networking |date=October 2010 |volume=18 |issue=5 |pages=1651–1664 |doi=10.1109/TNET.2010.2046745 |s2cid=14797120 |url=http://porto.polito.it/2370172/ }}</ref> सॉर्टिंग यह सुनिश्चित करती है कि समान कुंजियाँ निकटम नोड्स द्वारा संग्रहीत की जाती हैं और रेंज क्वेरी (डेटा संरचना) सहित खोज प्रक्रियाएं, लॉगरिदमिक समय में की जा सकती हैं। ऑस्कर [[ यादृच्छिक चाल |यादृच्छिक चाल]] सैंपलिंग के आधार पर नौगम्य [[लघु-विश्व नेटवर्क]] का निर्माण करता है जो लॉगरिदमिक खोज समय का भी आश्वासन देता है।


=== ओवरले नेटवर्क ===
=== ओवरले नेटवर्क ===
प्रत्येक नोड अन्य नोड्स (इसके पड़ोसी या [[रूटिंग तालिका]]) के लिए [[आंकड़ा कड़ी]] का   सेट बनाए रखता है। ये लिंक मिलकर ओवरले नेटवर्क बनाते हैं।<ref>{{Citation|last1=Galuba|first1=Wojciech|title=Peer to Peer Overlay Networks: Structure, Routing and Maintenance|date=2009|encyclopedia=Encyclopedia of Database Systems|pages=2056–2061|editor-last=LIU|editor-first=LING|publisher=Springer US|language=en|doi=10.1007/978-0-387-39940-9_1215|isbn=9780387399409|last2=Girdzijauskas|first2=Sarunas|editor2-last=ÖZSU|editor2-first=M. TAMER}}</ref>   नोड अपने पड़ोसियों को   निश्चित संरचना के अनुसार चुनता है, जिसे नेटवर्क टोपोलॉजी|नेटवर्क की टोपोलॉजी कहा जाता है।
प्रत्येक नोड अन्य नोड्स (इसके निकटम या [[रूटिंग तालिका|रूटिंग टेबल]]) के लिए [[आंकड़ा कड़ी]] का सेट बनाए रखता है। ये लिंक मिलकर ओवरले नेटवर्क बनाते हैं।<ref>{{Citation|last1=Galuba|first1=Wojciech|title=Peer to Peer Overlay Networks: Structure, Routing and Maintenance|date=2009|encyclopedia=Encyclopedia of Database Systems|pages=2056–2061|editor-last=LIU|editor-first=LING|publisher=Springer US|language=en|doi=10.1007/978-0-387-39940-9_1215|isbn=9780387399409|last2=Girdzijauskas|first2=Sarunas|editor2-last=ÖZSU|editor2-first=M. TAMER}}</ref> नोड अपने निकटम को निश्चित संरचना के अनुसार चुनता है, जिसे नेटवर्क टोपोलॉजी नेटवर्क की टोपोलॉजी कहा जाता है।


सभी डीएचटी टोपोलॉजी सबसे आवश्यक संपत्ति के कुछ प्रकार साझा करते हैं: किसी भी कुंजी के लिए {{mvar|k}}, प्रत्येक नोड के पास या तो   नोड आईडी होती है जिसका स्वामी होता है {{mvar|k}} या उस नोड का लिंक है जिसकी नोड आईडी करीब है {{mvar|k}}, ऊपर परिभाषित कीस्पेस दूरी के संदर्भ में। फिर किसी भी कुंजी के स्वामी को संदेश भेजना आसान हो जाता है {{mvar|k}} निम्नलिखित [[लालची एल्गोरिदम]] का उपयोग करना (जो आवश्यक रूप से विश्व स्तर पर इष्टतम नहीं है): प्रत्येक चरण पर, उस पड़ोसी को संदेश अग्रेषित करें जिसकी आईडी निकटतम है {{mvar|k}}. जब ऐसा कोई पड़ोसी नहीं है, तो हम निकटतम नोड पर पहुंच गए होंगे, जिसका मालिक है {{mvar|k}} जैसा कि ऊपर परिभाषित किया गया है। रूटिंग की इस शैली को कभी-कभी कुंजी-आधारित रूटिंग भी कहा जाता है।
सभी डीएचटी टोपोलॉजी अधिक आवश्यक संपत्ति के कुछ प्रकार साझा करते हैं: किसी भी कुंजी {{mvar|k}} के लिए, प्रत्येक नोड में या तो एक नोड आईडी होती है जो {{mvar|k}} का स्वामित्व होती है या उस नोड से एक लिंक होता है जिसकी नोड आईडी ऊपर परिभाषित कीस्पेस दूरी के संदर्भ में {{mvar|k}} के समीप होती है। . निम्नलिखित [[लालची एल्गोरिदम|ग्रीडी एल्गोरिदम]] का उपयोग करके किसी भी कुंजी {{mvar|k}} के स्वामित्व को एक संदेश भेजना सरल है (जो आवश्यक नहीं कि विश्व स्तर पर इष्टतम हो): प्रत्येक चरण में, उस निकटम को संदेश अग्रेषित करें जिसकी आईडी {{mvar|k}} के अधिक समीप है। जब ऐसा कोई पड़ोसी नहीं है, तो हम निकटतम नोड पर पहुंच गए होंगे, जो कि ऊपर परिभाषित के अनुसार {{mvar|k}} का स्वामित्व है। रूटिंग की इस शैली को कभी-कभी कुंजी-आधारित रूटिंग भी कहा जाता है।


बुनियादी रूटिंग शुद्धता से परे, टोपोलॉजी पर दो महत्वपूर्ण बाधाएं यह गारंटी देना है कि किसी भी रूट (रूट लंबाई) में [[हॉप (नेटवर्किंग)]] की अधिकतम संख्या कम है, ताकि अनुरोध जल्दी से पूरा हो जाए; और किसी भी नोड के पड़ोसियों की अधिकतम संख्या (अधिकतम नोड [[डिग्री (ग्राफ सिद्धांत)]]) कम है, ताकि रखरखाव ओवरहेड अत्यधिक न हो। बेशक, छोटे मार्गों के लिए उच्च [[अधिकतम डिग्री]] की आवश्यकता होती है। अधिकतम डिग्री और मार्ग की लंबाई के लिए कुछ सामान्य विकल्प इस प्रकार हैं, जहां {{mvar|n}} बिग ओ नोटेशन का उपयोग करते हुए डीएचटी में नोड्स की संख्या है:
इस प्रकार से मूलभूत रूटिंग शुद्धता से परे, टोपोलॉजी पर दो महत्वपूर्ण बाधाएं यह प्रमाण देना है कि किसी भी रूट (रूट लंबाई) में [[हॉप (नेटवर्किंग)]] की अधिकतम संख्या कम है, जिससे अनुरोध शीघ्र से पूर्ण हो जाए; और किसी भी नोड के निकटम की अधिकतम संख्या (अधिकतम नोड [[डिग्री (ग्राफ सिद्धांत)]] कम है, जिससे अनुरक्षण ओवरहेड अत्यधिक न हो और निःसंदेह, लघु मार्गों के लिए उच्च [[अधिकतम डिग्री]] की आवश्यकता होती है। अधिकतम डिग्री और मार्ग की लंबाई के लिए कुछ सामान्य विकल्प इस प्रकार हैं, जहां {{mvar|n}} बिग ओ नोटेशन का उपयोग करते हुए डीएचटी में नोड्स की संख्या है:


{| class="wikitable"
{| class="wikitable"
|-
|-
! Max. degree !! Max route length !! Used in !! Note
! अधिकतम. डिग्री !! अधिकतम मार्ग लंबाई !! में उपयोग किया !! टिप्पणी
|-
|-
| <math>O(1)</math> || <math>O(n)</math> ||  || Worst lookup lengths, with likely much slower lookups times
| <math>O(1)</math> || <math>O(n)</math> ||  || अधिक व्यर्थ लुकअप लंबाई, संभवतः अधिक धीमी लुकअप समय के साथ
|-
|-
| <math>O(1)</math> || <math>O(\log n)</math> || [[Koorde]] (with constant degree) || More complex to implement, but acceptable lookup time can be found with a fixed number of connections
| <math>O(1)</math> || <math>O(\log n)</math> || [[Koorde|कूर्डे]] (निरंतर डिग्री के साथ) || कार्यान्वयन के लिए अधिक समष्टि , किन्तु स्वीकार्य लुकअप समय निश्चित संख्या में कनेक्शन के साथ पाया जा सकता है
|-
|-
| <math>O(\log n)</math> || <math>O(\log n)</math> || [[Chord (peer-to-peer)|Chord]] <br/> [[Kademlia]] <br/> [[Pastry (DHT)|Pastry]] <br/> [[Tapestry (DHT)|Tapestry]] || Most common, but not optimal (degree/route length). Chord is the most basic version, with Kademlia seeming the most popular optimized variant (should have improved average lookup)
| <math>O(\log n)</math> || <math>O(\log n)</math> || [[Chord (peer-to-peer)|कॉर्ड]] <br/> [[Kademlia|कैडेमलिया]] <br/> [[Pastry (DHT)|पेस्ट्री]] <br/> [[Tapestry (DHT)|टेपेस्ट्री]] || अधिक सामान्य , किन्तु इष्टतम नहीं (डिग्री/मार्ग लंबाई)। कॉर्ड अधिक मूलभूत संस्करण है, कैडेमलिया अधिक लोकप्रिय अनुकूलित संस्करण प्रतीत होता है (औसत लुकअप में सुधार होना चाहिए)
|-
|-
| <math>O(\log n)</math> || <math>O(\log n/\log (\log n))</math> || [[Koorde]] (with optimal lookup) || More complex to implement, but lookups might be faster (have a lower worst case bound)
| <math>O(\log n)</math> || <math>O(\log n/\log (\log n))</math> || [[Koorde|कूर्डे]] (इष्टतम लुकअप के साथ) || प्रयुक्त करने के लिए अधिक जटिल, किन्तु लुकअप तीव्र हो सकता है (अधिक व्यर्थ स्थिति कम होनी चाहिए)
|-
|-
| <math>O(\sqrt{n})</math> || <math>O(1)</math> ||  || Worst local storage needs, with much communication after any node connects or disconnects
| <math>O(\sqrt{n})</math> || <math>O(1)</math> ||  || किसी भी नोड के कनेक्ट या डिस्कनेक्ट होने केपश्चात बहुत अधिक संचार के साथ अधिक व्यर्थ स्थानीय संचयन की आवश्यकता होती है
|}
|}
सबसे आम विकल्प, <math>O(\log n)</math> डिग्री/रूट लंबाई, डिग्री/रूट लंबाई ट्रेडऑफ़ के संदर्भ में इष्टतम नहीं है, लेकिन ऐसी टोपोलॉजी आमतौर पर पड़ोसियों की पसंद में अधिक लचीलेपन की अनुमति देती है। कई डीएचटी उस लचीलेपन का उपयोग उन पड़ोसियों को चुनने के लिए करते हैं जो भौतिक अंतर्निहित नेटवर्क में विलंबता के मामले में करीब हैं। सामान्य तौर पर, सभी डीएचटी नौगम्य लघु-विश्व नेटवर्क टोपोलॉजी का निर्माण करते हैं, जो मार्ग की लंबाई बनाम नेटवर्क डिग्री का व्यापार करते हैं।<ref>{{Cite book|url=https://infoscience.epfl.ch/record/130838?ln=en|title=पीयर-टू-पीयर डिज़ाइन करना एक छोटी दुनिया के परिप्रेक्ष्य को दर्शाता है|last=Girdzijauskas|first=Sarunas|date=2009|website=epfl.ch|publisher=EPFL}}</ref>
अधिक समान विकल्प, <math>O(\log n)</math> डिग्री/रूट लंबाई, डिग्री/रूट लंबाई ट्रेडऑफ़ के संदर्भ में इष्टतम नहीं है, किन्तु इस प्रकार की टोपोलॉजी सामान्यतः निकटम की विकल्प में अधिक लचीलेपन की अनुमति देती है। अतः अनेक डीएचटी उस लचीलेपन का उपयोग उन निकटम को चुनने के लिए करते हैं जो भौतिक अंतर्निहित नेटवर्क में विलंबता के स्तिथियों में समीप हैं। सामान्यतः , सभी डीएचटी नौगम्य लघु-विश्व नेटवर्क टोपोलॉजी का निर्माण करते हैं, जो की मार्ग की लंबाई बनाम नेटवर्क डिग्री का व्यापार करते हैं।<ref>{{Cite book|url=https://infoscience.epfl.ch/record/130838?ln=en|title=पीयर-टू-पीयर डिज़ाइन करना एक छोटी दुनिया के परिप्रेक्ष्य को दर्शाता है|last=Girdzijauskas|first=Sarunas|date=2009|website=epfl.ch|publisher=EPFL}}</ref>


अधिकतम मार्ग की लंबाई व्यास (ग्राफ़ सिद्धांत) से निकटता से संबंधित है: नोड्स के बीच किसी भी सबसे छोटे पथ में हॉप्स की अधिकतम संख्या। स्पष्ट रूप से, नेटवर्क की सबसे खराब स्थिति में मार्ग की लंबाई कम से कम उसके व्यास जितनी बड़ी है, इसलिए डीएचटी डिग्री/व्यास ट्रेडऑफ़ द्वारा सीमित हैं<ref>{{citation |url=http://maite71.upc.es/grup_de_grafs/table_g.html |title=The (Degree,Diameter) Problem for Graphs |publisher=Maite71.upc.es |access-date=2012-01-10 |archive-url=https://web.archive.org/web/20120217054532/http://maite71.upc.es/grup_de_grafs/table_g.html/ |archive-date=2012-02-17 |url-status=dead }}</ref> यह ग्राफ़ सिद्धांत में मौलिक है। मार्ग की लंबाई व्यास से अधिक हो सकती है, क्योंकि लालची रूटिंग एल्गोरिदम सबसे छोटा पथ नहीं ढूंढ सकता है।<ref>Gurmeet Singh Manku, Moni Naor, and Udi Wieder. [http://citeseer.ist.psu.edu/naor04know.html "Know thy Neighbor's Neighbor: the Power of Lookahead in Randomized P2P Networks"]. Proc. STOC, 2004.</ref>
अधिकतम मार्ग की लंबाई व्यास (ग्राफ़ सिद्धांत) से निकटता से संबंधित है: नोड्स के मध्य किसी भी अधिक लघु पथ में हॉप्स की अधिकतम संख्या। स्पष्ट रूप से, नेटवर्क की अधिक व्यर्थ स्थिति में मार्ग की लंबाई कम से कम उसके व्यास जितनी उच्च है, इसलिए डीएचटी डिग्री/व्यास ट्रेडऑफ़ द्वारा सीमित हैं <ref>{{citation |url=http://maite71.upc.es/grup_de_grafs/table_g.html |title=The (Degree,Diameter) Problem for Graphs |publisher=Maite71.upc.es |access-date=2012-01-10 |archive-url=https://web.archive.org/web/20120217054532/http://maite71.upc.es/grup_de_grafs/table_g.html/ |archive-date=2012-02-17 |url-status=dead }}</ref> यह ग्राफ़ सिद्धांत में मौलिक है। मार्ग की लंबाई व्यास से अधिक हो सकती है, क्योंकि ग्रीडी रूटिंग एल्गोरिदम अधिक लघु पथ नहीं खोज सकता है।<ref>Gurmeet Singh Manku, Moni Naor, and Udi Wieder. [http://citeseer.ist.psu.edu/naor04know.html "Know thy Neighbor's Neighbor: the Power of Lookahead in Randomized P2P Networks"]. Proc. STOC, 2004.</ref>
=== ओवरले नेटवर्क के लिए एल्गोरिदम ===
=== ओवरले नेटवर्क के लिए एल्गोरिदम ===
रूटिंग के अलावा, ऐसे कई एल्गोरिदम मौजूद हैं जो DHT में सभी नोड्स, या नोड्स के सबसेट को संदेश भेजने के लिए ओवरले नेटवर्क की संरचना का फायदा उठाते हैं।<ref>{{cite web|author=[[Ali Ghodsi]]|url=http://www.sics.se/~ali/thesis/|title= Distributed k-ary System: Algorithms for Distributed Hash Tables |archive-url=https://web.archive.org/web/20070522060750/http://www.sics.se/~ali/thesis/ |archive-date=4 January 2007|date=22 May 2007 |url-status=dead}}. KTH-Royal Institute of Technology, 2006.</ref> इन एल्गोरिदम का उपयोग अनुप्रयोगों द्वारा [[ओवरले मल्टीकास्ट]], रेंज क्वेरीज़ या आंकड़े त्र करने के लिए किया जाता है। इस दृष्टिकोण पर आधारित दो प्रणालियाँ हैं स्ट्रक्चरेला,<ref>{{cite journal |last1=Castro |first1=Miguel |last2=Costa |first2=Manuel |last3=Rowstron |first3=Antony |title=Should we build Gnutella on a structured overlay? |journal=ACM SIGCOMM Computer Communication Review |date=1 January 2004 |volume=34 |issue=1 |pages=131 |doi=10.1145/972374.972397 |citeseerx=10.1.1.221.7892 |s2cid=6587291 |url=http://nms.lcs.mit.edu/HotNets-II/papers/structella.pdf }}</ref> जो पेस्ट्री ओवरले पर बाढ़ और यादृच्छिक चाल को लागू करता है, और डीक्यू-डीएचटी, जो कॉर्ड नेटवर्क पर   गतिशील क्वेरी खोज एल्गोरिदम को लागू करता है।<ref>{{cite journal |last1=Talia |first1=Domenico |last2=Trunfio |first2=Paolo |title=वितरित हैश तालिकाओं पर गतिशील क्वेरी सक्षम करना|journal=Journal of Parallel and Distributed Computing |date=December 2010 |volume=70 |issue=12 |pages=1254–1265 |doi=10.1016/j.jpdc.2010.08.012 }}</ref>
इस प्रकार से रूटिंग के अतिरिक्त , ऐसे अनेक एल्गोरिदम उपस्तिथ हैं जो की डीएचटी में सभी नोड्स, या नोड्स के अधिक सबसेट को संदेश भेजने के लिए ओवरले नेटवर्क की संरचना का लाभ उठाते हैं।<ref>{{cite web|author=[[Ali Ghodsi]]|url=http://www.sics.se/~ali/thesis/|title= Distributed k-ary System: Algorithms for Distributed Hash Tables |archive-url=https://web.archive.org/web/20070522060750/http://www.sics.se/~ali/thesis/ |archive-date=4 January 2007|date=22 May 2007 |url-status=dead}}. KTH-Royal Institute of Technology, 2006.</ref> चूंकि एल्गोरिदम का उपयोग अनुप्रयोगों द्वारा [[ओवरले मल्टीकास्ट]], रेंज क्वेरीज़ या आंकड़े एकत्र करने के लिए किया जाता है। अतः स्ट्रक्चरेला और दृष्टिकोण पर आधारित दो प्रणालियाँ हैं ,<ref>{{cite journal |last1=Castro |first1=Miguel |last2=Costa |first2=Manuel |last3=Rowstron |first3=Antony |title=Should we build Gnutella on a structured overlay? |journal=ACM SIGCOMM Computer Communication Review |date=1 January 2004 |volume=34 |issue=1 |pages=131 |doi=10.1145/972374.972397 |citeseerx=10.1.1.221.7892 |s2cid=6587291 |url=http://nms.lcs.mit.edu/HotNets-II/papers/structella.pdf }}</ref> जो की पेस्ट्री ओवरले पर फ्लडिंग और यादृच्छिक चाल को प्रयुक्त करता है, और डीक्यू-डीएचटी, जो कॉर्ड नेटवर्क पर गतिशील क्वेरी खोज एल्गोरिदम को प्रयुक्त करता है।<ref>{{cite journal |last1=Talia |first1=Domenico |last2=Trunfio |first2=Paolo |title=वितरित हैश तालिकाओं पर गतिशील क्वेरी सक्षम करना|journal=Journal of Parallel and Distributed Computing |date=December 2010 |volume=70 |issue=12 |pages=1254–1265 |doi=10.1016/j.jpdc.2010.08.012 }}</ref>
== सुरक्षा ==
== सुरक्षा ==


डीएचटी के विकेंद्रीकरण, दोष सहनशीलता और मापनीयता के कारण, वे   केंद्रीकृत प्रणाली की तुलना में शत्रुतापूर्ण हमलावर के खिलाफ स्वाभाविक रूप से अधिक लचीले होते हैं।
डीएचटी के विकेंद्रीकरण, दोष सहनशीलता और मापनीयता के कारण, वे केंद्रीकृत प्रणाली की तुलना में शत्रुतापूर्ण अटैक के विरुद्ध स्वाभाविक रूप से अधिक लचीले होते हैं।


[[वितरित डेटा भंडारण]] के लिए खुली प्रणालियाँ जो बड़े पैमाने पर शत्रुतापूर्ण हमलावरों के खिलाफ मजबूत हों, संभव हैं।<ref>
चूंकि [[वितरित डेटा भंडारण|डिस्ट्रिब्यूटेड डेटा संचयन]] के लिए खुली प्रणालियाँ जो उच्च माप पर शत्रुतापूर्ण अटैको के विरुद्ध समष्टि हों, संभव हैं।<ref>
Baruch Awerbuch, Christian Scheideler.
Baruch Awerbuch, Christian Scheideler.
"Towards a scalable and robust DHT".
"Towards a scalable and robust DHT".
Line 106: Line 110:
</ref>
</ref>


डीएचटी प्रणाली जिसे बीजान्टिन दोष सहनशीलता के लिए सावधानीपूर्वक डिज़ाइन किया गया है,   सुरक्षा कमजोरी से बचाव कर सकती है, जिसे सिबिल हमले के रूप में जाना जाता है, जो अधिकांश मौजूदा डीएचटी डिज़ाइनों को प्रभावित करता है।<ref>
डीएचटी प्रणाली जिसे बीजान्टिन दोष सहनशीलता के लिए सावधानीपूर्वक डिज़ाइन किया गया है, सुरक्षा कम महत्त्वहीन से सुरक्षा कर सकती है, जिसे सिबिल अटैक के रूप में जाना जाता है, जो की अधिकांश उपस्तिथ डीएचटी डिज़ाइनों को प्रभावित करता है।<ref>
Maxwell Young; Aniket Kate; Ian Goldberg; Martin Karsten.
Maxwell Young; Aniket Kate; Ian Goldberg; Martin Karsten.
[http://www.cypherpunks.ca/~iang/pubs/robustMessagePassing.pdf "Practical Robust Communication in DHTs Tolerating a Byzantine Adversary"].
[http://www.cypherpunks.ca/~iang/pubs/robustMessagePassing.pdf "Practical Robust Communication in DHTs Tolerating a Byzantine Adversary"].
Line 113: Line 117:
"Byzantine agreement for reputation management in DHT-based peer-to-peer networks".
"Byzantine agreement for reputation management in DHT-based peer-to-peer networks".
{{doi|10.1109/ICTEL.2008.4652638}}
{{doi|10.1109/ICTEL.2008.4652638}}
</ref> व्हानाउ   DHT है जिसे सिबिल हमलों के प्रति प्रतिरोधी बनाने के लिए डिज़ाइन किया गया है।<ref>
</ref> व्हानाउ डीएचटी है जिसे सिबिल अटैक के प्रति प्रतिरोधी बनाने के लिए डिज़ाइन किया गया है।<ref>
Whanau: A Sybil-proof Distributed Hash Table
Whanau: A Sybil-proof Distributed Hash Table
https://pdos.csail.mit.edu/papers/whanau-nsdi10.pdf
https://pdos.csail.mit.edu/papers/whanau-nsdi10.pdf
</ref>
</ref>


[[कैडेमलिया]] के मूल लेखकों में से , पेटार मेमौनकोव ने सिस्टम डिज़ाइन में सामाजिक विश्वास संबंधों को शामिल करके सिबिल हमले की कमजोरी को दूर करने का   तरीका प्रस्तावित किया है।<ref>{{cite journal |author=Chris Lesniewski-Laas |title=एक सिबिल-प्रूफ वन-हॉप DHT|pages=20 |url=http://pdos.csail.mit.edu/papers/sybil-dht-socialnets08.pdf }}</ref> नई प्रणाली, जिसका कोडनेम टोनिका है या जिसे इसके डोमेन नाम 5ttt के नाम से भी जाना जाता है,   एल्गोरिदम डिज़ाइन पर आधारित है जिसे इलेक्ट्रिक रूटिंग के रूप में जाना जाता है और गणितज्ञ जोनाथन केल्नर के साथ सह-लेखक है।<ref>{{cite journal |author=Jonathan Kelner, Petar Maymounkov |title=इलेक्ट्रिक रूटिंग और समवर्ती प्रवाह कटिंग|url=https://archive.org/details/arxiv-0909.2859 |arxiv=0909.2859|bibcode=2009arXiv0909.2859K|year=2009 }}</ref> मेमौनकोव ने अब इस नई प्रणाली का व्यापक कार्यान्वयन प्रयास शुरू किया है। हालाँकि, सिबिल हमलों के खिलाफ प्रभावी बचाव में अनुसंधान को आम तौर पर  खुला प्रश्न माना जाता है, और हर साल शीर्ष सुरक्षा अनुसंधान सम्मेलनों में विभिन्न प्रकार के संभावित बचाव प्रस्तावित किए जाते हैं।
[[कैडेमलिया]] के मूल लेखकों में से , पेटार मेमौनकोव ने सिस्टम डिज़ाइन में सामाजिक विश्वास संबंधों को सम्मिलित करके सिबिल अटैक की कम महत्त्वहीन को दूर करने का विधि प्रस्तावित किया है।<ref>{{cite journal |author=Chris Lesniewski-Laas |title=एक सिबिल-प्रूफ वन-हॉप DHT|pages=20 |url=http://pdos.csail.mit.edu/papers/sybil-dht-socialnets08.pdf }}</ref> इस प्रकार से नई प्रणाली, जिसका कोडनेम टोनिका है या जिसे इसके डोमेन नाम 5ttt के नाम से भी जाना जाता है, एल्गोरिदम डिज़ाइन पर आधारित है जिसे इलेक्ट्रिक रूटिंग के रूप में जाना जाता है और गणितज्ञ जोनाथन केल्नर के साथ सह-लेखक है।<ref>{{cite journal |author=Jonathan Kelner, Petar Maymounkov |title=इलेक्ट्रिक रूटिंग और समवर्ती प्रवाह कटिंग|url=https://archive.org/details/arxiv-0909.2859 |arxiv=0909.2859|bibcode=2009arXiv0909.2859K|year=2009 }}</ref> मेमौनकोव ने अब इस नई प्रणाली का व्यापक कार्यान्वयन प्रयास प्रारंभ किया है। चूंकि , सिबिल अटैक के विरुद्ध प्रभावी बचाव में अनुसंधान को सामान्तः खुला प्रश्न माना जाता है, और हर साल शीर्ष सुरक्षा अनुसंधान सम्मेलनों में विभिन्न प्रकार के संभावित बचाव प्रस्तावित किए जाते हैं।


== कार्यान्वयन ==
== कार्यान्वयन ==
DHT कार्यान्वयन के व्यावहारिक उदाहरणों में सामने आए सबसे उल्लेखनीय अंतरों में कम से कम निम्नलिखित शामिल हैं:
इस प्रकार से डीएचटी कार्यान्वयन के व्यावहारिक उदाहरणों में सामने आए अधिक उल्लेखनीय अंतरों में कम से कम निम्नलिखित सम्मिलित हैं:
* पता स्थान DHT का   पैरामीटर है। कई वास्तविक दुनिया के DHT 128-बिट या 160-बिट कुंजी स्थान का उपयोग करते हैं।
* एड्रेस स्थान डीएचटी का पैरामीटर है। कई वास्तविक दुनिया के डीएचटी 128-बिट या 160-बिट कुंजी स्थान का उपयोग करते हैं।
* कुछ वास्तविक दुनिया के DHT SHA-1 के अलावा अन्य हैश फ़ंक्शन का उपयोग करते हैं।
* कुछ वास्तविक दुनिया के डीएचटी एसएचए -1 के अतिरिक्त अन्य हैश फ़ंक्शन का उपयोग करते हैं।
* वास्तविक दुनिया में कुंजी {{var serif|1=k}} [[सामग्री-पता योग्य भंडारण]] प्रदान करने के लिए फ़ाइल के नाम के हैश के बजाय फ़ाइल की सामग्री का हैश हो सकता है, ताकि फ़ाइल का नाम बदलने से उपयोगकर्ताओं को इसे ढूंढने से रोका जा सके।
* वास्तविक दुनिया में कुंजी {{var serif|1=k}} [[सामग्री-पता योग्य भंडारण|सामग्री-एड्रेस योग्य संचयन]] प्रदान करने के लिए फ़ाइल के नाम के हैश के अतिरिक्त फ़ाइल की सामग्री का हैश हो सकता है, जिससे फ़ाइल का नाम परिवर्तन ने से उपयोगकर्ताओं को इसे खोजने से नहीं रोका जा सकता है।
* कुछ डीएचटी विभिन्न प्रकार की वस्तुओं को भी प्रकाशित कर सकते हैं। उदाहरण के लिए, कुंजी {{var serif|1=k}} नोड हो सकता है {{var serif|1=ID}} और संबंधित डेटा यह बता सकता है कि इस नोड से कैसे संपर्क किया जाए। यह उपस्थिति की जानकारी के प्रकाशन की अनुमति देता है और अक्सर आईएम अनुप्रयोगों आदि में उपयोग किया जाता है। सबसे सरल मामले में, {{var serif|1=ID}} केवल   यादृच्छिक संख्या है जिसे सीधे कुंजी के रूप में उपयोग किया जाता है {{var serif|1=k}} (तो 160-बिट DHT में {{var serif|1=ID}}   160-बिट संख्या होगी, जिसे आमतौर पर यादृच्छिक रूप से चुना जाता है)। कुछ डीएचटी में, डीएचटी संचालन को अनुकूलित करने के लिए नोड्स आईडी के प्रकाशन का भी उपयोग किया जाता है।
* कुछ डीएचटी विभिन्न प्रकार की वस्तुओं को भी प्रकाशित कर सकते हैं। उदाहरण के लिए, कुंजी {{var serif|1=k}} नोड {{var serif|1=ID}} हो सकता है और संबंधित डेटा यह बता सकता है कि इस नोड से कैसे संपर्क किया जाए। यह उपस्थिति की सूचना {{var serif|1=ID}} के प्रकाशन की अनुमति देता है और प्रायः आईएम अनुप्रयोगों आदि में उपयोग किया जाता है। अधिक सरल स्तिथियों में, {{var serif|1=ID}} केवल यादृच्छिक संख्या है जिसे सीधे कुंजी {{var serif|1=k}} के रूप में उपयोग किया जाता है (तो 160-बिट डीएचटी में {{var serif|1=ID}} 160-बिट संख्या होगी, जिसे सामान्यतः यादृच्छिक रूप से चुना जाता है)। कुछ डीएचटी में, डीएचटी संचालन को अनुकूलित करने के लिए नोड्स आईडी के प्रकाशन का भी उपयोग किया जाता है।
* विश्वसनीयता में सुधार के लिए अतिरेक को जोड़ा जा सकता है। वह {{var serif|1=(k, data)}} कुंजी युग्म को कुंजी के अनुरूप   से अधिक नोड में संग्रहित किया जा सकता है। आमतौर पर, केवल   नोड का चयन करने के बजाय, वास्तविक दुनिया DHT एल्गोरिदम का चयन करते हैं {{var serif|1=i}} उपयुक्त नोड्स, के साथ {{var serif|1=i}} DHT का कार्यान्वयन-विशिष्ट पैरामीटर है। कुछ डीएचटी डिज़ाइनों में, नोड्स   निश्चित कीस्पेस रेंज को संभालने के लिए सहमत होते हैं, जिसका आकार हार्ड-कोड के बजाय गतिशील रूप से चुना जा सकता है।
* विश्वसनीयता में सुधार के लिए अतिरेक को जोड़ा जा सकता है। जहाँ {{var serif|1=(k, data)}} कुंजी युग्म को कुंजी के अनुरूप से अधिक नोड में संग्रहित किया जा सकता है। सामान्यतः , केवल नोड का चयन करने के अतिरिक्त , वास्तविक दुनिया डीएचटी एल्गोरिदम {{var serif|1=i}} का चयन करते हैं उपयुक्त नोड्स, के साथ डीएचटी का कार्यान्वयन-विशिष्ट पैरामीटर है। कुछ डीएचटी डिज़ाइनों में, नोड्स निश्चित कीस्पेस रेंज को संभालने के लिए सहमत होते हैं, जिसका आकार हार्ड-कोड के अतिरिक्त गतिशील रूप से चुना जा सकता है।
* कैडेमलिया जैसे कुछ उन्नत डीएचटी उपयुक्त नोड्स के   सेट का चयन करने और भेजने के लिए पहले डीएचटी के माध्यम से पुनरावृत्त लुकअप करते हैं {{var serif|1=put(k, data)}} संदेश केवल उन्हीं नोड्स को भेजे जाते हैं, जिससे बेकार ट्रैफ़िक में भारी कमी आती है, क्योंकि प्रकाशित संदेश केवल उन नोड्स को भेजे जाते हैं जो कुंजी संग्रहीत करने के लिए उपयुक्त लगते हैं {{var serif|1=k}}; और पुनरावृत्त लुकअप संपूर्ण DHT के बजाय केवल नोड्स के   छोटे सेट को कवर करते हैं, जिससे बेकार अग्रेषण कम हो जाता है। ऐसे डीएचटी में, अग्रेषित करना {{Var serif|put(k, data)}} संदेश केवल स्व-उपचार एल्गोरिथ्म के भाग के रूप में हो सकते हैं: यदि कोई लक्ष्य नोड प्राप्त करता है {{var serif|1=put(k, data)}} संदेश, लेकिन उस पर विश्वास करता है {{var serif|1=k}} अपनी प्रबंधित सीमा से बाहर है और   करीबी नोड (डीएचटी कीस्पेस के संदर्भ में) ज्ञात है, संदेश उस नोड पर अग्रेषित किया जाता है। अन्यथा, डेटा स्थानीय रूप से अनुक्रमित किया जाता है। इससे कुछ हद तक स्व-संतुलित DHT व्यवहार होता है। बेशक, ऐसे एल्गोरिदम के लिए नोड्स को DHT में अपनी उपस्थिति डेटा प्रकाशित करने की आवश्यकता होती है ताकि पुनरावृत्त लुकअप किया जा सके।
*कैडेमलिया जैसे कुछ उन्नत डीएचटी उपयुक्त नोड्स के एक सेट का चयन करने और केवल उन नोड्स पर {{var serif|1=put(k, data)}} संदेश भेजने के लिए पहले डीएचटी के माध्यम से पुनरावृत्त लुकअप करते हैं, इस प्रकार बेकार ट्रैफ़िक को अधिक कम कर देते हैं, क्योंकि प्रकाशित संदेश केवल उन नोड्स को भेजे जाते हैं जो की कुंजी k को संग्रहित करने के लिए उपयुक्त प्रतीत होता है; और पुनरावृत्त लुकअप संपूर्ण डीएचटी के अतिरिक्त केवल नोड्स के एक छोटे सेट को कवर करते हैं, जिससे बेकार अग्रेषण कम हो जाता है। ऐसे डीएचटी में, {{var serif|1=put(k, data)}} संदेशों को अग्रेषित करना केवल स्व-उपचार एल्गोरिदम के भागो के रूप में हो सकता है: यदि लक्ष्य नोड को {{var serif|1=put(k, data)}} संदेश प्राप्त होता है, किन्तु मानता है कि के इसकी नियंत्रित सीमा से बाहर है और एक समीप नोड (डीएचटी कीस्पेस के संदर्भ में) ज्ञात है, संदेश उस नोड पर अग्रेषित किया जाता है। अन्यथा, डेटा स्थानीय रूप से अनुक्रमित किया जाता है। इससे कुछ सीमा तक स्व-संतुलित डीएचटी व्यवहार होता है। इस प्रकार से , ऐसे एल्गोरिदम के लिए नोड्स को डीएचटी में अपनी उपस्थिति डेटा प्रकाशित करने की आवश्यकता होती है जिससे पुनरावृत्त लुकअप किया जा सके।
* चूंकि अधिकांश मशीनों पर संदेश भेजना स्थानीय हैश टेबल ्सेस की तुलना में बहुत अधिक महंगा है, इसलिए किसी विशेष नोड से संबंधित कई संदेशों को   ही बैच में बंडल करना समझ में आता है। यह मानते हुए कि प्रत्येक नोड में   स्थानीय बैच है जिसमें अधिकतम शामिल है {{var serif|1=b}} संचालन, बंडलिंग प्रक्रिया इस प्रकार है। प्रत्येक नोड पहले ऑपरेशन के लिए जिम्मेदार नोड के पहचानकर्ता द्वारा अपने स्थानीय बैच को सॉर्ट करता है। [[ बाल्टी प्रकार |बाल्टी प्रकार]] का उपयोग करके, यह किया जा सकता है {{var serif|1=O(b + n)}}, कहाँ {{var serif|1=n}} DHT में नोड्स की संख्या है। जब   बैच के भीतर  ही कुंजी को संबोधित करने वाले कई ऑपरेशन होते हैं, तो बैच को बाहर भेजे जाने से पहले संघनित किया जाता है। उदाहरण के लिए,   ही कुंजी के ाधिक लुकअप को   में घटाया जा सकता है या   ही ऐड ऑपरेशन में ाधिक वृद्धि को कम किया जा सकता है। इस कमी को अस्थायी स्थानीय हैश तालिका की सहायता से कार्यान्वित किया जा सकता है। अंत में, ऑपरेशन संबंधित नोड्स को भेजे जाते हैं।<ref>{{Cite book|url=https://www.springer.com/gp/book/9783030252083|title=Sequential and Parallel Algorithms and Data Structures: The Basic Toolbox|last1=Sanders|first1=Peter|last2=Mehlhorn|first2=Kurt|last3=Dietzfelbinger|first3=Martin|last4=Dementiev|first4=Roman|date=2019|publisher=Springer International Publishing|isbn=978-3-030-25208-3|language=en}}</ref>
*चूँकि अधिकांश मशीनों पर संदेश भेजना स्थानीय हैश टेबल एक्सेस की तुलना में बहुत अधिक बहुमूल्य है, इसलिए किसी विशेष नोड से संबंधित कई संदेशों को एक ही बैच में बंडल करना समझ में आता है। यह मानते हुए कि प्रत्येक नोड में एक स्थानीय बैच है जिसमें अधिकतम <var>b</var> ऑपरेशन सम्मिलित हैं, बंडलिंग प्रक्रिया इस प्रकार है। प्रत्येक नोड पहले ऑपरेशन के लिए उत्तरदायी नोड के पहचानकर्ता द्वारा अपने स्थानीय बैच को सॉर्ट करता है। [[ बाल्टी प्रकार |बाल्टी प्रकार]] का उपयोग करके, यह {{var serif|1=O(b + n)}} में किया जा सकता है, जहां {{var serif|1=n}} डीएचटी में नोड्स की संख्या है। जब एक बैच के अन्दर एक ही कुंजी को संबोधित करने वाले कई ऑपरेशन होते हैं, तो बैच को बाहर भेजे जाने से पहले संघनित किया जाता है। उदाहरण के लिए, एक ही कुंजी के एकाधिक लुकअप को एक में घटाया जा सकता है या एक ही ऐड ऑपरेशन में एकाधिक वृद्धि को कम किया जा सकता है। इस कमी को अस्थायी स्थानीय हैश टेबल की सहायता से कार्यान्वित किया जा सकता है। अंत में, ऑपरेशन संबंधित नोड्स को भेजे जाते हैं<ref>{{Cite book|url=https://www.springer.com/gp/book/9783030252083|title=Sequential and Parallel Algorithms and Data Structures: The Basic Toolbox|last1=Sanders|first1=Peter|last2=Mehlhorn|first2=Kurt|last3=Dietzfelbinger|first3=Martin|last4=Dementiev|first4=Roman|date=2019|publisher=Springer International Publishing|isbn=978-3-030-25208-3|language=en}}</ref>
== उदाहरण ==
== उदाहरण ==


Line 134: Line 138:
* [[अपाचे कैसेंड्रा]]
* [[अपाचे कैसेंड्रा]]
* [[बैटन ओवरले]]
* [[बैटन ओवरले]]
* [[मेनलाइन डीएचटी]] - बिटटोरेंट द्वारा उपयोग किया जाने वाला मानक डीएचटी (खशमीर द्वारा प्रदान किए गए कैडेमलिया पर आधारित)<ref>[http://www.tribler.org/trac/wiki/Khashmir Tribler wiki] {{webarchive |url=https://web.archive.org/web/20101204111423/http://www.tribler.org/trac/wiki/Khashmir |date=December 4, 2010 }} retrieved January 2010.</ref>
* [[मेनलाइन डीएचटी]] - बिटटोरेंट द्वारा उपयोग किया जाने वाला मानक डीएचटी (कशमीर द्वारा प्रदान किए गए कैडेमलिया पर आधारित)<ref>[http://www.tribler.org/trac/wiki/Khashmir Tribler wiki] {{webarchive |url=https://web.archive.org/web/20101204111423/http://www.tribler.org/trac/wiki/Khashmir |date=December 4, 2010 }} retrieved January 2010.</ref>
*सामग्री पतायोग्य नेटवर्क (CAN)
*सामग्री एड्रेसयोग्य नेटवर्क (सीएएन)
* कॉर्ड (DHT)
* कॉर्ड (डीएचटी)
*कोर्डे
*कोर्डे
*कडेमलिया
*कडेमलिया
* पेस्ट्री (DHT)
* पेस्ट्री (डीएचटी)
* [[पी-ग्रिड]]
* [[पी-ग्रिड]]
* [[ लहर ]]
* [[ लहर | रियाक]]
* टेपेस्ट्री (DHT)
* टेपेस्ट्री (डीएचटी)
* [[टॉमपी2पी]]
* [[टॉमपी2पी]]
* [[वोल्डेमॉर्ट (वितरित डेटा स्टोर)]]
* [[वोल्डेमॉर्ट (वितरित डेटा स्टोर)|वोल्डेमॉर्ट (डिस्ट्रिब्यूटेड डेटा स्टोर)]]


=== डीएचटी का उपयोग करने वाले अनुप्रयोग ===
=== डीएचटी का उपयोग करने वाले अनुप्रयोग ===
* [[BTDigg]]: बिटटोरेंट DHT सर्च इंजन
* [[BTDigg|बीटीडिग्ग]]: बिटटोरेंट डीएचटी सर्च इंजन
* [[कोडीन]]: वेब कैशिंग
* [[कोडीन]]: वेब कैशिंग
* फ़्रीनेट:   सेंसरशिप-प्रतिरोधी अनाम नेटवर्क
* फ़्रीनेट: सेंसरशिप-प्रतिरोधी अनाम नेटवर्क
* [[ग्लस्टरएफएस]]:   वितरित फ़ाइल सिस्टम जिसका उपयोग स्टोरेज वर्चुअलाइजेशन के लिए किया जाता है
* [[ग्लस्टरएफएस]]: डिस्ट्रिब्यूटेड फ़ाइल सिस्टम जिसका उपयोग स्टोरेज वर्चुअलाइजेशन के लिए किया जाता है
* [[जीएनयूनेट]]: डीएचटी कार्यान्वयन सहित फ्रीनेट जैसा वितरण नेटवर्क
* [[जीएनयूनेट]]: डीएचटी कार्यान्वयन सहित फ्रीनेट जैसा वितरण नेटवर्क
* [[I2P]]:   ओपन-सोर्स अनाम पीयर-टू-पीयर नेटवर्क
* [[I2P]]: ओपन-सोर्स अनाम पीयर-टू-पीयर नेटवर्क
* I2P | I2P-Bote: सर्वर रहित सुरक्षित अनाम ईमेल
* I2P-बोट: सर्वर रहित सुरक्षित अनाम ईमेल
* इंटरप्लेनेटरी फाइल सिस्टम:   कंटेंट-एड्रेसेबल, पीयर-टू-पीयर हाइपरमीडिया वितरण प्रोटोकॉल
* इंटरप्लेनेटरी फाइल सिस्टम: कंटेंट-एड्रेसेबल, पीयर-टू-पीयर हाइपरमीडिया वितरण प्रोटोकॉल
* [[JXTA]]: ओपन-सोर्स पी2पी प्लेटफॉर्म
* [[JXTA|जेएक्सटीए]] : ओपन-सोर्स पी2पी प्लेटफॉर्म
* [[LBRY]]:   ब्लॉकचेन-आधारित सामग्री साझाकरण प्रोटोकॉल जो सामग्री वितरण के लिए कैडेमलिया-प्रभावित DHT प्रणाली का उपयोग करता है
* [[LBRY|एलबीआरवाई]] : ब्लॉकचेन-आधारित सामग्री साझाकरण प्रोटोकॉल जो सामग्री वितरण के लिए कैडेमलिया-प्रभावित डीएचटी प्रणाली का उपयोग करता है
* [[ ओरेकल सुसंगतता ]]: जावा डीएचटी कार्यान्वयन के शीर्ष पर निर्मित   इन-मेमोरी डेटा ग्रिड
* [[ ओरेकल सुसंगतता ]]: जावा डीएचटी कार्यान्वयन के शीर्ष पर निर्मित इन-मेमोरी डेटा ग्रिड
* [[परफेक्ट डार्क (पी2पी)]]: जापान का   पीयर-टू-पीयर [[फ़ाइल साझा करना]] एप्लिकेशन
* [[परफेक्ट डार्क (पी2पी)]]: जापान का पीयर-टू-पीयर [[फ़ाइल साझा करना]] एप्लिकेशन
* [[ पुनः साझाकरण ]]:   मित्र-से-मित्र नेटवर्क<ref>[http://retroshare.sourceforge.net/wiki/index.php/Frequently_Asked_Questions#4-1_How_does_RetroShare_know_my_friend.27s_IP_address_and_port.3F_Why_don.27t_I_need_a_static_IP_address.3F_What_is_DHT_for.3F Retroshare FAQ] retrieved December 2011</ref>
* [[ पुनः साझाकरण ]]: मित्र-से-मित्र नेटवर्क<ref>[http://retroshare.sourceforge.net/wiki/index.php/Frequently_Asked_Questions#4-1_How_does_RetroShare_know_my_friend.27s_IP_address_and_port.3F_Why_don.27t_I_need_a_static_IP_address.3F_What_is_DHT_for.3F Retroshare FAQ] retrieved December 2011</ref>
* [[जामी (सॉफ्टवेयर)]]:   गोपनीयता-संरक्षण आवाज, वीडियो और चैट संचार मंच, जो कैडेमलिया-जैसे डीएचटी पर आधारित है
* [[जामी (सॉफ्टवेयर)]]: गोपनीयता-संरक्षण आवाज, वीडियो और चैट संचार मंच, जो कैडेमलिया-जैसे डीएचटी पर आधारित है
* टॉक्स (प्रोटोकॉल):   त्वरित संदेश प्रणाली जिसका उद्देश्य [[स्काइप]] प्रतिस्थापन के रूप में कार्य करना है
* टॉक्स (प्रोटोकॉल): त्वरित संदेश प्रणाली जिसका उद्देश्य [[स्काइप]] प्रतिस्थापन के रूप में कार्य करना है
* [[ट्विस्टर (सॉफ्टवेयर)]]:   [[माइक्रोब्लॉगिंग]] पीयर-टू-पीयर प्लेटफॉर्म
* [[ट्विस्टर (सॉफ्टवेयर)]]: [[माइक्रोब्लॉगिंग]] पीयर-टू-पीयर प्लेटफॉर्म
* YaCy:   वितरित वेब खोज इंजन
* वाईएसीवाई : डिस्ट्रिब्यूटेड वेब सर्च इंजन


== यह भी देखें ==
== यह भी देखें ==


* [[काउचबेस सर्वर]]: मेम्केच्ड प्रोटोकॉल के साथ संगत   सतत, प्रतिकृति, क्लस्टर्ड वितरित ऑब्जेक्ट स्टोरेज सिस्टम।
* [[काउचबेस सर्वर]]: मेम्केच्ड प्रोटोकॉल के साथ संगत सतत, प्रतिकृति, क्लस्टर्ड डिस्ट्रिब्यूटेड ऑब्जेक्ट स्टोरेज सिस्टम है।
* [[मेमकैच्ड]]:   उच्च-प्रदर्शन, वितरित मेमोरी ऑब्जेक्ट कैशिंग सिस्टम।
* [[मेमकैच्ड]]: उच्च-प्रदर्शन, डिस्ट्रिब्यूटेड मेमोरी ऑब्जेक्ट कैशिंग सिस्टम है।
* उपसर्ग हैश ट्री: डीएचटी पर परिष्कृत क्वेरी।
* उपसर्ग हैश ट्री: डीएचटी पर परिष्कृत क्वेरी आदि।
* [[मर्केल वृक्ष]]: वह पेड़ जिसमें प्रत्येक गैर-पत्ती नोड को उसके बच्चों के नोड्स के लेबल के हैश के साथ लेबल किया जाता है।
* [[मर्केल वृक्ष|मर्केलट्री:]] वह ट्री जिसमें प्रत्येक गैर-लीफ नोड को उसके बच्चों के नोड्स के लेबल के हैश के साथ लेबल किया जाता है।
* अधिकांश वितरित डेटा स्टोर लुकअप के लिए किसी न किसी रूप में DHT का उपयोग करते हैं।
* अधिकांश डिस्ट्रिब्यूटेड डेटा स्टोर लुकअप के लिए किसी न किसी रूप में डीएचटी का उपयोग करते हैं।
* डीएचटी को लागू करने के लिए [[ ग्राफ़ छोड़ें |ग्राफ़ छोड़ें]] ़  कुशल डेटा संरचना है।
* डीएचटी को प्रयुक्त करने के लिए [[ ग्राफ़ छोड़ें |स्किप ग्राफ़]] कुशल डेटा संरचना है।


== संदर्भ ==
== संदर्भ ==
Line 179: Line 183:
== बाहरी संबंध ==
== बाहरी संबंध ==
* [http://linuxjournal.com/article/6797 Distributed Hash Tables, Part 1] by Brandon Wiley.
* [http://linuxjournal.com/article/6797 Distributed Hash Tables, Part 1] by Brandon Wiley.
* [http://ast-deim.urv.cat/cpairot/dhts.html Distributed Hash Tables links] Carles Pairot's Page on DHT and P2P research
* [http://ast-deim.urv.cat/cpairot/dhts.html Distributed Hash Tables links] Carles Pairot's Page on डीएचटी and P2P research
* [https://web.archive.org/web/*/http://kademlia.scs.cs.nyu.edu/ kademlia.scs.cs.nyu.edu] Archive.org snapshots of kademlia.scs.cs.nyu.edu
* [https://web.archive.org/web/*/http://kademlia.scs.cs.nyu.edu/ kademlia.scs.cs.nyu.edu] Archive.org snapshots of kademlia.scs.cs.nyu.edu
* {{cite CiteSeerX | citeseerx = 10.1.1.111.4197 | title = IEEE Survey on overlay network schemes | author1 = Eng-Keong Lua | first2 = Jon | last2 = Crowcroft | first3 = Marcelo | last3 = Pias | first4 = Ravi | last4 = Sharma | first5 = Steve | last5 = Lim | postscript = : | year = 2005 }} covering unstructured and structured decentralized overlay networks including DHTs (Chord, Pastry, Tapestry and others).
* {{cite CiteSeerX | citeseerx = 10.1.1.111.4197 | title = IEEE Survey on overlay network schemes | author1 = Eng-Keong Lua | first2 = Jon | last2 = Crowcroft | first3 = Marcelo | last3 = Pias | first4 = Ravi | last4 = Sharma | first5 = Steve | last5 = Lim | postscript = : | year = 2005 }} covering unstructured and structured decentralized overlay networks including डीएचटीs (Chord, Pastry, Tapestry and others).
* [http://www.cs.helsinki.fi/u/jakangas/MLDHT/ Mainline DHT Measurement] at Department of Computer Science, University of Helsinki, Finland.
* [http://www.cs.helsinki.fi/u/jakangas/MLDHT/ Mainline डीएचटी Measurement] at Department of Computer Science, University of Helsinki, Finland.
 
{{BitTorrent}}
 
{{DEFAULTSORT:Distributed Hash Table}}[[Category: वितरित डेटा भंडारण]] [[Category: फ़ाइल साझा करना]] [[Category: वितरित डेटा संरचनाएँ]] [[Category: हैश-आधारित डेटा संरचनाएँ]] [[Category: नेटवर्क आर्किटेक्चर]] [[Category: हैशिंग]]
 


{{DEFAULTSORT:Distributed Hash Table}}


[[Category: Machine Translated Page]]
[[Category:Articles with hatnote templates targeting a nonexistent page|Distributed Hash Table]]
[[Category:Created On 11/07/2023]]
[[Category:CS1 English-language sources (en)]]
[[Category:CS1 errors]]
[[Category:Created On 11/07/2023|Distributed Hash Table]]
[[Category:Lua-based templates|Distributed Hash Table]]
[[Category:Machine Translated Page|Distributed Hash Table]]
[[Category:Pages with script errors|Distributed Hash Table]]
[[Category:Templates Vigyan Ready|Distributed Hash Table]]
[[Category:Templates that add a tracking category|Distributed Hash Table]]
[[Category:Templates that generate short descriptions|Distributed Hash Table]]
[[Category:Templates using TemplateData|Distributed Hash Table]]
[[Category:Webarchive template wayback links]]
[[Category:नेटवर्क आर्किटेक्चर|Distributed Hash Table]]
[[Category:फ़ाइल साझा करना|Distributed Hash Table]]
[[Category:वितरित डेटा भंडारण|Distributed Hash Table]]
[[Category:वितरित डेटा संरचनाएँ|Distributed Hash Table]]
[[Category:हैश-आधारित डेटा संरचनाएँ|Distributed Hash Table]]
[[Category:हैशिंग|Distributed Hash Table]]

Latest revision as of 19:28, 21 July 2023

डिस्ट्रिब्यूटेड हैश टेबल (डीएचटी) डिस्ट्रिब्यूटेड अभिकलन है जो की हैश टेबल के समान लुकअप सेवा प्रदान करती है। और कुंजी-मूल्य जोड़े को डीएचटी में संग्रहीत किया जाता है, चूंकि कोई भी भाग लेने वाला नोड (नेटवर्किंग) किसी दिए गए कुंजी (कंप्यूटिंग) से जुड़े मूल्य को कुशलतापूर्वक पुनः प्राप्त कर सकता है। डीएचटी का मुख्य लाभ यह है कि कुंजियों को पुनः डिस्ट्रिब्यूटेड करने के लिए न्यूनतम कार्य के साथ नोड्स को जोड़ा या घटाया जा सकता है। इस प्रकार से कुंजियाँ अद्वितीय पहचानकर्ता हैं जो विशेष मानों को मैप करती हैं, जो परिवर्तन करने में एड्रेसिंग से लेकर इलेक्ट्रॉनिक डॉक्युमेंटेशन तक, इच्छानुकूल डेटा (कंप्यूटिंग) तक कुछ भी हो सकती हैं।[1] कुंजी से मान तक मैपिंग को बनाए रखने की दायित्व नोड्स के मध्य डिस्ट्रिब्यूटेड की जाती है, इस प्रकार से कि प्रतिभागियों के सेट में परिवर्तन से न्यूनतम मात्रा में व्यवधान होता है। यह डीएचटी को अत्यधिक उच्च संख्या में नोड्स को स्केल करने (कंप्यूटिंग) करने और निरंतर नोड आगमन, प्रस्थान और विफलताओं को संभालने की अनुमति देता है।

चूंकि डीएचटी मूलभूत रूप से इसे बनाते हैं जिसका उपयोग अधिक समष्टि सेवाओं के निर्माण के लिए किया जा सकता है, जैसे एनीकास्ट, सहकारी वेब कैशिंग, डिस्ट्रिब्यूटेड फ़ाइल सिस्टम, डोमेन नाम प्रणाली, त्वरित संदेश, बहुस्त्र्पीय , और पीयर-टू-पीयर फ़ाइल साझाकरण और सामग्री वितरण प्रणाली भी है। डीएचटी का उपयोग करने वाले उल्लेखनीय डिस्ट्रिब्यूटेड नेटवर्क में बिटटोरेंट (प्रोटोकॉल) का डिस्ट्रिब्यूटेड ट्रैकर, स्टॉर्म नेटवर्क, टॉक्स इंस्टेंट मैसेंजर, फ़्रीनेट, (प्रोटोकॉल), वाईएसीवाई सर्च इंजन और इंटरप्लेनेटरी फ़ाइल सिस्टम सम्मिलित हैं। इस प्रकार से होलोचेन एक परियोजना है जिसका लक्ष्य घरेलू कंप्यूटर डीएचटी होस्टिंग प्रदान करना है।

डिस्ट्रिब्यूटेड हैश टेबल

इतिहास

डीएचटी अनुसंधान मूल रूप से, आंशिक रूप से, फ़्रीनेट, ग्नुटेला, बिटटोरेंट और नैप्स्टर जैसे पीयर-टू-पीयर (पी2पी) सिस्टम द्वारा प्रेरित था, जिसने एकल उपयोगी एप्लिकेशन प्रदान करने के लिए इंटरनेट पर डिस्ट्रिब्यूटेड संसाधनों का लाभ उठाया है। विशेष रूप से, उन्होंने फ़ाइल-साझाकरण सेवा प्रदान करने के लिए बढ़ी हुई बैंडविड्थ (कंप्यूटिंग) और हार्ड डिस्क क्षमता का लाभ उठाया है।[2]

इस प्रकार की प्रणालियाँ इस तथ्य में भिन्न थीं कि वे अपने सहकर्मी द्वारा उपयोग किए गए डेटा का एड्रेस कैसे लगाते हैं। और नैप्स्टर, पहले उच्च माप की पी2पी सामग्री वितरण प्रणाली, को केंद्रीय सूचकांक सर्वर की आवश्यकता होती है: इस प्रकार से प्रत्येक नोड, सम्मिलित होने पर, स्थानीय रूप से रखी गई फ़ाइलों की सूची सर्वर को भेजता है , जो खोज करके और प्रश्नों को उन नोड्स को संदर्भित करता है जो इसे धारण करते हैं। अर्थात परिणाम यह है, की केंद्रीय घटक ने सिस्टम को अटैक और स्तिथियों के प्रति संवेदनशील बना दिया है।

किन्तु गुटेला और इसी प्रकार के नेटवर्क क्वेरी फ्लडिंग मॉडल में चले गए – संक्षेप में, प्रत्येक खोज के परिणामस्वरूप नेटवर्क में हर दूसरी मशीन पर संदेश प्रसारित की जाती है। और विफलता के बिंदु से बचते हुए, यह विधि नैप्स्टर की तुलना में अधिक कम कुशल थी। गुटेला क्लाइंट के पश्चात्के संस्करण गतिशील क्वेरी मॉडल में चले गए जिससे दक्षता में अधिक सुधार किया गया है।[3]

फ़्रीनेट पूर्ण रूप से डिस्ट्रिब्यूटेड है, किन्तु ह्यूरिस्टिक (कंप्यूटर विज्ञान) कुंजी-आधारित रूटिंग को नियोजित करता है जिसमें प्रत्येक फ़ाइल कुंजी से जुड़ी होती है, और समान कुंजी वाली फ़ाइलें नोड्स के समान सेट पर क्लस्टर होती हैं। इस प्रकार अनेक सहकर्मी से मिलने की आवश्यकता के बिना प्रश्नों को नेटवर्क के माध्यम से ऐसे क्लस्टर में भेजे जाने की संभावना है।[4] चूंकि , फ़्रीनेट ने यह प्रमाण नहीं दिया कि डेटा पुनः प्राप्त होता है।

इस प्रकार से डिस्ट्रिब्यूटेड हैश टेबल फ़्रीनेट और गुटेला के विकेंद्रीकरण और नैप्स्टर की दक्षता और प्रमाण कृत परिणाम दोनों प्राप्त करने के लिए अधिक संरचित कुंजी-आधारित रूटिंग का उपयोग करते हैं। एक कमी यह है कि, फ़्रीनेट की तरह, डीएचटी केवल कीवर्ड खोज के अतिरिक्त सीधे स्पष्ट -मिलान खोज का समर्थन करते हैं, चूंकि फ़्रीनेट के रूटिंग एल्गोरिदम को किसी भी कुंजी प्रकार के लिए सामान्यीकृत किया जा सकता है जहां निकटता ऑपरेशन को परिभाषित किया जा सकता है।[5]

अतः 2001 में, चार सिस्टम- सामग्री एड्रेसयोग्य नेटवर्क ,[6] कॉर्ड (पीयर-टू-पीयर),[7] पेस्ट्री (डीएचटी), और टेपेस्ट्री (डीएचटी) - ने डीएचटी को लोकप्रिय शोध विषय के रूप में प्रज्वलित किया है।

इंफ्रास्ट्रक्चर फॉर रेजिलिएंट इंटरनेट सिस्टम्स (आइरिस) नामक परियोजना को 2002 में यूनाइटेड स्टेट्स राष्ट्रीय विज्ञान संस्था से 12 मिलियन डॉलर के अनुदान द्वारा वित्त पोषित किया गया था।[8]

शोधकर्ताओं में सिल्विया रत्नासामी, आयन स्टोइका, बालकृष्णन दिवस और स्कॉट शेन्कर सम्मिलित थे।[9]

शिक्षा जगत के बाहर, डीएचटी विधियों को बिटटोरेंट और कोरल कंटेंट डिस्ट्रीब्यूशन नेटवर्क के घटक के रूप में अपनाया गया है।

गुण

इस प्रकार से डीएचटी विशेष रूप से निम्नलिखित गुणों पर महत्त्व देते हैं:

  • विकेंद्रीकृत कंप्यूटिंग: नोड्स बिना किसी केंद्रीय समन्वय के सामूहिक रूप से सिस्टम बनाते हैं।
  • दोष सहनशीलता: नोड्स के निरंतर जुड़ने, छोड़ने और विफल होने पर भी सिस्टम विश्वसनीय (कुछ अर्थों में) होना चाहिए।[10]
  • स्केल (कंप्यूटिंग): सिस्टम को हजारों या लाखों नोड्स के साथ भी कुशलतापूर्वक कार्य करना चाहिए।

इन लक्ष्यों को प्राप्त करने के लिए उपयोग की जाने वाली प्रमुख विधिय यह है कि किसी भी नोड को सिस्टम में केवल कुछ अन्य नोड्स के साथ समन्वय करने की आवश्यकता होती है सामान्यतः , एन प्रतिभागियों के बिग ओ अंकन (लॉग एन) (नीचे देखें) - जिससे केवल सीमित नोड हो सदस्यता में प्रत्येक परिवर्तन के लिए कितना कार्य करने की आवश्यकता है।

कुछ डीएचटी डिज़ाइन दुर्भावनापूर्ण प्रतिभागियों के विरुद्ध सुरक्षित संचार चाहते हैं [11] और प्रतिभागियों को गुमनाम रहने की अनुमति देना, चूंकि यह कई अन्य पीयर-टू-पीयर (विशेष रूप से फ़ाइल साझाकरण) और अनाम पी2पी देखें अतः इस प्रकार से यह प्रणालियों की तुलना में कम समान है;।

संरचना

डीएचटी की संरचना को कई मुख्य घटकों में विघटित किया जा सकता है।[12][13] किन्तु आधार एब्स्ट्रेक्ट कीस्पेस (डिस्ट्रिब्यूटेड डेटा स्टोर) है, जैसे कि 160-बिट स्ट्रिंग (कंप्यूटर विज्ञान) का सेट है। चूंकि कीस्पेस विभाजन (डेटाबेस) योजना इस कीस्पेस के स्वामित्व को भाग लेने वाले नोड्स के मध्य विभाजित करती है। और ओवरले नेटवर्क तब नोड्स को जोड़ता है, जिससे उन्हें कीस्पेस में किसी भी कुंजी के उत्तरदायित्व के रूप में अनुमति मिलती है।

इस प्रकार से एक बार ये घटक स्थापित हो जाएं, तो संचयन और पुनर्प्राप्ति के लिए डीएचटी का सामान्य उपयोग निम्नानुसार आगे बढ़ सकता है। मान लीजिए कि कीस्पेस 160-बिट स्ट्रिंग्स का सेट है। डीएचटी में दिए गए filename और डेटा के साथ एक फ़ाइल को अनुक्रमित करने के लिए, filename का एसएचए-1 हैश उत्पन्न होता है, जिससे 160-बिट कुंजी k उत्पन्न होती है, और डीएचटी में भाग लेने वाले किसी भी नोड को एक संदेश put(k, data) भेजा जाता है। इस प्रकार से संदेश को ओवरले नेटवर्क के माध्यम से नोड से नोड तक अग्रेषित किया जाता है जब तक कि यह कीस्पेस विभाजन द्वारा निर्दिष्ट कुंजी k के लिए उत्तरदायित्व एकल नोड तक नहीं पहुंच जाता। वह नोड फिर कुंजी और डेटा संग्रहीत करता है। कोई अन्य क्लाइंट फिर से k उत्पन्न करने के लिए filename को हैश करके फ़ाइल की सामग्री को पुनः प्राप्त कर सकता है और किसी भी डीएचटी नोड को एक संदेश get(k) के साथ k से जुड़े डेटा को खोजने के लिए कह सकता है। संदेश को फिर से ओवरले के माध्यम से k के लिए उत्तरदायित्व नोड पर भेजा जाएगा, जो संग्रहीत data के साथ उत्तर देता है।

अतः अधिकांश डीएचटी के लिए सामान्य प्रमुख विचारों को पकड़ने के लक्ष्य के साथ कीस्पेस विभाजन और ओवरले नेटवर्क घटकों का वर्णन नीचे किया गया है; कई डिज़ाइन विवरण में भिन्न होते हैं।

कीस्पेस विभाजन

इस प्रकार से अधिकांश डीएचटी नोड्स की कुंजियों को मैप करने के लिए सुसंगत हैशिंग या मिलनसार हैशिंग के कुछ प्रकार का उपयोग करते हैं। ऐसा प्रतीत होता है कि डिस्ट्रिब्यूटेड हैश टेबल समस्या को हल करने के लिए दो एल्गोरिदम स्वतंत्र रूप से और साथ तैयार किए गए हैं।

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

निरंतर हैशिंग

निरंतर हैशिंग फ़ंक्शन को नियोजित करती है यह कुंजियों के मध्य की दूरी की एब्स्ट्रेक्ट धारणा को परिभाषित करता है मान लीजिये और , जो भौगोलिक दूरी या नेटवर्क विलंबता से असंबंधित है। प्रत्येक नोड को कुंजी सौंपी जाती है जिसे उसका पहचानकर्ता (आईडी) कहा जाता है। आईडी के साथ नोड सभी कुंजियों का स्वामित्व है जिसके लिए निकटतम आईडी है, जिसके अनुसार मापा जाता है .

इस प्रकार से उदाहरण के लिए, कॉर्ड (पीयर-टू-पीयर) निरंतर हैशिंग का उपयोग करता है, जो नोड्स को सर्कल पर बिंदुओं के रूप में मानता है, और वृत्त के चारों ओर दक्षिणावर्त यात्रा करने वाली दूरी है को . इस प्रकार, वृत्ताकार कुंजीस्थान सन्निहित खंडों में विभाजित हो जाता है जिनके समापन बिंदु नोड पहचानकर्ता होते हैं। यदि और दो आसन्न आईडी हैं, जिनकी दक्षिणावर्त दूरी कम है यदि को , फिर आईडी वाला नोड मध्य में पड़ने वाली सभी कुंजियों का स्वामित्व है और . आदि

रेनडेज़वोअस हैशिंग

रेनडेज़वोअस हैशिंग में, जिसे उच्चतम यादृच्छिक मूल्यांकन (एचआरडब्ल्यू) हैशिंग भी कहा जाता है, सभी क्लाइंट समान हैश फ़ंक्शन का उपयोग करते हैं (समय से पहले चुना गया) किसी कुंजी को उपलब्ध सर्वरों में से किसी से संबद्ध करने के लिए उपयोग किया गया है।

प्रत्येक ग्राहक के पास पहचानकर्ताओं की समान सूची {S1, S2, ..., Sn } होती है , प्रत्येक सर्वर के लिए गणना करता है।

w1 = h(S1, k), w2 = h(S2, k), ..., wn = h(Sn, k) कुछ कुंजी k दिए जाने पर, ग्राहक n हैश भार की गणना करता है .

क्लाइंट उस कुंजी को उस कुंजी के उच्चतम हैश भार के अनुरूप सर्वर के साथ जोड़ता है।

आईडी वाला सर्वर सभी कुंजियों का स्वामित्व है जिसके लिए हैश वजन उस कुंजी के लिए किसी अन्य नोड के हैश भार से अधिक है।

स्थानीयता-संरक्षण हैशिंग

इस प्रकार से स्थानीयता-संरक्षण हैशिंग यह सुनिश्चित करती है जो कि समान वस्तुओं को समान कुंजियाँ सौंपी गई हैं। यह रेंज क्वेरीज़ के अधिक कुशल निष्पादन को सक्षम कर सकता है, चूंकि , निरंतर हैशिंग का उपयोग करने के विपरीत, इस तथ्य का कोई आश्वासन नहीं है कि कुंजी (और इस प्रकार लोड) कुंजी स्थान और भाग लेने वाले सहकर्मी पर समान रूप से यादृच्छिक रूप से डिस्ट्रिब्यूटेड की जाती है। डीएचटी प्रोटोकॉल जैसे सेल्फ-कॉर्ड और ऑस्कर [14] ऐसे नियमो का समाधान करें. और सेल्फ-कॉर्ड, सहकर्मी आईडी से ऑब्जेक्ट कुंजियों को अलग करता है और समूह बुद्धिमत्ता प्रतिमान के आधार पर सांख्यिकीय दृष्टिकोण के साथ रिंग के साथ कुंजियों को सॉर्ट करता है।[15] सॉर्टिंग यह सुनिश्चित करती है कि समान कुंजियाँ निकटम नोड्स द्वारा संग्रहीत की जाती हैं और रेंज क्वेरी (डेटा संरचना) सहित खोज प्रक्रियाएं, लॉगरिदमिक समय में की जा सकती हैं। ऑस्कर यादृच्छिक चाल सैंपलिंग के आधार पर नौगम्य लघु-विश्व नेटवर्क का निर्माण करता है जो लॉगरिदमिक खोज समय का भी आश्वासन देता है।

ओवरले नेटवर्क

प्रत्येक नोड अन्य नोड्स (इसके निकटम या रूटिंग टेबल) के लिए आंकड़ा कड़ी का सेट बनाए रखता है। ये लिंक मिलकर ओवरले नेटवर्क बनाते हैं।[16] नोड अपने निकटम को निश्चित संरचना के अनुसार चुनता है, जिसे नेटवर्क टोपोलॉजी नेटवर्क की टोपोलॉजी कहा जाता है।

सभी डीएचटी टोपोलॉजी अधिक आवश्यक संपत्ति के कुछ प्रकार साझा करते हैं: किसी भी कुंजी k के लिए, प्रत्येक नोड में या तो एक नोड आईडी होती है जो k का स्वामित्व होती है या उस नोड से एक लिंक होता है जिसकी नोड आईडी ऊपर परिभाषित कीस्पेस दूरी के संदर्भ में k के समीप होती है। . निम्नलिखित ग्रीडी एल्गोरिदम का उपयोग करके किसी भी कुंजी k के स्वामित्व को एक संदेश भेजना सरल है (जो आवश्यक नहीं कि विश्व स्तर पर इष्टतम हो): प्रत्येक चरण में, उस निकटम को संदेश अग्रेषित करें जिसकी आईडी k के अधिक समीप है। जब ऐसा कोई पड़ोसी नहीं है, तो हम निकटतम नोड पर पहुंच गए होंगे, जो कि ऊपर परिभाषित के अनुसार k का स्वामित्व है। रूटिंग की इस शैली को कभी-कभी कुंजी-आधारित रूटिंग भी कहा जाता है।

इस प्रकार से मूलभूत रूटिंग शुद्धता से परे, टोपोलॉजी पर दो महत्वपूर्ण बाधाएं यह प्रमाण देना है कि किसी भी रूट (रूट लंबाई) में हॉप (नेटवर्किंग) की अधिकतम संख्या कम है, जिससे अनुरोध शीघ्र से पूर्ण हो जाए; और किसी भी नोड के निकटम की अधिकतम संख्या (अधिकतम नोड डिग्री (ग्राफ सिद्धांत) कम है, जिससे अनुरक्षण ओवरहेड अत्यधिक न हो और निःसंदेह, लघु मार्गों के लिए उच्च अधिकतम डिग्री की आवश्यकता होती है। अधिकतम डिग्री और मार्ग की लंबाई के लिए कुछ सामान्य विकल्प इस प्रकार हैं, जहां n बिग ओ नोटेशन का उपयोग करते हुए डीएचटी में नोड्स की संख्या है:

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

अधिक समान विकल्प, डिग्री/रूट लंबाई, डिग्री/रूट लंबाई ट्रेडऑफ़ के संदर्भ में इष्टतम नहीं है, किन्तु इस प्रकार की टोपोलॉजी सामान्यतः निकटम की विकल्प में अधिक लचीलेपन की अनुमति देती है। अतः अनेक डीएचटी उस लचीलेपन का उपयोग उन निकटम को चुनने के लिए करते हैं जो भौतिक अंतर्निहित नेटवर्क में विलंबता के स्तिथियों में समीप हैं। सामान्यतः , सभी डीएचटी नौगम्य लघु-विश्व नेटवर्क टोपोलॉजी का निर्माण करते हैं, जो की मार्ग की लंबाई बनाम नेटवर्क डिग्री का व्यापार करते हैं।[17]

अधिकतम मार्ग की लंबाई व्यास (ग्राफ़ सिद्धांत) से निकटता से संबंधित है: नोड्स के मध्य किसी भी अधिक लघु पथ में हॉप्स की अधिकतम संख्या। स्पष्ट रूप से, नेटवर्क की अधिक व्यर्थ स्थिति में मार्ग की लंबाई कम से कम उसके व्यास जितनी उच्च है, इसलिए डीएचटी डिग्री/व्यास ट्रेडऑफ़ द्वारा सीमित हैं [18] यह ग्राफ़ सिद्धांत में मौलिक है। मार्ग की लंबाई व्यास से अधिक हो सकती है, क्योंकि ग्रीडी रूटिंग एल्गोरिदम अधिक लघु पथ नहीं खोज सकता है।[19]

ओवरले नेटवर्क के लिए एल्गोरिदम

इस प्रकार से रूटिंग के अतिरिक्त , ऐसे अनेक एल्गोरिदम उपस्तिथ हैं जो की डीएचटी में सभी नोड्स, या नोड्स के अधिक सबसेट को संदेश भेजने के लिए ओवरले नेटवर्क की संरचना का लाभ उठाते हैं।[20] चूंकि एल्गोरिदम का उपयोग अनुप्रयोगों द्वारा ओवरले मल्टीकास्ट, रेंज क्वेरीज़ या आंकड़े एकत्र करने के लिए किया जाता है। अतः स्ट्रक्चरेला और दृष्टिकोण पर आधारित दो प्रणालियाँ हैं ,[21] जो की पेस्ट्री ओवरले पर फ्लडिंग और यादृच्छिक चाल को प्रयुक्त करता है, और डीक्यू-डीएचटी, जो कॉर्ड नेटवर्क पर गतिशील क्वेरी खोज एल्गोरिदम को प्रयुक्त करता है।[22]

सुरक्षा

डीएचटी के विकेंद्रीकरण, दोष सहनशीलता और मापनीयता के कारण, वे केंद्रीकृत प्रणाली की तुलना में शत्रुतापूर्ण अटैक के विरुद्ध स्वाभाविक रूप से अधिक लचीले होते हैं।

चूंकि डिस्ट्रिब्यूटेड डेटा संचयन के लिए खुली प्रणालियाँ जो उच्च माप पर शत्रुतापूर्ण अटैको के विरुद्ध समष्टि हों, संभव हैं।[23]

डीएचटी प्रणाली जिसे बीजान्टिन दोष सहनशीलता के लिए सावधानीपूर्वक डिज़ाइन किया गया है, सुरक्षा कम महत्त्वहीन से सुरक्षा कर सकती है, जिसे सिबिल अटैक के रूप में जाना जाता है, जो की अधिकांश उपस्तिथ डीएचटी डिज़ाइनों को प्रभावित करता है।[24][25] व्हानाउ डीएचटी है जिसे सिबिल अटैक के प्रति प्रतिरोधी बनाने के लिए डिज़ाइन किया गया है।[26]

कैडेमलिया के मूल लेखकों में से , पेटार मेमौनकोव ने सिस्टम डिज़ाइन में सामाजिक विश्वास संबंधों को सम्मिलित करके सिबिल अटैक की कम महत्त्वहीन को दूर करने का विधि प्रस्तावित किया है।[27] इस प्रकार से नई प्रणाली, जिसका कोडनेम टोनिका है या जिसे इसके डोमेन नाम 5ttt के नाम से भी जाना जाता है, एल्गोरिदम डिज़ाइन पर आधारित है जिसे इलेक्ट्रिक रूटिंग के रूप में जाना जाता है और गणितज्ञ जोनाथन केल्नर के साथ सह-लेखक है।[28] मेमौनकोव ने अब इस नई प्रणाली का व्यापक कार्यान्वयन प्रयास प्रारंभ किया है। चूंकि , सिबिल अटैक के विरुद्ध प्रभावी बचाव में अनुसंधान को सामान्तः खुला प्रश्न माना जाता है, और हर साल शीर्ष सुरक्षा अनुसंधान सम्मेलनों में विभिन्न प्रकार के संभावित बचाव प्रस्तावित किए जाते हैं।

कार्यान्वयन

इस प्रकार से डीएचटी कार्यान्वयन के व्यावहारिक उदाहरणों में सामने आए अधिक उल्लेखनीय अंतरों में कम से कम निम्नलिखित सम्मिलित हैं:

  • एड्रेस स्थान डीएचटी का पैरामीटर है। कई वास्तविक दुनिया के डीएचटी 128-बिट या 160-बिट कुंजी स्थान का उपयोग करते हैं।
  • कुछ वास्तविक दुनिया के डीएचटी एसएचए -1 के अतिरिक्त अन्य हैश फ़ंक्शन का उपयोग करते हैं।
  • वास्तविक दुनिया में कुंजी k सामग्री-एड्रेस योग्य संचयन प्रदान करने के लिए फ़ाइल के नाम के हैश के अतिरिक्त फ़ाइल की सामग्री का हैश हो सकता है, जिससे फ़ाइल का नाम परिवर्तन ने से उपयोगकर्ताओं को इसे खोजने से नहीं रोका जा सकता है।
  • कुछ डीएचटी विभिन्न प्रकार की वस्तुओं को भी प्रकाशित कर सकते हैं। उदाहरण के लिए, कुंजी k नोड ID हो सकता है और संबंधित डेटा यह बता सकता है कि इस नोड से कैसे संपर्क किया जाए। यह उपस्थिति की सूचना ID के प्रकाशन की अनुमति देता है और प्रायः आईएम अनुप्रयोगों आदि में उपयोग किया जाता है। अधिक सरल स्तिथियों में, ID केवल यादृच्छिक संख्या है जिसे सीधे कुंजी k के रूप में उपयोग किया जाता है (तो 160-बिट डीएचटी में ID 160-बिट संख्या होगी, जिसे सामान्यतः यादृच्छिक रूप से चुना जाता है)। कुछ डीएचटी में, डीएचटी संचालन को अनुकूलित करने के लिए नोड्स आईडी के प्रकाशन का भी उपयोग किया जाता है।
  • विश्वसनीयता में सुधार के लिए अतिरेक को जोड़ा जा सकता है। जहाँ (k, data) कुंजी युग्म को कुंजी के अनुरूप से अधिक नोड में संग्रहित किया जा सकता है। सामान्यतः , केवल नोड का चयन करने के अतिरिक्त , वास्तविक दुनिया डीएचटी एल्गोरिदम i का चयन करते हैं उपयुक्त नोड्स, के साथ डीएचटी का कार्यान्वयन-विशिष्ट पैरामीटर है। कुछ डीएचटी डिज़ाइनों में, नोड्स निश्चित कीस्पेस रेंज को संभालने के लिए सहमत होते हैं, जिसका आकार हार्ड-कोड के अतिरिक्त गतिशील रूप से चुना जा सकता है।
  • कैडेमलिया जैसे कुछ उन्नत डीएचटी उपयुक्त नोड्स के एक सेट का चयन करने और केवल उन नोड्स पर put(k, data) संदेश भेजने के लिए पहले डीएचटी के माध्यम से पुनरावृत्त लुकअप करते हैं, इस प्रकार बेकार ट्रैफ़िक को अधिक कम कर देते हैं, क्योंकि प्रकाशित संदेश केवल उन नोड्स को भेजे जाते हैं जो की कुंजी k को संग्रहित करने के लिए उपयुक्त प्रतीत होता है; और पुनरावृत्त लुकअप संपूर्ण डीएचटी के अतिरिक्त केवल नोड्स के एक छोटे सेट को कवर करते हैं, जिससे बेकार अग्रेषण कम हो जाता है। ऐसे डीएचटी में, put(k, data) संदेशों को अग्रेषित करना केवल स्व-उपचार एल्गोरिदम के भागो के रूप में हो सकता है: यदि लक्ष्य नोड को put(k, data) संदेश प्राप्त होता है, किन्तु मानता है कि के इसकी नियंत्रित सीमा से बाहर है और एक समीप नोड (डीएचटी कीस्पेस के संदर्भ में) ज्ञात है, संदेश उस नोड पर अग्रेषित किया जाता है। अन्यथा, डेटा स्थानीय रूप से अनुक्रमित किया जाता है। इससे कुछ सीमा तक स्व-संतुलित डीएचटी व्यवहार होता है। इस प्रकार से , ऐसे एल्गोरिदम के लिए नोड्स को डीएचटी में अपनी उपस्थिति डेटा प्रकाशित करने की आवश्यकता होती है जिससे पुनरावृत्त लुकअप किया जा सके।
  • चूँकि अधिकांश मशीनों पर संदेश भेजना स्थानीय हैश टेबल एक्सेस की तुलना में बहुत अधिक बहुमूल्य है, इसलिए किसी विशेष नोड से संबंधित कई संदेशों को एक ही बैच में बंडल करना समझ में आता है। यह मानते हुए कि प्रत्येक नोड में एक स्थानीय बैच है जिसमें अधिकतम b ऑपरेशन सम्मिलित हैं, बंडलिंग प्रक्रिया इस प्रकार है। प्रत्येक नोड पहले ऑपरेशन के लिए उत्तरदायी नोड के पहचानकर्ता द्वारा अपने स्थानीय बैच को सॉर्ट करता है। बाल्टी प्रकार का उपयोग करके, यह O(b + n) में किया जा सकता है, जहां n डीएचटी में नोड्स की संख्या है। जब एक बैच के अन्दर एक ही कुंजी को संबोधित करने वाले कई ऑपरेशन होते हैं, तो बैच को बाहर भेजे जाने से पहले संघनित किया जाता है। उदाहरण के लिए, एक ही कुंजी के एकाधिक लुकअप को एक में घटाया जा सकता है या एक ही ऐड ऑपरेशन में एकाधिक वृद्धि को कम किया जा सकता है। इस कमी को अस्थायी स्थानीय हैश टेबल की सहायता से कार्यान्वित किया जा सकता है। अंत में, ऑपरेशन संबंधित नोड्स को भेजे जाते हैं[29]

उदाहरण

डीएचटी प्रोटोकॉल और कार्यान्वयन

डीएचटी का उपयोग करने वाले अनुप्रयोग

  • बीटीडिग्ग: बिटटोरेंट डीएचटी सर्च इंजन
  • कोडीन: वेब कैशिंग
  • फ़्रीनेट: सेंसरशिप-प्रतिरोधी अनाम नेटवर्क
  • ग्लस्टरएफएस: डिस्ट्रिब्यूटेड फ़ाइल सिस्टम जिसका उपयोग स्टोरेज वर्चुअलाइजेशन के लिए किया जाता है
  • जीएनयूनेट: डीएचटी कार्यान्वयन सहित फ्रीनेट जैसा वितरण नेटवर्क
  • I2P: ओपन-सोर्स अनाम पीयर-टू-पीयर नेटवर्क
  • I2P-बोट: सर्वर रहित सुरक्षित अनाम ईमेल
  • इंटरप्लेनेटरी फाइल सिस्टम: कंटेंट-एड्रेसेबल, पीयर-टू-पीयर हाइपरमीडिया वितरण प्रोटोकॉल
  • जेएक्सटीए : ओपन-सोर्स पी2पी प्लेटफॉर्म
  • एलबीआरवाई : ब्लॉकचेन-आधारित सामग्री साझाकरण प्रोटोकॉल जो सामग्री वितरण के लिए कैडेमलिया-प्रभावित डीएचटी प्रणाली का उपयोग करता है
  • ओरेकल सुसंगतता : जावा डीएचटी कार्यान्वयन के शीर्ष पर निर्मित इन-मेमोरी डेटा ग्रिड
  • परफेक्ट डार्क (पी2पी): जापान का पीयर-टू-पीयर फ़ाइल साझा करना एप्लिकेशन
  • पुनः साझाकरण : मित्र-से-मित्र नेटवर्क[31]
  • जामी (सॉफ्टवेयर): गोपनीयता-संरक्षण आवाज, वीडियो और चैट संचार मंच, जो कैडेमलिया-जैसे डीएचटी पर आधारित है
  • टॉक्स (प्रोटोकॉल): त्वरित संदेश प्रणाली जिसका उद्देश्य स्काइप प्रतिस्थापन के रूप में कार्य करना है
  • ट्विस्टर (सॉफ्टवेयर): माइक्रोब्लॉगिंग पीयर-टू-पीयर प्लेटफॉर्म
  • वाईएसीवाई : डिस्ट्रिब्यूटेड वेब सर्च इंजन

यह भी देखें

  • काउचबेस सर्वर: मेम्केच्ड प्रोटोकॉल के साथ संगत सतत, प्रतिकृति, क्लस्टर्ड डिस्ट्रिब्यूटेड ऑब्जेक्ट स्टोरेज सिस्टम है।
  • मेमकैच्ड: उच्च-प्रदर्शन, डिस्ट्रिब्यूटेड मेमोरी ऑब्जेक्ट कैशिंग सिस्टम है।
  • उपसर्ग हैश ट्री: डीएचटी पर परिष्कृत क्वेरी आदि।
  • मर्केलट्री: वह ट्री जिसमें प्रत्येक गैर-लीफ नोड को उसके बच्चों के नोड्स के लेबल के हैश के साथ लेबल किया जाता है।
  • अधिकांश डिस्ट्रिब्यूटेड डेटा स्टोर लुकअप के लिए किसी न किसी रूप में डीएचटी का उपयोग करते हैं।
  • डीएचटी को प्रयुक्त करने के लिए स्किप ग्राफ़ कुशल डेटा संरचना है।

संदर्भ

  1. Stoica, I.; Morris, R.; Karger, D.; Kaashoek, M. F.; Balakrishnan, H. (2001). "Chord: A scalable peer-to-peer lookup service for internet applications" (PDF). ACM SIGCOMM Computer Communication Review. 31 (4): 149. doi:10.1145/964723.383071. A value can be an address, a document, or an arbitrary data item.
  2. Liz, Crowcroft; et al. (2005). "पीयर-टू-पीयर ओवरले नेटवर्क योजनाओं का सर्वेक्षण और तुलना" (PDF). IEEE Communications Surveys & Tutorials. 7 (2): 72–93. CiteSeerX 10.1.1.109.6124. doi:10.1109/COMST.2005.1610546. S2CID 7971188.
  3. Richter, Stevenson; et al. (2009). "क्लाइंट-सर्वर संबंधों पर गतिशील क्वेरी मॉडल के प्रभाव का विश्लेषण". Trends in Modern Computing: 682–701.
  4. Searching in a Small World Chapters 1 & 2 (PDF), retrieved 2012-01-10
  5. "Section 5.2.2" (PDF), A Distributed Decentralized Information Storage and Retrieval System, retrieved 2012-01-10
  6. Ratnasamy; et al. (2001). "एक स्केलेबल कंटेंट-एड्रेसेबल नेटवर्क" (PDF). In Proceedings of ACM SIGCOMM 2001. Retrieved 2013-05-20. {{cite journal}}: Cite journal requires |journal= (help)
  7. Hari Balakrishnan, M. Frans Kaashoek, David Karger, Robert Morris, and Ion Stoica. Looking up data in P2P systems. In Communications of the ACM, February 2003.
  8. David Cohen (October 1, 2002). "New P2P network funded by US government". New Scientist. Retrieved November 10, 2013.
  9. "एमआईटी, बर्कले, आईसीएसआई, एनवाईयू और राइस ने आईआरआईएस प्रोजेक्ट लॉन्च किया". Press release. MIT. September 25, 2002. Archived from the original on September 26, 2015. Retrieved November 10, 2013.
  10. R Mokadem, A Hameurlain and AM Tjoa. Resource discovery service while minimizing maintenance overhead in hierarchical DHT systems. Proc. iiWas, 2010
  11. Guido Urdaneta, Guillaume Pierre and Maarten van Steen. A Survey of DHT Security Techniques. ACM Computing Surveys 43(2), January 2011.
  12. Moni Naor and Udi Wieder. Novel Architectures for P2P Applications: the Continuous-Discrete Approach. Proc. SPAA, 2003.
  13. Gurmeet Singh Manku. Dipsea: A Modular Distributed Hash Table Archived 2004-09-10 at the Wayback Machine. Ph. D. Thesis (Stanford University), August 2004.
  14. Girdzijauskas, Šarūnas; Datta, Anwitaman; Aberer, Karl (2010-02-01). "विषम वातावरण के लिए संरचित ओवरले". ACM Transactions on Autonomous and Adaptive Systems. 5 (1): 1–25. doi:10.1145/1671948.1671950. ISSN 1556-4665. S2CID 13218263.
  15. Forestiero, Agostino; Leonardi, Emilio; Mastroianni, Carlo; Meo, Michela (October 2010). "Self-Chord: A Bio-Inspired P2P Framework for Self-Organizing Distributed Systems". IEEE/ACM Transactions on Networking. 18 (5): 1651–1664. doi:10.1109/TNET.2010.2046745. S2CID 14797120.
  16. Galuba, Wojciech; Girdzijauskas, Sarunas (2009), "Peer to Peer Overlay Networks: Structure, Routing and Maintenance", in LIU, LING; ÖZSU, M. TAMER (eds.), Encyclopedia of Database Systems (in English), Springer US, pp. 2056–2061, doi:10.1007/978-0-387-39940-9_1215, ISBN 9780387399409
  17. Girdzijauskas, Sarunas (2009). पीयर-टू-पीयर डिज़ाइन करना एक छोटी दुनिया के परिप्रेक्ष्य को दर्शाता है. {{cite book}}: |website= ignored (help)
  18. The (Degree,Diameter) Problem for Graphs, Maite71.upc.es, archived from the original on 2012-02-17, retrieved 2012-01-10
  19. Gurmeet Singh Manku, Moni Naor, and Udi Wieder. "Know thy Neighbor's Neighbor: the Power of Lookahead in Randomized P2P Networks". Proc. STOC, 2004.
  20. Ali Ghodsi (22 May 2007). "Distributed k-ary System: Algorithms for Distributed Hash Tables". Archived from the original on 4 January 2007. {{cite web}}: |archive-date= / |archive-url= timestamp mismatch (help). KTH-Royal Institute of Technology, 2006.
  21. Castro, Miguel; Costa, Manuel; Rowstron, Antony (1 January 2004). "Should we build Gnutella on a structured overlay?" (PDF). ACM SIGCOMM Computer Communication Review. 34 (1): 131. CiteSeerX 10.1.1.221.7892. doi:10.1145/972374.972397. S2CID 6587291.
  22. Talia, Domenico; Trunfio, Paolo (December 2010). "वितरित हैश तालिकाओं पर गतिशील क्वेरी सक्षम करना". Journal of Parallel and Distributed Computing. 70 (12): 1254–1265. doi:10.1016/j.jpdc.2010.08.012.
  23. Baruch Awerbuch, Christian Scheideler. "Towards a scalable and robust DHT". 2006. doi:10.1145/1148109.1148163
  24. Maxwell Young; Aniket Kate; Ian Goldberg; Martin Karsten. "Practical Robust Communication in DHTs Tolerating a Byzantine Adversary".
  25. Natalya Fedotova; Giordano Orzetti; Luca Veltri; Alessandro Zaccagnini. "Byzantine agreement for reputation management in DHT-based peer-to-peer networks". doi:10.1109/ICTEL.2008.4652638
  26. Whanau: A Sybil-proof Distributed Hash Table https://pdos.csail.mit.edu/papers/whanau-nsdi10.pdf
  27. Chris Lesniewski-Laas. "एक सिबिल-प्रूफ वन-हॉप DHT" (PDF): 20. {{cite journal}}: Cite journal requires |journal= (help)
  28. Jonathan Kelner, Petar Maymounkov (2009). "इलेक्ट्रिक रूटिंग और समवर्ती प्रवाह कटिंग". arXiv:0909.2859. Bibcode:2009arXiv0909.2859K. {{cite journal}}: Cite journal requires |journal= (help)
  29. Sanders, Peter; Mehlhorn, Kurt; Dietzfelbinger, Martin; Dementiev, Roman (2019). Sequential and Parallel Algorithms and Data Structures: The Basic Toolbox (in English). Springer International Publishing. ISBN 978-3-030-25208-3.
  30. Tribler wiki Archived December 4, 2010, at the Wayback Machine retrieved January 2010.
  31. Retroshare FAQ retrieved December 2011

बाहरी संबंध