टीसीपी के बजाय यूडीपी का उपयोग करना कब उचित है? [बन्द है]


302

चूंकि टीसीपी पैकेट वितरण की गारंटी देता है और इस प्रकार "विश्वसनीय" माना जा सकता है, जबकि यूडीपी कुछ भी गारंटी नहीं देता है और पैकेट खो सकता है। एक टीसीपी स्ट्रीम के बजाय एक आवेदन में यूडीपी का उपयोग करके डेटा प्रसारित करने का क्या फायदा होगा? यूडीपी किस तरह की स्थितियों में बेहतर विकल्प होगा, और क्यों?

मैं मान रहा हूं कि UDP तेजी से है क्योंकि इसमें स्ट्रीम बनाने और बनाए रखने का ओवरहेड नहीं है, लेकिन अगर कुछ डेटा कभी भी अपने गंतव्य तक नहीं पहुंचता है तो यह अप्रासंगिक होगा?


55
साथ ही संभावित पैकेट नुकसान से पीड़ित, यूडीपी गारंटी नहीं देता है कि आप केवल एक बार पैकेट प्राप्त करेंगे। यदि आपके पास नेटवर्क है या बुरी तरह से कॉन्फ़िगर किया गया है, तो आप एक ही पैकेट को कई बार प्राप्त कर सकते हैं। बस एक सिर ऊपर के बाद से लोग यह भूल जाते हैं!
ब्रायन एग्न्यू

3
यह पैकेट ऑर्डर करने की गारंटी भी नहीं देता है।
मेहरदाद अफश्री

19
टीसीपी डिलीवरी की गारंटी नहीं देता है , यह सिर्फ गारंटी देता है कि यदि वे पैकेट वितरित करने में सक्षम हैं तो वे उसी क्रम में होंगे जो उन्हें भेजा गया था।
चैम गेरेट्ज़

5
BTW, मैं अक्सर देखता हूं कि लोग TCP रिट्रांसमिट्स को विश्वसनीयता / इन-ऑर्डर डिलीवरी प्रदान करते हैं। वे "विशेषज्ञ" आपको बताएंगे कि यूडीपी पर ट्रांसमिशन त्रुटियों को दूर करने के लिए, आप टीसीपी (बुरी तरह से) को फिर से लागू करेंगे और इसलिए आप टीसीपी भी कर सकते हैं। यह सच नहीं है। पुनर्प्राप्ति के अलावा अन्य त्रुटि-पुनर्प्राप्ति तकनीकें हैं, जो छोटे-लेकिन-गैर-शून्य त्रुटि दरों के परिणामस्वरूप विलंबता या तेजी से अपमानित पीड़ा का सामना नहीं करती हैं।
बेन वोइगट

टीसीपी भी गारंटी देता है कि आपको पता चल जाएगा कि गंतव्य को पैकेट प्राप्त नहीं हुआ है या नहीं।
csga5000

जवाबों:


353

यह मेरे पसंदीदा सवालों में से एक है। यूडीपी इतना गलत समझा।

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

एक अन्य मामला यह है कि जब आप डेटा डिलीट कर रहे हैं तो वह खो सकता है क्योंकि आने वाला नया डेटा उस पिछले डेटा / स्थिति को बदल देगा। मौसम डेटा, वीडियो स्ट्रीमिंग, एक स्टॉक उद्धरण सेवा (वास्तविक ट्रेडिंग के लिए उपयोग नहीं किया जाता है), या गेमिंग डेटा का ध्यान आता है।

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

एक अन्य मामला मल्टीकास्ट ट्रैफिक के लिए है। UDP को मल्टीपल होस्ट में मल्टीकास्ट किया जा सकता है जबकि TCP यह बिल्कुल नहीं कर सकता।


दिलचस्प जवाब के लिए धन्यवाद। हमारे पास वर्तमान में UDP (उच्च बैंडविड्थ आवश्यकता) में सब कुछ करने वाला एक सर्वर है, जो ठीक है, क्योंकि वास्तव में एक ही हॉप है (रूटिंग अक्षम, ...), लेकिन ध्यान दिया गया है कि पैकेट रिडरिंग कुछ दोषपूर्ण नेटवर्क कार्ड पर एक मुद्दा बन सकता है। क्या उपयोगकर्ता-मोड टीसीपी (या कुछ अन्य उपयोगकर्ता-मोड प्रवाह नियंत्रित) स्टैक आप सुझाव देते हैं?
14:13 पर डैशी

@ डैडी - क्या आप ऑर्डर की आवश्यकता से छुटकारा पा सकते हैं? क्या पेलोड के अंदर एक नीरस रूप से बढ़ती संख्या है जिसे आप उपयोग कर सकते हैं? यदि हां, तो आपको वास्तव में पूर्ण विकसित उपयोगकर्ता भूमि टीसीपी स्टैक की आवश्यकता नहीं है।
शराबी

