नेटवर्क अनुसूचक: Difference between revisions

From Vigyanwiki
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|एक FIFO (कंप्यूटिंग और इलेक्ट्रॉनिक्स) (पहले अंदर, पहले बाहर) डेटा संरचना में कतारबद्ध पैकेट।]]एक '''नेटवर्किंग शेड्यूलर''', जिसे पैकेट शेड्यूलर, '''क्यूइंग डिसिप्लिन''' (क्यूडिस्क) या '''क्यूइंग एल्गोरिथम''' भी कहा जाता है, पैकेट-स्विचिंग संचार नेटवर्क में नोड पर एक मध्यस्थ है। यह [[प्रोटोकॉल स्टैक]] और नेटवर्क इंटरफेस कंट्रोलर के ट्रांसमिट और रिसीव क्यू में नेटवर्क पैकेट के अनुक्रम का प्रबंधन करता है। विभिन्न [[ऑपरेटिंग सिस्टम]] के लिए कई नेटवर्क शेड्यूलर उपलब्ध हैं, जो कि मौजूदा नेटवर्क [[शेड्यूलिंग एल्गोरिदम]] को लागू करते हैं।
[[File:Data Queue.svg|thumb|right|250px|एक फीफो (कंप्यूटिंग और इलेक्ट्रॉनिक्स) (पहले अंदर, पहले बाहर) डेटा संरचना में कतारबद्ध पैकेट।]]एक '''नेटवर्किंग शेड्यूलर''', जिसे पैकेट शेड्यूलर, '''क्यूइंग डिसिप्लिन''' (क्यूडिस्क) या '''क्यूइंग एल्गोरिथम''' भी कहा जाता है, पैकेट-स्विचिंग संचार नेटवर्क में नोड पर एक मध्यस्थ है। यह [[प्रोटोकॉल स्टैक]] और नेटवर्क इंटरफेस कंट्रोलर के ट्रांसमिट और रिसीव क्यू में नेटवर्क पैकेट के अनुक्रम का प्रबंधन करता है। विभिन्न [[ऑपरेटिंग सिस्टम]] के लिए कई नेटवर्क शेड्यूलर उपलब्ध हैं, जो कि मौजूदा नेटवर्क [[शेड्यूलिंग एल्गोरिदम]] को लागू करते हैं।


नेटवर्क अनुसूचक तर्क यह तय करता है कि किस नेटवर्क पैकेट को आगे भेजना है। नेटवर्क अनुसूचक एक कतारबद्ध प्रणाली से जुड़ा होता है, जो नेटवर्क पैकेट को अस्थायी रूप से तब तक संग्रहीत करता है जब तक कि वे प्रसारित नहीं हो जाते। सिस्टम में एक या कई कतारें हो सकती हैं, इस मामले में प्रत्येक एक प्रवाह, वर्गीकरण, या प्राथमिकता के पैकेट रख सकता है।
नेटवर्क अनुसूचक तर्क यह तय करता है कि किस नेटवर्क पैकेट को आगे भेजना है। नेटवर्क अनुसूचक एक कतारबद्ध प्रणाली से जुड़ा होता है, जो नेटवर्क पैकेट को अस्थायी रूप से तब तक संग्रहीत करता है जब तक कि वे प्रसारित नहीं हो जाते। सिस्टम में एक या कई कतारें हो सकती हैं, इस मामले में प्रत्येक एक प्रवाह, वर्गीकरण, या प्राथमिकता के पैकेट रख सकता है।
Line 73: Line 73:
== कार्यान्वयन ==
== कार्यान्वयन ==
=== लिनक्स कर्नेल ===
=== लिनक्स कर्नेल ===
[[File:Simplified Structure of the Linux Kernel.svg|thumb|लिनक्स कर्नेल का पैकेट अनुसूचक [[ netfilter ]], नेफ्टेबल्स और [[ बर्कले पैकेट फ़िल्टर ]] के साथ मिलकर नेटवर्क स्टैक का हिस्सा है।]]लिनक्स कर्नेल पैकेट अनुसूचक लिनक्स कर्नेल के नेटवर्क स्टैक का एक अभिन्न अंग है और उदाहरण के लिए, ओएसआई मॉडल की लेयर 2 पर काम करके और [[ईथरनेट फ्रेम]] को संभालने के द्वारा, सभी एनआईसी के ट्रांसमिट और प्राप्त रिंग बफर्स का प्रबंधन करता है।
[[File:Simplified Structure of the Linux Kernel.svg|thumb|लिनक्स कर्नेल का पैकेट अनुसूचक नेटफिल्टर, एनएफटीबल्स और बर्कले पैकेट फिल्टर के साथ नेटवर्क स्टैक का हिस्सा है।]]लिनक्स कर्नेल पैकेट अनुसूचक लिनक्स कर्नेल के नेटवर्क स्टैक का एक अभिन्न अंग है और उदाहरण के लिए, ओएसआई मॉडल की लेयर 2 पर काम करके और [[ईथरनेट फ्रेम]] को संभालने के द्वारा, सभी एनआईसी के ट्रांसमिट और प्राप्त रिंग बफर्स का प्रबंधन करता है।


