यूआईपी (सॉफ्टवेयर): Difference between revisions

From Vigyanwiki
 
(16 intermediate revisions by 3 users not shown)
Line 1: Line 1:
{{Infobox software
'''यूआईपी''' 8-बिट तथा 16-बिट के छोटे [[माइक्रोकंट्रोलर्स|माइक्रोकंट्रोलर]] के साथ उपयोग के लिए टीसीपी/आईपी नेटवर्क प्रोटोकॉल स्टैक का एक [[ खुला स्रोत सॉफ्टवेयर |ओपन-सोर्स]] कार्यान्वयन है। इसे आरंभ में [[स्वीडिश इंस्टीट्यूट ऑफ कंप्यूटर साइंस|कंप्यूटर साइंस की स्वीडिश संस्था]] में नेटवर्क्ड संबद्ध प्रणाली समूह के [[एडम डंकल्स]] द्वारा विकसित किया गया था जिसे बीएसडी स्टाइल लाइसेंस के अंतर्गत लाइसेंस दिया गया था और आगे चलकर इसे विकासको के विस्तृत समूह द्वारा विकसित किया गया था।
| name                  = uIP
| title                  =
| logo                  = <!-- [[File: ]] -->
| logo caption          =
| screenshot            = <!-- [[File: ]] -->
| caption                =
| collapsible            =
| author                =
| developer              =
| released              = <!-- {{Start date|YYYY|MM|DD|df=yes/no}} -->
| discontinued          =
| latest release version = {{wikidata|property|reference|P348}}
| latest release date    = {{start date and age|{{wikidata|qualifier|P348|P577}}}}
| latest preview version =
| latest preview date    = <!-- {{Start date and age|YYYY|MM|DD|df=yes/no}} -->
| programming language  =
| operating system      =
| platform              = [[एंबेडेड सिस्टम्स]]
| size                  =
| language              =
| genre                  = [[टीसीपी/आईपी]] स्टैक
| license                = बीएसडी
}}
'''यूआईपी''' 8-बिट तथा 16-बिट के छोटे [[माइक्रोकंट्रोलर्स|माइक्रोकंट्रोलर]] के साथ उपयोग के लिए टीसीपी/आईपी नेटवर्क प्रोटोकॉल स्टैक का एक [[ खुला स्रोत सॉफ्टवेयर |ओपन-सोर्स]] कार्यान्वयन है। '''इसे शुरू में [[स्वीडिश इंस्टीट्यूट ऑफ कंप्यूटर साइंस]] में नेटवर्क्ड एंबेडेड सिस्टम्स समूह के [[एडम डंकल्स]] द्वारा विकसित किया गया था, जिसे बीएसडी स्टाइल लाइसेंस के तहत लाइसेंस दिया गया था, और आगे डेवलपर्स के एक विस्तृत समूह द्वारा विकसित किया गया था।'''


[[ अंतः स्थापित प्रणाली |एम्बेडेड सिस्टम]] में यूआईपी अधिक उपयोगी हो सकता है क्योंकि इसके लिए न्यूनतम कोड तथा रैम की आवश्यकता होती है। इसे [[ अंकीय संकेत प्रक्रिया |डीएसपी]] प्लेटफॉर्म सहित <ref name="maxim-app-note" /><ref name="cyan-app-note" /><ref name="olimex" />अनेक प्लेटफ़ॉर्म पर पोर्ट किया गया है।<ref name="inside-uip" />
[[ अंतः स्थापित प्रणाली |अंत: स्थापित प्रणाली]] में यूआईपी अधिक उपयोगी हो सकता है क्योंकि इसके लिए न्यूनतम कोड तथा रैम की आवश्यकता होती है। इसे [[ अंकीय संकेत प्रक्रिया |डीएसपी]] प्लेटफॉर्म सहित <ref name="maxim-app-note" /><ref name="cyan-app-note" /><ref name="olimex" />अनेक प्लेटफ़ॉर्म पर पोर्ट किया गया है।<ref name="inside-uip" />


