नहीं, यूडीपी प्रदर्शन विलंबता के मामले में अभी भी बेहतर है , और हमेशा तेज रहेगा, क्योंकि 2 प्रोटोकॉल के दर्शन - यह मानते हुए कि आपका संचार डेटा यूडीपी या किसी अन्य हानिपूर्ण संचार को ध्यान में रखकर बनाया गया था।
टीसीपी एक अमूर्त बनाता है जिसमें सभी नेटवर्क पैकेट आते हैं, और वे उसी क्रम में पहुंचते हैं जिसमें उन्हें भेजा गया था। एक हानिपूर्ण चैनल पर इस तरह के अमूर्तता को लागू करने के लिए, इसे रिट्रेंसमीशन और टाइमआउट लागू करना चाहिए, जो समय का उपभोग करता है। यदि आप टीसीपी पर 2 अपडेट भेजते हैं, और पहले अपडेट का एक पैकेट खो जाता है, तो आप दूसरा अपडेट तब तक नहीं देखेंगे:
- पहले अद्यतन के नुकसान का पता चला है।
- पहले अद्यतन का पुन: प्रसारण का अनुरोध किया जाता है।
- रिट्रांसमिशन आ गया है और संसाधित हो गया है।
इससे कोई फर्क नहीं पड़ता कि टीसीपी में यह कितनी तेजी से किया जाता है, क्योंकि यूडीपी के साथ आप पहले अपडेट को छोड़ देते हैं और दूसरे, नए का उपयोग करते हैं, अभी। टीसीपी के विपरीत, यूडीपी गारंटी नहीं देता है कि सभी पैकेट आते हैं और यह गारंटी नहीं देता है कि वे क्रम में आते हैं।
इसके लिए आपको सही प्रकार का डेटा भेजना होगा, और अपने संचार को इस तरह से डिज़ाइन करना होगा कि डेटा खोना स्वीकार्य हो।
यदि आपके पास वह डेटा है जहां हर पैकेट पहुंचना चाहिए, और पैकेट को आपके गेम द्वारा संसाधित किया जाना चाहिए जिस क्रम में उन्हें भेजा गया था, तो यूडीपी तेज नहीं होगा। वास्तव में इस मामले में यूडीपी का उपयोग करने की संभावना धीमी होगी क्योंकि आप टीसीपी का पुनर्निर्माण कर रहे हैं और इसे यूडीपी के माध्यम से कार्यान्वित कर रहे हैं जिस स्थिति में आप टीसीपी का उपयोग कर सकते हैं।
EDIT - कुछ टिप्पणियों को शामिल / संबोधित करने के लिए कुछ अतिरिक्त जानकारी जोड़ना:
आम तौर पर, ईथरनेट पर पैकेट हानि दर बहुत कम है, लेकिन वाईफाई शामिल होने या उपयोगकर्ता के अपलोड / डाउनलोड प्रगति पर होने पर यह बहुत अधिक हो जाता है। मान लेते हैं कि हमारे पास 0.01% (एक तरह से, गोल-यात्रा नहीं) का बिल्कुल समान पैकेट नुकसान है। पहले व्यक्ति शूटर पर, ग्राहकों को जब भी कुछ होता है, तो अपडेट भेजना चाहिए, जैसे कि जब माउस कर्सर खिलाड़ी को बदलता है, जो प्रति सेकंड लगभग 20 बार होता है। वे प्रति फ्रेम या एक निश्चित अंतराल पर अपडेट भी भेज सकते थे, जो प्रति सेकंड 60-120 अपडेट होगा। चूंकि ये अपडेट अलग-अलग समय पर भेजे जाते हैं, इसलिए उन्हें प्रति अपडेट एक पैकेट में भेजा जाना चाहिए। 16 खिलाड़ी के खेल पर, सभी 16 खिलाड़ी सर्वर पर प्रति सेकंड इन 20-120 पैकेटों को भेजते हैं, जिसके परिणामस्वरूप कुल 320-1920 पैकेट प्रति सेकंड होता है। 0.01% की हमारी पैकेट हानि दर के साथ, हम हर 5.2-31.25 सेकंड में एक पैकेट खोने की उम्मीद करते हैं।
खोए हुए पैकेट के बाद हमें मिलने वाले प्रत्येक पैकेट पर, हम एक डुपैक भेजेंगे, और 3 डुपैक के बाद प्रेषक खोए हुए पैकेट को फिर से भेज देगा । तो उस समय टीसीपी को फिर से शुरू करने की आवश्यकता होती है 3 पैकेट, इसके अलावा अंतिम डुपैक के प्रेषक पर पहुंचने में लगने वाला समय। फिर हमें रिट्रांसमिशन के आने का इंतजार करना होगा, इसलिए कुल मिलाकर हम 3 पैकेट + 1 राउंडट्रैपी लेटेंसी का इंतजार करते हैं। राउंडट्रिप लेटेंसी आमतौर पर एक स्थानीय नेटवर्क पर 0-1 एमएस और इंटरनेट पर 50-200 एमएस है। अगर हम प्रति पैकेट 20 पैकेट भेजते हैं तो 3 पैकेट आम तौर पर 25 एमएस में पहुंचेंगे और अगर हम 20 पैकेट प्रति सेकंड भेजते हैं तो 150 मी।
इसके विपरीत, UDP के साथ हम अगला पैकेट प्राप्त करते ही एक खोए हुए पैकेट से उबर जाते हैं, इसलिए यदि हम प्रति पैकेट 120 पैकेट भेजते हैं, और 50 ms प्रति सेकंड 20 पैकेट भेजते हैं, तो हम 8.3 ms खो देते हैं।
टीसीपी बातें मेसियर पाने के साथ करता है, तो हम भी विचार करने की जरूरत Nagle (डेवलपर वालों भेजने बंद करने के लिए भूल जाता है, या देरी एसीके अक्षम नहीं कर सकता ), नेटवर्क संकुलता परिहार , या यदि पैकेट क्षति काफी बुरा है हम कई के लिए खाते में करने के लिए है कि पैकेट के नुकसान (खोए हुए ऐक और डुपैक सहित)। यूडीपी के साथ हम आसानी से तेज कोड लिख सकते हैं क्योंकि हम टीसीपी जैसे एक अच्छे नेटवर्क नागरिक होने के बारे में बहुत परवाह नहीं करते हैं।