होस्ट के जाने के बाद ऑनलाइन गेम कैसे जारी रहता है?


12

नोट: यह नेटवर्किंग के बारे में एक प्रश्न है, गेमिंग नहीं। मैं एक उदाहरण के रूप में StarCraft का उपयोग कर रहा हूं।

खेल StarCraft (StarCraft 2 नहीं) ऑनलाइन खेलने का समर्थन करता है। एक व्यक्ति होस्ट करता है, और अन्य लोग शामिल होते हैं। यदि मेजबान खेल के दौरान निकलता है, तो खेल मेजबान के बिना अनिश्चित काल तक जारी रह सकता है। वह कैसे काम करता है?

इस परिदृश्य पर विचार करें:

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

शेष पाँच ग्राहक (जिन्हें 6112 अग्रेषित करने की आवश्यकता नहीं थी) कैसे जुड़े रहेंगे?

यदि मैं सही ढंग से समझता हूं: यदि दो कार्यक्रम एक-दूसरे से बात करना चाहते हैं, तो उनमें से एक को "सर्वर" होना चाहिए और एक पोर्ट पर कनेक्शन के लिए सुनना होगा, जबकि दूसरे को "क्लाइंट" होना चाहिए और उस पर कनेक्शन का अनुरोध करना चाहिए। बंदरगाह। वे बस एक दूसरे को पैकेट भेजना शुरू नहीं कर सकते हैं (और मुझे नहीं पता कि वे कैसे होंगे, अगर दोनों राउटर के पीछे हैं)।

किसी गेम को होस्ट करना एक सर्वर है, जबकि इसमें शामिल होने वाले ग्राहक हैं। यह देखना आसान है कि क्लाइंट सर्वर से संवाद कैसे शुरू कर सकते हैं। मुझे जो नहीं मिलता है वह यह है: क्लाइंट सर्वर के माध्यम से जाने के बिना एक दूसरे के साथ संवाद कैसे शुरू करते हैं? क्या इंटरनेट प्रोटोकॉल एक सर्वर को ग्राहकों के बीच संबंध बनाने की अनुमति देता है?

यह पूरी तरह से संभव है कि, StarCraft के मामले में, गेम ट्रैफिक Battle.net सर्वर के माध्यम से जाता है। StarCraft खेल के दौरान Battle.net के लिए एक कनेक्शन बनाए रखता है (दोस्तों, आदि के संदेशों के लिए)। हालांकि, मुझे संदेह है कि गेम ट्रैफिक इसके माध्यम से जाता है, क्योंकि अगर यह किया जाता है, तो मेजबानों को 6112 को आगे पोर्ट करने की आवश्यकता क्यों होगी?

मेरा प्रश्न है: क्या एक सर्वर, जिसमें कई ग्राहक जुड़े हो सकते हैं, उनके बीच संबंध स्थापित कर सकते हैं?


2
मैं यहाँ Starcraft संदर्भ पसंद कर रहा हूँ ...
जॉन

I host a 3 versus 3. Note that, for people to be able to join, my router has to be configured to port forward 6112, TCP and UDP (see Blizzard Support).जाहिरा तौर पर यह एक गेम शुरू करने के लिए आवश्यक है ताकि उपयोगकर्ता आपको ढूंढ सकें, लेकिन जुड़े रहने के लिए आवश्यक नहीं है।
जेफओ जूल

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

जवाबों:


20

यह यूडीपी छेद छिद्रण की तरह लगता है

चलो ए और बी दो मेजबान हैं, प्रत्येक अपने निजी नेटवर्क में; N1 और N2 दो NAT डिवाइस हैं; S एक सार्वजनिक सर्वर है, जो विश्व स्तर पर जाने-पहचाने IP पते के साथ प्रसिद्ध है।

  1. ए और बी प्रत्येक एस के साथ एक यूडीपी बातचीत शुरू करते हैं; NAT उपकरण N1 और N2 UDP अनुवाद राज्य बनाते हैं और अस्थायी बाहरी पोर्ट संख्याएँ असाइन करते हैं
  2. S इन पोर्ट संख्याओं को A और B पर वापस भेज देता है
  3. A और B अनुवादित पोर्ट पर सीधे एक-दूसरे के NAT उपकरणों से संपर्क करते हैं; NAT उपकरण पहले से बनाए गए अनुवाद राज्यों का उपयोग करते हैं और पैकेट को A और B में भेजते हैं

इस उदाहरण में, आप एस हैं। आपके विरोधी ए और बी हैं। जब आपको खेल से बाहर कर दिया जाता है, तो आपके विरोधी खेलना जारी रख सकते हैं, क्योंकि जब वे पहली बार आपसे जुड़े थे, तो उन्होंने एक दूसरे से संबंध स्थापित किया था।


वाह +1, मुझे नहीं पता था कि NAT का उपयोग इस तरह किया जा सकता है
TheLQ

NAT की समस्या यह है कि आपको फ़ायरवॉल के पीछे से शुरू करने की आवश्यकता है। इसलिए आपको सार्वजनिक रूप से उपलब्ध होने के लिए कम से कम प्रारंभिक कंप्यूटर की आवश्यकता है या इससे जुड़ने के लिए कुछ भी नहीं है।

2

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


पी 2 पी मॉडल को अभी भी आमतौर पर पोर्ट के प्रत्येक जोड़े में कम से कम एक व्यक्ति द्वारा आगे के संबंध बनाने के लिए बंदरगाहों की आवश्यकता होती है। बिना किसी पोर्ट के फॉरवर्ड किए एक टोरेंट डाउनलोड करने की कोशिश करें और कनेक्शन की संख्या में अंतर देखें।
Snorbuckle
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.