अक्टूबर वर्ष 2008 में, [[सिस्को]], [[एटमेल]] तथा [[एसआईसीएस]] ने यूआईपी के लिए पूर्णतया अनुपालित [[आईपीवीएसएच|आईपीवी6]] एक्सटेंशन की घोषणा की, जिसे यूआईपीवी6 कहा जाता है।<ref name="Cisco-PR" />
अक्टूबर वर्ष 2008 में, [[सिस्को]], [[एटमेल]] तथा [[एसआईसीएस]] ने यूआईपी के लिए पूर्णतया अनुपालित [[आईपीवीएसएच|आईपीवी6]] एक्सटेंशन की घोषणा की, जिसे यूआईपीवी6 कहा जाता है।<ref name="Cisco-PR" />
==कार्यान्वयन==
==कार्यान्वयन==


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


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


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


यूआईपी पूर्णतया आरएफसी के अनुरूप है जो [[ प्रसारण नियंत्रण प्रोटोकॉल |टीसीपी]], [[डेटाग्राम प्रोटेकॉलका उपयोग करें|यूडीपी]] और [[इंटरनेट प्रोटोकॉल]] को परिभाषित करता है। यह आवश्यक अनुरक्षण प्रोटोकॉल [[ इंटरनेट नियंत्रण संदेश प्रोटोकॉल |आईसीएमपी]] को भी प्रयुक्त करता है।
यूआईपी पूर्णतया आरएफसी के अनुरूप है जो [[ प्रसारण नियंत्रण प्रोटोकॉल |टीसीपी]], [[डेटाग्राम प्रोटेकॉलका उपयोग करें|यूडीपी]] और [[इंटरनेट प्रोटोकॉल]] को परिभाषित करता है। यह आवश्यक अनुरक्षण प्रोटोकॉल [[ इंटरनेट नियंत्रण संदेश प्रोटोकॉल |आईसीएमपी]] को भी प्रयुक्त करता है।


==संस्करण==
==संस्करण==
'''यूआईपी 0.9<ref name="uip-0.9" />ऑपरेटिंग सिस्टम पर सबसे कम निर्भरता वाला संस्करण, सबसे कम संसाधन उपयोग वाला संस्करण है, और एकमात्र संस्करण जो शुद्ध इवेंट लूप [[एपीआई]] प्रस्तुत करता है, लेकिन अपने मूल रूप में आईपी संस्करण 6 का समर्थन नहीं करता है, केवल पुराने, अधिक सामान्य आईपीवी4 का समर्थन करता है।''' इसका उपयोग अत्यधिक न्यूनतम संसाधनों के साथ एम्बेडेड सिस्टम में किया जा सकता है।
यूआईपी 0.9<ref name="uip-0.9" />ऑपरेटिंग प्रणाली पर सबसे कम निर्भरता एवं सबसे कम संसाधन उपयोग वाला संस्करण है और यह एकमात्र संस्करण है जो शुद्ध घटना लूप एपीआई प्रस्तुत करता है किंतु अपने मूल रूप में आईपी संस्करण 6 का समर्थन नहीं करता है एवं केवल पुराने अधिक सामान्य आईपीवी4 का समर्थन करता है। इसका उपयोग अत्यधिक न्यूनतम संसाधनों के साथ अंत: स्थापित तंत्र में किया जा सकता है।
 
इसे उच्च-स्तरीय प्रोटोकॉल के उदाहरणों के एक सेट के साथ वितरित किया गया था जो [[HTTP]] (एक साधारण वेब सर्वर), [[एसएमटीपी]] (सिंपल मेल ट्रांसमिशन प्रोटोकॉल), [[एफ़टीपी]] (फ़ाइल ट्रांसफर प्रोटोकॉल), [[टेलनेट]] (टर्मिनल इम्यूलेशन) सहित अन्य इवेंट लूप सिस्टम पर भी चलता है।  उदाहरणों और इसके न्यूनतम आकार के बाद भी, यूआईपी 0.9 को प्रयुक्त करना कठिन हो सकता है क्योंकि यह सॉकेट एपीआई के किसी भी रूप का उपयोग नहीं करता है।<ref>See Dunkel's original web site, above, on the wayback machine.</ref>


