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

From Vigyanwiki
(Created page with "{{Short description|Decentralized distributed system with lookup service}} {{Citations needed|date=September 2020}} डिस्ट्रीब्यूटेड हैश...")
 
No edit summary
Line 1: Line 1:
{{Short description|Decentralized distributed system with lookup service}}
{{Short description|Decentralized distributed system with lookup service}}
{{Citations needed|date=September 2020}}
डिस्ट्रीब्यूटेड [[ हैश तालिका |हैश तालिका]] (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 को अत्यधिक बड़ी संख्या में नोड्स को स्केल करने (कंप्यूटिंग) करने और निरंतर नोड आगमन, प्रस्थान और विफलताओं को संभालने की अनुमति देता है।
डिस्ट्रीब्यूटेड [[ हैश तालिका ]] (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 को अत्यधिक बड़ी संख्या में नोड्स को स्केल करने (कंप्यूटिंग) करने और निरंतर नोड आगमन, प्रस्थान और विफलताओं को संभालने की अनुमति देता है।


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


[[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पी सामग्री वितरण प्रणाली, को एक केंद्रीय सूचकांक सर्वर की आवश्यकता होती है: प्रत्येक नोड, शामिल होने पर, स्थानीय रूप से रखी गई फ़ाइलों की एक सूची सर्वर को भेजेगा, जो खोज करेगा और प्रश्नों को उन नोड्स को संदर्भित करेगा जो इसे धारण करते हैं। परिणाम। इस केंद्रीय घटक ने सिस्टम को हमलों और मुकदमों के प्रति संवेदनशील बना दिया।


गुटेला और इसी तरह के नेटवर्क एक [[क्वेरी बाढ़]] मॉडल में चले गए{{spaced ndash}} संक्षेप में, प्रत्येक खोज के परिणामस्वरूप नेटवर्क में हर दूसरी मशीन पर एक संदेश प्रसारित होगा। विफलता के एक भी बिंदु से बचते हुए, यह विधि नैप्स्टर की तुलना में काफी कम कुशल थी। गुटेला क्लाइंट के बाद के संस्करण एक गतिशील क्वेरी मॉडल में चले गए जिससे दक्षता में काफी सुधार हुआ।<ref>{{cite journal |last1=Richter, Stevenson|display-authors=et al |title=क्लाइंट-सर्वर संबंधों पर गतिशील क्वेरी मॉडल के प्रभाव का विश्लेषण|journal=Trends in Modern Computing |date=2009 |pages=682–701}}</ref>
ये प्रणालियाँ इस बात में भिन्न थीं कि वे अपने साथियों द्वारा पेश किए गए डेटा का पता कैसे लगाते हैं। नैप्स्टर, पहली बड़े पैमाने की पी2पी सामग्री वितरण प्रणाली, को  केंद्रीय सूचकांक सर्वर की आवश्यकता होती है: प्रत्येक नोड, शामिल होने पर, स्थानीय रूप से रखी गई फ़ाइलों की  सूची सर्वर को भेजेगा, जो खोज करेगा और प्रश्नों को उन नोड्स को संदर्भित करेगा जो इसे धारण करते हैं। परिणाम। इस केंद्रीय घटक ने सिस्टम को हमलों और मुकदमों के प्रति संवेदनशील बना दिया।
फ़्रीनेट पूरी तरह से वितरित है, लेकिन एक [[ह्यूरिस्टिक (कंप्यूटर विज्ञान)]] [[कुंजी-आधारित रूटिंग]] को नियोजित करता है जिसमें प्रत्येक फ़ाइल एक कुंजी से जुड़ी होती है, और समान कुंजी वाली फ़ाइलें नोड्स के समान सेट पर क्लस्टर होती हैं। कई साथियों से मिलने की आवश्यकता के बिना प्रश्नों को नेटवर्क के माध्यम से ऐसे क्लस्टर में भेजे जाने की संभावना है।<ref>{{citation |url=https://freenetproject.org/papers/lic.pdf |title=Searching in a Small World Chapters 1 & 2 |access-date=2012-01-10}}</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 |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)]]]]डीएचटी) - ने डीएचटी को  लोकप्रिय शोध विषय के रूप में प्रज्वलित किया।
 
इंफ्रास्ट्रक्चर फॉर रेजिलिएंट इंटरनेट सिस्टम्स (आइरिस) नामक  परियोजना को 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>{{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)]]]]डीएचटी) - ने डीएचटी को एक लोकप्रिय शोध विषय के रूप में प्रज्वलित किया।
इंफ्रास्ट्रक्चर फॉर रेजिलिएंट इंटरनेट सिस्टम्स (आइरिस) नामक एक परियोजना को 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>
शिक्षा जगत के बाहर, डीएचटी तकनीक को बिटटोरेंट और कोरल कंटेंट डिस्ट्रीब्यूशन नेटवर्क के एक घटक के रूप में अपनाया गया है।
 
शिक्षा जगत के बाहर, डीएचटी तकनीक को बिटटोरेंट और कोरल कंटेंट डिस्ट्रीब्यूशन नेटवर्क के   घटक के रूप में अपनाया गया है।


== गुण ==
== गुण ==
Line 27: Line 32:
* स्केल (कंप्यूटिंग): सिस्टम को हजारों या लाखों नोड्स के साथ भी कुशलतापूर्वक कार्य करना चाहिए।
* स्केल (कंप्यूटिंग): सिस्टम को हजारों या लाखों नोड्स के साथ भी कुशलतापूर्वक कार्य करना चाहिए।


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


कुछ 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पी]] देखें।
कुछ 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पी]] देखें।


