नेटवर्क अनुसूचक

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

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

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

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

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

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

एल्गोरिदम

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

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

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

बफरब्लोट

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

कार्यान्वयन

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

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

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

पैकेट शेड्यूलर नामक उपयोगिता का उपयोग करके कॉन्फ़िगर किया गया है 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 एएलटीक्यू के रूप में एचएफएससी अनुसूचक द्वारा प्रतिस्थापित किया गया था।

यह भी देखें

टिप्पणियाँ

  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.