@ drudru- हां अनुक्रम संख्या है, मुझे खुद को बफर और डी-जिटर करने की आवश्यकता हो सकती है। धन्यवाद, एक और विकल्प को खत्म करना हमेशा शानदार होता है।
at१३ को

63

यदि एक टीसीपी पैकेट खो जाता है, तो यह नाराजगी होगी। यह उन अनुप्रयोगों के लिए आसान नहीं है जो वास्तविक समय में एक विशिष्ट क्रम में संभाले जा रहे डेटा पर भरोसा करते हैं।

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


16
मुझे लगता है कि आपके पास यह पीछे है। टीसीपी पुन: ऑर्डर पैकेट देता है ताकि भेजे गए ऑर्डर में डेटा डिलीवर हो जाए। यूडीपी फिर से आदेश नहीं देता है और इसे प्राप्त होने वाले किसी भी क्रम में डेटा वितरित करता है।
हंस मल्हर्बे

1
यूडीपी आदेश की गारंटी नहीं देता है, फिर भी आप पैकेट को नंबर दे सकते हैं और उन्हें वापस लेने के बाद उन्हें फिर से चालू कर सकते हैं।
कुगेल

7
@ Stephan202: मुझे लगता है कि मुझे स्काइप;;
रॉबर्ट एस। बार्न्स में

6
@Kugel: बस सावधान रहें कि आप एक नया टीसीपी स्टैक लागू कर रहे हैं। आप इस पर OS से बेहतर काम करने की संभावना नहीं है।
इरिक्कलेन

1
@erikkallen: यदि कोई यूडीपी का उपयोग उच्च स्तर के प्रोटोकॉल को लागू करने के लिए कर रहा था, उसी आवश्यकताओं के साथ टीसीपी को पूरा करने के लिए डिज़ाइन किया गया था, तो मौजूदा प्रोटोकॉल की तुलना में बहुत बेहतर करने की संभावना नहीं होगी। दूसरी ओर, कुछ एप्लिकेशन प्रोटोकॉल के लिए कुछ सुविधाओं को जोड़ने से लाभान्वित होते हैं जो एक यूडीपी आवरण टीसीपी से बेहतर संभाल सकता है।
सुपरकैट

56

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

एक टीसीपी सॉकेट के लिए बातचीत करने में ओवरहेड और टीसीपी पैकेट को हैंडशेक करना बहुत बड़ा है। वास्तव में बहुत बड़ा है। कोई प्रशंसनीय यूडीपी ओवरहेड नहीं है।

सबसे महत्वपूर्ण बात, आप आसानी से यूडीपी को कुछ विश्वसनीय डिलीवरी हैंड-शेकिंग के साथ पूरक कर सकते हैं जो टीसीपी से कम ओवरहेड है। इसे पढ़ें: http://en.wikipedia.org/wiki/Reliable_User_Datagram_Protocol

UDP प्रकाशन-सदस्यता प्रकार के एप्लिकेशन में जानकारी प्रसारित करने के लिए उपयोगी है। IIRC, TIBCO राज्य परिवर्तन की अधिसूचना के लिए UDP का भारी उपयोग करता है।

किसी भी अन्य प्रकार की एक-तरफ़ा "महत्वपूर्ण घटना" या "लॉगिंग" गतिविधि को यूडीपी पैकेट के साथ अच्छी तरह से संभाला जा सकता है। आप पूरे सॉकेट का निर्माण किए बिना अधिसूचना भेजना चाहते हैं। आपको विभिन्न श्रोताओं से किसी भी प्रतिक्रिया की उम्मीद नहीं है।

सिस्टम "दिल की धड़कन" या "मैं ज़िंदा हूँ" संदेश एक अच्छा विकल्प है, भी। एक लापता एक संकट नहीं है। आधा दर्जन (एक पंक्ति में) गुम है।


5
"एक व्यावहारिक मामले के रूप में, वे लगभग हमेशा प्राप्त करते हैं"। अत्यधिक निम्न नेटवर्क परतों की विश्वसनीयता पर निर्भर करता है।
m0skit0

इसके अलावा, "कुछ" पैकेट नुकसान और "बहुत अधिक" पैकेट नुकसान की योजना के बीच अंतर है? नुकसान ही नुकसान है। आपको इसके लिए वैसे भी योजना बनानी होगी।
सेदत कपपनोग्लू

30

