1 पॉइंट द्वारा GN⁺ 2024-06-25 | 1 टिप्पणियां | WhatsApp पर शेयर करें

कभी भी datagram का उपयोग न करें।

TCP vs UDP

  • इंटरनेट application विकसित करते समय TCP और UDP में से एक चुनना पड़ता है।
  • TCP: विश्वसनीय data transfer की गारंटी देता है।
  • UDP: अविश्वसनीय data transfer प्रदान करता है।
  • अविश्वसनीय transfer की ज़रूरत बहुत कम होती है।

गुण

  • software engineering कई परतों वाली abstraction पर खड़ी है।
  • हर परत कुछ विशेष गुण देती है, ताकि developer को सब कुछ शुरू से दोबारा न बनाना पड़े।
  • developer को तय करना होता है कि किस परत का उपयोग करना है।

"अविश्वसनीय"

  • real-time video protocol डिज़ाइन करने वाली एक बैठक में यह राय थी कि SUBSCRIBE को अविश्वसनीय होना चाहिए।
  • असल में ज़रूरत timeliness की है।
  • real-time video में सबसे नया data प्राथमिकता से पहुँचाना महत्वपूर्ण है।

Datagram

  • datagram (IP packet) डेटा की वह इकाई है जो source address से destination address तक भेजी जाती है।
  • datagram खो सकते हैं या उनका क्रम बदल सकता है।
  • datagram का उपयोग करने का कारण यह है कि network congestion के समय packet drop करना बेहतर विकल्प हो सकता है।

इंटरनेट की queue

  • network congestion होने पर packet drop करना सामान्य बात है।
  • packet को queue में डालकर बाद में भेजना bufferbloat समस्या पैदा कर सकता है।
  • bufferbloat में सभी packet queue में जमा हो जाते हैं और timeliness को नुकसान पहुँचता है।

आप, application developer

  • अगर आप सीधे UDP का उपयोग करते हैं, तो कई समस्याओं का सामना करना पड़ सकता है।
  • UDP के ऊपर अपना transport protocol बनाने के लिए retransmission, congestion control आदि लागू करने पड़ते हैं।
  • QUIC library का उपयोग करना बेहतर विकल्प है।

Timeliness

  • timeliness हासिल करने के लिए QUIC का उपयोग किया जा सकता है।
    1. buffer खाली करना: congestion control के ज़रिए queue का पता लगाकर transmission rate कम किया जाता है।
    2. data को stream में बाँटना: हर stream स्वतंत्र रूप से भेजी जाती है।
    3. stream priority तय करना: महत्वपूर्ण stream को प्राथमिकता से भेजा जाता है।

Datagram का बचाव

  • QUIC और MoQ datagram को support करते हैं।
  • datagram support प्रयोगों की अनुमति देने के लिए महत्वपूर्ण है।
  • लेकिन datagram का उपयोग एक जाल साबित हो सकता है।

निष्कर्ष

  • application को datagram के ऊपर डिज़ाइन नहीं करना चाहिए।
  • UDP के ऊपर एक और video protocol बनाने के बजाय, Media over QUIC में भाग लेना बेहतर है।

GN⁺ की राय

  1. timeliness का महत्व: real-time application में data की समय पर उपलब्धता बहुत महत्वपूर्ण है। TCP की तुलना में UDP अधिक उपयुक्त हो सकता है, लेकिन congestion control जैसी अतिरिक्त बातों पर ध्यान देना पड़ता है।
  2. QUIC के फायदे: QUIC, UDP की कमियों की भरपाई करते हुए उच्च performance देता है। खासकर real-time video streaming के लिए यह उपयुक्त है।
  3. bufferbloat समस्या: network congestion के समय packet को queue में जमा करना timeliness को नुकसान पहुँचा सकता है। इससे बचने के लिए congestion control ज़रूरी है।
  4. datagram की सीमाएँ: datagram real-time transmission के लिए उपयुक्त हैं, लेकिन जब reliability और ordering की गारंटी चाहिए, तब QUIC जैसे protocol बेहतर विकल्प होते हैं।
  5. तकनीक चुनने का महत्व: application की ज़रूरतों के अनुसार सही transport protocol चुनना बहुत महत्वपूर्ण है। गलत चुनाव performance में गिरावट और user experience के खराब होने का कारण बन सकता है।

1 टिप्पणियां

 
GN⁺ 2024-06-25
Hacker News की राय
  • TCP की समस्याएँ: TCP में high-bandwidth, low-latency वाले माहौल में कई समस्याएँ हैं। low-bandwidth, high-latency नेटवर्क में भी यह अक्षम है.
  • UDP के उपयोग के मामले: high-frequency sensor data streaming के लिए UDP का उपयोग हो रहा है, और QUIC के जरिए समस्याएँ हल करने के उदाहरण भी हैं.
  • UDP की शब्दावली: UDP को "unreliable" कहने के बजाय "best effort" कहना अधिक उपयुक्त है.
  • stream abstraction की समस्या: stream abstraction प्रोग्राम को अधिक नाज़ुक बनाती है, और connection टूटने पर recovery धीमी होती है। datagram-आधारित approach अधिक प्रभावी हो सकती है.
  • UDP packet drop: नेटवर्क congestion के समय UDP packets पहले drop होते हैं। QUIC की retransmission समस्या का भी उल्लेख है.
  • clickbait शीर्षक: Hacker News की guideline का पालन करने की कोशिश कि लेख का शीर्षक मूल स्रोत से लिया जाना चाहिए.
  • TCP और UDP का अंतर: TCP reliability देता है, जबकि UDP speed और efficiency देता है। हर protocol की विशेषताओं को समझकर उसका उपयोग करना चाहिए.
  • datagram-आधारित उपयोग के मामले: local discovery, broadcast, packet encapsulation आदि में datagram का उपयोग उपयुक्त है.
  • datagram उपयोग की सिफारिश: session-आधारित connection सामान्य हैं, लेकिन datagram का उपयोग भी उपयोगी है। यह networking के low-level पहलुओं को सीखने का अच्छा अवसर है.