भारित निष्पक्ष कतार और भारित यादृच्छिक प्रारंभिक जांच कैसे संबंधित हैं?


10

मैं यह समझने की कोशिश कर रहा हूं कि QoS सिस्टम कैसे काम करता है और मुझे यकीन नहीं है कि वास्तव में WFQ और WRED बातचीत कैसे होगी।

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

तब मैंने और जानना चाहा कि उन्होंने कैसे काम किया और इंटरनेट पर खोज शुरू की। नतीजतन, अब मुझे नहीं पता कि वे क्या हैं और कैसे काम करते हैं।

कुछ साइटें (कम से कम सामग्री के बारे में मेरी समझ) का दावा है कि पैकेट शेड्यूलिंग एल्गोरिदम और भीड़ से बचने के एल्गोरिदम मूल रूप से समान हैं। इस विकिपीडिया लेख में उदाहरण के लिए , वे सभी एक ही समूह में रखे गए हैं। कुछ यादृच्छिक लेखों में उल्लेख किया गया है कि मैं WFQ XOR WRED का उपयोग कर सकता हूं।

तो मैं पूछना चाहता था कि WFQ और WRED कैसे संबंधित हैं? मैं एक या दूसरे का उपयोग कब करूंगा और दोनों कब, यदि यह संभव है?


1
WFQ और wred एक दूसरे के परे एक ही अंग्रेजी शब्द का प्रयोग साझा करने के साथ कोई संबंध नहीं है
माइक पेनिंगटन

1
"तब मैं और अधिक जानना चाहता था कि उन्होंने कैसे काम किया और इंटरनेट पर खोज शुरू की। नतीजतन, अब मुझे नहीं पता कि वे क्या हैं और कैसे काम करते हैं।" यह मेरे अनुभव का 99.98% QoS को समझने की कोशिश करता है।
जिम

जवाबों:


10

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

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

यह काफी आम है कि एक ग्राहक इंटरनेट सेवा प्रदाता (ISP) से सबरेट में एक सेवा खरीदता है। यही है, ग्राहक 50 Mbit / s सेवा खरीदता है लेकिन भौतिक इंटरफ़ेस 100 Mbit / s पर चल रहा है। इस मामले में कोई भीड़ नहीं होगी, लेकिन आईएसपी ग्राहक से यातायात की मात्रा को सीमित करेगा। इन मामलों में कृत्रिम भीड़ का परिचय देने के लिए एक शेपर लगाया जा सकता है।

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

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

टीसीपी सिंक्रोनाइज़ेशन

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

WFQ और WRED दोनों को एक साथ तैनात किया जा सकता है और होना चाहिए।


2
हाय डैनियल, अच्छा जवाब। WFQ नहीं होना चाहिए (WQF नहीं)? इसके अलावा, यह उल्लेखनीय है कि WRED UDP के खिलाफ प्रभावी नहीं है और आपको UDP आधारित कक्षाओं जैसे UDP Voice
माइक पेनिंगटन

धन्यवाद माइक। मुझे यकीन नहीं है कि मैंने WFQ को गलत क्यों माना, मैंने इसे संपादित किया है। UDP पर एक त्वरित टिप्पणी भी की। आप हमेशा महान पद प्रदान करते हैं।
डैनियल डिब

8

सबसे पहले, विश्वास मत करो सब कुछ आप इंटरनेट पर पढ़ते हैं ;-)

कभी-कभी एल्गोरिदम (या जिस तरह से वे शारीरिक रूप से कार्यान्वित होते हैं) एक सैद्धांतिक श्रेणी में बड़े करीने से फिट नहीं होते हैं। जिसे आप कहते हैं वह समझने से कम महत्वपूर्ण नहीं है कि वह क्या करता है।

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

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

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

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

एक और अंतर: सभी प्रकार के यातायात पर एफक्यू और डब्ल्यूएफक्यू काम करते हैं, क्योंकि वे अनिवार्य रूप से बाइट्स की गणना करते हैं। RED और WRED केवल टीसीपी के साथ काम करते हैं, क्योंकि वे टीसीपी के प्रवाह नियंत्रण तंत्र पर निर्भर करते हैं ताकि ट्रैफ़िक धीमा हो और कतार को ओवरफ़्लो होने से बचाया जा सके।

(नोट: स्पष्टीकरण के लिए, मैं प्राथमिकता कतारों और LLQ की उपेक्षा कर रहा हूं। यह एक और उत्तर है)।

मैं माइक द्वारा कही गई हर बात से सहमत हूं।


1
बहुत बढ़िया जवाब और कमेंट्री।
generalnetworkerror

-1

यहाँ CBWFQ और WRED का एक उदाहरण दिया गया है:

पॉलिसी-मैप OUT

कक्षा आवाज
प्राथमिकता प्रतिशत 20

कक्षा वीडियो
बैंडविड्थ प्रतिशत 30

कक्षा P1
बैंडविड्थ प्रतिशत 10
यादृच्छिक-पता लगाने के dscp- आधारित
यादृच्छिक-पता dscp af31 26 40 10

वर्ग P2
बैंडविड्थ प्रतिशत 15
यादृच्छिक-पता लगाने के dscp- आधारित
यादृच्छिक-पता dscp af21 24 40 10

क्लास क्लास-डिफॉल्ट
फेयर-क्यू
रैंडम-डिटेक्ट dscp- बेस्ड


दुख की बात है कि यह उदाहरण उनके सवाल का जवाब नहीं देता है। जब वही नहीं है
माइक पेनिंगटन

परिप्रेक्ष्य के लिए, यह एक रेस कार ड्राइवर से पूछने जैसा है कि टर्बोचार्जर और गियर अनुपात कैसे संबंधित हैं, और उसे एक शब्द कहे बिना आपको एक रेसट्रैक के आसपास ड्राइव करना है। यदि आप पहले से ही बातचीत (और / या उसके अभाव) को समझते हैं, तो यह ठीक है ... लेकिन तब आपने सवाल नहीं पूछा होगा।
नानबान जिम
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.