यूआईपी सुप्रसिद्ध कमजोरियों के साथ व्यापक रूप से उपयोग किया जाने वाला कोड है। डिज़ाइन 32-बिट अंकगणित को छोटा और अलग करता है ताकि इसे 8 और 16-बिट सीपीयू के लिए समायोजित या अनुकूलित किया जा सके। इसके अलावा, 16-बिट सॉफ़्टवेयर टाइमर (छोटे माइक्रोकंट्रोलर पर आम) [[पूर्णांक अतिप्रवाह]] कर सकते हैं और दोषपूर्ण संचालन का कारण बन सकते हैं। इसे एक टाइमर प्रणाली के साथ ठीक किया जा सकता है जो अतिप्रवाह नहीं करता है (उदाहरण के लिए टाइमर उलटी गिनती करते हैं या [[मॉड्यूलर अंकगणित]] का उपयोग करते हैं)।
इसे उच्च-स्तरीय प्रोटोकॉल के उदाहरणों के एक सेट के साथ वितरित किया गया था जो [[HTTP|एचटीटीपी]] (एक साधारण वेब सर्वर), [[एसएमटीपी]] (सिंपल मेल ट्रांसमिशन प्रोटोकॉल), [[एफ़टीपी]] (फ़ाइल ट्रांसफर प्रोटोकॉल), [[टेलनेट]] (टर्मिनल इम्यूलेशन) सहित अन्य इवेंट लूप सिस्टम पर भी चलता है।  उदाहरणों और इसके न्यूनतम आकार के बाद भी, यूआईपी 0.9 को प्रयुक्त करना कठिन हो सकता है क्योंकि यह सॉकेट एपीआई के किसी भी रूप का उपयोग नहीं करता है।<ref>See Dunkel's original web site, above, on the wayback machine.</ref>


एक और मुद्दा यह है कि इसके एकल पैकेट बफर में पर्याप्त थ्रूपुट समस्याएं हो सकती हैं क्योंकि एक पीसी होस्ट आमतौर पर अधिक पैकेट की प्रतीक्षा में एसीके पैकेट में देरी करता है। धीमे, [[ आनुक्रमिक द्वार ]] कार्यान्वयन में, प्रत्येक पैकेट को दो आधे-पैकेट टुकड़ों के रूप में भेजने के लिए यूआईपी को संशोधित करके एके-थ्रूपुट को ठीक किया जा सकता है। तेज़ [[ईथरनेट]] या [[ वाईफ़ाई ]] वाले यूआईपी सिस्टम प्रत्येक पैकेट को दो बार भेजने के लिए हार्डवेयर ड्राइवर को संशोधित कर सकते हैं।<ref name="inside-uip" />
यूआईपी सुप्रसिद्ध कमजोरियों के साथ व्यापक रूप से उपयोग किया जाने वाला कोड है। डिज़ाइन 32-बिट अंकगणित को न्यूनतम और अलग करता है जिससे कि इसे 8 बिट तथा 16-बिट सीपीयू के लिए समायोजित या अनुकूलित किया जा सके। इसके अतिरिक्त, 16-बिट सॉफ़्टवेयर टाइमर (लघुतम माइक्रोकंट्रोलर पर सामान्य) [[पूर्णांक अतिप्रवाह|ओवरफ्लो]] कर सकते हैं और त्रुटिपूर्ण संचालन का कारण बन सकते हैं। इसे एक टाइमर सिस्टम के साथ ठीक किया जा सकता है जो ओवरफ्लो नहीं करता है (उदाहरण के लिए टाइमर अवगणन या [[मॉड्यूलर अंकगणित]] का उपयोग करते हैं)।


