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




udp protocols (7)

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


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


अन्य सही हैं, हालांकि वास्तव में आपको वास्तविक कारण क्यों नहीं बताते हैं। सॉआ इस तरह के संकेत, लेकिन यहां एक और पूरा जवाब है।

ऑडियो और वीडियो वास्तविक समय है। यदि आप रेडियो सुन रहे हैं, या टीवी देख रहे हैं, और सिग्नल बाधित है, तो यह उस स्थान को नहीं लेता है जहां आपने छोड़ा था .. आप सिग्नल के रूप में सिग्नल को "देख रहे हैं", और यदि आप देख नहीं सकते यह किसी भी समय पर, आप इसे खो देते हैं।

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

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

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

आरटीपी कनेक्शन उन्मुख हो सकता है, लेकिन फिर इसे रीट्रान्समिशन त्रुटियों को बनाए रखने के लिए डेटा को छोड़ना (या छोड़ना) होगा, तो अतिरिक्त ओवरहेड से परेशान क्यों हो?


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

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

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


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

यूडीपी संचार की विश्वसनीयता की परवाह नहीं करता है, और डेटा धीमा या फिर से संचारित नहीं करेगा।

यदि आपके एप्लिकेशन को एक विश्वसनीय डेटा स्ट्रीम की आवश्यकता है, उदाहरण के लिए, वेबसर्वर से फ़ाइल पुनर्प्राप्त करने के लिए, आप टीसीपी चुनते हैं।

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

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


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

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

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

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

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

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


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

rtpchecksums=yes ; or no if you prefer

चीयर्स!


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





rtp