पैकेट शेड्यूलर नामक उपयोगिता का उपयोग करके कॉन्फ़िगर किया गया है <code>[[Tc (Linux)|tc]]</code> (यातायात नियंत्रण के लिए संक्षिप्त)डिफ़ॉल्ट क्यूइंग अनुशासन के रूप में, पैकेट अनुसूचक एक फीफो कार्यान्वयन का उपयोग करता है जिसे pfifo_fast कहा जाता है,<ref>{{cite web
पैकेट अनुसूचक को <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> हालाँकि इसके संस्करण 217 के बाद से [[systemd]] डिफ़ॉल्ट क्यूइंग अनुशासन को बदल देता है <code>fq_codel</code>.<ref>{{cite web
}}</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]].}}
<code>[[ifconfig]]</code> और <code>[[Iproute2|ip]]</code> उपयोगिताओं सिस्टम प्रशासकों को उनके आकार की परवाह किए बिना कई ईथरनेट फ़्रेमों के संदर्भ में प्रत्येक डिवाइस के लिए बफर आकार <code>txqueuelen</code> और <code>rxqueuelen</code> को कॉन्फ़िगर करने में सक्षम बनाती हैं।
 
बर्कले पैकेट फ़िल्टर फ़िल्टर को पैकेट शेड्यूलर के क्लासिफायर से जोड़ा जा सकता है। 2015 में लिनक्स कर्नेल के संस्करण 4.1 द्वारा लाया गया [[eBPF]] कार्यक्षमता क्लासिक BPF प्रोग्रामेबल क्लासिफायर को eBPF तक बढ़ाता है।<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><!--[[User:Kvng/RTH]]-->


