Congestion Control (कंजेस्शन कण्ट्रोल क्या है )?

0
79
Congestion
Congestion

Congestion Control In Computer Network -(कंप्यूटर नेटवर्क में कंजेशन कंट्रोल)-

Congestion Control In Computer Networkनेटवर्क में होने वाली एक स्थिति जब संदेश ट्रैफ़िक इतना भारी होता है कि यह नेटवर्क प्रतिक्रिया समय को धीमा कर देता है।भीड़भाड़ के प्रभाव भीड़(Congestion) नियंत्रण एक ऐसी विधि है जिसका उपयोग नेटवर्क में प्रवेश करने वाले डेटा की कुल मात्रा को विनियमित करने की प्रक्रिया की निगरानी के लिए किया जाता है ताकि यातायात के स्तर को स्वीकार्य मूल्य पर रखा जा सके।ऐसा इसलिए किया जाता है ताकि दूरसंचार नेटवर्क(Congestion) कंजेशन पतन कहे जाने वाले स्थान तक न पहुंच सके।

कंजेशन(Congestion) नियंत्रण ज्यादातर पैकेट-स्विचिंग नेटवर्क पर लागू होता है।दृष्टिकोण की एक विस्तृत विविधता प्रस्तावित की गई है, हालांकि, “उद्देश्य नेटवर्क के भीतर पैकेट की संख्या को उस स्तर से नीचे बनाए रखना है जिस पर प्रदर्शन नाटकीय रूप से गिर जाता है।”

1-ट्रांसमिशन कंट्रोल प्रोटोकॉल(Transmission Control Protocol )
2-डेटाग्राम प्रोटेकॉलका उपयोग करें(User Datagram Protocol )

tcp (टीसीपी) में कई भीड़ नियंत्रण एल्गोरिदम रणनीतियों का उपयोग किया जाता है:

1-slow start (धीमी शुरुआत)
2-exponential backoff (घातीय बैकऑफ़)

1-जैसे-जैसे देरी बढ़ती है, प्रदर्शन कम होता जाता है।

2-यदि विलंब बढ़ता है, तो पुन: संचरण होता है, जिससे स्थिति और खराब हो जाती है।

Congestion control algorithms (भीड़ नियंत्रण एल्गोरिदम)-

1-लीक बकेट एल्गोरिथम-(Leaky Bucket Algorithm )

आइए समझने के लिए एक उदाहरण पर विचार करें

congestion
congestion

एक बाल्टी की कल्पना करें जिसके तल में एक छोटा सा छेद है।पानी बाल्टी में किस दर से प्रवेश करता है,बहिर्वाह स्थिर दर पर होता है।जब बाल्टी पानी से भर जाती है तो अतिरिक्त पानी किनारों पर फैल जाता है और खो जाता है।

लीकी बकेट(Leaky Bucket)

1-इसी तरह, प्रत्येक नेटवर्क इंटरफ़ेस में एक टपका हुआ बकेट होता है और लीकी बकेट एल्गोरिथम में निम्नलिखित चरण शामिल होते हैं।जब होस्ट पैकेट भेजना चाहता है, पैकेट को बाल्टी में फेंक दिया जाता है।
2-बाल्टी एक स्थिर दर पर लीक होती है, जिसका अर्थ है कि नेटवर्क इंटरफ़ेस पैकेट को स्थिर दर पर प्रसारित करता है।
3-टपकती बाल्टी द्वारा फटे हुए यातायात को एक समान यातायात में बदल दिया जाता है।
4-व्यवहार में बाल्टी एक परिमित कतार है जो एक परिमित दर पर आउटपुट करती है।

टोकन बकेट एल्गोरिथम(Token bucket Algorithm)

टोकन बकेट एल्गोरिथम की आवश्यकता:-

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

Ways in which token bucket is superior to leaky bucket(जिस तरीके से टोकन बाल्टी टपकी हुई बाल्टी से बेहतर है)

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

Formula: M * s = C + ρ * s

where S – is time taken
M – Maximum output rate
ρ – Token arrival rate
C – Capacity of the token bucket in byte

Congestion-Avoidance Algorithms (भीड़-बचाव एल्गोरिदम)

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

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