मैं एक उत्पाद पर काम करता हूं जो क्लाइंट और सर्वर के बीच यूडीपी (आईपी) और टीसीपी / आईपी संचार दोनों का समर्थन करता है। यह 15 साल पहले IPX के साथ शुरू हुआ था, 13 साल पहले IP समर्थन के साथ जोड़ा गया था। हमने 3 या 4 साल पहले टीसीपी / आईपी सपोर्ट जोड़ा था। जंगली अनुमान आ रहा है: UDP से TCP कोड अनुपात शायद 80/20 है। उत्पाद एक डेटाबेस सर्वर है, इसलिए विश्वसनीयता महत्वपूर्ण है। हमें UDP द्वारा लगाए गए सभी मुद्दों (पैकेट हानि, पैकेट दोहरीकरण, पैकेट आदेश, आदि) को पहले से ही अन्य उत्तरों में उल्लेखित करना है। शायद ही कभी कोई समस्या हो, लेकिन वे कभी-कभी होते हैं और इसलिए उन्हें संभालना चाहिए। यूडीपी का समर्थन करने का लाभ यह है कि हम इसे अपने स्वयं के उपयोग के लिए थोड़ा अनुकूलित कर सकते हैं और इसमें से कुछ अधिक प्रदर्शन को ट्विक कर सकते हैं।

हर नेटवर्क अलग होने जा रहा है, लेकिन यूडीपी संचार प्रोटोकॉल आमतौर पर हमारे लिए थोड़ा तेज है। संशयवादी पाठक ठीक से सवाल करेगा कि क्या हमने सब कुछ सही तरीके से लागू किया है। इसके अलावा, आप एक 2 अंकों के प्रतिनिधि के साथ एक आदमी से क्या उम्मीद कर सकते हैं? बहरहाल, मैं अभी जिज्ञासा से बाहर एक परीक्षण किया। परीक्षण ने 1 मिलियन रिकॉर्ड (कुछ से चयन करें) पढ़ा। मैंने 1, 10 और फिर 100 (प्रत्येक प्रोटोकॉल के साथ तीन परीक्षण रन) होने के लिए प्रत्येक व्यक्तिगत क्लाइंट अनुरोध के साथ लौटने के लिए रिकॉर्ड की संख्या निर्धारित की। 100Mbit LAN पर सर्वर केवल दो हॉप्स था। संख्याओं से सहमत लग रहा था कि दूसरों ने अतीत में क्या पाया है (यूडीपी ज्यादातर स्थितियों में लगभग 5% तेज है)। मिलीसेकंड में कुल बार इस विशेष परीक्षण के लिए निम्नानुसार थे:

  1. 1 रिकॉर्ड
    • आईपी: 390,760 एमएस
    • टीसीपी: 416,903 एमएस
  2. 10 रिकॉर्ड
    • आईपी: 91,707 एमएस
    • टीसीपी: 95,662 एमएस
  3. 100 रिकॉर्ड
    • आईपी: 29,664 एमएस
    • टीसीपी: 30,968 एमएस

प्रेषित कुल डेटा राशि आईपी और टीसीपी दोनों के लिए समान थी। हमारे पास UDP संचार के साथ अतिरिक्त ओवरहेड है क्योंकि हमारे पास कुछ समान सामान हैं जो आपको टीसीपी / आईपी (चेकसम, अनुक्रम संख्या, आदि) के साथ "मुफ्त" के लिए मिलते हैं। उदाहरण के लिए, विरेशर ने दिखाया कि रिकॉर्ड के अगले सेट के लिए UDP के साथ 80 बाइट्स और TCP के साथ 84 बाइट्स थे।


क्या होगा यदि आप इसे केवल टीसीपी के लिए विकसित करें और 5x अधिक कोडिंग प्रयास के बजाय बेहतर हार्डवेयर खरीदें?
inf3rno

2
ठोस संख्या के लिए धन्यवाद! 5% सुधार उस जटिलता के लिए थोड़ा निराशाजनक है जो इसे जोड़ता है।
सर्गेई

1
शायद 5% इसलिए है क्योंकि एक स्थानीय नेटवर्क (दो उम्मीदें दूर) में भेजा जाता है? मेरा अनुमान है कि यह जितना दूर है, अंतर उतना ही अधिक है।
लेप

19

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

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

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