लिनक्स कर्नेल के नेटवर्क स्टैक में कई अन्य बफ़र्स होते हैं, जो नेटवर्क अनुसूचक द्वारा प्रबंधित नहीं किए जाते हैं।{{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 एएलटीक्यू के रूप में एचएफएससी अनुसूचक द्वारा प्रतिस्थापित किया गया था।
[[एएलटीक्यू]] बीएसडी के लिए नेटवर्क शेड्यूलर का कार्यान्वयन है। ओपनबीएसडी संस्करण 5.5 के रूप में एएलटीक्यू को एचएफएससी अनुसूचक द्वारा प्रतिस्थापित किया गया था।


== यह भी देखें ==
== यह भी देखें ==
* कतारबद्ध सिद्धांत
* क्यूइंग सिद्धांत
* [[सांख्यिकीय समय विभाजन बहुसंकेतन]]
* [[सांख्यिकीय समय विभाजन बहुसंकेतन]]
* [[सेवा का प्रकार]]
* [[सेवा का प्रकार]]
Line 102: Line 102:
== टिप्पणियाँ ==
== टिप्पणियाँ ==
{{Notelist}}
{{Notelist}}
== संदर्भ ==
== संदर्भ ==
{{Reflist}}
{{Reflist}}

Revision as of 12:56, 17 May 2023

एक फीफो (कंप्यूटिंग और इलेक्ट्रॉनिक्स) (पहले अंदर, पहले बाहर) डेटा संरचना में कतारबद्ध पैकेट।

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

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

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

शब्दावली और जिम्मेदारियां

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

एल्गोरिदम

समय के साथ, कई नेटवर्क कतारबद्ध (क्यूइंग) अनुशासन विकसित किए गए हैं। इनमें से प्रत्येक विभिन्न ट्रांसमिट या रिसीव बफ़र्स के अंदर नेटवर्क पैकेट्स को विशिष्ट रीऑर्डरिंग (पुन: क्रम) या ड्रॉपिंग प्रदान करता है।[1] क्यूइंग अनुशासन का उपयोग आमतौर पर विभिन्न नेटवर्किंग स्थितियों की भरपाई के प्रयास के रूप में किया जाता है, जैसे नेटवर्क पैकेट के कुछ वर्गों के लिए विलंबता को कम करना, और आम तौर पर क्यूओएस उपायों के हिस्से के रूप में उपयोग किया जाता है।[2][3][4]

नेटवर्क ट्रैफिक के प्रबंधन के लिए उपयुक्त एल्गोरिदम के उदाहरणों में शामिल हैं:

उपरोक्त में से कई लिनक्स कर्नेल मॉड्यूल के रूप में कार्यान्वित किए गए हैं [17] और स्वतंत्र रूप से उपलब्ध हैं।

बफरब्लोट

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

कार्यान्वयन

लिनक्स कर्नेल

लिनक्स कर्नेल का पैकेट अनुसूचक नेटफिल्टर, एनएफटीबल्स और बर्कले पैकेट फिल्टर के साथ नेटवर्क स्टैक का हिस्सा है।

लिनक्स कर्नेल पैकेट अनुसूचक लिनक्स कर्नेल के नेटवर्क स्टैक का एक अभिन्न अंग है और उदाहरण के लिए, ओएसआई मॉडल की लेयर 2 पर काम करके और ईथरनेट फ्रेम को संभालने के द्वारा, सभी एनआईसी के ट्रांसमिट और प्राप्त रिंग बफर्स का प्रबंधन करता है।

पैकेट अनुसूचक को tc ("यातायात नियंत्रण" के लिए छोटा) नामक उपयोगिता का उपयोग करके कॉन्फ़िगर किया गया है। डिफ़ॉल्ट क्यूइंग डिसिप्लिन के रूप में, पैकेट शेड्यूलर फीफो_फास्ट नामक फीफो कार्यान्वयन का उपयोग करता है, [18] हालांकि इसके संस्करण 217 के बाद से सिस्टम ने डिफ़ॉल्ट क्यूइंग डिसिप्लिन को fq_codelमें बदल दिया है।[19]

ifconfig और ip उपयोगिताओं सिस्टम प्रशासकों को उनके आकार की परवाह किए बिना कई ईथरनेट फ़्रेमों के संदर्भ में प्रत्येक डिवाइस के लिए बफर आकार txqueuelen और rxqueuelen को कॉन्फ़िगर करने में सक्षम बनाती हैं।

लिनक्स कर्नेल के नेटवर्क स्टैक में कई अन्य बफ़र्स होते हैं, जो नेटवर्क अनुसूचक द्वारा प्रबंधित नहीं किए जाते हैं।[lower-alpha 1]

बर्कले पैकेट फ़िल्टर फ़िल्टर पैकेट अनुसूचक के क्लासिफायर से जुड़े हो सकते हैं। 2015 में लिनक्स कर्नेल के संस्करण 4.1 द्वारा लाया गया ईबीपीएफ कार्यक्षमता ईबीपीएफ के लिए क्लासिक बीपीएफ प्रोग्रामेबल क्लासिफायर का विस्तार करती है।[20] इन्हें लएलवीएम ईबीपीएफ बैकएंड का उपयोग करके संकलित किया जा सकता है और tc यूटिलिटी का उपयोग करके एक रनिंग कर्नेल में लोड किया जा सकता है।[21]

बीएसडी और ओपनबीएसडी

एएलटीक्यू बीएसडी के लिए नेटवर्क शेड्यूलर का कार्यान्वयन है। ओपनबीएसडी संस्करण 5.5 के रूप में एएलटीक्यू को एचएफएससी अनुसूचक द्वारा प्रतिस्थापित किया गया था।

यह भी देखें

टिप्पणियाँ

  1. 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.

संदर्भ

  1. "Traffic Control HOWTO: Classless Queuing Disciplines (qdiscs)". tldp.org. Retrieved November 24, 2013.
  2. "Traffic Control HOWTO: Components of Linux Traffic Control". tldp.org. Retrieved November 24, 2013.
  3. "Traffic Control HOWTO: Traditional Elements of Traffic Control". tldp.org. Retrieved November 24, 2013.
  4. "Queuing Disciplines: Order of Packet Transmission and Dropping" (PDF). tau.ac.il. October 25, 2006. Retrieved March 18, 2014.
  5. "अमूर्त". 2002. CiteSeerX 10.1.1.108.4477. {{cite journal}}: Cite journal requires |journal= (help)
  6. "उन्हें केक चलाने दो". LWN.net.
  7. "डीआरआर लिनक्स कर्नेल नेटवर्क अनुसूचक मॉड्यूल". kernel.org. Retrieved 2013-09-07.
  8. "FavorQueue: a Parameterless Active Queue Management to Improve TCP Traffic Performance" (PDF).
  9. "हैवी-हिटर फ़िल्टर qdisc". kernel.org.
  10. "एचटीबी लिनक्स कर्नेल नेटवर्क अनुसूचक मॉड्यूल". kernel.org. Retrieved 2013-09-07.
  11. "क्यूएफक्यू लिनक्स कर्नेल नेटवर्क शेड्यूलर मॉड्यूल". kernel.org. Retrieved 2013-09-07.
  12. "Fair Queue packet scheduler committed to Linux kernel 3.12".
  13. "नेटवर्क एमुलेटर लिनक्स कर्नेल नेटवर्क शेड्यूलर मॉड्यूल". kernel.org. Retrieved 2013-09-07.
  14. "आनुपातिक इंटीग्रल कंट्रोलर एन्हांस्ड (PIE)". kernel.org.
  15. "एसएफक्यू लिनक्स कर्नेल नेटवर्क शेड्यूलर मॉड्यूल". kernel.org. Retrieved 2013-09-07.
  16. "टीबीएफ लिनक्स कर्नेल नेटवर्क शेड्यूलर मॉड्यूल". kernel.org. Retrieved 2013-09-07.
  17. "लिनक्स कर्नेल नेटवर्क अनुसूचक". kernel.org. 2012-12-26. Retrieved 2013-09-07.
  18. "Linux Advanced Routing and Traffic Control HOWTO, Section 9.2.1. pfifo_fast". lartc.org. 2012-05-19. Retrieved 2014-09-19.
  19. "systemd System and Service Manager: NEWS file". freedesktop.org. 2015-05-22. Retrieved 2015-06-09.
  20. "Linux kernel 4.1, Section 11. Networking". kernelnewbies.org. 2015-06-21.
  21. "बीपीएफ और एक्सडीपी संदर्भ गाइड". Cilium documentation web site.