== संरचना ==
== संरचना ==
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-बिट [[स्ट्रिंग (कंप्यूटर विज्ञान)]] का सेट। एक कीस्पेस [[विभाजन (डेटाबेस)]] योजना इस कीस्पेस के स्वामित्व को भाग लेने वाले नोड्स के बीच विभाजित करती है। एक [[ओवरले नेटवर्क]] तब नोड्स को जोड़ता है, जिससे उन्हें कीस्पेस में किसी भी कुंजी के मालिक को ढूंढने की अनुमति मिलती है।
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-बिट [[स्ट्रिंग (कंप्यूटर विज्ञान)]] का सेट।   कीस्पेस [[विभाजन (डेटाबेस)]] योजना इस कीस्पेस के स्वामित्व को भाग लेने वाले नोड्स के बीच विभाजित करती है।   [[ओवरले नेटवर्क]] तब नोड्स को जोड़ता है, जिससे उन्हें कीस्पेस में किसी भी कुंजी के मालिक को ढूंढने की अनुमति मिलती है।


एक बार ये घटक स्थापित हो जाएं, तो भंडारण और पुनर्प्राप्ति के लिए डीएचटी का सामान्य उपयोग निम्नानुसार आगे बढ़ सकता है। मान लीजिए कि कीस्पेस 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-बिट स्ट्रिंग्स का सेट है। किसी फ़ाइल को दिए गए के साथ अनुक्रमित करने के लिए {{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}}.


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


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


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


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


लगातार हैशिंग एक फ़ंक्शन को नियोजित करती है <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|Rendezvous hashing}}