चूंकि संपूर्ण इंटरनेट की रीढ़ लेयर 4 ट्रांसमिशन कंट्रोल प्रोटोकॉल पर आधारित है, इसलिए यह लेख टीसीपी के दृष्टिकोण से अवधारणाओं और एल्गोरिदम को कवर करेगा।
मैक्सिमम ट्रांसमिशन यूनिट (एमटीयू): हेडर सहित पेलोड का अधिकतम आकार जिसे एक पैकेट में भेजा जा सकता है। यह डेटा लिंक परत की एक संपत्ति है। एमएसएस से अंतर यह है कि यदि कोई पैकेट एमटीयू से अधिक है, तो यह लिंक के एमएसएस का पालन करते हुए कई हिस्सों में टूट जाता है।हालाँकि, यदि कोई पैकेट MSS से अधिक है, तो उसे पूरी तरह से हटा दिया जाता है।

Cwnd (कंजेशन विंडो): किसी भी समय अनजाने पैकेट (MSS) की संख्या जो ट्रांज़िट में हो सकती है। कंजेशन विंडो बढ़ती है, घटती है या बनी रहती है, यह इस बात पर निर्भर करता है कि कितने शुरुआती पैकेट स्वीकार किए गए थे और ऐसा करने में कितना समय लगा।

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

अब, देखते हैं कि टीसीपी कैसे काम करता है और भीड़-बचाव तंत्र कैसे शुरू होता है।

TCP Connection Lifecycle

जब कोई कनेक्शन स्थापित हो जाता है,तो प्रेषक तुरंत नेटवर्क पर हावी नहीं होता है; इसके बजाय,यह धीमी गति से शुरू होता है और फिर नेटवर्क बैंडविड्थ के अनुसार समायोजित होता है।

टीसीपी में, भीड़-भाड़ से बचाव तंत्र तब शुरू होता है जब नेटवर्क नुकसान का पता लगाता है क्योंकि टीसीपी हर नुकसान को भीड़ के कारण एक घटना के रूप में मानता है। ऐसे दो तरीके हैं जिनसे टीसीपी मानता है कि पैकेट खो रहे हैं:

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

नीचे, हम ऐसे दो तंत्रों पर चर्चा करेंगे: योगात्मक वृद्धि गुणक कमी और धीमी शुरुआत।

Additive Increase Multiplicative Decrease (AIMD)-

इस दृष्टिकोण में, प्रेषक प्रत्येक सफल ACK (अतिरिक्त वृद्धि) पर cwnd को 1 MSS तक बढ़ाते हैं।हानि का पता चलने पर, cwnd को आधा (गुणात्मक कमी) में काट दिया जाता है। यह cwnd में एक दांतेदार व्यवहार दिखाता है।

Slow start

इसके नाम के विपरीत, यह एल्गोरिथम initcwnd से शुरू होकर 1 पर सेट होता है और प्रत्येक सफल ACK के बाद cwnd को तब तक दोगुना करता है जब तक कि यह ssthresh (स्लो स्टार्ट थ्रेशोल्ड) तक नहीं पहुंच जाता,जिसके बाद यह cwnd को प्रत्येक ACK पर 1 MSS द्वारा रैखिक रूप से बढ़ाता है।

जब नुकसान का पता चलता है,तो उस समय ssthresh cwnd के आधे हिस्से पर सेट हो जाता है, और cwnd कम हो जाता है।(एल्गोरिदम में cwnd को कम करने के विभिन्न तरीके हो सकते हैं,जैसा कि हम अगले भाग में देखेंगे।)

Examples of Congestion-Avoidance Algorithms (भीड़भाड़-परिहार एल्गोरिदम के उदाहरण)-

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

TCP Tahoe –

यह स्लो स्टार्ट मैकेनिज्म पर आधारित एक एल्गोरिथम है। यह धीमी शुरुआत के चरण में शुरू होता है जहां cwnd ssthresh (Slow Start threshold ) मान तक पहुंचने तक कुण्ड(Congestion Window ) तेजी से बढ़ता है, जिसके बाद cwnd रैखिक रूप से बढ़ता है।जब पैकेट हानि का पता चलता है, तो ताहो cwnd (Congestion Window) को घटाकर 1 कर देता है और ssthresh को वर्तमान cwnd का आधा कर देता है।ताहो उसी भीड़-भाड़ से बचने के चरण का अनुसरण करता है,भले ही नुकसान टाइमआउट के कारण या डुप्लिकेट पावती के कारण हो।

TCP Reno

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

TCP Westwood+

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

CUBIC –

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

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

cwnd = C*(t-K)^3 + W_max

