गेम क्लाइंट कैसे जानते हैं कि एक सर्वर उनके LAN पर चल रहा है?


18

बहुत सारे मल्टीप्लेयर गेम्स में LAN खेलने का विकल्प होता है। हालांकि मेरा सवाल यह है कि एक क्लाइंट को यह कैसे पता चलता है कि एक सर्वर लैन पर कहां है?

मेरे सोचने के एकमात्र तरीके

  1. प्रसारण पते पर प्रसारण भेजें। यह कभी-कभी राउटर या अलग-अलग नेटवर्क वातावरण में स्विच करके फ़िल्टर किए जाने का नुकसान है।
  2. अपने सबनेट में प्रत्येक IP पर एक सर्वर से कनेक्ट करने का प्रयास करें। यह धीमा होने का नुकसान है (विशेषकर यदि नेटवर्क अपने आईपी के लिए 10.XXX.XXX.XXX का उपयोग करता है) और एक मिनी ddos ​​हमला करता है, लेकिन फ़िल्टर नहीं किया जा रहा है।

विशेष रूप से अन्य नेटवर्क वातावरण में गेम कैसे करते हैं?

जवाबों:


32

LAN प्ले वाले गेम के लिए, ग्राहकों को सर्वरों की खोज के लिए ब्रॉडकास्ट पैकेट भेजने के लिए मानक चीज़ है। (ग्राहक एक प्रसारण भेजता है, सर्वर ग्राहक को सीधा जवाब भेजता है)

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

कोई भी (मेरी जानकारी के लिए) आपका विकल्प # 2 नहीं करता है, क्योंकि यह लैन के प्रदर्शन को नीचा दिखाएगा (या यदि आपको कनेक्शन के प्रयासों को डगमगाता है) तो काफी समय लगेगा।

लेकिन उन मामलों का सामना करने के लिए जहां प्रसारण को स्थानीय LAN (जो कि बहुत ही असामान्य है, लेकिन अनसुना नहीं है) द्वारा फ़िल्टर किया जाता है, अधिकांश गेम खिलाड़ियों को सीधे कनेक्ट करने के लिए IP पते दर्ज करने की अनुमति देगा। यह इस प्रकार की स्थितियों में खिलाड़ियों को एक ज्ञात सर्वर से कनेक्ट करने की अनुमति देता है, यहां तक ​​कि वे इसे स्वचालित रूप से खोजने के लिए प्रसारित नहीं कर सकते हैं।

इंटरनेट पर गेम के लिए, क्लाइंट एक स्थिर मेटा सर्वर को सीधा अनुरोध भेजेंगे , जो ज्ञात वर्तमान सर्वर इंस्टेंस के लिए पतों के साथ उत्तर देता है। इसी तरह, सर्वर, अपने स्वयं के स्थान की जानकारी देने के लिए उस मेटा सर्वर से संपर्क करते हैं ताकि ग्राहकों को उनके लिए निर्देशित किया जा सके। NAT की जटिलताओं के कारण, हालांकि, यह दृष्टिकोण आमतौर पर LAN के अंदर होस्ट किए गए सर्वर के लिए काम नहीं करता है। यही कारण है कि इस तरह के दृष्टिकोण का उपयोग आमतौर पर लैन गेम के लिए नहीं किया जाता है।

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


2
+1 टू यू सर, इसने कुछ सवालों के जवाब दिए जो मेरे पास भी थे।
Raine

2
+1, ब्रॉडकास्ट रास्ता है क्योंकि यह वास्तव में # 2 करने के लिए उचित तरीका है, hehe .. यही प्रसारण के लिए है, कई IP से संपर्क करके देखें कि क्या कुछ भी सुन रहा है।
जेम्स

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

कई बार मैं कॉर्पोरेट नेटवर्क पर आया हूं जो प्रसारण का समर्थन नहीं करता है, मैंने सभी प्रकार की अन्य रूटिंग समस्याओं को पाया है जो आमतौर पर दोषपूर्ण उपकरण (कभी-कभी राउटर के फर्मवेयर को अपग्रेड करके तय) के कारण होते हैं। यदि प्रसारण स्थानीय LAN खंड में काम नहीं कर रहा है, तो यह जानबूझकर होने की संभावना नहीं है।
रैंडोल्फ रिचर्डसन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.