नेटवर्क अनुसूचक: Difference between revisions
Line 1: | Line 1: | ||
{{Short description|Arbiter on a node in packet switching communication network}} | {{Short description|Arbiter on a node in packet switching communication network}} | ||
{{About|नेटवर्किंग में निर्धारण|सामान्य रूप से कंप्यूटिंग में निर्धारण|निर्धारण (कंप्यूटिंग)}} | {{About|नेटवर्किंग में निर्धारण|सामान्य रूप से कंप्यूटिंग में निर्धारण|निर्धारण (कंप्यूटिंग)}} | ||
[[File:Data Queue.svg|thumb|right|250px|एक | [[File:Data Queue.svg|thumb|right|250px|एक फीफो (कंप्यूटिंग और इलेक्ट्रॉनिक्स) (पहले अंदर, पहले बाहर) डेटा संरचना में कतारबद्ध पैकेट।]]एक '''नेटवर्किंग शेड्यूलर''', जिसे पैकेट शेड्यूलर, '''क्यूइंग डिसिप्लिन''' (क्यूडिस्क) या '''क्यूइंग एल्गोरिथम''' भी कहा जाता है, पैकेट-स्विचिंग संचार नेटवर्क में नोड पर एक मध्यस्थ है। यह [[प्रोटोकॉल स्टैक]] और नेटवर्क इंटरफेस कंट्रोलर के ट्रांसमिट और रिसीव क्यू में नेटवर्क पैकेट के अनुक्रम का प्रबंधन करता है। विभिन्न [[ऑपरेटिंग सिस्टम]] के लिए कई नेटवर्क शेड्यूलर उपलब्ध हैं, जो कि मौजूदा नेटवर्क [[शेड्यूलिंग एल्गोरिदम]] को लागू करते हैं। | ||
नेटवर्क अनुसूचक तर्क यह तय करता है कि किस नेटवर्क पैकेट को आगे भेजना है। नेटवर्क अनुसूचक एक कतारबद्ध प्रणाली से जुड़ा होता है, जो नेटवर्क पैकेट को अस्थायी रूप से तब तक संग्रहीत करता है जब तक कि वे प्रसारित नहीं हो जाते। सिस्टम में एक या कई कतारें हो सकती हैं, इस मामले में प्रत्येक एक प्रवाह, वर्गीकरण, या प्राथमिकता के पैकेट रख सकता है। | नेटवर्क अनुसूचक तर्क यह तय करता है कि किस नेटवर्क पैकेट को आगे भेजना है। नेटवर्क अनुसूचक एक कतारबद्ध प्रणाली से जुड़ा होता है, जो नेटवर्क पैकेट को अस्थायी रूप से तब तक संग्रहीत करता है जब तक कि वे प्रसारित नहीं हो जाते। सिस्टम में एक या कई कतारें हो सकती हैं, इस मामले में प्रत्येक एक प्रवाह, वर्गीकरण, या प्राथमिकता के पैकेट रख सकता है। | ||
Line 73: | Line 73: | ||
== कार्यान्वयन == | == कार्यान्वयन == | ||
=== लिनक्स कर्नेल === | === लिनक्स कर्नेल === | ||
[[File:Simplified Structure of the Linux Kernel.svg|thumb|लिनक्स कर्नेल का पैकेट अनुसूचक | [[File:Simplified Structure of the Linux Kernel.svg|thumb|लिनक्स कर्नेल का पैकेट अनुसूचक नेटफिल्टर, एनएफटीबल्स और बर्कले पैकेट फिल्टर के साथ नेटवर्क स्टैक का हिस्सा है।]]लिनक्स कर्नेल पैकेट अनुसूचक लिनक्स कर्नेल के नेटवर्क स्टैक का एक अभिन्न अंग है और उदाहरण के लिए, ओएसआई मॉडल की लेयर 2 पर काम करके और [[ईथरनेट फ्रेम]] को संभालने के द्वारा, सभी एनआईसी के ट्रांसमिट और प्राप्त रिंग बफर्स का प्रबंधन करता है। | ||
पैकेट | पैकेट अनुसूचक को <code>[[Tc (Linux)|tc]]</code> ("यातायात नियंत्रण" के लिए छोटा) नामक उपयोगिता का उपयोग करके कॉन्फ़िगर किया गया है। डिफ़ॉल्ट क्यूइंग डिसिप्लिन के रूप में, पैकेट शेड्यूलर फीफो_फास्ट नामक फीफो कार्यान्वयन का उपयोग करता है, <ref>{{cite web | ||
| url = http://www.lartc.org/howto/lartc.qdisc.classless.html | | url = http://www.lartc.org/howto/lartc.qdisc.classless.html | ||
| title = Linux Advanced Routing and Traffic Control HOWTO, Section 9.2.1. pfifo_fast | | title = Linux Advanced Routing and Traffic Control HOWTO, Section 9.2.1. pfifo_fast | ||
| date = 2012-05-19 | access-date = 2014-09-19 | | date = 2012-05-19 | access-date = 2014-09-19 | ||
| website = lartc.org | | website = lartc.org | ||
}}</ref> | }}</ref> हालांकि इसके संस्करण 217 के बाद से सिस्टम ने डिफ़ॉल्ट क्यूइंग डिसिप्लिन को <code>fq_codel</code>में बदल दिया है।<ref>{{cite web | ||
| url = http://cgit.freedesktop.org/systemd/systemd/tree/NEWS | | url = http://cgit.freedesktop.org/systemd/systemd/tree/NEWS | ||
| title = systemd System and Service Manager: NEWS file | | title = systemd System and Service Manager: NEWS file | ||
Line 87: | Line 87: | ||
}}</ref> | }}</ref> | ||
<code>[[ifconfig]]</code> और <code>[[Iproute2|ip]]</code> उपयोगिताओं सिस्टम प्रशासकों को उनके आकार की परवाह किए बिना कई ईथरनेट फ़्रेमों के संदर्भ में प्रत्येक डिवाइस के लिए बफर आकार <code>txqueuelen</code> और <code>rxqueuelen</code> को कॉन्फ़िगर करने में सक्षम बनाती हैं। | |||
लिनक्स कर्नेल के नेटवर्क स्टैक में कई अन्य बफ़र्स होते हैं, जो नेटवर्क अनुसूचक द्वारा प्रबंधित नहीं किए जाते हैं।{{efn|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]].}} | |||
बर्कले पैकेट फ़िल्टर फ़िल्टर पैकेट अनुसूचक के क्लासिफायर से जुड़े हो सकते हैं। 2015 में लिनक्स कर्नेल के संस्करण 4.1 द्वारा लाया गया ईबीपीएफ कार्यक्षमता ईबीपीएफ के लिए क्लासिक बीपीएफ प्रोग्रामेबल क्लासिफायर का विस्तार करती है।<ref>{{cite web |url=http://kernelnewbies.org/Linux_4.1#head-c64a7aa1ccb73618b4a7b5f3bef64ff435738098 |title=Linux kernel 4.1, Section 11. Networking |date=2015-06-21 |website = kernelnewbies.org}}</ref> इन्हें [[एलएलवीएम|लएलवीएम]] ईबीपीएफ बैकएंड का उपयोग करके संकलित किया जा सकता है और <code>tc</code> यूटिलिटी का उपयोग करके एक रनिंग कर्नेल में लोड किया जा सकता है।<ref>{{cite web |url=https://cilium.readthedocs.io/en/latest/bpf/ |title=बीपीएफ और एक्सडीपी संदर्भ गाइड|website=Cilium documentation web site}}</ref> | |||
=== बीएसडी और ओपनबीएसडी === | === बीएसडी और ओपनबीएसडी === | ||
[[एएलटीक्यू]] | [[एएलटीक्यू]] बीएसडी के लिए नेटवर्क शेड्यूलर का कार्यान्वयन है। ओपनबीएसडी संस्करण 5.5 के रूप में एएलटीक्यू को एचएफएससी अनुसूचक द्वारा प्रतिस्थापित किया गया था। | ||
== यह भी देखें == | == यह भी देखें == | ||
* | * क्यूइंग सिद्धांत | ||
* [[सांख्यिकीय समय विभाजन बहुसंकेतन]] | * [[सांख्यिकीय समय विभाजन बहुसंकेतन]] | ||
* [[सेवा का प्रकार]] | * [[सेवा का प्रकार]] | ||
Line 102: | Line 102: | ||
== टिप्पणियाँ == | == टिप्पणियाँ == | ||
{{Notelist}} | {{Notelist}} | ||
== संदर्भ == | == संदर्भ == | ||
{{Reflist}} | {{Reflist}} |
Revision as of 12:56, 17 May 2023
एक नेटवर्किंग शेड्यूलर, जिसे पैकेट शेड्यूलर, क्यूइंग डिसिप्लिन (क्यूडिस्क) या क्यूइंग एल्गोरिथम भी कहा जाता है, पैकेट-स्विचिंग संचार नेटवर्क में नोड पर एक मध्यस्थ है। यह प्रोटोकॉल स्टैक और नेटवर्क इंटरफेस कंट्रोलर के ट्रांसमिट और रिसीव क्यू में नेटवर्क पैकेट के अनुक्रम का प्रबंधन करता है। विभिन्न ऑपरेटिंग सिस्टम के लिए कई नेटवर्क शेड्यूलर उपलब्ध हैं, जो कि मौजूदा नेटवर्क शेड्यूलिंग एल्गोरिदम को लागू करते हैं।
नेटवर्क अनुसूचक तर्क यह तय करता है कि किस नेटवर्क पैकेट को आगे भेजना है। नेटवर्क अनुसूचक एक कतारबद्ध प्रणाली से जुड़ा होता है, जो नेटवर्क पैकेट को अस्थायी रूप से तब तक संग्रहीत करता है जब तक कि वे प्रसारित नहीं हो जाते। सिस्टम में एक या कई कतारें हो सकती हैं, इस मामले में प्रत्येक एक प्रवाह, वर्गीकरण, या प्राथमिकता के पैकेट रख सकता है।
कुछ स्तिथियों में, सिस्टम की बाधाओं के भीतर सभी ट्रांसमिशन शेड्यूल करना संभव नहीं हो सकता है। इन मामलों में, नेटवर्क शेड्यूलर यह तय करने के लिए ज़िम्मेदार होता है कि किस ट्रैफ़िक को आगे बढ़ाया जाए और किसे ड्रॉप किया जाए।
शब्दावली और जिम्मेदारियां
एक नेटवर्क शेड्यूलर के पास विशिष्ट नेटवर्क ट्रैफिक कंट्रोल पहलों के कार्यान्वयन की जिम्मेदारी हो सकती है। नेटवर्क ट्रैफिक कंट्रोल, नेटवर्क कंजेशन, लेटेंसी और पैकेट लॉस को कम करने के उद्देश्य से सभी उपायों के लिए एक छत्र शब्द है। विशेष रूप से, सक्रिय कतार प्रबंधन (एक्यूएम) अत्यधिक नेटवर्क संकुलन को रोकने के बड़े लक्ष्य को प्राप्त करने के लिए कतारबद्ध नेटवर्क पैकेटों का चयनात्मक ड्रॉपिंग है। शेड्यूलर को यह चुनना होगा कि कौन से पैकेट ड्रॉप करने हैं। ट्रैफ़िक को आकार देने से ट्रैफ़िक प्रवाह की बैंडविड्थ आवश्यकताओं को सुचारू किया जाता है, जब वे प्रस्फोट में कतारबद्ध होते हैं तो ट्रांसमिशन पैकेट में देरी होती है। अनुसूचक प्रेषित पैकेट के लिए समय निर्धारित करता है। सेवा की गुणवत्ता (क्यूओएस) सेवा वर्ग (विभेदित सेवाओं) या आरक्षित कनेक्शन (एकीकृत सेवाओं) के आधार पर यातायात की प्राथमिकता है।
एल्गोरिदम
समय के साथ, कई नेटवर्क कतारबद्ध (क्यूइंग) अनुशासन विकसित किए गए हैं। इनमें से प्रत्येक विभिन्न ट्रांसमिट या रिसीव बफ़र्स के अंदर नेटवर्क पैकेट्स को विशिष्ट रीऑर्डरिंग (पुन: क्रम) या ड्रॉपिंग प्रदान करता है।[1] क्यूइंग अनुशासन का उपयोग आमतौर पर विभिन्न नेटवर्किंग स्थितियों की भरपाई के प्रयास के रूप में किया जाता है, जैसे नेटवर्क पैकेट के कुछ वर्गों के लिए विलंबता को कम करना, और आम तौर पर क्यूओएस उपायों के हिस्से के रूप में उपयोग किया जाता है।[2][3][4]
नेटवर्क ट्रैफिक के प्रबंधन के लिए उपयुक्त एल्गोरिदम के उदाहरणों में शामिल हैं:
- एवीक्यू (अनुकूली आभासी कतार)[5]
- सीबीक्यू (वर्ग-आधारित क्यूइंग) अनुशासन
- चोके (प्रतिक्रियात्मक प्रवाह के लिए चुनें और रखें, अनुत्तरदायी प्रवाह के लिए चुनें और मारें) लाल रंग का एक रूप है
- कोडेल (नियंत्रित विलंब) और एफक्यू-कोडेलl (प्रवाह कतार कोडेलl)
- केक (कतार प्रबंधन एल्गोरिथ्म) (सामान्य अनुप्रयोगों को बढ़ाया गया), लिनक्स कर्नेल में लागू किया गया[6]
- क्रेडिट-आधारित उचित कतार
- डीआरआर (घाटा राउंड रॉबिन) और डीडब्ल्यूआरआर, कार्यान्वयन उदा। लिनक्स कर्नेल के लिए पैट्रिक मैकहार्डी द्वारा लिखित[7] और जीएनयू जनरल पब्लिक लाइसेंस के तहत प्रकाशित।
- प्रायः पूछे जाने वाले प्रश्न (पक्ष कतार)[8]
- एफ क्यू-पाई (फ्लो क्यू आनुपातिक इंटीग्रल कंट्रोलर एन्हांस्ड)
- जीसीआरए (सामान्य सेल दर एल्गोरिथ्म )
- एचएफएफ (भारी हिटर फिल्टर)[9]
- एचएफएससी (पदानुक्रमित मेला-सेवा वक्र)
- एचटीबी (टोकन बकेट#श्रेणीबद्ध टोकन बकेट)[10]
- क्यूएफक्यू (त्वरित निष्पक्ष कतार )[11]
- एफक्यू (निष्पक्ष कतार) और डब्ल्यूएफक्यू (भारित उचित कतार)
- फीफो (फीफो (कम्प्यूटिंग और इलेक्ट्रॉनिक्स)|फर्स्ट इन, फर्स्ट आउट)
- फेयर क्यू पैकेट शेड्यूलर [12]
- नेटम नेटवर्क एमुलेटर[13]
- पीआईई (आनुपातिक अभिन्न नियंत्रक बढ़ाया गया)[14]
- लाल (यादृच्छिक प्रारंभिक पहचान)
- एआरईडी (रैंडम अर्ली डिटेक्शन#ARED)
- जीआरईडी (सामान्यीकृत यादृच्छिक प्रारंभिक पहचान)
- आरआरईडी (मजबूत यादृच्छिक प्रारंभिक पहचान)
- डब्ल्यूआरईडी (भारित यादृच्छिक प्रारंभिक पहचान)
- आरआर (राउंड-रॉबिन शेड्यूलिंग | राउंड-रॉबिन) और डब्ल्यूआरआर (भारित राउंड रॉबिन)
- एसएफबी (नीला (कतार प्रबंधन एल्गोरिथ्म)) और साथ ही आरएसएफबी (तन्यक एसएफबी)
- एसएफक्यू (स्टोकेस्टिक फेयरनेस क्यूइंग)[15]
- टीबीएफ (टोकन बाल्टी फिल्टर )[16]
- टीईक्यूएल ([मामूली कड़ी तुल्यकारक]])
उपरोक्त में से कई लिनक्स कर्नेल मॉड्यूल के रूप में कार्यान्वित किए गए हैं [17] और स्वतंत्र रूप से उपलब्ध हैं।
बफरब्लोट
बफरब्लोट पैकेट-स्विच्ड नेटवर्क में एक घटना है जिसमें पैकेटों की अतिरिक्त बफरिंग के कारण उच्च विलंबता और पैकेट विलंब भिन्नता होती है। बफरब्लोट को एक नेटवर्क अनुसूचक द्वारा संबोधित किया जा सकता है जो अनावश्यक रूप से उच्च बफरिंग बैकलॉग से बचने के लिए रणनीतिक रूप से पैकेट को हटा देता है। उदाहरणों में कोडेल, एफक्यू-कोडेल और और यादृच्छिक प्रारंभिक पहचान शामिल हैं।
कार्यान्वयन
लिनक्स कर्नेल
लिनक्स कर्नेल पैकेट अनुसूचक लिनक्स कर्नेल के नेटवर्क स्टैक का एक अभिन्न अंग है और उदाहरण के लिए, ओएसआई मॉडल की लेयर 2 पर काम करके और ईथरनेट फ्रेम को संभालने के द्वारा, सभी एनआईसी के ट्रांसमिट और प्राप्त रिंग बफर्स का प्रबंधन करता है।
पैकेट अनुसूचक को tc
("यातायात नियंत्रण" के लिए छोटा) नामक उपयोगिता का उपयोग करके कॉन्फ़िगर किया गया है। डिफ़ॉल्ट क्यूइंग डिसिप्लिन के रूप में, पैकेट शेड्यूलर फीफो_फास्ट नामक फीफो कार्यान्वयन का उपयोग करता है, [18] हालांकि इसके संस्करण 217 के बाद से सिस्टम ने डिफ़ॉल्ट क्यूइंग डिसिप्लिन को fq_codel
में बदल दिया है।[19]
ifconfig
और ip
उपयोगिताओं सिस्टम प्रशासकों को उनके आकार की परवाह किए बिना कई ईथरनेट फ़्रेमों के संदर्भ में प्रत्येक डिवाइस के लिए बफर आकार txqueuelen
और rxqueuelen
को कॉन्फ़िगर करने में सक्षम बनाती हैं।
लिनक्स कर्नेल के नेटवर्क स्टैक में कई अन्य बफ़र्स होते हैं, जो नेटवर्क अनुसूचक द्वारा प्रबंधित नहीं किए जाते हैं।[lower-alpha 1]
बर्कले पैकेट फ़िल्टर फ़िल्टर पैकेट अनुसूचक के क्लासिफायर से जुड़े हो सकते हैं। 2015 में लिनक्स कर्नेल के संस्करण 4.1 द्वारा लाया गया ईबीपीएफ कार्यक्षमता ईबीपीएफ के लिए क्लासिक बीपीएफ प्रोग्रामेबल क्लासिफायर का विस्तार करती है।[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.
- ↑ "एचटीबी लिनक्स कर्नेल नेटवर्क अनुसूचक मॉड्यूल". 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.