परिणाम यह है कि UDP कर सकते हैं:

  • टीसीपी की तुलना में उच्च थ्रूपुट प्राप्त करें जब तक कि नेटवर्क ड्रॉप दर सीमा के भीतर है जो एप्लिकेशन को संभाल सकता है।
  • कम देरी के साथ टीसीपी की तुलना में तेजी से पैकेट वितरित करें।
  • कनेक्शन को तेजी से सेट करें क्योंकि कनेक्शन को सेटअप करने के लिए कोई प्रारंभिक हैंडशेक नहीं है
  • मल्टीटास्ट पैकेट को ट्रांसमिट करें, जबकि टीसीपी को कई कनेक्शन का उपयोग करना होगा।
  • ट्रांसमिट निश्चित आकार के पैकेट, जबकि टीसीपी सेगमेंट में डेटा संचारित करता है। यदि आप 300 बाइट्स के यूडीपी पैकेट को स्थानांतरित करते हैं, तो आपको दूसरे छोर पर 300 बाइट्स प्राप्त होंगे। टीसीपी के साथ, आप भेजने वाले सॉकेट को 300 बाइट्स खिला सकते हैं, लेकिन रिसीवर केवल 100 बाइट्स पढ़ता है, और आपको किसी तरह यह पता लगाना होगा कि रास्ते में 200 और बाइट्स हैं। यह महत्वपूर्ण है यदि आपका एप्लिकेशन बाइट्स की एक धारा के बजाय निश्चित आकार के संदेश प्रसारित करता है।

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


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

सबसे पहले, महान जवाब के लिए धन्यवाद, मैंने वास्तव में इससे बहुत कुछ सीखा है! लेकिन मेरा एक प्रश्न है: परत 4 (टीसीपी और यूडीपी दोनों) से प्राप्त सभी पैकेटों के लिए ईथरनेट अडैप्टर सीमाओं के कारण लेयर 3 (आईपी) पर विभाजन नहीं होता है? क्या आपका मतलब किसी और तरह का विभाजन है जो टीसीपी में होता है लेकिन यूडीपी में नहीं होता है? अगर आप इसे मुझे समझा सकते हैं तो मैं वास्तव में सराहना करूँगा।
रुसलानश

1
@Freezy। आप सही हैं, पैकेट का विखंडन जो लिंक (MT 2) के MTU से अधिक है परत 3-IP पर होता है। हालाँकि, TCP एक स्ट्रीम आधारित प्रोटोकॉल है और यह डेटा को बाइट्स की एक धारा के रूप में मानता है। IP पैकेट के अंदर फिट होने के लिए TCP अपना डेटा सेगमेंट में भेजती है, जो MSS के अनुसार होता है, इसलिए TCP में भी विभाजन होता है। टीसीपी एक सेगमेंट में कितना डेटा डालता है, या आपका सॉकेट कितना डेटा पढ़ता है, हालांकि कई कारकों से भिन्न होता है; यह 1 बाइट या MSS बाइट्स हो सकता है। यूडीपी के साथ, रिसीवर को हमेशा भेजे गए ट्रांसमीटर को सटीक संख्या में बाइट्स मिलते हैं, अगर पैकेट खो नहीं जाता है।
एंडी

15

यूडीपी एक कनेक्शन-कम प्रोटोकॉल है और इसका उपयोग एसएनएमपी जैसे प्रोटोकॉल में किया जाता है और डीएनएस , जिसमें ऑर्डर से बाहर पहुंचने वाले डेटा पैकेट स्वीकार्य होते हैं और डेटा पैकेट मामलों का तत्काल प्रसारण होता है।

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

इसका उपयोग DNS में किया जाता है क्योंकि इसमें कनेक्शन स्थापना शामिल नहीं है, जिससे कनेक्शन स्थापना विलंब से बचा जा सकता है।

चियर्स


14

यूडीपी में कम ओवरहेड होता है और वास्तविक समय डेटा जैसे ऑडियो या वीडियो स्ट्रीमिंग या किसी भी मामले में जहां डेटा खो जाता है, तो यह ठीक है।


12

इस सवाल के लिए मुझे पता है कि सबसे अच्छा जवाब में से एक हैकर न्यूज में उपयोगकर्ता zAy0LfpBZLC8mAC से आता है । यह उत्तर इतना अच्छा है कि मैं इसे उद्धृत करने जा रहा हूं।

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

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

रीयलटाइम / कम विलंबता अनुप्रयोगों के अलावा, यूडीपी वास्तव में छोटे लेन-देन के लिए समझ में आता है, जैसे कि DNS लुकअप, बस इसलिए कि इसमें टीसीपी कनेक्शन स्थापना और फाड़ ओवरहेड नहीं है, दोनों विलंबता के संदर्भ में और बैंडविड्थ उपयोग के संदर्भ में। यदि आपका अनुरोध एक विशिष्ट MTU से छोटा है और रिप्सन संभवतः है, तो भी, आपको एक राउंडट्रिप में किया जा सकता है, जिसमें सर्वर पर किसी भी राज्य को रखने की कोई आवश्यकता नहीं है, और नियंत्रण नियंत्रण als ऑर्डरिंग और सभी संभवत: विशेष रूप से उपयोगी नहीं है। ऐसे उपयोगों के लिए भी।