K = cubic_root(W_max*(1-beta_cubic)/C)

Where:

Beta_cubic is the multiplicative decrease factor.
W_max is the window size just before the last reduction.
T is the time elapsed since the last window reduction.
C is a scaling constant.
Cwnd is the congestion window at the current time.

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

Bottleneck Bandwidth and Round-Trip Propagation Time (BRR)-

यह भीड़-भाड़ से बचाव एल्गोरिथ्म Google पर विकसित किया गया था और टीसीपी(TCP) प्रदर्शन को 14% तक बढ़ाने का दावा करता है। नुकसान-आधारित एल्गोरिदम के विपरीत, जिसे हमने अब तक कवर किया है, बीआरआर मॉडल-आधारित है। यह नियम-आधारित दृष्टिकोण का उपयोग करने के बजाय संचरण दर को समायोजित करने के लिए नेटवर्क का एक मॉडल बनाता है।मॉडल को अधिकतम बैंडविड्थ और राउंड-ट्रिप समय के साथ बनाया गया है,जिस समय सबसे हालिया डेटा पैकेट दिया जाता है।

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

YouTube द्वारा उपयोग किए जाने पर, ट्रैफ़िक में 4% की औसत गति में वृद्धि देखी गई। BRR Google क्लाउड प्लेटफ़ॉर्म में भी उपलब्ध है।
वर्तमान में, BRR के दो संस्करण उपलब्ध हैं, v1 और v2। BRRv1 को गैर-BRR डेटास्ट्रीम के लिए अनुचित माना जाता है, इसलिए BRRv2 मॉडल में पैकेट हानि के बारे में जानकारी जोड़कर अनुचितता के मुद्दे से निपटता है।

Current State of CAA in Linux Kernels –

2009 तक, उच्च-बैंडविड्थ, कम-विलंबता और हानिपूर्ण कनेक्शन का मिश्रण बहुत आम नहीं था, इसलिए उस युग के सीएए एल्गोरिदम आज के उच्च-विलंबता और हानिपूर्ण मोबाइल कनेक्शन के लिए उपयुक्त नहीं हैं। हालांकि, अधिकांश लिनक्स बॉक्स आज 2009 से पहले (2.6.32.x) से कर्नेल संस्करण चला रहे हैं और इस प्रकार केवल पुराने सीएए एल्गोरिदम से लैस हैं।

लेकिन कर्नेल संस्करण 2.6.38 में, initcwnd का डिफ़ॉल्ट मान 3 से 10 तक बढ़ गया था, जिससे आप प्रारंभिक राउंड ट्रिप (5.7 KB के विपरीत 14.2 KB) में अधिक डेटा भेज/प्राप्त कर सकते हैं और आपको प्रोटोकॉल डालने के लिए अधिक स्थान दे सकते हैं। शीर्षलेखइस बीच, कर्नेल संस्करण 3.2 ने आनुपातिक दर में कमी (PRR) एल्गोरिथ्म को लागू किया, जिसके परिणामस्वरूप हानिपूर्ण कनेक्शन के लिए पुनर्प्राप्ति समय में कमी आई। इसका 3-10% के HTTP प्रतिक्रिया समय पर सकारात्मक प्रभाव पड़ा। इस संस्करण ने इनिशियल रिट्रांसमिशन टाइमआउट (initRTO) को 3s से 1s में भी बदल दिया।
जिसके परिणामस्वरूप initcwnd भेजने के बाद पैकेट की हानि होने पर 2s की बचत हुई।कर्नेल संस्करण के बावजूद, नेटवर्क प्रदर्शन में महत्वपूर्ण सुधार प्राप्त करने के लिए tcp_slow_start_after_idle सेटिंग को बदला जाना चाहिए। बॉक्स से बाहर, मान 1 है, जो निष्क्रिय कनेक्शन पर भीड़भाड़ विंडो को कम करता है, बदले में एसएसएल जैसे लंबे समय तक चलने वाले कनेक्शन को प्रभावित करता है।
निम्न आदेश इसे 0 पर सेट करेगा और प्रदर्शन में उल्लेखनीय सुधार करेगा-
sysctl -w tcp_slow_start_after_idle=०

Conclusion

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

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

आप इसे पढ़ना भी पसंद कर सकते हैं:-IRCTC Charges (आईआरसीटीसी कैंसलेशन शुल्क)-

LEAVE A REPLY

Please enter your comment!
Please enter your name here