नेटवर्क अनुसूचक
एक नेटवर्किंग शेड्यूलर, जिसे पैकेट शेड्यूलर, क्यूइंग डिसिप्लिन (क्यूडिस्क) या क्यूइंग एल्गोरिथम भी कहा जाता है, पैकेट-स्विचिंग संचार नेटवर्क में नोड पर एक मध्यस्थ है। यह प्रोटोकॉल स्टैक और नेटवर्क इंटरफेस कंट्रोलर के ट्रांसमिट और रिसीव क्यू में नेटवर्क पैकेट के अनुक्रम का प्रबंधन करता है। विभिन्न ऑपरेटिंग सिस्टम के लिए कई नेटवर्क शेड्यूलर उपलब्ध हैं, जो कि मौजूदा नेटवर्क शेड्यूलिंग एल्गोरिदम को लागू करते हैं।
नेटवर्क अनुसूचक तर्क यह तय करता है कि किस नेटवर्क पैकेट को आगे भेजना है। नेटवर्क अनुसूचक एक कतारबद्ध प्रणाली से जुड़ा होता है, जो नेटवर्क पैकेट को अस्थायी रूप से तब तक संग्रहीत करता है जब तक कि वे प्रसारित नहीं हो जाते। सिस्टम में एक या कई कतारें हो सकती हैं, इस मामले में प्रत्येक एक प्रवाह, वर्गीकरण, या प्राथमिकता के पैकेट रख सकता है।
कुछ स्तिथियों में, सिस्टम की बाधाओं के भीतर सभी ट्रांसमिशन शेड्यूल करना संभव नहीं हो सकता है। इन मामलों में, नेटवर्क शेड्यूलर यह तय करने के लिए ज़िम्मेदार होता है कि किस ट्रैफ़िक को आगे बढ़ाया जाए और किसे ड्रॉप किया जाए।
शब्दावली और जिम्मेदारियां
एक नेटवर्क शेड्यूलर के पास विशिष्ट नेटवर्क ट्रैफिक कंट्रोल पहलों के कार्यान्वयन की जिम्मेदारी हो सकती है। नेटवर्क ट्रैफिक कंट्रोल, नेटवर्क कंजेशन, लेटेंसी और पैकेट लॉस को कम करने के उद्देश्य से सभी उपायों के लिए एक छत्र शब्द है। विशेष रूप से, सक्रिय कतार प्रबंधन (एक्यूएम) अत्यधिक नेटवर्क संकुलन को रोकने के बड़े लक्ष्य को प्राप्त करने के लिए कतारबद्ध नेटवर्क पैकेटों का चयनात्मक ड्रॉपिंग है। शेड्यूलर को यह चुनना होगा कि कौन से पैकेट ड्रॉप करने हैं। ट्रैफ़िक को आकार देने से ट्रैफ़िक प्रवाह की बैंडविड्थ आवश्यकताओं को सुचारू किया जाता है, जब वे प्रस्फोट में कतारबद्ध होते हैं तो ट्रांसमिशन पैकेट में देरी होती है। अनुसूचक प्रेषित पैकेट के लिए समय निर्धारित करता है। सेवा की गुणवत्ता (क्यूओएस) सेवा वर्ग (विभेदित सेवाओं) या आरक्षित कनेक्शन (एकीकृत सेवाओं) के आधार पर यातायात की प्राथमिकता है।
एल्गोरिदम
समय के साथ, कई नेटवर्क कतारबद्ध (क्यूइंग) अनुशासन विकसित किए गए हैं। इनमें से प्रत्येक विभिन्न ट्रांसमिट या रिसीव बफ़र्स के अंदर नेटवर्क पैकेट्स को विशिष्ट रीऑर्डरिंग (पुन: क्रम) या ड्रॉपिंग प्रदान करता है।[1] क्यूइंग अनुशासन का उपयोग आमतौर पर विभिन्न नेटवर्किंग स्थितियों की भरपाई के प्रयास के रूप में किया जाता है, जैसे नेटवर्क पैकेट के कुछ वर्गों के लिए विलंबता को कम करना, और आम तौर पर क्यूओएस उपायों के हिस्से के रूप में उपयोग किया जाता है।[2][3][4]
नेटवर्क ट्रैफिक के प्रबंधन के लिए उपयुक्त एल्गोरिदम के उदाहरणों में शामिल हैं:
- एवीक्यू (अनुकूली आभासी कतार)[5]
- सीबीक्यू (वर्ग-आधारित क्यूइंग) अनुशासन
- चोके (प्रतिक्रियात्मक प्रवाह के लिए चुनें और रखें, अनुत्तरदायी प्रवाह के लिए चुनें और मारें) लाल रंग का एक रूप है
- CoDel (नियंत्रित विलंब) और FQ-CoDel (प्रवाह कतार CoDel)
- CAKE (कतार प्रबंधन एल्गोरिथ्म) (सामान्य अनुप्रयोगों को बढ़ाया गया), लिनक्स कर्नेल में लागू किया गया[6]
- क्रेडिट-आधारित उचित कतार
- डीआरआर (घाटा राउंड रॉबिन) और डीडब्ल्यूआरआर, कार्यान्वयन उदा। लिनक्स कर्नेल के लिए पैट्रिक मैकहार्डी द्वारा लिखित[7] और जीएनयू जनरल पब्लिक लाइसेंस के तहत प्रकाशित।
- अक्सर पूछे जाने वाले प्रश्न (पक्ष कतार)[8]
- FQ-PIE (फ्लो क्यू आनुपातिक इंटीग्रल कंट्रोलर एन्हांस्ड)
- जीसीआरए (सामान्य सेल दर एल्गोरिथ्म )
- एचएफएफ (भारी हिटर फिल्टर)[9]
- एचएफएससी (पदानुक्रमित मेला-सेवा वक्र)
- HTB (टोकन बकेट#श्रेणीबद्ध टोकन बकेट)[10]
- QFQ (त्वरित निष्पक्ष कतार )[11]
- एफक्यू (निष्पक्ष कतार) और डब्ल्यूएफक्यू (भारित उचित कतार)
- फीफो (फीफो (कम्प्यूटिंग और इलेक्ट्रॉनिक्स)|फर्स्ट इन, फर्स्ट आउट)
- pkt_sched: fq: फेयर क्यू पैकेट शेड्यूलर [12]
- NETEM नेटवर्क एमुलेटर[13]
- पीआईई (आनुपातिक अभिन्न नियंत्रक बढ़ाया गया)[14]
- लाल (यादृच्छिक प्रारंभिक पहचान)
- ARED (रैंडम अर्ली डिटेक्शन#ARED)
- जीआरईडी (सामान्यीकृत यादृच्छिक प्रारंभिक पहचान)
- आरआरईडी (मजबूत यादृच्छिक प्रारंभिक पहचान)
- WRED (भारित यादृच्छिक प्रारंभिक पहचान)
- आरआर (राउंड-रॉबिन शेड्यूलिंग | राउंड-रॉबिन) और डब्ल्यूआरआर (भारित राउंड रॉबिन)
- SFB (नीला (कतार प्रबंधन एल्गोरिथ्म)) और साथ ही RSFB (लचीला SFB)
- SFQ (स्टोकेस्टिक फेयरनेस क्यूइंग)[15]
- टीबीएफ (टोकन बाल्टी फिल्टर )[16]
- TEQL (तुच्छ लिंक तुल्यकारक)
उपरोक्त में से कई लिनक्स कर्नेल मॉड्यूल के रूप में कार्यान्वित किए गए हैं[17] और मुफ़्त और ओपन-सोर्स सॉफ़्टवेयर हैं।
बफरब्लोट
बफ़रब्लोट पैकेट-स्विच्ड नेटवर्क में एक घटना है जिसमें पैकेटों के अतिरिक्त बफर (दूरसंचार) आईएनजी उच्च विलंबता (इंजीनियरिंग) और पैकेट विलंब भिन्नता का कारण बनता है। बफ़रब्लोट को एक नेटवर्क अनुसूचक द्वारा संबोधित किया जा सकता है जो अनावश्यक रूप से उच्च बफ़रिंग बैकलॉग से बचने के लिए रणनीतिक रूप से पैकेट को छोड़ देता है। उदाहरणों में CoDel, FQ-CoDel और रैंडम अर्ली डिटेक्शन शामिल हैं।
कार्यान्वयन
This section needs expansion. You can help by adding to it. (October 2018) |
लिनक्स कर्नेल
लिनक्स कर्नेल पैकेट अनुसूचक लिनक्स कर्नेल के नेटवर्क स्टैक का एक अभिन्न अंग है और उदाहरण के लिए, OSI मॉडल की सूचना श्रंखला तल पर काम करके और ईथरनेट फ्रेम को संभालने के द्वारा, सभी NIC के ट्रांसमिट और रिसीव रिंग बफर का प्रबंधन करता है।
पैकेट शेड्यूलर नामक उपयोगिता का उपयोग करके कॉन्फ़िगर किया गया है tc
(यातायात नियंत्रण के लिए संक्षिप्त)। डिफ़ॉल्ट क्यूइंग अनुशासन के रूप में, पैकेट अनुसूचक एक फीफो कार्यान्वयन का उपयोग करता है जिसे pfifo_fast कहा जाता है,[18] हालाँकि इसके संस्करण 217 के बाद से systemd डिफ़ॉल्ट क्यूइंग अनुशासन को बदल देता है fq_codel
.[19]
ifconfig
ई> औरip
उपयोगिताएँ सिस्टम प्रशासकों को बफर आकार को कॉन्फ़िगर करने में सक्षम बनाती हैंtxqueuelen
औरrxqueuelen
प्रत्येक डिवाइस के लिए उनके आकार की परवाह किए बिना ईथरनेट फ्रेम की संख्या के संदर्भ में अलग से। लिनक्स कर्नेल के नेटवर्क स्टैक में कई अन्य बफ़र्स होते हैं, जिन्हें नेटवर्क शेड्यूलर द्वारा प्रबंधित नहीं किया जाता है।[lower-alpha 1]
बर्कले पैकेट फ़िल्टर फ़िल्टर को पैकेट शेड्यूलर के क्लासिफायर से जोड़ा जा सकता है। 2015 में लिनक्स कर्नेल के संस्करण 4.1 द्वारा लाया गया eBPF कार्यक्षमता क्लासिक BPF प्रोग्रामेबल क्लासिफायर को eBPF तक बढ़ाता है।[20] इन्हें एलएलवीएम ईबीपीएफ बैकएंड का उपयोग करके संकलित किया जा सकता है और tc
उपयोगिता।[21]
बीएसडी और ओपनबीएसडी
एएलटीक्यू बर्कले सॉफ्टवेयर वितरण के लिए एक नेटवर्क अनुसूचक का कार्यान्वयन है। ओपनबीएसडी संस्करण 5.5 एएलटीक्यू के रूप में एचएफएससी अनुसूचक द्वारा प्रतिस्थापित किया गया था।
यह भी देखें
- कतारबद्ध सिद्धांत
- सांख्यिकीय समय विभाजन बहुसंकेतन
- सेवा का प्रकार
टिप्पणियाँ
- ↑ The overall size of all buffers has been the point of critique by the Bufferbloat project, which provided a partial solution with CoDel that has been primarily tested in OpenWrt.
संदर्भ
- ↑ "Traffic Control HOWTO: Classless Queuing Disciplines (qdiscs)". tldp.org. Retrieved November 24, 2013.
- ↑ "Traffic Control HOWTO: Components of Linux Traffic Control". tldp.org. Retrieved November 24, 2013.
- ↑ "Traffic Control HOWTO: Traditional Elements of Traffic Control". tldp.org. Retrieved November 24, 2013.
- ↑ "Queuing Disciplines: Order of Packet Transmission and Dropping" (PDF). tau.ac.il. October 25, 2006. Retrieved March 18, 2014.
- ↑ "अमूर्त". 2002. CiteSeerX 10.1.1.108.4477.
{{cite journal}}
: Cite journal requires|journal=
(help) - ↑ "उन्हें केक चलाने दो". LWN.net.
- ↑ "डीआरआर लिनक्स कर्नेल नेटवर्क अनुसूचक मॉड्यूल". kernel.org. Retrieved 2013-09-07.
- ↑ "FavorQueue: a Parameterless Active Queue Management to Improve TCP Traffic Performance" (PDF).
- ↑ "हैवी-हिटर फ़िल्टर qdisc". kernel.org.
- ↑ "HTB Linux कर्नेल नेटवर्क अनुसूचक मॉड्यूल". kernel.org. Retrieved 2013-09-07.
- ↑ "क्यूएफक्यू लिनक्स कर्नेल नेटवर्क शेड्यूलर मॉड्यूल". kernel.org. Retrieved 2013-09-07.
- ↑ "Fair Queue packet scheduler committed to Linux kernel 3.12".
- ↑ "नेटवर्क एमुलेटर लिनक्स कर्नेल नेटवर्क शेड्यूलर मॉड्यूल". kernel.org. Retrieved 2013-09-07.
- ↑ "आनुपातिक इंटीग्रल कंट्रोलर एन्हांस्ड (PIE)". kernel.org.
- ↑ "एसएफक्यू लिनक्स कर्नेल नेटवर्क शेड्यूलर मॉड्यूल". kernel.org. Retrieved 2013-09-07.
- ↑ "टीबीएफ लिनक्स कर्नेल नेटवर्क शेड्यूलर मॉड्यूल". kernel.org. Retrieved 2013-09-07.
- ↑ "लिनक्स कर्नेल नेटवर्क अनुसूचक". kernel.org. 2012-12-26. Retrieved 2013-09-07.
- ↑ "Linux Advanced Routing and Traffic Control HOWTO, Section 9.2.1. pfifo_fast". lartc.org. 2012-05-19. Retrieved 2014-09-19.
- ↑ "systemd System and Service Manager: NEWS file". freedesktop.org. 2015-05-22. Retrieved 2015-06-09.
- ↑ "Linux kernel 4.1, Section 11. Networking". kernelnewbies.org. 2015-06-21.
- ↑ "बीपीएफ और एक्सडीपी संदर्भ गाइड". Cilium documentation web site.