और फिर, आप अपनी खुद की टीसीपी प्रतिस्थापन का निर्माण करने के लिए यूडीपी का उपयोग कर सकते हैं, लेकिन नेटवर्क डायनेमिक्स की कुछ गहरी समझ के बिना यह शायद अच्छा विचार नहीं है, आधुनिक टीसीपी एल्गोरिदम बहुत परिष्कृत हैं।

इसके अलावा, मुझे लगता है कि यह उल्लेख किया जाना चाहिए कि SCDP और DCCP जैसे UDP और TCP से अधिक है। वर्तमान में एकमात्र समस्या यह है कि (IPv4) इंटरनेट NAT गेटवे से भरा है, जो एंड-यूज़र अनुप्रयोगों में UDP और TCP के अलावा अन्य प्रोटोकॉल का उपयोग करना असंभव बनाता है।


आप UDP पर SCTP और DCCP चला सकते हैं।
डेमी

8

वीडियो स्ट्रीमिंग यूडीपी का उपयोग करने का एक आदर्श उदाहरण है।


कृपया कुछ उदाहरण प्रदान करें।
गौरव सिंह

"वीडियो स्ट्रीमिंग" इसका उदाहरण है। हॉटस्टार पर लाइव मैच पर विचार करें।
सिसिर

8

यूडीपी में ओवरहेड कम है, जैसा कि पहले ही कहा गया है कि वीडियो और ऑडियो जैसी चीजों को स्ट्रीमिंग करने के लिए अच्छा है, जहां सिर्फ एक पैकेट खोना बेहतर है, फिर से शुरू करने और पकड़ने की कोशिश करें।

टीसीपी डिलीवरी पर कोई गारंटी नहीं है, आपको बस यह बताया जाना चाहिए कि सॉकेट डिस्कनेक्ट हो गया है या मूल रूप से यदि डेटा नहीं आने वाला है। नहीं तो वहां पहुंचते ही वहां पहुंच जाता है।

एक बड़ी बात जो लोग भूल जाते हैं वह यह है कि udp पैकेट आधारित है, और tcp बायस्ट्रीम आधारित है, इस बात की कोई गारंटी नहीं है कि आपके द्वारा भेजा गया "tcp पैकेट" वह पैकेट है जो दूसरे छोर पर दिखाई देता है, इसे कई पैकेटों में विच्छेदित किया जा सकता है। रूटर्स और स्टैक की इच्छा के रूप में। तो आपके सॉफ़्टवेयर के पास अतिरिक्त बाइट्स को पार्सिंग बाइट्स में वापस डेटा के प्रयोग करने योग्य हिस्सा है, जो उचित मात्रा में ओवरहेड ले सकता है। यूडीपी क्रम से बाहर हो सकता है इसलिए आपको अपने पैकेटों को नंबर देना होगा या यदि आप ऐसा करने की परवाह करते हैं तो उन्हें फिर से ऑर्डर करने के लिए किसी अन्य तंत्र का उपयोग करना होगा। लेकिन अगर आपको वह udp पैकेट मिलता है तो यह उसी क्रम में सभी बाइट्स के साथ आता है, जैसा कि उसने छोड़ा था, कोई बदलाव नहीं हुआ। अतः udp पैकेट शब्द समझ में आता है लेकिन tcp पैकेट जरूरी नहीं है। टीसीपी का अपना री-ट्राई और ऑर्डरिंग मैकेनिज्म है जो आपके एप्लिकेशन से छिपा हुआ है,

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


TCP की डिलीवरी की गारंटी होती है: chunk A को chunk B से पहले एक एप्लिकेशन पर वितरित किया जाएगा, इसलिए यदि कोई एप्लिकेशन स्वीकार करता है (एक एप्लिकेशन स्तर पर) chunk B आपको पता है कि यह chunk ए है। लेकिन यह टीसीपी हैंडलिंग स्तर पर भी होता है।
शिमोन पिलग्रिम

टीसीपी में, प्रत्येक की लंबाई के साथ प्रत्येक चंक को उपसर्ग करके डेटा को सुरक्षित रूप से विखंडित किया जा सकता है। आवेदन के आधार पर, एक निश्चित बाइट, दो-बाइट, या चार-बाइट की लंबाई के साथ प्रत्येक चंक को उपसर्ग कर सकता है, या एक आकार के प्रत्येक ठोड़ी को 128 ^ N या N- बाइट की लंबाई के साथ कम कर सकता है। बिल्कुल नहीं एक बहुत बड़ा उपरि। ऐसा डिज़ाइन प्रोटोकॉल के साथ बुरा होगा जो बिना अंतराल के इन-ऑर्डर डिलीवरी की गारंटी नहीं देता है, लेकिन टीसीपी का उपयोग करते समय ऐसा डिज़ाइन ठीक है।
सुपरकैट