कुछ पीसी स्थानीय ईथरनेट पर तेज़ यूआईपी सिस्टम पर सही ढंग से प्रतिक्रिया नहीं देते हैं, क्योंकि पीसी को प्राप्त करने के लिए तैयार होने से पहले यूआईपी सिस्टम एक प्रतिक्रिया पैकेट शुरू कर सकता है।{{Dubious|date=November 2015}} समाधान मुख्य लूप में यूआईपी सिस्टम को कम बार कॉल करना है (विंडोज पीसी लगभग 1 मिलीसेकंड के प्रतिक्रिया समय के लिए डिज़ाइन किए गए हैं)। यूआईपी के विशिष्ट कार्यान्वयन में एक निश्चित आईपी पता होता है, जो उन्हें वास्तविक नेटवर्क में अव्यवहारिक बना सकता है, हालांकि कुछ ने [[डीएचसीपी]] लागू किया है।<ref>[http://support.code-red-tech.com/CodeRedWiki/VersionInfo See Code-Red sample code for the RDB4078 PCB, 2012].</ref><ref>Dunkel provided sample code for DHCP.</ref>
एक और विवाद यह है कि इसके एकल पैकेट बफर में पर्याप्त साद्यांत (थ्रूपुट) समस्याएं हो सकती हैं क्योंकि एक पीसी होस्ट सामान्यतः अधिक पैकेट की प्रतीक्षा में "एसीके" पैकेट में विलम्ब करता है। धीरे धीरे, [[ आनुक्रमिक द्वार |सीरियल पोर्ट]] कार्यान्वयन में प्रत्येक पैकेट को दो हॉफ-पैकेट टुकड़ों के रूप में भेजने के लिए यूआईपी को संशोधित करके एसीके-थ्रूपुट को ठीक किया जा सकता है। अधिक गति के [[ईथरनेट]] या [[ वाईफ़ाई |वाईफ़ाई]] वाले यूआईपी सिस्टम प्रत्येक पैकेट को दो बार भेजने के लिए हार्डवेयर ड्राइवर को संशोधित कर सकते हैं।<ref name="inside-uip" />
यूआईपी के बाद के संस्करण, जिसमें यूआईपीवी6 का संदर्भ संस्करण भी शामिल है, [[ बंद करना ]] के साथ एकीकृत है, एक ऑपरेटिंग सिस्टम जो सहकारी मल्टीटास्किंग के लिए [[coroutine]] का उपयोग करता है। कॉन्टिकी यूआईपी के उपयोग को सरल बनाते हुए एक सरलीकृत सॉकेट एपीआई द्वारा आवश्यक मल्टीटास्किंग प्रदान करता है। हालाँकि ये संस्करण 0.9 से कम लोकप्रिय हो सकते हैं। एम्बेडेड कोड के कई उदाहरण उनका उपयोग नहीं करते हैं।<ref>Metzinger, above</ref><ref>[http://www.freertos.org/RTOS_ports.html FreeRTOS web site examples, 2013]</ref><ref>Code-Red examples, above.</ref>


कुछ पीसी स्थानीय ईथरनेट पर तीव्रगामी यूआईपी सिस्टम पर उचित प्रकार से प्रतिक्रिया नहीं देते हैं, क्योंकि पीसी को प्राप्त करने के लिए तैयार होने से पूर्व यूआईपी सिस्टम एक प्रतिक्रिया पैकेट प्रारम्भ कर सकता है।{{Dubious|date=November 2015}} इसका समाधान यह है कि यूआईपी सिस्टम को मुख्य लूप में न्यूनतम कॉल किया जाए (विंडोज पीसी लगभग 1 मिलीसेकंड के प्रतिक्रिया समय के लिए डिज़ाइन किए गए हैं)। यूआईपी के विशिष्ट कार्यान्वयन में एक निश्चित आईपी एड्रेस होता है, जो उन्हें वास्तविक नेटवर्क में अव्यावहारिक बना सकता है, हालांकि कुछ ने [[डीएचसीपी]] प्रयुक्त किया है।<ref>[http://support.code-red-tech.com/CodeRedWiki/VersionInfo See Code-Red sample code for the RDB4078 PCB, 2012].</ref><ref>Dunkel provided sample code for DHCP.</ref>


यूआईपी के पश्चात के संस्करण, जिसमें यूआईपीवी6 का संदर्भ संस्करण भी सम्मिलित है, कॉन्टिकी एक ऑपरेटिंग सिस्टम के साथ एकीकृत है जो सहयोगी मल्टीटास्किंग के लिए [[coroutine|कोरूटीन]] का उपयोग करता है। कॉन्टिकी यूआईपी के उपयोग को सरल बनाकर एक सरलीकृत सॉकेट एपीआई द्वारा आवश्यक मल्टीटास्किंग प्रदान करता है। हालाँकि ये संस्करण 0.9 से कम लोकप्रिय हो सकते हैं। एम्बेडेड कोड के अनेक उदाहरण उनका उपयोग नहीं करते हैं।<ref>Metzinger, above</ref><ref>[http://www.freertos.org/RTOS_ports.html FreeRTOS web site examples, 2013]</ref><ref>Code-Red examples, above.</ref>
==यह भी देखें==
==यह भी देखें==
* [[इंटरनेट इंजीनियरिंग टास्क फोर्स]]
* [[इंटरनेट इंजीनियरिंग टास्क फोर्स]]
* [[टीसीपी और यूडीपी पोर्ट नंबरों की सूची|टीसीपी और यूडीपी पोर्ट संख्याओं की सूची]]
* [[टीसीपी और यूडीपी पोर्ट नंबरों की सूची|टीसीपी और यूडीपी पोर्ट संख्याओं की सूची]]
* [[एलडब्ल्यूआईपी]] - एक अन्य टीसीपी/आईपी स्टैक प्रोजेक्ट (डंकल्स द्वारा भी बनाया गया), लेकिन अधिक पूर्ण रूप से चित्रित और अधिक सक्षम हार्डवेयर के उद्देश्य से
* [[एलडब्ल्यूआईपी]] - एक अन्य टीसीपी/आईपी स्टैक प्रोजेक्ट (डंकल्स द्वारा भी निर्मित), किन्तु अधिक पूर्ण रूप से चित्रित और अधिक सक्षम हार्डवेयर के उद्देश्य से


==संदर्भ==
==संदर्भ==
Line 117: Line 92:
[[Category: Machine Translated Page]]
[[Category: Machine Translated Page]]
[[Category:Created On 15/08/2023]]
[[Category:Created On 15/08/2023]]
[[Category:Vigyan Ready]]

Latest revision as of 09:29, 13 December 2023

यूआईपी 8-बिट तथा 16-बिट के छोटे माइक्रोकंट्रोलर के साथ उपयोग के लिए टीसीपी/आईपी नेटवर्क प्रोटोकॉल स्टैक का एक ओपन-सोर्स कार्यान्वयन है। इसे आरंभ में कंप्यूटर साइंस की स्वीडिश संस्था में नेटवर्क्ड संबद्ध प्रणाली समूह के एडम डंकल्स द्वारा विकसित किया गया था जिसे बीएसडी स्टाइल लाइसेंस के अंतर्गत लाइसेंस दिया गया था और आगे चलकर इसे विकासको के विस्तृत समूह द्वारा विकसित किया गया था।

अंत: स्थापित प्रणाली में यूआईपी अधिक उपयोगी हो सकता है क्योंकि इसके लिए न्यूनतम कोड तथा रैम की आवश्यकता होती है। इसे डीएसपी प्लेटफॉर्म सहित [1][2][3]अनेक प्लेटफ़ॉर्म पर पोर्ट किया गया है।[4]

अक्टूबर वर्ष 2008 में, सिस्को, एटमेल तथा एसआईसीएस ने यूआईपी के लिए पूर्णतया अनुपालित आईपीवी6 एक्सटेंशन की घोषणा की, जिसे यूआईपीवी6 कहा जाता है।[5]

कार्यान्वयन

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

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

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

यूआईपी पूर्णतया आरएफसी के अनुरूप है जो टीसीपी, यूडीपी और इंटरनेट प्रोटोकॉल को परिभाषित करता है। यह आवश्यक अनुरक्षण प्रोटोकॉल आईसीएमपी को भी प्रयुक्त करता है।

संस्करण

यूआईपी 0.9[6]ऑपरेटिंग प्रणाली पर सबसे कम निर्भरता एवं सबसे कम संसाधन उपयोग वाला संस्करण है और यह एकमात्र संस्करण है जो शुद्ध घटना लूप एपीआई प्रस्तुत करता है किंतु अपने मूल रूप में आईपी संस्करण 6 का समर्थन नहीं करता है एवं केवल पुराने व अधिक सामान्य आईपीवी4 का समर्थन करता है। इसका उपयोग अत्यधिक न्यूनतम संसाधनों के साथ अंत: स्थापित तंत्र में किया जा सकता है।

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

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

एक और विवाद यह है कि इसके एकल पैकेट बफर में पर्याप्त साद्यांत (थ्रूपुट) समस्याएं हो सकती हैं क्योंकि एक पीसी होस्ट सामान्यतः अधिक पैकेट की प्रतीक्षा में "एसीके" पैकेट में विलम्ब करता है। धीरे धीरे, सीरियल पोर्ट कार्यान्वयन में प्रत्येक पैकेट को दो हॉफ-पैकेट टुकड़ों के रूप में भेजने के लिए यूआईपी को संशोधित करके एसीके-थ्रूपुट को ठीक किया जा सकता है। अधिक गति के ईथरनेट या वाईफ़ाई वाले यूआईपी सिस्टम प्रत्येक पैकेट को दो बार भेजने के लिए हार्डवेयर ड्राइवर को संशोधित कर सकते हैं।[4]

कुछ पीसी स्थानीय ईथरनेट पर तीव्रगामी यूआईपी सिस्टम पर उचित प्रकार से प्रतिक्रिया नहीं देते हैं, क्योंकि पीसी को प्राप्त करने के लिए तैयार होने से पूर्व यूआईपी सिस्टम एक प्रतिक्रिया पैकेट प्रारम्भ कर सकता है।[dubious ] इसका समाधान यह है कि यूआईपी सिस्टम को मुख्य लूप में न्यूनतम कॉल किया जाए (विंडोज पीसी लगभग 1 मिलीसेकंड के प्रतिक्रिया समय के लिए डिज़ाइन किए गए हैं)। यूआईपी के विशिष्ट कार्यान्वयन में एक निश्चित आईपी एड्रेस होता है, जो उन्हें वास्तविक नेटवर्क में अव्यावहारिक बना सकता है, हालांकि कुछ ने डीएचसीपी प्रयुक्त किया है।[8][9]

यूआईपी के पश्चात के संस्करण, जिसमें यूआईपीवी6 का संदर्भ संस्करण भी सम्मिलित है, कॉन्टिकी एक ऑपरेटिंग सिस्टम के साथ एकीकृत है जो सहयोगी मल्टीटास्किंग के लिए कोरूटीन का उपयोग करता है। कॉन्टिकी यूआईपी के उपयोग को सरल बनाकर एक सरलीकृत सॉकेट एपीआई द्वारा आवश्यक मल्टीटास्किंग प्रदान करता है। हालाँकि ये संस्करण 0.9 से कम लोकप्रिय हो सकते हैं। एम्बेडेड कोड के अनेक उदाहरण उनका उपयोग नहीं करते हैं।[10][11][12]

यह भी देखें

संदर्भ

  1. Metzinger, Zach (March 25, 2008). "APPLICATION NOTE 4205 - Using the uIP Stack to Network a MAXQ Microcontroller". Maxim Integrated Products, Inc. Retrieved February 2, 2015.
  2. "AN057 – uIP V1.0 TCP/IP Stack for eCOG1k and eCOG1X, Version 1.0" (PDF). Cyan Technology Ltd. January 28, 2008. Archived from the original (PDF) on February 18, 2012. Retrieved February 18, 2012.
  3. Curtis, Paul. "Adam Dunkel's uIP on the Olimex EasyWeb2 and LPC-E2124". Rowley Associates Limited. Retrieved February 2, 2015.
  4. 4.0 4.1 Barnett, Drew; Massa, Anthony J. (February 1, 2005). "Inside the uIP Stack". Dr Dobbs Journal. Retrieved February 2, 2015.
  5. "Cisco, Atmel and the Swedish Institute of Computer Science (SICS) Collaborate to Support a Future Where Any Device Can Be Connected to the Internet". Cisco. October 14, 2008. Retrieved February 2, 2015.
  6. Dunkels, Adam. "Tagged releases". uIP tagged releases on GitHub. Retrieved February 2, 2015.
  7. See Dunkel's original web site, above, on the wayback machine.
  8. See Code-Red sample code for the RDB4078 PCB, 2012.
  9. Dunkel provided sample code for DHCP.
  10. Metzinger, above
  11. FreeRTOS web site examples, 2013
  12. Code-Red examples, above.


बाहरी संबंध