2008-11-13 19 views
14

इंटरनेट से जुड़े दो कंप्यूटर जो हाथ से पहले एक दूसरे के बारे में कुछ भी नहीं जानते हैं, क्या एक कंप्यूटर के लिए एक संदेश प्रसारित करने में सक्षम होना संभव है ताकि दूसरा कंप्यूटर इसे प्राप्त कर सके और जवाब दे सके?दो कंप्यूटर इंटरनेट पर एक-दूसरे को ढूंढ रहे हैं

मुझे पता है कि यूडीपी प्रसारण पूर्व में है, लेकिन मेरा मानना ​​है कि इसे आम तौर पर आईएसपी द्वारा वास्तविक इंटरनेट तक पहुंचने से पहले फ़िल्टर किया जाता है। क्या ये सच है?

+0

वास्तव में प्रोग्रामिंग से संबंधित नहीं है, है ना? –

+6

प्रोग्रामिंग से संबंधित हो सकता है - वह ऐसी प्रणाली विकसित करने में रुचि रख सकता है – Jaywalker

+0

ठीक है, यह अभी भी नेटवर्किंग होमवर्क जैसा दिखता है, अगर आप मुझसे पूछें। उन्होंने ऐसी चीज प्रोग्रामिंग के बारे में कुछ नहीं लिखा। –

उत्तर

2

नहीं, आप इंटरनेट पर इस तरह प्रसारित नहीं कर सकते हैं। आपको यह जानने की जरूरत है कि आप अपने पैकेट को किस पते पर जाना चाहते हैं।

+0

मुझे इस बारे में पता नहीं है और मैं वास्तव में उत्सुक हूं, क्या आप सभी कंप्यूटरों पर पैकेट नहीं भेज सकते हैं? आप लैन पर प्रसारित कर सकते हैं; सिद्धांत रूप में, आपको दुनिया के सभी कंप्यूटरों पर एक पैकेट भेजने के लिए क्या रोक देगा? – Tom

+1

@ टॉम: संकेत: पूरी प्रणाली पिघलने के बिना दुनिया में कितने लोग प्रसारित कर सकते हैं? –

+2

आईपी ब्रॉडकास्ट केवल स्थानीय नेटवर्क सेगमेंट पर काम करते हैं, क्योंकि नेटवर्क स्टैक आईपी प्रसारण को ईथरनेट प्रसारण – Alnitak

7

आपको एक मध्यवर्ती तृतीय पक्ष की आवश्यकता है जिसे वे दोनों जानते हैं, जो प्रसारण की तरह फैशन में निर्देशित संदेशों को वितरित कर सकता है।

+0

इसका सबसे अच्छा उदाहरण DNS है, लेकिन अन्य भी हैं। – Tom

+0

हां, डीएचटी, जैसा कि विंको वर्सालोविक – bortzmeyer

+0

द्वारा उल्लिखित है, लेकिन अगर उन्हें पता था कि उनके पास एक आम तृतीय पक्ष प्रणाली थी, तो क्या वह DNS नहीं होगा? तो क्या वे एक दूसरे को खोजने के लिए एक गैर-प्रसारण तंत्र का उपयोग करने में सक्षम नहीं होंगे? – benc

12

केंद्रीकृत समन्वय के बिना बहुराष्ट्रीय नेटवर्क प्राप्त करने का वर्तमान सबसे अच्छा तरीका Distributed Hash Tables के उपयोग के माध्यम से है। वह लिंक थोड़ा सा बताता है और विभिन्न कार्यान्वयन के लिंक जो आप लाभ उठा सकते हैं।

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

+1

यह प्रश्न के "हिस्से से पहले" एक दूसरे के बारे में कुछ भी नहीं जानता है? – benc

+1

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

4

इस समस्या का समाधान (जहां आपके किसी भी साथी को दूसरे का अंतिम पता पता नहीं है) आईएम प्रोटोकॉल पर निर्भर हो सकता है।

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

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

उम्मीद है कि इससे मदद मिलती है।

1

यूडीपी एक मृत अंत है - यह सिर्फ एक प्रोटोकॉल है जहां पैकेट प्राप्त करने का आदेश कम महत्वपूर्ण है और WANS पर रूटिंग समस्याएं हैं। आपने कहा था कि आप दो कंप्यूटर को "इंटरनेट" पर संभवतः अंत बिंदुओं के साथ चलने वाले अंत बिंदुओं से कनेक्ट करना चाहते हैं। एकमात्र तरीका एक केंद्रीय सर्वर को रजिस्टर/निर्देशिका के रूप में उपयोग करना है। यदि प्रत्येक अंत में एक वेब सेवा या कुछ भी इंगित करता है और समय-समय पर अपना वर्तमान आईपी पता और नाम पंजीकृत करता है तो दूसरा अंत बिंदु इस सेवा का उपयोग करके दूसरे के आईपी पते को देख सकता है। (इस DNS पर पंजीकरण करने के लिए अपना स्वयं का DNS सर्वर होस्ट कर सकता है और अपना अंतिम बिंदु कोड कर सकता है?)

समस्याओं में से एक यह है कि यदि आपके पास आईपी पता है तो फ़ायरवॉल या एनएटी राउटर के पीछे एक या अधिक नोड्स क्या हैं? आपको प्रॉक्सी यातायात के लिए एक सर्वर होस्ट करने की आवश्यकता होगी। सबसे अच्छा उदाहरण स्काइप है - यह कैसे काम करता है इसे देखें, यह बहुत ही रोचक है।

simplist जवाब इस तरह के दूत, स्काइप, बिट धार, आदि के रूप में कोई मौजूदा सेवा पर वापस

साइमन

2

आप के लिए सम्भावित समाधान dynamic DNS सेवा का उपयोग करने के लिए है पर कूदने के लिए हो सकता है।

आपके आवेदन को पहले से ही पता होना चाहिए कि दूसरे होस्ट का होस्टनाम किस प्रकार उपयोग करेगा, लेकिन यह सेवा कम से कम इस तथ्य के आसपास हो जाएगी कि आप नहीं जानते कि अन्य कंप्यूटर पर कौन सा आईपी पता ठीक है।

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

-2

मल्टीकास्टिंग भी एक संभावित समाधान है। कॉर्पोरेट नेटवर्क में यह निश्चित रूप से व्यवहार्य है

+1

और वर्तमान में पूरे इंटरनेट पर मुश्किल से व्यवहार्य है। – Alnitak

+0

@Alnitak - सहमत हैं, यकीन है कि यह था सही तरीके से कार्यान्वित किया गया। लेकिन अगर ऐसा हुआ तो मल्टीकास्टिंग हमलों का एक बड़ा दंश होगा। – Jeff

+0

प्लस, उन्हें यह जानना होगा कि किस बहु-कास्ट पते का उपयोग करना है। इसका मतलब है कि वे "हाथ से पहले एक दूसरे के बारे में कुछ भी नहीं जानते"। – benc

1

यदि कंप्यूटर विंडोज चल रहे हैं, तो मैं PNRP का उपयोग करना चाहता हूं।

2

तार या पेस्ट्री एल्गोरिदम देखें। यह एक ओवरले नेटवर्क (डीएचटी आधारित) है जिसमें एक खोज तंत्र शामिल है। यह एक पी 2 पी (पीयर 2 पीयर) रूटिंग एल्गोरिदम है।

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