अगर डेटा की निश्चित लंबाई की तलाश में है, तो आपको उस लंबाई की भी जरूरत नहीं है, जैसे आप बाइट्स को गिनते हैं ...
old_timer

1
@supercat। तुम पूरी तरह ठीक हो। इसका मतलब यह भी है कि आप अपने आवेदन में जटिलता जोड़ रहे हैं; जटिलता जो वास्तव में यूडीपी में आवश्यक है। इस कारण से, टीसीपी स्ट्रीम के लिए बेहतर है, जैसे कि फाइलें। लेकिन मैं वही करता हूं जो आप तब करते हैं, जब मैं chunked डेटा की विश्वसनीयता चाहता हूं, और शायद शीर्ष टीसीपी पर TLS की अतिरिक्त सुरक्षा।
एंडी

5

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

गति का अत्यधिक महत्व है और यह वास्तव में कोई फर्क नहीं पड़ता कि अपडेट याद किए जाते हैं क्योंकि प्रत्येक अपडेट में खिलाड़ी की पूरी वर्तमान स्थिति शामिल होती है।


5
संपूर्ण स्थिति सामान्य नहीं है, लेकिन अंतिम पावती के बाद से एक डेल्टा, इसलिए अद्यतन उत्तरोत्तर बड़ा हो जाता है।
शिमोन पिलग्रिम

5

मुख्य सवाल "किस तरह की स्थितियों से संबंधित होगा। UDP बेहतर विकल्प होगा [tcp पर]"

ऊपर कई शानदार जवाब हैं लेकिन क्या कमी है, टीसीपी के प्रदर्शन पर परिवहन अनिश्चितता के प्रभाव का कोई औपचारिक, उद्देश्यपूर्ण मूल्यांकन है।

मोबाइल अनुप्रयोगों की बड़े पैमाने पर वृद्धि के साथ, और "कभी-कभार जुड़े" या "कभी-कभी काट दिए गए" प्रतिमान जो उनके साथ जाते हैं, निश्चित रूप से ऐसी परिस्थितियां हैं जहां कनेक्शन को बनाए रखने के लिए टीसीपी के प्रयासों का ओवरहेड जब कनेक्शन कठिन होता है तो मजबूत स्थिति की ओर जाता है यूडीपी और इसके "संदेश उन्मुख" प्रकृति के लिए मामला।

अब मेरे पास इस पर गणित / शोध / संख्या नहीं है, लेकिन मैंने ऐसे ऐप्स का उत्पादन किया है, जिन्होंने अधिक विश्वसनीय तरीके से काम किया है और एसीपी / एनएके और यूडीपी पर संदेश की संख्या टीसीपी के साथ प्राप्त की जा सकती है जब कनेक्टिविटी आमतौर पर खराब और खराब पुरानी टीसीपी थी। बस यह समय बिताया है और मेरे ग्राहक का पैसा सिर्फ कनेक्ट करने की कोशिश कर रहा है। यह आपको कई पश्चिमी देशों के क्षेत्रीय और ग्रामीण क्षेत्रों में मिलता है ...।


3

कुछ मामलों में, जिन्हें अन्य लोगों ने उजागर किया है, पैकेट के आने की गारंटी महत्वपूर्ण नहीं है, और इसलिए यूडीपी का उपयोग करना ठीक है। ऐसे अन्य मामले हैं जहां यूडीपी टीसीपी के लिए बेहतर है।

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


2

यूडीपी का उपयोग तब किया जा सकता है जब कोई ऐप सटीक डेटा प्रतिकृति के बजाय "रीयल-टाइम" डेटा की अधिक देखभाल करता है। उदाहरण के लिए, वीओआइपी यूडीपी का उपयोग कर सकता है और ऐप फिर से ऑर्डर करने वाले पैकेट के बारे में चिंता करेगा, लेकिन अंत में वीओआइपी को हर एक पैकेट की आवश्यकता नहीं है, लेकिन अधिक महत्वपूर्ण बात उनमें से कई के निरंतर प्रवाह की आवश्यकता है। हो सकता है कि आप यहां आवाज की गुणवत्ता में एक "गड़बड़" हैं, लेकिन मुख्य उद्देश्य यह है कि आपको संदेश मिलता है और यह नहीं कि यह दूसरी तरफ पूरी तरह से बनाया गया है। यूडीपी का उपयोग उन स्थितियों में भी किया जाता है जहां कनेक्शन बनाने और टीसीपी के साथ तालमेल का खर्च पेलोड को बढ़ा देता है। DNS क्वेश्चन एक आदर्श उदाहरण हैं। एक पैकेट बाहर, एक पैकेट वापस, प्रति क्वेरी। यदि टीसीपी का उपयोग किया जाता है तो यह अधिक गहन होगा। यदि आपको डीएनएस की प्रतिक्रिया वापस नहीं मिलती है, तो आप बस फिर से प्रयास करें।