मिलन स्थल हैशिंग में, जिसे उच्चतम यादृच्छिक वजन (एचआरडब्ल्यू) हैशिंग भी कहा जाता है, सभी क्लाइंट समान हैश फ़ंक्शन का उपयोग करते हैं <math>h()</math> (समय से पहले चुना गया) किसी कुंजी को उपलब्ध सर्वरों में से किसी एक से संबद्ध करने के लिए।
मिलन स्थल हैशिंग में, जिसे उच्चतम यादृच्छिक वजन (एचआरडब्ल्यू) हैशिंग भी कहा जाता है, सभी क्लाइंट समान हैश फ़ंक्शन का उपयोग करते हैं <math>h()</math> (समय से पहले चुना गया) किसी कुंजी को उपलब्ध सर्वरों में से किसी   से संबद्ध करने के लिए।
प्रत्येक ग्राहक के पास पहचानकर्ताओं की समान सूची होती है {{math|{{mset|''S''<sub>1</sub>, ''S''<sub>2</sub>, ..., ''S''<sub>''n''</sub> }}}}, प्रत्येक सर्वर के लिए एक।
प्रत्येक ग्राहक के पास पहचानकर्ताओं की समान सूची होती है {{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'')}}.
कुछ कुंजी 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|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> सॉर्टिंग यह सुनिश्चित करती है कि समान कुंजियाँ पड़ोसी नोड्स द्वारा संग्रहीत की जाती हैं और रेंज क्वेरी (डेटा संरचना) सहित खोज प्रक्रियाएं, लॉगरिदमिक समय में की जा सकती हैं। ऑस्कर [[ यादृच्छिक चाल ]] सैंपलिंग के आधार पर एक नौगम्य [[लघु-विश्व नेटवर्क]] का निर्माण करता है जो लॉगरिदमिक खोज समय का भी आश्वासन देता है।
स्थानीयता-संरक्षण हैशिंग यह सुनिश्चित करती है कि समान वस्तुओं को समान कुंजियाँ सौंपी गई हैं। यह रेंज क्वेरीज़ के अधिक कुशल निष्पादन को सक्षम कर सकता है, हालांकि, लगातार हैशिंग का उपयोग करने के विपरीत, इस बात का कोई आश्वासन नहीं है कि कुंजी (और इस प्रकार लोड) कुंजी स्थान और भाग लेने वाले साथियों पर समान रूप से यादृच्छिक रूप से वितरित की जाती है। डीएचटी प्रोटोकॉल जैसे सेल्फ-कॉर्ड और ऑस्कर<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}} बिग ओ नोटेशन का उपयोग करते हुए डीएचटी में नोड्स की संख्या है:
Line 79: Line 84:
| <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]] (with constant degree) || More complex to implement, but acceptable lookup time can be found with a fixed number of connections
|-
|-
| <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)|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/\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]] (with optimal lookup) || More complex to implement, but lookups might be faster (have a lower worst case bound)
Line 86: Line 91:
|}
|}
सबसे आम विकल्प, <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>
रूटिंग के अलावा, ऐसे कई एल्गोरिदम मौजूद हैं जो 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>
 
 
== सुरक्षा ==
== सुरक्षा ==


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


[[वितरित डेटा भंडारण]] के लिए खुली प्रणालियाँ जो बड़े पैमाने पर शत्रुतापूर्ण हमलावरों के खिलाफ मजबूत हों, संभव हैं।<ref>
[[वितरित डेटा भंडारण]] के लिए खुली प्रणालियाँ जो बड़े पैमाने पर शत्रुतापूर्ण हमलावरों के खिलाफ मजबूत हों, संभव हैं।<ref>
Line 103: Line 105:
{{doi|10.1145/1148109.1148163}}
{{doi|10.1145/1148109.1148163}}
</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 110: 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> व्हानाउ एक DHT है जिसे सिबिल हमलों के प्रति प्रतिरोधी बनाने के लिए डिज़ाइन किया गया है।<ref>
</ref> व्हानाउ   DHT है जिसे सिबिल हमलों के प्रति प्रतिरोधी बनाने के लिए डिज़ाइन किया गया है।<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> मेमौनकोव ने अब इस नई प्रणाली का व्यापक कार्यान्वयन प्रयास शुरू किया है। हालाँकि, सिबिल हमलों के खिलाफ प्रभावी बचाव में अनुसंधान को आम तौर पर एक खुला प्रश्न माना जाता है, और हर साल शीर्ष सुरक्षा अनुसंधान सम्मेलनों में विभिन्न प्रकार के संभावित बचाव प्रस्तावित किए जाते हैं।{{Citation needed|date=May 2020}}
 
