डिस्ट्रिब्यूटेड हैश टेबल: Difference between revisions
No edit summary |
No edit summary |
||
Line 1: | Line 1: | ||
{{Short description|Decentralized distributed system with lookup service}} | {{Short description|Decentralized distributed system with lookup service}} | ||
वितरित [[ हैश तालिका |हैश तालिका]] (डीएचटी) [[ वितरित अभिकलन |वितरित अभिकलन]] है जो की हैश तालिका के समान लुकअप सेवा प्रदान करती है। और कुंजी-मूल्य जोड़े को डीएचटी में संग्रहीत किया जाता है, चूंकि कोई भी भाग लेने वाला [[नोड (नेटवर्किंग)]] किसी दिए गए [[कुंजी (कंप्यूटिंग)]] से जुड़े मूल्य को कुशलतापूर्वक पुनः प्राप्त कर सकता है। डीएचटी का मुख्य लाभ यह है कि कुंजियों को पुनः वितरित करने के लिए न्यूनतम कार्य के साथ नोड्स को जोड़ा या घटाया जा सकता है। इस प्रकार से ''कुंजियाँ'' अद्वितीय पहचानकर्ता हैं जो विशेष ''मानों'' को मैप करती हैं, जो परिवर्तन करने में पते से लेकर [[इलेक्ट्रॉनिक दस्तावेज़]] तक, इच्छानुकूल [[डेटा (कंप्यूटिंग)]] तक कुछ भी हो सकती हैं।<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]] सर्च इंजन और [[इंटरप्लेनेटरी फ़ाइल सिस्टम]] सम्मिलित हैं। इस प्रकार से [[होलोचेन]] एक परियोजना है जिसका लक्ष्य घरेलू कंप्यूटर डीएचटी होस्टिंग प्रदान करना है। | ||
[[File:DHT en.svg|500px|right|thumb|वितरित हैश | [[File:DHT en.svg|500px|right|thumb|वितरित हैश तालिका ]] | ||
== इतिहास == | == इतिहास == | ||
डीएचटी अनुसंधान मूल रूप से, आंशिक रूप से, फ़्रीनेट, [[ग्नुटेला]], [[बिटटोरेंट]] और [[नैप्स्टर]] जैसे पीयर-टू-पीयर (पी2पी) सिस्टम द्वारा प्रेरित था, जिसने | डीएचटी अनुसंधान मूल रूप से, आंशिक रूप से, फ़्रीनेट, [[ग्नुटेला]], [[बिटटोरेंट]] और [[नैप्स्टर]] जैसे पीयर-टू-पीयर (पी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पी सामग्री वितरण प्रणाली, को केंद्रीय सूचकांक सर्वर की आवश्यकता होती है: इस प्रकार से प्रत्येक नोड, सम्मिलित होने पर, स्थानीय रूप से रखी गई फ़ाइलों की सूची सर्वर को भेजता है , जो खोज करके और प्रश्नों को उन नोड्स को संदर्भित करता है जो इसे धारण करते हैं। अर्थात परिणाम यह है, की केंद्रीय घटक ने सिस्टम को अटैक और स्तिथियों के प्रति संवेदनशील बना दिया है । | |||
गुटेला और इसी | किन्तु गुटेला और इसी प्रकार के नेटवर्क [[क्वेरी बाढ़|क्वेरी फ्लडिंग]] मॉडल में चले गए{{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 |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> पेस्ट्री (डीएचटी), और [[टे[[पेस्ट्री (DHT)|पेस्ट्री (डीएचटी)]]]]डीएचटी) - ने डीएचटी को लोकप्रिय शोध विषय के रूप में प्रज्वलित किया। | ||
इंफ्रास्ट्रक्चर फॉर रेजिलिएंट इंटरनेट सिस्टम्स (आइरिस) नामक परियोजना को 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> | ||
शिक्षा जगत के बाहर, डीएचटी तकनीक को बिटटोरेंट और कोरल कंटेंट डिस्ट्रीब्यूशन नेटवर्क के घटक के रूप में अपनाया गया है। | शिक्षा जगत के बाहर, डीएचटी तकनीक को बिटटोरेंट और कोरल कंटेंट डिस्ट्रीब्यूशन नेटवर्क के घटक के रूप में अपनाया गया है। | ||
== गुण == | == गुण == | ||
डीएचटी विशेष रूप से निम्नलिखित गुणों पर जोर देते हैं: | |||
* [[विकेंद्रीकृत कंप्यूटिंग]]: नोड्स बिना किसी केंद्रीय समन्वय के सामूहिक रूप से सिस्टम बनाते हैं। | * [[विकेंद्रीकृत कंप्यूटिंग]]: नोड्स बिना किसी केंद्रीय समन्वय के सामूहिक रूप से सिस्टम बनाते हैं। | ||
Line 34: | Line 34: | ||
इन लक्ष्यों को प्राप्त करने के लिए उपयोग की जाने वाली प्रमुख तकनीक यह है कि किसी भी नोड को सिस्टम में केवल कुछ अन्य नोड्स के साथ समन्वय करने की आवश्यकता होती है - आमतौर पर, एन प्रतिभागियों के [[ बिग ओ अंकन |बिग ओ अंकन]] (लॉग एन) (नीचे देखें) - ताकि केवल सीमित नोड हो सदस्यता में प्रत्येक परिवर्तन के लिए कितना कार्य करने की आवश्यकता है। | इन लक्ष्यों को प्राप्त करने के लिए उपयोग की जाने वाली प्रमुख तकनीक यह है कि किसी भी नोड को सिस्टम में केवल कुछ अन्य नोड्स के साथ समन्वय करने की आवश्यकता होती है - आमतौर पर, एन प्रतिभागियों के [[ बिग ओ अंकन |बिग ओ अंकन]] (लॉग एन) (नीचे देखें) - ताकि केवल सीमित नोड हो सदस्यता में प्रत्येक परिवर्तन के लिए कितना कार्य करने की आवश्यकता है। | ||
कुछ | कुछ डीएचटी डिज़ाइन दुर्भावनापूर्ण प्रतिभागियों के विरुद्ध [[सुरक्षित संचार]] चाहते हैं<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>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}} | बार ये घटक स्थापित हो जाएं, तो भंडारण और पुनर्प्राप्ति के लिए डीएचटी का सामान्य उपयोग निम्नानुसार आगे बढ़ सकता है। मान लीजिए कि कीस्पेस 160-बिट स्ट्रिंग्स का सेट है। किसी फ़ाइल को दिए गए के साथ अनुक्रमित करने के लिए {{Var serif|filename}} और {{mvar|data}} डीएचटी में, [[SHA-1]] हैश {{mvar|filename}} 160-बिट कुंजी उत्पन्न करते हुए उत्पन्न होता है {{mvar|k}}, और संदेश {{math|''put''(''k, data'')}} डीएचटी में भाग लेने वाले किसी भी नोड को भेजा जाता है। संदेश को ओवरले नेटवर्क के माध्यम से नोड से नोड तक अग्रेषित किया जाता है जब तक कि यह कुंजी के लिए जिम्मेदार ल नोड तक नहीं पहुंच जाता {{mvar|k}} जैसा कि कीस्पेस विभाजन द्वारा निर्दिष्ट किया गया है। वह नोड फिर कुंजी और डेटा संग्रहीत करता है। कोई अन्य क्लाइंट फिर से हैशिंग द्वारा फ़ाइल की सामग्री को पुनः प्राप्त कर सकता है {{mvar|filename}} उत्पन्न करना {{mvar|k}} और किसी भी डीएचटी नोड से संबद्ध डेटा ढूंढने के लिए कहना {{mvar|k}} संदेश के साथ {{math|''get''(''k'')}}. संदेश को फिर से ओवरले के माध्यम से जिम्मेदार नोड तक भेजा जाएगा {{mvar|k}}, जो संग्रहीत के साथ उत्तर देगा {{mvar|data}}. | ||
अधिकांश डीएचटी के लिए सामान्य प्रमुख विचारों को पकड़ने के लक्ष्य के साथ कीस्पेस विभाजन और ओवरले नेटवर्क घटकों का वर्णन नीचे किया गया है; कई डिज़ाइन विवरण में भिन्न होते हैं। | अधिकांश डीएचटी के लिए सामान्य प्रमुख विचारों को पकड़ने के लक्ष्य के साथ कीस्पेस विभाजन और ओवरले नेटवर्क घटकों का वर्णन नीचे किया गया है; कई डिज़ाइन विवरण में भिन्न होते हैं। | ||
Line 51: | Line 51: | ||
{{further|Consistent hashing}} | {{further|Consistent hashing}} | ||
लगातार हैशिंग फ़ंक्शन को नियोजित करती है <math>\delta(k_1, k_2)</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>\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>. | ||
==== मिलन स्थल हैशिंग ==== | ==== मिलन स्थल हैशिंग ==== | ||
Line 67: | Line 67: | ||
{{further|Locality-preserving hashing}} | {{further|Locality-preserving hashing}} | ||
स्थानीयता-संरक्षण हैशिंग यह सुनिश्चित करती है कि समान वस्तुओं को समान कुंजियाँ सौंपी गई हैं। यह रेंज क्वेरीज़ के अधिक कुशल निष्पादन को सक्षम कर सकता है, हालांकि, लगातार हैशिंग का उपयोग करने के विपरीत, इस बात का कोई आश्वासन नहीं है कि कुंजी (और इस प्रकार लोड) कुंजी स्थान और भाग लेने वाले | स्थानीयता-संरक्षण हैशिंग यह सुनिश्चित करती है कि समान वस्तुओं को समान कुंजियाँ सौंपी गई हैं। यह रेंज क्वेरीज़ के अधिक कुशल निष्पादन को सक्षम कर सकता है, हालांकि, लगातार हैशिंग का उपयोग करने के विपरीत, इस बात का कोई आश्वासन नहीं है कि कुंजी (और इस प्रकार लोड) कुंजी स्थान और भाग लेने वाले सहकर्मी पर समान रूप से यादृच्छिक रूप से वितरित की जाती है। डीएचटी प्रोटोकॉल जैसे सेल्फ-कॉर्ड और ऑस्कर<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> सॉर्टिंग यह सुनिश्चित करती है कि समान कुंजियाँ पड़ोसी नोड्स द्वारा संग्रहीत की जाती हैं और रेंज क्वेरी (डेटा संरचना) सहित खोज प्रक्रियाएं, लॉगरिदमिक समय में की जा सकती हैं। ऑस्कर [[ यादृच्छिक चाल |यादृच्छिक चाल]] सैंपलिंग के आधार पर नौगम्य [[लघु-विश्व नेटवर्क]] का निर्माण करता है जो लॉगरिदमिक खोज समय का भी आश्वासन देता है। | ||
=== ओवरले नेटवर्क === | === ओवरले नेटवर्क === | ||
Line 74: | Line 74: | ||
सभी डीएचटी टोपोलॉजी सबसे आवश्यक संपत्ति के कुछ प्रकार साझा करते हैं: किसी भी कुंजी के लिए {{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}} बिग ओ नोटेशन का उपयोग करते हुए डीएचटी में नोड्स की संख्या है: | |||
{| class="wikitable" | {| class="wikitable" | ||
Line 90: | Line 90: | ||
| <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> || || Worst local storage needs, with much communication after any node connects or disconnects | ||
|} | |} | ||
सबसे आम विकल्प, <math>O(\log n)</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> | ||
अधिकतम मार्ग की लंबाई व्यास (ग्राफ़ सिद्धांत) से निकटता से संबंधित है: नोड्स के | अधिकतम मार्ग की लंबाई व्यास (ग्राफ़ सिद्धांत) से निकटता से संबंधित है: नोड्स के मध्य किसी भी सबसे छोटे पथ में हॉप्स की अधिकतम संख्या। स्पष्ट रूप से, नेटवर्क की सबसे खराब स्थिति में मार्ग की लंबाई कम से कम उसके व्यास जितनी बड़ी है, इसलिए डीएचटी डिग्री/व्यास ट्रेडऑफ़ द्वारा सीमित हैं<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>{{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> | ||
Baruch Awerbuch, Christian Scheideler. | Baruch Awerbuch, Christian Scheideler. | ||
"Towards a scalable and robust DHT". | "Towards a scalable and robust DHT". | ||
Line 113: | Line 113: | ||
"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> व्हानाउ | </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> मेमौनकोव ने अब इस नई प्रणाली का व्यापक कार्यान्वयन प्रयास शुरू किया है। चूंकि , सिबिल अटैक के खिलाफ प्रभावी बचाव में अनुसंधान को आम तौर पर खुला प्रश्न माना जाता है, और हर साल शीर्ष सुरक्षा अनुसंधान सम्मेलनों में विभिन्न प्रकार के संभावित बचाव प्रस्तावित किए जाते हैं। | ||
== कार्यान्वयन == | == कार्यान्वयन == | ||
डीएचटी कार्यान्वयन के व्यावहारिक उदाहरणों में सामने आए सबसे उल्लेखनीय अंतरों में कम से कम निम्नलिखित सम्मिलित हैं: | |||
* पता स्थान | * पता स्थान डीएचटी का पैरामीटर है। कई वास्तविक दुनिया के डीएचटी 128-बिट या 160-बिट कुंजी स्थान का उपयोग करते हैं। | ||
* कुछ वास्तविक दुनिया के | * कुछ वास्तविक दुनिया के डीएचटी SHA-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-बिट | * कुछ डीएचटी विभिन्न प्रकार की वस्तुओं को भी प्रकाशित कर सकते हैं। उदाहरण के लिए, कुंजी {{var serif|1=k}} नोड हो सकता है {{var serif|1=ID}} और संबंधित डेटा यह बता सकता है कि इस नोड से कैसे संपर्क किया जाए। यह उपस्थिति की जानकारी के प्रकाशन की अनुमति देता है और अक्सर आईएम अनुप्रयोगों आदि में उपयोग किया जाता है। सबसे सरल मामले में, {{var serif|1=ID}} केवल यादृच्छिक संख्या है जिसे सीधे कुंजी के रूप में उपयोग किया जाता है {{var serif|1=k}} (तो 160-बिट डीएचटी में {{var serif|1=ID}} 160-बिट संख्या होगी, जिसे आमतौर पर यादृच्छिक रूप से चुना जाता है)। कुछ डीएचटी में, डीएचटी संचालन को अनुकूलित करने के लिए नोड्स आईडी के प्रकाशन का भी उपयोग किया जाता है। | ||
* विश्वसनीयता में सुधार के लिए अतिरेक को जोड़ा जा सकता है। वह {{var serif|1=(k, data)}} कुंजी युग्म को कुंजी के अनुरूप से अधिक नोड में संग्रहित किया जा सकता है। आमतौर पर, केवल नोड का चयन करने के बजाय, वास्तविक दुनिया | * विश्वसनीयता में सुधार के लिए अतिरेक को जोड़ा जा सकता है। वह {{var serif|1=(k, data)}} कुंजी युग्म को कुंजी के अनुरूप से अधिक नोड में संग्रहित किया जा सकता है। आमतौर पर, केवल नोड का चयन करने के बजाय, वास्तविक दुनिया डीएचटी एल्गोरिदम का चयन करते हैं {{var serif|1=i}} उपयुक्त नोड्स, के साथ {{var serif|1=i}} डीएचटी का कार्यान्वयन-विशिष्ट पैरामीटर है। कुछ डीएचटी डिज़ाइनों में, नोड्स निश्चित कीस्पेस रेंज को संभालने के लिए सहमत होते हैं, जिसका आकार हार्ड-कोड के बजाय गतिशील रूप से चुना जा सकता है। | ||
* कैडेमलिया जैसे कुछ उन्नत डीएचटी उपयुक्त नोड्स के सेट का चयन करने और भेजने के लिए पहले डीएचटी के माध्यम से पुनरावृत्त लुकअप करते हैं {{var serif|1=put(k, data)}} संदेश केवल उन्हीं नोड्स को भेजे जाते हैं, जिससे बेकार ट्रैफ़िक में भारी कमी आती है, क्योंकि प्रकाशित संदेश केवल उन नोड्स को भेजे जाते हैं जो कुंजी संग्रहीत करने के लिए उपयुक्त लगते हैं {{var serif|1=k}}; और पुनरावृत्त लुकअप संपूर्ण | * कैडेमलिया जैसे कुछ उन्नत डीएचटी उपयुक्त नोड्स के सेट का चयन करने और भेजने के लिए पहले डीएचटी के माध्यम से पुनरावृत्त लुकअप करते हैं {{var serif|1=put(k, data)}} संदेश केवल उन्हीं नोड्स को भेजे जाते हैं, जिससे बेकार ट्रैफ़िक में भारी कमी आती है, क्योंकि प्रकाशित संदेश केवल उन नोड्स को भेजे जाते हैं जो कुंजी संग्रहीत करने के लिए उपयुक्त लगते हैं {{var serif|1=k}}; और पुनरावृत्त लुकअप संपूर्ण डीएचटी के बजाय केवल नोड्स के छोटे सेट को कवर करते हैं, जिससे बेकार अग्रेषण कम हो जाता है। ऐसे डीएचटी में, अग्रेषित करना {{Var serif|put(k, data)}} संदेश केवल स्व-उपचार एल्गोरिथ्म के भाग के रूप में हो सकते हैं: यदि कोई लक्ष्य नोड प्राप्त करता है {{var serif|1=put(k, data)}} संदेश, किन्तु उस पर विश्वास करता है {{var serif|1=k}} अपनी प्रबंधित सीमा से बाहर है और करीबी नोड (डीएचटी कीस्पेस के संदर्भ में) ज्ञात है, संदेश उस नोड पर अग्रेषित किया जाता है। अन्यथा, डेटा स्थानीय रूप से अनुक्रमित किया जाता है। इससे कुछ हद तक स्व-संतुलित डीएचटी व्यवहार होता है। बेशक, ऐसे एल्गोरिदम के लिए नोड्स को डीएचटी में अपनी उपस्थिति डेटा प्रकाशित करने की आवश्यकता होती है ताकि पुनरावृत्त लुकअप किया जा सके। | ||
* चूंकि अधिकांश मशीनों पर संदेश भेजना स्थानीय हैश | * चूंकि अधिकांश मशीनों पर संदेश भेजना स्थानीय हैश तालिका ्सेस की तुलना में बहुत अधिक महंगा है, इसलिए किसी विशेष नोड से संबंधित कई संदेशों को ही बैच में बंडल करना समझ में आता है। यह मानते हुए कि प्रत्येक नोड में स्थानीय बैच है जिसमें अधिकतम सम्मिलित है {{var serif|1=b}} संचालन, बंडलिंग प्रक्रिया इस प्रकार है। प्रत्येक नोड पहले ऑपरेशन के लिए जिम्मेदार नोड के पहचानकर्ता द्वारा अपने स्थानीय बैच को सॉर्ट करता है। [[ बाल्टी प्रकार |बाल्टी प्रकार]] का उपयोग करके, यह किया जा सकता है {{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 136: | Line 136: | ||
* [[मेनलाइन डीएचटी]] - बिटटोरेंट द्वारा उपयोग किया जाने वाला मानक डीएचटी (खशमीर द्वारा प्रदान किए गए कैडेमलिया पर आधारित)<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) | *सामग्री पतायोग्य नेटवर्क (CAN) | ||
* कॉर्ड ( | * कॉर्ड (डीएचटी) | ||
*कोर्डे | *कोर्डे | ||
*कडेमलिया | *कडेमलिया | ||
* पेस्ट्री ( | * पेस्ट्री (डीएचटी) | ||
* [[पी-ग्रिड]] | * [[पी-ग्रिड]] | ||
* [[ लहर ]] | * [[ लहर ]] | ||
* टेपेस्ट्री ( | * टेपेस्ट्री (डीएचटी) | ||
* [[टॉमपी2पी]] | * [[टॉमपी2पी]] | ||
* [[वोल्डेमॉर्ट (वितरित डेटा स्टोर)]] | * [[वोल्डेमॉर्ट (वितरित डेटा स्टोर)]] | ||
=== डीएचटी का उपयोग करने वाले अनुप्रयोग === | === डीएचटी का उपयोग करने वाले अनुप्रयोग === | ||
* [[BTDigg]]: बिटटोरेंट | * [[BTDigg]]: बिटटोरेंट डीएचटी सर्च इंजन | ||
* [[कोडीन]]: वेब कैशिंग | * [[कोडीन]]: वेब कैशिंग | ||
* फ़्रीनेट: सेंसरशिप-प्रतिरोधी अनाम नेटवर्क | * फ़्रीनेट: सेंसरशिप-प्रतिरोधी अनाम नेटवर्क | ||
Line 156: | Line 156: | ||
* इंटरप्लेनेटरी फाइल सिस्टम: कंटेंट-एड्रेसेबल, पीयर-टू-पीयर हाइपरमीडिया वितरण प्रोटोकॉल | * इंटरप्लेनेटरी फाइल सिस्टम: कंटेंट-एड्रेसेबल, पीयर-टू-पीयर हाइपरमीडिया वितरण प्रोटोकॉल | ||
* [[JXTA]]: ओपन-सोर्स पी2पी प्लेटफॉर्म | * [[JXTA]]: ओपन-सोर्स पी2पी प्लेटफॉर्म | ||
* [[LBRY]]: ब्लॉकचेन-आधारित सामग्री साझाकरण प्रोटोकॉल जो सामग्री वितरण के लिए कैडेमलिया-प्रभावित | * [[LBRY]]: ब्लॉकचेन-आधारित सामग्री साझाकरण प्रोटोकॉल जो सामग्री वितरण के लिए कैडेमलिया-प्रभावित डीएचटी प्रणाली का उपयोग करता है | ||
* [[ ओरेकल सुसंगतता ]]: जावा डीएचटी कार्यान्वयन के शीर्ष पर निर्मित इन-मेमोरी डेटा ग्रिड | * [[ ओरेकल सुसंगतता ]]: जावा डीएचटी कार्यान्वयन के शीर्ष पर निर्मित इन-मेमोरी डेटा ग्रिड | ||
* [[परफेक्ट डार्क (पी2पी)]]: जापान का पीयर-टू-पीयर [[फ़ाइल साझा करना]] एप्लिकेशन | * [[परफेक्ट डार्क (पी2पी)]]: जापान का पीयर-टू-पीयर [[फ़ाइल साझा करना]] एप्लिकेशन | ||
Line 171: | Line 171: | ||
* उपसर्ग हैश ट्री: डीएचटी पर परिष्कृत क्वेरी। | * उपसर्ग हैश ट्री: डीएचटी पर परिष्कृत क्वेरी। | ||
* [[मर्केल वृक्ष]]: वह पेड़ जिसमें प्रत्येक गैर-पत्ती नोड को उसके बच्चों के नोड्स के लेबल के हैश के साथ लेबल किया जाता है। | * [[मर्केल वृक्ष]]: वह पेड़ जिसमें प्रत्येक गैर-पत्ती नोड को उसके बच्चों के नोड्स के लेबल के हैश के साथ लेबल किया जाता है। | ||
* अधिकांश वितरित डेटा स्टोर लुकअप के लिए किसी न किसी रूप में | * अधिकांश वितरित डेटा स्टोर लुकअप के लिए किसी न किसी रूप में डीएचटी का उपयोग करते हैं। | ||
* डीएचटी को लागू करने के लिए [[ ग्राफ़ छोड़ें |ग्राफ़ छोड़ें]] ़ कुशल डेटा संरचना है। | * डीएचटी को लागू करने के लिए [[ ग्राफ़ छोड़ें |ग्राफ़ छोड़ें]] ़ कुशल डेटा संरचना है। | ||
Line 179: | Line 179: | ||
== बाहरी संबंध == | == बाहरी संबंध == | ||
* [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 | * [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 | * {{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 | * [http://www.cs.helsinki.fi/u/jakangas/MLDHT/ Mainline डीएचटी Measurement] at Department of Computer Science, University of Helsinki, Finland. | ||
{{BitTorrent}} | {{BitTorrent}} |
Revision as of 19:39, 18 July 2023
वितरित हैश तालिका (डीएचटी) वितरित अभिकलन है जो की हैश तालिका के समान लुकअप सेवा प्रदान करती है। और कुंजी-मूल्य जोड़े को डीएचटी में संग्रहीत किया जाता है, चूंकि कोई भी भाग लेने वाला नोड (नेटवर्किंग) किसी दिए गए कुंजी (कंप्यूटिंग) से जुड़े मूल्य को कुशलतापूर्वक पुनः प्राप्त कर सकता है। डीएचटी का मुख्य लाभ यह है कि कुंजियों को पुनः वितरित करने के लिए न्यूनतम कार्य के साथ नोड्स को जोड़ा या घटाया जा सकता है। इस प्रकार से कुंजियाँ अद्वितीय पहचानकर्ता हैं जो विशेष मानों को मैप करती हैं, जो परिवर्तन करने में पते से लेकर इलेक्ट्रॉनिक दस्तावेज़ तक, इच्छानुकूल डेटा (कंप्यूटिंग) तक कुछ भी हो सकती हैं।[1] कुंजी से मान तक मैपिंग को बनाए रखने की दायित्व नोड्स के मध्य वितरित की जाती है, इस प्रकार से कि प्रतिभागियों के सेट में परिवर्तन से न्यूनतम मात्रा में व्यवधान होता है। यह डीएचटी को अत्यधिक उच्च संख्या में नोड्स को स्केल करने (कंप्यूटिंग) करने और निरंतर नोड आगमन, प्रस्थान और विफलताओं को संभालने की अनुमति देता है।
चूंकि डीएचटी मूलभूत रूप से इसे बनाते हैं जिसका उपयोग अधिक समष्टि सेवाओं के निर्माण के लिए किया जा सकता है, जैसे एनीकास्ट, सहकारी वेब कैशिंग, वितरित फ़ाइल सिस्टम, डोमेन नाम प्रणाली, त्वरित संदेश, बहुस्त्र्पीय , और पीयर-टू-पीयर फ़ाइल साझाकरण और सामग्री वितरण प्रणाली भी। डीएचटी का उपयोग करने वाले उल्लेखनीय वितरित नेटवर्क में बिटटोरेंट (प्रोटोकॉल) का वितरित ट्रैकर, स्टॉर्म नेटवर्क, टॉक्स इंस्टेंट मैसेंजर, फ़्रीनेट, (प्रोटोकॉल), YaCy सर्च इंजन और इंटरप्लेनेटरी फ़ाइल सिस्टम सम्मिलित हैं। इस प्रकार से होलोचेन एक परियोजना है जिसका लक्ष्य घरेलू कंप्यूटर डीएचटी होस्टिंग प्रदान करना है।
इतिहास
डीएचटी अनुसंधान मूल रूप से, आंशिक रूप से, फ़्रीनेट, ग्नुटेला, बिटटोरेंट और नैप्स्टर जैसे पीयर-टू-पीयर (पी2पी) सिस्टम द्वारा प्रेरित था, जिसने एकल उपयोगी एप्लिकेशन प्रदान करने के लिए इंटरनेट पर वितरित संसाधनों का लाभ उठाया है । विशेष रूप से, उन्होंने फ़ाइल-साझाकरण सेवा प्रदान करने के लिए बढ़ी हुई बैंडविड्थ (कंप्यूटिंग) और हार्ड डिस्क क्षमता का लाभ उठाया है ।[2]
इस प्रकार की प्रणालियाँ इस तथ्य में भिन्न थीं कि वे अपने सहकर्मी द्वारा उपयोग किए गए डेटा का पता कैसे लगाते हैं। और नैप्स्टर, पहले उच्च माप की पी2पी सामग्री वितरण प्रणाली, को केंद्रीय सूचकांक सर्वर की आवश्यकता होती है: इस प्रकार से प्रत्येक नोड, सम्मिलित होने पर, स्थानीय रूप से रखी गई फ़ाइलों की सूची सर्वर को भेजता है , जो खोज करके और प्रश्नों को उन नोड्स को संदर्भित करता है जो इसे धारण करते हैं। अर्थात परिणाम यह है, की केंद्रीय घटक ने सिस्टम को अटैक और स्तिथियों के प्रति संवेदनशील बना दिया है ।
किन्तु गुटेला और इसी प्रकार के नेटवर्क क्वेरी फ्लडिंग मॉडल में चले गए – संक्षेप में, प्रत्येक खोज के परिणामस्वरूप नेटवर्क में हर दूसरी मशीन पर संदेश प्रसारित की जाती है । और विफलता के बिंदु से बचते हुए, यह विधि नैप्स्टर की तुलना में अधिक कम कुशल थी। गुटेला क्लाइंट के पश्चात्के संस्करण गतिशील क्वेरी मॉडल में चले गए जिससे दक्षता में अधिक सुधार किया गया है ।[3]
फ़्रीनेट पूर्ण रूप से वितरित है, किन्तु ह्यूरिस्टिक (कंप्यूटर विज्ञान) कुंजी-आधारित रूटिंग को नियोजित करता है जिसमें प्रत्येक फ़ाइल कुंजी से जुड़ी होती है, और समान कुंजी वाली फ़ाइलें नोड्स के समान सेट पर क्लस्टर होती हैं। अनेक सहकर्मी से मिलने की आवश्यकता के बिना प्रश्नों को नेटवर्क के माध्यम से ऐसे क्लस्टर में भेजे जाने की संभावना है।[4] चूंकि , फ़्रीनेट ने यह प्रमाण नहीं दिया कि डेटा पुनः प्राप्त होगा।
इस प्रकार से वितरित हैश तालिका फ़्रीनेट और गुटेला के विकेंद्रीकरण और नैप्स्टर की दक्षता और गारंटीकृत परिणाम दोनों प्राप्त करने के लिए अधिक संरचित कुंजी-आधारित रूटिंग का उपयोग करते हैं। कमी यह है कि, फ़्रीनेट की तरह, डीएचटी केवल कीवर्ड खोज के बजाय सीधे सटीक-मिलान खोज का समर्थन करते हैं, हालांकि फ़्रीनेट के रूटिंग एल्गोरिदम को किसी भी कुंजी प्रकार के लिए सामान्यीकृत किया जा सकता है जहां निकटता ऑपरेशन को परिभाषित किया जा सकता है।[5]
2001 में, चार सिस्टम- सामग्री पतायोग्य नेटवर्क ,[6] कॉर्ड (पीयर-टू-पीयर),[7] पेस्ट्री (डीएचटी), और [[टेपेस्ट्री (डीएचटी)]]डीएचटी) - ने डीएचटी को लोकप्रिय शोध विषय के रूप में प्रज्वलित किया।
इंफ्रास्ट्रक्चर फॉर रेजिलिएंट इंटरनेट सिस्टम्स (आइरिस) नामक परियोजना को 2002 में यूनाइटेड स्टेट्स राष्ट्रीय विज्ञान संस्था से 12 मिलियन डॉलर के अनुदान द्वारा वित्त पोषित किया गया था।[8]
शोधकर्ताओं में सिल्विया रत्नासामी, आयन स्टोइका, बालकृष्णन दिवस और स्कॉट शेन्कर सम्मिलित थे।[9]
शिक्षा जगत के बाहर, डीएचटी तकनीक को बिटटोरेंट और कोरल कंटेंट डिस्ट्रीब्यूशन नेटवर्क के घटक के रूप में अपनाया गया है।
गुण
डीएचटी विशेष रूप से निम्नलिखित गुणों पर जोर देते हैं:
- विकेंद्रीकृत कंप्यूटिंग: नोड्स बिना किसी केंद्रीय समन्वय के सामूहिक रूप से सिस्टम बनाते हैं।
- दोष सहनशीलता: नोड्स के लगातार जुड़ने, छोड़ने और विफल होने पर भी सिस्टम विश्वसनीय (कुछ अर्थों में) होना चाहिए।[10]
- स्केल (कंप्यूटिंग): सिस्टम को हजारों या लाखों नोड्स के साथ भी कुशलतापूर्वक कार्य करना चाहिए।
इन लक्ष्यों को प्राप्त करने के लिए उपयोग की जाने वाली प्रमुख तकनीक यह है कि किसी भी नोड को सिस्टम में केवल कुछ अन्य नोड्स के साथ समन्वय करने की आवश्यकता होती है - आमतौर पर, एन प्रतिभागियों के बिग ओ अंकन (लॉग एन) (नीचे देखें) - ताकि केवल सीमित नोड हो सदस्यता में प्रत्येक परिवर्तन के लिए कितना कार्य करने की आवश्यकता है।
कुछ डीएचटी डिज़ाइन दुर्भावनापूर्ण प्रतिभागियों के विरुद्ध सुरक्षित संचार चाहते हैं[11] और प्रतिभागियों को गुमनाम रहने की अनुमति देना, हालांकि यह कई अन्य पीयर-टू-पीयर (विशेष रूप से फ़ाइल साझाकरण) प्रणालियों की तुलना में कम आम है; अनाम पी2पी देखें।
संरचना
डीएचटी की संरचना को कई मुख्य घटकों में विघटित किया जा सकता है।[12][13] आधार अमूर्त कीस्पेस (वितरित डेटा स्टोर) है, जैसे कि 160-बिट स्ट्रिंग (कंप्यूटर विज्ञान) का सेट। कीस्पेस विभाजन (डेटाबेस) योजना इस कीस्पेस के स्वामित्व को भाग लेने वाले नोड्स के मध्य विभाजित करती है। ओवरले नेटवर्क तब नोड्स को जोड़ता है, जिससे उन्हें कीस्पेस में किसी भी कुंजी के मालिक को ढूंढने की अनुमति मिलती है।
बार ये घटक स्थापित हो जाएं, तो भंडारण और पुनर्प्राप्ति के लिए डीएचटी का सामान्य उपयोग निम्नानुसार आगे बढ़ सकता है। मान लीजिए कि कीस्पेस 160-बिट स्ट्रिंग्स का सेट है। किसी फ़ाइल को दिए गए के साथ अनुक्रमित करने के लिए filename और data डीएचटी में, SHA-1 हैश filename 160-बिट कुंजी उत्पन्न करते हुए उत्पन्न होता है k, और संदेश put(k, data) डीएचटी में भाग लेने वाले किसी भी नोड को भेजा जाता है। संदेश को ओवरले नेटवर्क के माध्यम से नोड से नोड तक अग्रेषित किया जाता है जब तक कि यह कुंजी के लिए जिम्मेदार ल नोड तक नहीं पहुंच जाता k जैसा कि कीस्पेस विभाजन द्वारा निर्दिष्ट किया गया है। वह नोड फिर कुंजी और डेटा संग्रहीत करता है। कोई अन्य क्लाइंट फिर से हैशिंग द्वारा फ़ाइल की सामग्री को पुनः प्राप्त कर सकता है filename उत्पन्न करना k और किसी भी डीएचटी नोड से संबद्ध डेटा ढूंढने के लिए कहना k संदेश के साथ get(k). संदेश को फिर से ओवरले के माध्यम से जिम्मेदार नोड तक भेजा जाएगा k, जो संग्रहीत के साथ उत्तर देगा data.
अधिकांश डीएचटी के लिए सामान्य प्रमुख विचारों को पकड़ने के लक्ष्य के साथ कीस्पेस विभाजन और ओवरले नेटवर्क घटकों का वर्णन नीचे किया गया है; कई डिज़ाइन विवरण में भिन्न होते हैं।
कीस्पेस विभाजन
अधिकांश डीएचटी नोड्स की कुंजियों को मैप करने के लिए सुसंगत हैशिंग या मिलनसार हैशिंग के कुछ प्रकार का उपयोग करते हैं। ऐसा प्रतीत होता है कि वितरित हैश तालिका समस्या को हल करने के लिए दो एल्गोरिदम स्वतंत्र रूप से और साथ तैयार किए गए हैं।
सुसंगत हैशिंग और मिलन स्थल हैशिंग दोनों में आवश्यक संपत्ति है कि नोड को हटाने या जोड़ने से निकटवर्ती आईडी वाले नोड्स के स्वामित्व वाली चाबियों का सेट बदल जाता है, और अन्य सभी नोड्स अप्रभावित रह जाते हैं। इसकी तुलना पारंपरिक हैश तालिका से करें जिसमें बकेट को जोड़ने या हटाने से लगभग पूरे कीस्पेस को फिर से मैप किया जाता है। चूंकि स्वामित्व में कोई भी परिवर्तन आम तौर पर डीएचटी में संग्रहीत वस्तुओं के नोड से दूसरे नोड तक बैंडविड्थ-गहन आंदोलन से मेल खाता है, इसलिए मंथन दर (नोड आगमन और विफलता) की उच्च दरों का कुशलतापूर्वक समर्थन करने के लिए ऐसे पुनर्गठन को कम करना आवश्यक है।
लगातार हैशिंग
लगातार हैशिंग फ़ंक्शन को नियोजित करती है यह कुंजियों के मध्य की दूरी की अमूर्त धारणा को परिभाषित करता है और , जो भौगोलिक दूरी या नेटवर्क विलंबता से असंबंधित है। प्रत्येक नोड को कुंजी सौंपी जाती है जिसे उसका पहचानकर्ता (आईडी) कहा जाता है। आईडी के साथ नोड सभी चाबियों का स्वामी है जिसके लिए निकटतम आईडी है, जिसके अनुसार मापा जाता है .
उदाहरण के लिए, कॉर्ड (पीयर-टू-पीयर) लगातार हैशिंग का उपयोग करता है, जो नोड्स को सर्कल पर बिंदुओं के रूप में मानता है, और वृत्त के चारों ओर दक्षिणावर्त यात्रा करने वाली दूरी है को . इस प्रकार, वृत्ताकार कुंजीस्थान सन्निहित खंडों में विभाजित हो जाता है जिनके समापन बिंदु नोड पहचानकर्ता होते हैं। अगर और दो आसन्न आईडी हैं, जिनकी दक्षिणावर्त दूरी कम है को , फिर आईडी वाला नोड मध्य में पड़ने वाली सभी कुंजियों का स्वामी है और .
मिलन स्थल हैशिंग
मिलन स्थल हैशिंग में, जिसे उच्चतम यादृच्छिक वजन (एचआरडब्ल्यू) हैशिंग भी कहा जाता है, सभी क्लाइंट समान हैश फ़ंक्शन का उपयोग करते हैं (समय से पहले चुना गया) किसी कुंजी को उपलब्ध सर्वरों में से किसी से संबद्ध करने के लिए। प्रत्येक ग्राहक के पास पहचानकर्ताओं की समान सूची होती है {S1, S2, ..., Sn }, प्रत्येक सर्वर के लिए । कुछ कुंजी k दिए जाने पर, ग्राहक n हैश भार की गणना करता है w1 = h(S1, k), w2 = h(S2, k), ..., wn = h(Sn, k). क्लाइंट उस कुंजी को उस कुंजी के उच्चतम हैश भार के अनुरूप सर्वर के साथ जोड़ता है। आईडी वाला सर्वर सभी चाबियों का स्वामी है जिसके लिए हैश वजन उस कुंजी के लिए किसी अन्य नोड के हैश भार से अधिक है।
स्थानीयता-संरक्षण हैशिंग
स्थानीयता-संरक्षण हैशिंग यह सुनिश्चित करती है कि समान वस्तुओं को समान कुंजियाँ सौंपी गई हैं। यह रेंज क्वेरीज़ के अधिक कुशल निष्पादन को सक्षम कर सकता है, हालांकि, लगातार हैशिंग का उपयोग करने के विपरीत, इस बात का कोई आश्वासन नहीं है कि कुंजी (और इस प्रकार लोड) कुंजी स्थान और भाग लेने वाले सहकर्मी पर समान रूप से यादृच्छिक रूप से वितरित की जाती है। डीएचटी प्रोटोकॉल जैसे सेल्फ-कॉर्ड और ऑस्कर[14] ऐसे मुद्दों का समाधान करें. सेल्फ-कॉर्ड, सहकर्मी आईडी से ऑब्जेक्ट कुंजियों को अलग करता है और झुंड खुफिया प्रतिमान के आधार पर सांख्यिकीय दृष्टिकोण के साथ रिंग के साथ कुंजियों को सॉर्ट करता है।[15] सॉर्टिंग यह सुनिश्चित करती है कि समान कुंजियाँ पड़ोसी नोड्स द्वारा संग्रहीत की जाती हैं और रेंज क्वेरी (डेटा संरचना) सहित खोज प्रक्रियाएं, लॉगरिदमिक समय में की जा सकती हैं। ऑस्कर यादृच्छिक चाल सैंपलिंग के आधार पर नौगम्य लघु-विश्व नेटवर्क का निर्माण करता है जो लॉगरिदमिक खोज समय का भी आश्वासन देता है।
ओवरले नेटवर्क
प्रत्येक नोड अन्य नोड्स (इसके पड़ोसी या रूटिंग तालिका) के लिए आंकड़ा कड़ी का सेट बनाए रखता है। ये लिंक मिलकर ओवरले नेटवर्क बनाते हैं।[16] नोड अपने पड़ोसियों को निश्चित संरचना के अनुसार चुनता है, जिसे नेटवर्क टोपोलॉजी|नेटवर्क की टोपोलॉजी कहा जाता है।
सभी डीएचटी टोपोलॉजी सबसे आवश्यक संपत्ति के कुछ प्रकार साझा करते हैं: किसी भी कुंजी के लिए k, प्रत्येक नोड के पास या तो नोड आईडी होती है जिसका स्वामी होता है k या उस नोड का लिंक है जिसकी नोड आईडी करीब है k, ऊपर परिभाषित कीस्पेस दूरी के संदर्भ में। फिर किसी भी कुंजी के स्वामी को संदेश भेजना आसान हो जाता है k निम्नलिखित लालची एल्गोरिदम का उपयोग करना (जो आवश्यक रूप से विश्व स्तर पर इष्टतम नहीं है): प्रत्येक चरण पर, उस पड़ोसी को संदेश अग्रेषित करें जिसकी आईडी निकटतम है k. जब ऐसा कोई पड़ोसी नहीं है, तो हम निकटतम नोड पर पहुंच गए होंगे, जिसका मालिक है k जैसा कि ऊपर परिभाषित किया गया है। रूटिंग की इस शैली को कभी-कभी कुंजी-आधारित रूटिंग भी कहा जाता है।
मूलभूत रूटिंग शुद्धता से परे, टोपोलॉजी पर दो महत्वपूर्ण बाधाएं यह गारंटी देना है कि किसी भी रूट (रूट लंबाई) में हॉप (नेटवर्किंग) की अधिकतम संख्या कम है, ताकि अनुरोध जल्दी से पूरा हो जाए; और किसी भी नोड के पड़ोसियों की अधिकतम संख्या (अधिकतम नोड डिग्री (ग्राफ सिद्धांत)) कम है, ताकि रखरखाव ओवरहेड अत्यधिक न हो। बेशक, छोटे मार्गों के लिए उच्च अधिकतम डिग्री की आवश्यकता होती है। अधिकतम डिग्री और मार्ग की लंबाई के लिए कुछ सामान्य विकल्प इस प्रकार हैं, जहां n बिग ओ नोटेशन का उपयोग करते हुए डीएचटी में नोड्स की संख्या है:
Max. degree | Max route length | Used in | Note |
---|---|---|---|
Worst lookup lengths, with likely much slower lookups times | |||
Koorde (with constant degree) | More complex to implement, but acceptable lookup time can be found with a fixed number of connections | ||
Chord Kademlia Pastry 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) | ||
Koorde (with optimal lookup) | More complex to implement, but lookups might be faster (have a lower worst case bound) | ||
Worst local storage needs, with much communication after any node connects or disconnects |
सबसे आम विकल्प, डिग्री/रूट लंबाई, डिग्री/रूट लंबाई ट्रेडऑफ़ के संदर्भ में इष्टतम नहीं है, किन्तु ऐसी टोपोलॉजी आमतौर पर पड़ोसियों की पसंद में अधिक लचीलेपन की अनुमति देती है। कई डीएचटी उस लचीलेपन का उपयोग उन पड़ोसियों को चुनने के लिए करते हैं जो भौतिक अंतर्निहित नेटवर्क में विलंबता के मामले में करीब हैं। सामान्य तौर पर, सभी डीएचटी नौगम्य लघु-विश्व नेटवर्क टोपोलॉजी का निर्माण करते हैं, जो मार्ग की लंबाई बनाम नेटवर्क डिग्री का व्यापार करते हैं।[17]
अधिकतम मार्ग की लंबाई व्यास (ग्राफ़ सिद्धांत) से निकटता से संबंधित है: नोड्स के मध्य किसी भी सबसे छोटे पथ में हॉप्स की अधिकतम संख्या। स्पष्ट रूप से, नेटवर्क की सबसे खराब स्थिति में मार्ग की लंबाई कम से कम उसके व्यास जितनी बड़ी है, इसलिए डीएचटी डिग्री/व्यास ट्रेडऑफ़ द्वारा सीमित हैं[18] यह ग्राफ़ सिद्धांत में मौलिक है। मार्ग की लंबाई व्यास से अधिक हो सकती है, क्योंकि लालची रूटिंग एल्गोरिदम सबसे छोटा पथ नहीं ढूंढ सकता है।[19]
ओवरले नेटवर्क के लिए एल्गोरिदम
रूटिंग के अलावा, ऐसे कई एल्गोरिदम मौजूद हैं जो डीएचटी में सभी नोड्स, या नोड्स के सबसेट को संदेश भेजने के लिए ओवरले नेटवर्क की संरचना का फायदा उठाते हैं।[20] इन एल्गोरिदम का उपयोग अनुप्रयोगों द्वारा ओवरले मल्टीकास्ट, रेंज क्वेरीज़ या आंकड़े त्र करने के लिए किया जाता है। इस दृष्टिकोण पर आधारित दो प्रणालियाँ हैं स्ट्रक्चरेला,[21] जो पेस्ट्री ओवरले पर फ्लडिंग और यादृच्छिक चाल को लागू करता है, और डीक्यू-डीएचटी, जो कॉर्ड नेटवर्क पर गतिशील क्वेरी खोज एल्गोरिदम को लागू करता है।[22]
सुरक्षा
डीएचटी के विकेंद्रीकरण, दोष सहनशीलता और मापनीयता के कारण, वे केंद्रीकृत प्रणाली की तुलना में शत्रुतापूर्ण हमलावर के खिलाफ स्वाभाविक रूप से अधिक लचीले होते हैं।
वितरित डेटा भंडारण के लिए खुली प्रणालियाँ जो उच्च माप पर शत्रुतापूर्ण हमलावरों के खिलाफ मजबूत हों, संभव हैं।[23]
डीएचटी प्रणाली जिसे बीजान्टिन दोष सहनशीलता के लिए सावधानीपूर्वक डिज़ाइन किया गया है, सुरक्षा कमजोरी से बचाव कर सकती है, जिसे सिबिल हमले के रूप में जाना जाता है, जो अधिकांश मौजूदा डीएचटी डिज़ाइनों को प्रभावित करता है।[24][25] व्हानाउ डीएचटी है जिसे सिबिल अटैक के प्रति प्रतिरोधी बनाने के लिए डिज़ाइन किया गया है।[26]
कैडेमलिया के मूल लेखकों में से , पेटार मेमौनकोव ने सिस्टम डिज़ाइन में सामाजिक विश्वास संबंधों को सम्मिलित करके सिबिल हमले की कमजोरी को दूर करने का तरीका प्रस्तावित किया है।[27] नई प्रणाली, जिसका कोडनेम टोनिका है या जिसे इसके डोमेन नाम 5ttt के नाम से भी जाना जाता है, एल्गोरिदम डिज़ाइन पर आधारित है जिसे इलेक्ट्रिक रूटिंग के रूप में जाना जाता है और गणितज्ञ जोनाथन केल्नर के साथ सह-लेखक है।[28] मेमौनकोव ने अब इस नई प्रणाली का व्यापक कार्यान्वयन प्रयास शुरू किया है। चूंकि , सिबिल अटैक के खिलाफ प्रभावी बचाव में अनुसंधान को आम तौर पर खुला प्रश्न माना जाता है, और हर साल शीर्ष सुरक्षा अनुसंधान सम्मेलनों में विभिन्न प्रकार के संभावित बचाव प्रस्तावित किए जाते हैं।
कार्यान्वयन
डीएचटी कार्यान्वयन के व्यावहारिक उदाहरणों में सामने आए सबसे उल्लेखनीय अंतरों में कम से कम निम्नलिखित सम्मिलित हैं:
- पता स्थान डीएचटी का पैरामीटर है। कई वास्तविक दुनिया के डीएचटी 128-बिट या 160-बिट कुंजी स्थान का उपयोग करते हैं।
- कुछ वास्तविक दुनिया के डीएचटी SHA-1 के अलावा अन्य हैश फ़ंक्शन का उपयोग करते हैं।
- वास्तविक दुनिया में कुंजी k सामग्री-पता योग्य भंडारण प्रदान करने के लिए फ़ाइल के नाम के हैश के बजाय फ़ाइल की सामग्री का हैश हो सकता है, ताकि फ़ाइल का नाम बदलने से उपयोगकर्ताओं को इसे ढूंढने से न रोका जा सके।
- कुछ डीएचटी विभिन्न प्रकार की वस्तुओं को भी प्रकाशित कर सकते हैं। उदाहरण के लिए, कुंजी k नोड हो सकता है ID और संबंधित डेटा यह बता सकता है कि इस नोड से कैसे संपर्क किया जाए। यह उपस्थिति की जानकारी के प्रकाशन की अनुमति देता है और अक्सर आईएम अनुप्रयोगों आदि में उपयोग किया जाता है। सबसे सरल मामले में, ID केवल यादृच्छिक संख्या है जिसे सीधे कुंजी के रूप में उपयोग किया जाता है k (तो 160-बिट डीएचटी में ID 160-बिट संख्या होगी, जिसे आमतौर पर यादृच्छिक रूप से चुना जाता है)। कुछ डीएचटी में, डीएचटी संचालन को अनुकूलित करने के लिए नोड्स आईडी के प्रकाशन का भी उपयोग किया जाता है।
- विश्वसनीयता में सुधार के लिए अतिरेक को जोड़ा जा सकता है। वह (k, data) कुंजी युग्म को कुंजी के अनुरूप से अधिक नोड में संग्रहित किया जा सकता है। आमतौर पर, केवल नोड का चयन करने के बजाय, वास्तविक दुनिया डीएचटी एल्गोरिदम का चयन करते हैं i उपयुक्त नोड्स, के साथ i डीएचटी का कार्यान्वयन-विशिष्ट पैरामीटर है। कुछ डीएचटी डिज़ाइनों में, नोड्स निश्चित कीस्पेस रेंज को संभालने के लिए सहमत होते हैं, जिसका आकार हार्ड-कोड के बजाय गतिशील रूप से चुना जा सकता है।
- कैडेमलिया जैसे कुछ उन्नत डीएचटी उपयुक्त नोड्स के सेट का चयन करने और भेजने के लिए पहले डीएचटी के माध्यम से पुनरावृत्त लुकअप करते हैं put(k, data) संदेश केवल उन्हीं नोड्स को भेजे जाते हैं, जिससे बेकार ट्रैफ़िक में भारी कमी आती है, क्योंकि प्रकाशित संदेश केवल उन नोड्स को भेजे जाते हैं जो कुंजी संग्रहीत करने के लिए उपयुक्त लगते हैं k; और पुनरावृत्त लुकअप संपूर्ण डीएचटी के बजाय केवल नोड्स के छोटे सेट को कवर करते हैं, जिससे बेकार अग्रेषण कम हो जाता है। ऐसे डीएचटी में, अग्रेषित करना put(k, data) संदेश केवल स्व-उपचार एल्गोरिथ्म के भाग के रूप में हो सकते हैं: यदि कोई लक्ष्य नोड प्राप्त करता है put(k, data) संदेश, किन्तु उस पर विश्वास करता है k अपनी प्रबंधित सीमा से बाहर है और करीबी नोड (डीएचटी कीस्पेस के संदर्भ में) ज्ञात है, संदेश उस नोड पर अग्रेषित किया जाता है। अन्यथा, डेटा स्थानीय रूप से अनुक्रमित किया जाता है। इससे कुछ हद तक स्व-संतुलित डीएचटी व्यवहार होता है। बेशक, ऐसे एल्गोरिदम के लिए नोड्स को डीएचटी में अपनी उपस्थिति डेटा प्रकाशित करने की आवश्यकता होती है ताकि पुनरावृत्त लुकअप किया जा सके।
- चूंकि अधिकांश मशीनों पर संदेश भेजना स्थानीय हैश तालिका ्सेस की तुलना में बहुत अधिक महंगा है, इसलिए किसी विशेष नोड से संबंधित कई संदेशों को ही बैच में बंडल करना समझ में आता है। यह मानते हुए कि प्रत्येक नोड में स्थानीय बैच है जिसमें अधिकतम सम्मिलित है b संचालन, बंडलिंग प्रक्रिया इस प्रकार है। प्रत्येक नोड पहले ऑपरेशन के लिए जिम्मेदार नोड के पहचानकर्ता द्वारा अपने स्थानीय बैच को सॉर्ट करता है। बाल्टी प्रकार का उपयोग करके, यह किया जा सकता है O(b + n), कहाँ n डीएचटी में नोड्स की संख्या है। जब बैच के भीतर ही कुंजी को संबोधित करने वाले कई ऑपरेशन होते हैं, तो बैच को बाहर भेजे जाने से पहले संघनित किया जाता है। उदाहरण के लिए, ही कुंजी के ाधिक लुकअप को में घटाया जा सकता है या ही ऐड ऑपरेशन में ाधिक वृद्धि को कम किया जा सकता है। इस कमी को अस्थायी स्थानीय हैश तालिका की सहायता से कार्यान्वित किया जा सकता है। अंत में, ऑपरेशन संबंधित नोड्स को भेजे जाते हैं।[29]
उदाहरण
डीएचटी प्रोटोकॉल और कार्यान्वयन
- अपाचे कैसेंड्रा
- बैटन ओवरले
- मेनलाइन डीएचटी - बिटटोरेंट द्वारा उपयोग किया जाने वाला मानक डीएचटी (खशमीर द्वारा प्रदान किए गए कैडेमलिया पर आधारित)[30]
- सामग्री पतायोग्य नेटवर्क (CAN)
- कॉर्ड (डीएचटी)
- कोर्डे
- कडेमलिया
- पेस्ट्री (डीएचटी)
- पी-ग्रिड
- लहर
- टेपेस्ट्री (डीएचटी)
- टॉमपी2पी
- वोल्डेमॉर्ट (वितरित डेटा स्टोर)
डीएचटी का उपयोग करने वाले अनुप्रयोग
- BTDigg: बिटटोरेंट डीएचटी सर्च इंजन
- कोडीन: वेब कैशिंग
- फ़्रीनेट: सेंसरशिप-प्रतिरोधी अनाम नेटवर्क
- ग्लस्टरएफएस: वितरित फ़ाइल सिस्टम जिसका उपयोग स्टोरेज वर्चुअलाइजेशन के लिए किया जाता है
- जीएनयूनेट: डीएचटी कार्यान्वयन सहित फ्रीनेट जैसा वितरण नेटवर्क
- I2P: ओपन-सोर्स अनाम पीयर-टू-पीयर नेटवर्क
- I2P | I2P-Bote: सर्वर रहित सुरक्षित अनाम ईमेल
- इंटरप्लेनेटरी फाइल सिस्टम: कंटेंट-एड्रेसेबल, पीयर-टू-पीयर हाइपरमीडिया वितरण प्रोटोकॉल
- JXTA: ओपन-सोर्स पी2पी प्लेटफॉर्म
- LBRY: ब्लॉकचेन-आधारित सामग्री साझाकरण प्रोटोकॉल जो सामग्री वितरण के लिए कैडेमलिया-प्रभावित डीएचटी प्रणाली का उपयोग करता है
- ओरेकल सुसंगतता : जावा डीएचटी कार्यान्वयन के शीर्ष पर निर्मित इन-मेमोरी डेटा ग्रिड
- परफेक्ट डार्क (पी2पी): जापान का पीयर-टू-पीयर फ़ाइल साझा करना एप्लिकेशन
- पुनः साझाकरण : मित्र-से-मित्र नेटवर्क[31]
- जामी (सॉफ्टवेयर): गोपनीयता-संरक्षण आवाज, वीडियो और चैट संचार मंच, जो कैडेमलिया-जैसे डीएचटी पर आधारित है
- टॉक्स (प्रोटोकॉल): त्वरित संदेश प्रणाली जिसका उद्देश्य स्काइप प्रतिस्थापन के रूप में कार्य करना है
- ट्विस्टर (सॉफ्टवेयर): माइक्रोब्लॉगिंग पीयर-टू-पीयर प्लेटफॉर्म
- YaCy: वितरित वेब खोज इंजन
यह भी देखें
- काउचबेस सर्वर: मेम्केच्ड प्रोटोकॉल के साथ संगत सतत, प्रतिकृति, क्लस्टर्ड वितरित ऑब्जेक्ट स्टोरेज सिस्टम।
- मेमकैच्ड: उच्च-प्रदर्शन, वितरित मेमोरी ऑब्जेक्ट कैशिंग सिस्टम।
- उपसर्ग हैश ट्री: डीएचटी पर परिष्कृत क्वेरी।
- मर्केल वृक्ष: वह पेड़ जिसमें प्रत्येक गैर-पत्ती नोड को उसके बच्चों के नोड्स के लेबल के हैश के साथ लेबल किया जाता है।
- अधिकांश वितरित डेटा स्टोर लुकअप के लिए किसी न किसी रूप में डीएचटी का उपयोग करते हैं।
- डीएचटी को लागू करने के लिए ग्राफ़ छोड़ें ़ कुशल डेटा संरचना है।
संदर्भ
- ↑ 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.
- ↑ 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.
- ↑ Richter, Stevenson; et al. (2009). "क्लाइंट-सर्वर संबंधों पर गतिशील क्वेरी मॉडल के प्रभाव का विश्लेषण". Trends in Modern Computing: 682–701.
- ↑ Searching in a Small World Chapters 1 & 2 (PDF), retrieved 2012-01-10
- ↑ "Section 5.2.2" (PDF), A Distributed Decentralized Information Storage and Retrieval System, retrieved 2012-01-10
- ↑ Ratnasamy; et al. (2001). "एक स्केलेबल कंटेंट-एड्रेसेबल नेटवर्क" (PDF). In Proceedings of ACM SIGCOMM 2001. Retrieved 2013-05-20.
{{cite journal}}
: Cite journal requires|journal=
(help) - ↑ 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.
- ↑ David Cohen (October 1, 2002). "New P2P network funded by US government". New Scientist. Retrieved November 10, 2013.
- ↑ "एमआईटी, बर्कले, आईसीएसआई, एनवाईयू और राइस ने आईआरआईएस प्रोजेक्ट लॉन्च किया". Press release. MIT. September 25, 2002. Archived from the original on September 26, 2015. Retrieved November 10, 2013.
- ↑ R Mokadem, A Hameurlain and AM Tjoa. Resource discovery service while minimizing maintenance overhead in hierarchical DHT systems. Proc. iiWas, 2010
- ↑ Guido Urdaneta, Guillaume Pierre and Maarten van Steen. A Survey of DHT Security Techniques. ACM Computing Surveys 43(2), January 2011.
- ↑ Moni Naor and Udi Wieder. Novel Architectures for P2P Applications: the Continuous-Discrete Approach. Proc. SPAA, 2003.
- ↑ Gurmeet Singh Manku. Dipsea: A Modular Distributed Hash Table Archived 2004-09-10 at the Wayback Machine. Ph. D. Thesis (Stanford University), August 2004.
- ↑ 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.
- ↑ 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.
- ↑ 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
- ↑ Girdzijauskas, Sarunas (2009). पीयर-टू-पीयर डिज़ाइन करना एक छोटी दुनिया के परिप्रेक्ष्य को दर्शाता है.
{{cite book}}
:|website=
ignored (help) - ↑ The (Degree,Diameter) Problem for Graphs, Maite71.upc.es, archived from the original on 2012-02-17, retrieved 2012-01-10
- ↑ Gurmeet Singh Manku, Moni Naor, and Udi Wieder. "Know thy Neighbor's Neighbor: the Power of Lookahead in Randomized P2P Networks". Proc. STOC, 2004.
- ↑ 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. - ↑ 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.
- ↑ Talia, Domenico; Trunfio, Paolo (December 2010). "वितरित हैश तालिकाओं पर गतिशील क्वेरी सक्षम करना". Journal of Parallel and Distributed Computing. 70 (12): 1254–1265. doi:10.1016/j.jpdc.2010.08.012.
- ↑ Baruch Awerbuch, Christian Scheideler. "Towards a scalable and robust DHT". 2006. doi:10.1145/1148109.1148163
- ↑ Maxwell Young; Aniket Kate; Ian Goldberg; Martin Karsten. "Practical Robust Communication in DHTs Tolerating a Byzantine Adversary".
- ↑ 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
- ↑ Whanau: A Sybil-proof Distributed Hash Table https://pdos.csail.mit.edu/papers/whanau-nsdi10.pdf
- ↑ Chris Lesniewski-Laas. "एक सिबिल-प्रूफ वन-हॉप DHT" (PDF): 20.
{{cite journal}}
: Cite journal requires|journal=
(help) - ↑ Jonathan Kelner, Petar Maymounkov (2009). "इलेक्ट्रिक रूटिंग और समवर्ती प्रवाह कटिंग". arXiv:0909.2859. Bibcode:2009arXiv0909.2859K.
{{cite journal}}
: Cite journal requires|journal=
(help) - ↑ 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.
- ↑ Tribler wiki Archived December 4, 2010, at the Wayback Machine retrieved January 2010.
- ↑ Retroshare FAQ retrieved December 2011
बाहरी संबंध
- Distributed Hash Tables, Part 1 by Brandon Wiley.
- Distributed Hash Tables links Carles Pairot's Page on डीएचटी and P2P research
- kademlia.scs.cs.nyu.edu Archive.org snapshots of kademlia.scs.cs.nyu.edu
- Eng-Keong Lua; Crowcroft, Jon; Pias, Marcelo; Sharma, Ravi; Lim, Steve (2005). "IEEE Survey on overlay network schemes". CiteSeerX 10.1.1.111.4197: covering unstructured and structured decentralized overlay networks including डीएचटीs (Chord, Pastry, Tapestry and others).
- Mainline डीएचटी Measurement at Department of Computer Science, University of Helsinki, Finland.