2

UDP जब गति आवश्यक है और सटीकता यदि पैकेट नहीं है, और टीसीपी जब आपको सटीकता की आवश्यकता होती है।

यूडीपी अक्सर कठिन होता है कि आपको अपना कार्यक्रम इस तरह से लिखना चाहिए कि यह पैकेट की सटीकता पर निर्भर न हो।


2

यह हमेशा स्पष्ट कटौती नहीं है। हालांकि, यदि आपको बिना किसी नुकसान के और सही क्रम में पैकेटों की गारंटीकृत डिलीवरी की आवश्यकता है तो टीसीपी शायद वही है जो आप चाहते हैं।

दूसरी ओर यूडीपी सूचना के छोटे पैकेटों को प्रेषित करने के लिए उपयुक्त है जहाँ सूचना का क्रम कम महत्वपूर्ण है या जहाँ डेटा एक पैकेट में फिट हो सकता है।

जब आप एक ही जानकारी को कई उपयोगकर्ताओं के लिए प्रसारित करना चाहते हैं तो यह भी उचित है।

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

कुछ प्रोटोकॉल अधिक जटिल हैं क्योंकि टीसीपी की विशेषताओं में से कुछ (लेकिन सभी नहीं) की आवश्यकता है, लेकिन यूडीपी जो प्रदान करता है उससे अधिक है। यही वह जगह है जहां एप्लिकेशन की परत को अतिरिक्त कार्यक्षमता को लागू करना है। उन मामलों में, यूडीपी भी उपयुक्त है (उदाहरण के लिए इंटरनेट रेडियो, ऑर्डर महत्वपूर्ण है लेकिन हर पैकेट को प्राप्त करने की आवश्यकता नहीं है)।

कहां है / इसका उपयोग किया जा सकता है के उदाहरण 1) एक लैन पर मशीनों का एक गुच्छा के लिए सही समय प्रसारित करने वाला एक समय सर्वर। 2) वीओआइपी प्रोटोकॉल 3) डीएनएस लुकअप 4) लैन सेवाओं का अनुरोध करना जैसे आप कहां हैं? 5) इंटरनेट रेडियो 6) और कई अन्य ...

यूनिक्स पर आप आज लागू यूडीपी प्रोटोकॉल की एक सूची प्राप्त करने के लिए grep udp / etc / services टाइप कर सकते हैं ... सैकड़ों हैं।


2

स्टीवन के यूनिक्स नेटवर्क प्रोग्रामिंग के अनुभाग 22.4 पर देखें , "टीसीपी के बजाय यूडीपी का उपयोग कब करें"।

इसके अलावा, इस अन्य SO उत्तर को इस गलत धारणा के बारे में देखें कि UDP हमेशा TCP से अधिक तेज़ है

स्टीवन का कहना इस प्रकार है:

  • प्रसारण और मल्टीकास्ट के लिए यूडीपी का उपयोग करें क्योंकि यह आपका एकमात्र विकल्प है (किसी भी नए एप्लिकेशन के लिए मल्टीकास्ट का उपयोग करें)
  • आप साधारण अनुरोध / उत्तर एप्लिकेशन के लिए यूडीपी का उपयोग कर सकते हैं, लेकिन आपको अपने स्वयं के एंक, टाइमआउट और रिट्रीन्स में निर्माण करना होगा
  • बल्क डेटा ट्रांसफर के लिए UDP का उपयोग न करें।

1
उस अंतिम बिंदु पर थोड़ी और जानकारी, जो भी साथ आता है। टीसीपी बल्क डेटा ट्रांसफर के लिए काम करता है, लेकिन अगर आपको ध्यान नहीं है कि आपका डेटा स्टार्ट-टू-एंड ऑर्डर में आता है, तो आप यूडीपी पर एक प्रोटोकॉल लिख सकते हैं जो बहुत तेज़ हो सकता है - बहुत विशिष्ट पैथोलॉजिकल मामलों में बहुत तेज़। ऐसा नहीं है कि आप यूडीपी में बल्क ट्रांसफर नहीं कर सकते हैं, ऐसा नहीं है कि यह हमेशा खराब प्रदर्शन करने वाला होता है; इसे लागू करने के लिए गधे में सिर्फ इतना दर्द है कि यह परेशान करने लायक नहीं है।
16