[[कैडेमलिया]] के मूल लेखकों में से , पेटार मेमौनकोव ने सिस्टम डिज़ाइन में सामाजिक विश्वास संबंधों को शामिल करके सिबिल हमले की कमजोरी को दूर करने का   तरीका प्रस्तावित किया है।<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 का एक पैरामीटर है। कई वास्तविक दुनिया के DHT 128-बिट या 160-बिट कुंजी स्थान का उपयोग करते हैं।
* पता स्थान DHT का   पैरामीटर है। कई वास्तविक दुनिया के DHT 128-बिट या 160-बिट कुंजी स्थान का उपयोग करते हैं।
* कुछ वास्तविक दुनिया के DHT SHA-1 के अलावा अन्य हैश फ़ंक्शन का उपयोग करते हैं।
* कुछ वास्तविक दुनिया के DHT 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-बिट DHT में {{var serif|1=ID}} एक 160-बिट संख्या होगी, जिसे आमतौर पर यादृच्छिक रूप से चुना जाता है)। कुछ डीएचटी में, डीएचटी संचालन को अनुकूलित करने के लिए नोड्स आईडी के प्रकाशन का भी उपयोग किया जाता है।
* कुछ डीएचटी विभिन्न प्रकार की वस्तुओं को भी प्रकाशित कर सकते हैं। उदाहरण के लिए, कुंजी {{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, data)}} कुंजी युग्म को कुंजी के अनुरूप एक से अधिक नोड में संग्रहित किया जा सकता है। आमतौर पर, केवल एक नोड का चयन करने के बजाय, वास्तविक दुनिया DHT एल्गोरिदम का चयन करते हैं {{var serif|1=i}} उपयुक्त नोड्स, के साथ {{var serif|1=i}} DHT का कार्यान्वयन-विशिष्ट पैरामीटर है। कुछ डीएचटी डिज़ाइनों में, नोड्स एक निश्चित कीस्पेस रेंज को संभालने के लिए सहमत होते हैं, जिसका आकार हार्ड-कोड के बजाय गतिशील रूप से चुना जा सकता है।
* विश्वसनीयता में सुधार के लिए अतिरेक को जोड़ा जा सकता है। वह {{var serif|1=(k, data)}} कुंजी युग्म को कुंजी के अनुरूप   से अधिक नोड में संग्रहित किया जा सकता है। आमतौर पर, केवल   नोड का चयन करने के बजाय, वास्तविक दुनिया DHT एल्गोरिदम का चयन करते हैं {{var serif|1=i}} उपयुक्त नोड्स, के साथ {{var serif|1=i}} DHT का कार्यान्वयन-विशिष्ट पैरामीटर है। कुछ डीएचटी डिज़ाइनों में, नोड्स   निश्चित कीस्पेस रेंज को संभालने के लिए सहमत होते हैं, जिसका आकार हार्ड-कोड के बजाय गतिशील रूप से चुना जा सकता है।
* कैडेमलिया जैसे कुछ उन्नत डीएचटी उपयुक्त नोड्स के एक सेट का चयन करने और भेजने के लिए पहले डीएचटी के माध्यम से पुनरावृत्त लुकअप करते हैं {{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)}} संदेश केवल उन्हीं नोड्स को भेजे जाते हैं, जिससे बेकार ट्रैफ़िक में भारी कमी आती है, क्योंकि प्रकाशित संदेश केवल उन नोड्स को भेजे जाते हैं जो कुंजी संग्रहीत करने के लिए उपयुक्त लगते हैं {{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=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 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>
 
 
== उदाहरण ==
== उदाहरण ==


Line 145: Line 147:


=== डीएचटी का उपयोग करने वाले अनुप्रयोग ===
=== डीएचटी का उपयोग करने वाले अनुप्रयोग ===
<!-- NOTE ABOUT ADDING ITEMS TO THIS SECTION: Please provide a reference so the editors know that (1) the application actually uses a DHT, and (2) the project is notable as opposed to just someone's project from networking class. You can do this by providing a wikilink here or putting a note or external link on the Talk page. PLEASE DO NOT ADD BITTORRENT CLIENTS as these are already covered via the link to "Comparison of BitTorrent clients"; there's no reason to duplicate that list here. -->
* [[BTDigg]]: बिटटोरेंट DHT सर्च इंजन
* [[BTDigg]]: बिटटोरेंट DHT सर्च इंजन
* [[कोडीन]]: वेब कैशिंग
* [[कोडीन]]: वेब कैशिंग
* फ़्रीनेट: एक सेंसरशिप-प्रतिरोधी अनाम नेटवर्क
* फ़्रीनेट:   सेंसरशिप-प्रतिरोधी अनाम नेटवर्क
* [[ग्लस्टरएफएस]]: एक वितरित फ़ाइल सिस्टम जिसका उपयोग स्टोरेज वर्चुअलाइजेशन के लिए किया जाता है
* [[ग्लस्टरएफएस]]:   वितरित फ़ाइल सिस्टम जिसका उपयोग स्टोरेज वर्चुअलाइजेशन के लिए किया जाता है
* [[जीएनयूनेट]]: डीएचटी कार्यान्वयन सहित फ्रीनेट जैसा वितरण नेटवर्क
* [[जीएनयूनेट]]: डीएचटी कार्यान्वयन सहित फ्रीनेट जैसा वितरण नेटवर्क
* [[I2P]]: एक ओपन-सोर्स अनाम पीयर-टू-पीयर नेटवर्क
* [[I2P]]:   ओपन-सोर्स अनाम पीयर-टू-पीयर नेटवर्क
* I2P | I2P-Bote: सर्वर रहित सुरक्षित अनाम ईमेल
* I2P | I2P-Bote: सर्वर रहित सुरक्षित अनाम ईमेल
* इंटरप्लेनेटरी फाइल सिस्टम: एक कंटेंट-एड्रेसेबल, पीयर-टू-पीयर हाइपरमीडिया वितरण प्रोटोकॉल
* इंटरप्लेनेटरी फाइल सिस्टम:   कंटेंट-एड्रेसेबल, पीयर-टू-पीयर हाइपरमीडिया वितरण प्रोटोकॉल
* [[JXTA]]: ओपन-सोर्स पी2पी प्लेटफॉर्म
* [[JXTA]]: ओपन-सोर्स पी2पी प्लेटफॉर्म
* [[LBRY]]: एक ब्लॉकचेन-आधारित सामग्री साझाकरण प्रोटोकॉल जो सामग्री वितरण के लिए कैडेमलिया-प्रभावित DHT प्रणाली का उपयोग करता है
* [[LBRY]]:   ब्लॉकचेन-आधारित सामग्री साझाकरण प्रोटोकॉल जो सामग्री वितरण के लिए कैडेमलिया-प्रभावित DHT प्रणाली का उपयोग करता है
* [[ ओरेकल सुसंगतता ]]: जावा डीएचटी कार्यान्वयन के शीर्ष पर निर्मित एक इन-मेमोरी डेटा ग्रिड
* [[ ओरेकल सुसंगतता ]]: जावा डीएचटी कार्यान्वयन के शीर्ष पर निर्मित   इन-मेमोरी डेटा ग्रिड
* [[परफेक्ट डार्क (पी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: एक वितरित वेब खोज इंजन
* YaCy:   वितरित वेब खोज इंजन


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


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


== संदर्भ ==
== संदर्भ ==
{{Reflist|30em}}
{{Reflist|30em}}


== बाहरी संबंध ==
== बाहरी संबंध ==

Revision as of 18:49, 18 July 2023

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

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

वितरित हैश टेबल

इतिहास

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

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

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

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

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

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

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

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

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

गुण

DHT विशेष रूप से निम्नलिखित गुणों पर जोर देते हैं:

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

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

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

संरचना

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

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

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

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

सुरक्षा

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

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

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

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

कार्यान्वयन

DHT कार्यान्वयन के व्यावहारिक उदाहरणों में सामने आए सबसे उल्लेखनीय अंतरों में कम से कम निम्नलिखित शामिल हैं:

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

उदाहरण

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

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

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

यह भी देखें

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

संदर्भ

  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

बाहरी संबंध

Template:BitTorrent