networking आरटीपी टीसीपी के बजाय यूडीपी का उपयोग क्यों करता है?




udp protocols (8)

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


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


अन्य सभी अच्छे और सही उत्तरों के अलावा यह आलेख टीसीपी और यूडीपी के बीच अंतरों के बारे में अच्छी समझ देता है।


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

rtpchecksums=yes ; or no if you prefer

चीयर्स!


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

आरएफसी 4588 वर्णन करता है कि आरटीपी डेटा के साथ रीट्रांसमिशन का उपयोग कैसे किया जा सकता है। अधिकांश ग्राहक जो आरटीपी धाराएं प्राप्त करते हैं, वे नेटवर्क में जिटर के लिए एक बफर को नियोजित करते हैं जो आम तौर पर 1-5 सेकंड लंबा होता है और जिसका मतलब है कि वांछित डेटा प्राप्त करने के लिए पुनः प्रेषण के लिए समय उपलब्ध है।

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


आरटीपी पैकेट नुकसान के लिए काफी असंवेदनशील है, इसलिए इसे टीसीपी की विश्वसनीयता की आवश्यकता नहीं है।

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

यूडीपी तेजी से डेटा ट्रांसमिशन भी प्रदान करता है।

इसलिए यूडीपी इस तरह के मामलों में स्पष्ट पसंद है।


बहुत सारे अच्छे उत्तर दिए गए हैं, लेकिन मैं एक चीज को स्पष्ट रूप से इंगित करना चाहता हूं:

असल में एक पूर्ण डेटा स्ट्रीम वास्तविक समय ऑडियो / वीडियो के लिए एक अच्छी बात है, लेकिन यह कड़ाई से जरूरी नहीं है (जैसा कि अन्य ने इंगित किया है):

महत्वपूर्ण तथ्य यह है कि कुछ डेटा जो बहुत देर से आता है वह बेकार है। एक फ्रेम के लिए गायब डेटा कितना अच्छा है जो एक दूसरे पहले प्रदर्शित किया जाना चाहिए था?

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

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

(*) वास्तव में मैं आरटीपी के विनिर्देशों को नहीं जानता। हो सकता है कि यह पुनः प्रेषण करने का प्रयास करता है, लेकिन यदि ऐसा होता है तो यह टीसीपी के रूप में आक्रामक नहीं होगा (जो कभी भी खोए गए डेटा को स्वीकार नहीं करेगा)।


जहां भी डेटा भेजता है, यूडीपी का उपयोग किया जाता है, जिसे लक्ष्य पर बिल्कुल प्राप्त करने की आवश्यकता नहीं होती है, या जहां कोई स्थिर कनेक्शन की आवश्यकता नहीं होती है।

टीसीपी का उपयोग तब किया जाता है जब डेटा को बिल्कुल प्राप्त किया जाना चाहिए, थोड़ा सा बिट, बिट्स का कोई नुकसान नहीं।

वीडियो और ध्वनि स्ट्रीमिंग के लिए, रास्ते में खोए गए कुछ बिट्स परिणाम को किसी भी तरह से प्रभावित नहीं करते हैं, यह उल्लेखनीय है कि कुछ पिक्सल स्ट्रीम की तस्वीर में विफल हो रहे हैं, कुछ भी जो उपयोगकर्ता को प्रभावित नहीं करता है, डीवीडी पर खोई गई बिट दर है अधिक है।


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





rtp