1
हां, आप थोक हस्तांतरण के लिए यूडीपी का उपयोग कर सकते हैं, और आपको अपना नियंत्रण तंत्र लागू करना होगा। अगर गधे में दर्द है या नहीं, यह आपके प्रोग्रामिंग कौशल पर निर्भर करता है, लेकिन यह निश्चित रूप से हमेशा एक खराब प्रदर्शन नहीं है। आपको जानना होगा कि आप क्या कर रहे हैं; यदि आप नहीं तो हाँ, आप पीड़ित हो सकता है।
एंडी

2

हम जानते हैं कि यूडीपी एक कनेक्शन-कम प्रोटोकॉल है, इसलिए यह है

  1. प्रक्रिया के लिए उपयुक्त जिसे सरल अनुरोध-प्रतिक्रिया संचार की आवश्यकता होती है।
  2. आंतरिक प्रवाह, त्रुटि नियंत्रण की प्रक्रिया के लिए उपयुक्त है
  3. व्यापक कास्टिंग और मल्टीकास्टिंग के लिए उपयुक्त है

विशिष्ट उदाहरण:

  • एसएनएमपी में उपयोग किया जाता है
  • आरआईपी जैसे प्रोटोकॉल को अपडेट करने वाले कुछ मार्ग के लिए उपयोग किया जाता है

2

यूडीपी के साथ टीसीपी की तुलना, यूडीपी जैसे कनेक्शन-कम प्रोटोकॉल गति को आश्वस्त करते हैं, लेकिन पैकेट ट्रांसमिशन की विश्वसनीयता नहीं। उदाहरण के लिए वीडियो गेम में आमतौर पर एक विश्वसनीय नेटवर्क की आवश्यकता नहीं होती है, लेकिन गति सबसे महत्वपूर्ण होती है और गेम के लिए यूडीपी का उपयोग करने से नेटवर्क देरी को कम करने का लाभ मिलता है।

यहां छवि विवरण दर्ज करें


1

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


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

1

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


0

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

केवल एक मामला मैं सोच सकता हूं कि प्रसारण प्रोटोकॉल के लिए यूडीपी की आवश्यकता कहां है। उन मामलों में जहां एक एप्लिकेशन में दो, ज्ञात होस्ट शामिल हैं, यूडीपी की संभावना केवल कोड जटिलता की पर्याप्त वृद्धि हुई लागत के लिए सीमांत प्रदर्शन लाभ प्रदान करेगी।


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

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

ओह अनुकूलन के मोर्चे पर सहमत हैं। लेकिन जब टीसीपी की समस्या हो सकती है तो ज्ञान कुछ और मदद करता है जब आपकी कोशिश उस प्रदर्शन समस्या को हल करने की होती है।
शिमोन पिलग्रिम

-1

केवल यूडीपी का उपयोग करें यदि आप वास्तव में जानते हैं कि आप क्या कर रहे हैं। यूडीपी आज बहुत दुर्लभ मामलों में है, लेकिन (यहां तक ​​कि बहुत अनुभवी) विशेषज्ञों की संख्या जो इसे हर जगह छड़ी करने की कोशिश करेंगे, अनुपात से बाहर लगता है। शायद वे स्वयं त्रुटि-हैंडलिंग और कनेक्शन रखरखाव कोड लागू करने का आनंद लेते हैं।

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


2
UDP चेकसम ऑफलोड टीसीपी चेकसम ऑफलोड की तरह ही उपलब्ध है।
बेन वोइग्ट

लेकिन चेकसम सत्यापन नहीं।
पावेल रेडविलविलोव्स्की

1
यहां तक ​​कि उपभोक्ता-ग्रेड ईथरनेट एडेप्टर आज भी प्रेषित और प्राप्त दोनों के लिए यूडीपी चेकसम ऑफलोड है (प्राप्त ऑफ लोड सत्यापन कर रहा है)। और मैंने एक दशक पहले प्रॉसिक्यूमर हार्डवेयर में उस फीचर को देखा था, मुझे यकीन है कि यह सर्वर-क्लास एनआईसी में भी लंबे समय तक रहा है।
बेन Voigt

-2

UDP वीओआईपी के लिए एकदम सही है जहाँ डेटा पैकेट को उसकी विश्वसनीयता के संबंध में कम भेजा जाना है ... वीडियो चैटिंग UDP का एक उदाहरण है (आप इसे किसी भी वीडियो चैटिंग के दौरान वायरशर्क नेटवर्क पर कब्जा करके देख सकते हैं) .. इसके अलावा TCP के साथ काम नहीं करता है DNS और SNMP प्रोटोकॉल। UDP के पास कोई ओवरहेड नहीं है जबकि TCP में बहुत अधिक ओवरहेड है

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.