मैं एक मल्टीप्लेयर गेम बनाना चाहता हूं जो इंटरनेट पर चलता है, न केवल कम विलंबता, लैन जैसे उच्च थ्रुपुट वातावरण।मिक्सिंग टीसीपी और यूडीपी
मेरे खेल के कुछ नेटवर्किंग पहलू हैं जहां यूडीपी स्पष्ट रूप से बेहतर है, जैसे विभिन्न खिलाड़ियों की स्थिति और वेगों के बारे में जानकारी संचारित करना। यह डेटा यथासंभव तेज़ी से प्राप्त किया जाना चाहिए, और गिराए गए पैकेट को फिर से भेजने में मदद नहीं मिलेगी क्योंकि वह डेटा क्लाइंट तक पहुंचने तक अप्रासंगिक है। कुछ पैकेट को छोड़ने के लिए यह पूरी तरह से ठीक है।
हालांकि, मेरे खेल के कुछ अन्य पहलू हैं जिन्हें सख्ती से गारंटी, गारंटीकृत डिलीवरी की आवश्यकता होती है। पैकेट के स्वचालित विखंडन (डेटा को तोड़ने और डेटा के बड़े टुकड़ों के लिए एक साथ वापस डालने) भी बहुत उपयोगी होगा। ऐसा लगता है कि टीसीपी यह सब करता है। डेटा तब तक उपयोगी नहीं होता है जब तक यह सख्ती से ऑर्डर न हो और वहां कोई गुम पैकेट नहीं है। कुछ मामलों में लेटेंसी अनिवार्य रूप से इस प्रकार के डेटा के लिए पीड़ित होगी, लेकिन यह अपरिहार्य है।
तो, यूडीपी के शीर्ष पर टीसीपी जैसी सुविधाओं को लागू करने के बजाय, (डेटा बफर के साथ, उनके ऑर्डर को निर्धारित करने के लिए संख्याओं के साथ लेबलिंग पैकेट, पैकेट पावती प्रणाली), जो यह सुनिश्चित करने के लिए काम का एक टन होगा कि यह सही ढंग से काम करता है और कुशलता से, मैं एक ही समय में टीसीपी और यूडीपी का उपयोग करना चाहता हूं।
हालांकि, मैंने सुना है कि टीसीपी और यूडीपी बैंडविड्थ के लिए एक-दूसरे से लड़ सकते हैं यदि आप एक साथ एक साथ उपयोग करते हैं, और टीसीपी का उपयोग यूडीपी गिराए गए पैकेट की दर में वृद्धि करेगा। क्या यह वास्तव में सच है? क्या इन दो प्रोटोकॉल को मिलाते समय मुझे कोई अन्य समस्याएं सौंपनी पड़ेगी?
सबकुछ बैंडविड्थ के लिए झगड़ा करता है। – Mat
@ अच्छी तरह से हाँ, लेकिन मैंने सुना है कि यूसीपी पर टीसीपी या 100 केबी/एस पर 100 किलोबाइट/एस के प्रत्येक के 50 केबी/एस से अधिक विलंब और कम विलंबता होगी। – newprogrammer
@ न्यूप्रोग्रामर आपने इसे 'सुना' कहां? कृपया उद्धरण – EJP