UIP (software)
यू. आई. पी. टी. सी. पी./आई. पी. नेटवर्क प्रोटोकॉल स्टैक का एक ओपन-सोर्स कार्यान्वयन है जिसका उद्देश्य छोटे 8-और 16-बिट माइक्रोकंट्रोलरों के साथ उपयोग करना है। इसे शुरू में स्वीडिश इंस्टीट्यूट ऑफ कंप्यूटर साइंस में नेटवर्क एम्बेडेड सिस्टम समूह के एडम डंकेल्स द्वारा विकसित किया गया था, जिसे बीएसडी स्टाइल लाइसेंस के तहत लाइसेंस दिया गया था, और आगे डेवलपर्स के एक विस्तृत समूह द्वारा विकसित किया गया था। यू. आई. पी. अंतःस्थापित प्रणालियों में बहुत उपयोगी हो सकता है क्योंकि इसके लिए बहुत कम मात्रा में कोड और आर. ए. एम. की आवश्यकता होती है। इसे डी. एस. पी. प्लेटफार्मों सहित कई प्लेटफार्मों पर पोर्ट किया गया है। अक्टूबर 2008 में, सिस्को, एटमेल और एस. आई. सी. एस. ने यू. आई. पी. के लिए एक पूरी तरह से अनुरूप आई. पी. वी. 6 विस्तार की घोषणा की, जिसे यू. आई. पी. वी. 6 कहा जाता है। कार्यान्वयन यू. आई. पी. आवश्यक संसाधनों को कम करने के लिए कई असामान्य डिजाइन विकल्प बनाता है। यू. आई. पी. का मूल सॉफ्टवेयर इंटरफेस छोटे कंप्यूटर प्रणालियों के लिए बनाया गया है जिसमें कोई ऑपरेटिंग सिस्टम नहीं है। इसे एक समयबद्ध लूप में कॉल किया जा सकता है, और कॉल सभी पुनः प्रयासों और अन्य नेटवर्क व्यवहार का प्रबंधन करता है। यू. आई. पी. बुलाए जाने के बाद हार्डवेयर ड्राइवर को बुलाया जाता है। यू. आई. पी. पैकेट बनाता है, और फिर चालक इसे भेजता है, और वैकल्पिक रूप से प्रतिक्रिया प्राप्त करता है। आई. पी. प्रोटोकॉल स्टैक सॉफ्टवेयर के लिए विभिन्न आई. पी. पैकेटों की कई प्रतियां रखना, संचरण, ग्रहण के लिए और यदि उन्हें वापस लेने की आवश्यकता होती है तो प्रतियां रखना सामान्य है। यू. आई. पी. स्मृति के उपयोग में किफायती है क्योंकि यह केवल एक पैकेट बफर का उपयोग करता है। सबसे पहले, यह पैकेट बफर का उपयोग आधा-डुप्लेक्स तरीके से करता है, इसका उपयोग संचरण और स्वागत के लिए किया जाता है। इसके अलावा, जब यू. आई. पी. को एक पैकेट को फिर से प्रसारित करने की आवश्यकता होती है, तो यह आवेदन कोड को इस तरह से कॉल करता है जो पिछले डेटा को पुनः प्रस्तुत करने का अनुरोध करता है। एक अन्य विचित्रता यह है कि यू. आई. पी. कनेक्शनों का प्रबंधन कैसे करता है। अधिकांश आई. पी. कार्यान्वयन में प्रति कनेक्शन एक कार्य होता है, और कार्य कनेक्शन के दूसरे छोर पर एक दूर के कंप्यूटर में एक कार्य के साथ संवाद करता है। यू. आई. पी. में कोई मल्टीटास्किंग ऑपरेटिंग सिस्टम नहीं माना जाता है। कनेक्शन एक सरणी में आयोजित किए जाते हैं। प्रत्येक कॉल पर, यू. आई. पी. एक कनेक्शन देने की कोशिश करता है, एप्लिकेशन कोड पर एक सबरूटीन कॉल करता है जो जवाब देता है, या डेटा भेजता है। कनेक्शन सरणी का आकार एक संख्या है जिसे यू. आई. पी. के पुनः संकलित होने पर समायोजित किया जा सकता है। यू. आई. पी. पूरी तरह से आर. एफ. सी. के अनुरूप है जो टी. सी. पी., यू. डी. पी. और आई. पी. को परिभाषित करता है। यह अनिवार्य रखरखाव प्रोटोकॉल आई. सी. एम. पी. को भी लागू करता है। संस्करण यू. आई. पी. 0.9 ऑपरेटिंग सिस्टम पर कम से कम निर्भरता वाला संस्करण है, सबसे छोटा संसाधन उपयोग, और एकमात्र संस्करण जो एक शुद्ध घटना लूप ए. पी. आई. प्रस्तुत करता है, लेकिन अपने मूल रूप में आई. पी. संस्करण 6 का समर्थन नहीं करता है, केवल पुराना, अधिक सामान्य आई. पी. वी. 4। इसका उपयोग बहुत कम मात्रा में संसाधनों के साथ अंतर्निहित प्रणालियों में किया जा सकता है। इसे उच्च-स्तरीय प्रोटोकॉल के उदाहरणों के एक समूह के साथ वितरित किया गया था जो एक इवेंट लूप सिस्टम पर भी चलता है, जिसमें एचटीटीपी (एक साधारण वेब सर्वर), एसएमटीपी (सरल मेल संचरण प्रोटोकॉल), एफटीपी (फाइल स्थानांतरण प्रोटोकॉल), टेलनेट (टर्मिनल एमुलेशन) और अन्य शामिल हैं। उदाहरणों और इसके छोटे आकार के बावजूद, यू. आई. पी. 0.9 को लागू करना मुश्किल हो सकता है क्योंकि यह किसी भी प्रकार के साकेट ए. पी. आई. का उपयोग नहीं करता है। यू. आई. पी. व्यापक रूप से प्रसिद्ध कमजोरियों के साथ उपयोग किया जाने वाला कोड है। डिजाइन 32-बिट अंकगणित को न्यूनतम और अलग करता है ताकि इसे 8 और 16-बिट सीपीयू के लिए समायोजित या अनुकूलित किया जा सके। इसके अलावा, 16-बिट सॉफ्टवेयर टाइमर (छोटे माइक्रोकंट्रोलर पर आम) अतिप्रवाह हो सकते हैं और दोषपूर्ण संचालन का कारण बन सकते हैं। इसे एक टाइमर प्रणाली के साथ ठीक किया जा सकता है जो अतिप्रवाह नहीं करता है (जैसे। टाइमर गिनती करते हैं या मॉड्यूलर अंकगणित का उपयोग करते हैं)। एक अन्य समस्या यह है कि इसके एकल पैकेट बफर में पर्याप्त थ्रूपुट समस्याएं हो सकती हैं क्योंकि एक पीसी होस्ट आमतौर पर अधिक पैकेटों की प्रतीक्षा करते हुए "एसीके" पैकेट में देरी करता है। धीमी, क्रमिक पोर्ट कार्यान्वयन में, प्रत्येक पैकेट को दो अर्ध-पैकेट टुकड़ों के रूप में भेजने के लिए यू. आई. पी. को संशोधित करके एक-थ्रूपुट को ठीक किया जा सकता है। तेज ईथरनेट या वाईफाई के साथ यू. आई. पी. सिस्टम प्रत्येक पैकेट को दो बार भेजने के लिए हार्डवेयर ड्राइवर को संशोधित कर सकते हैं। कुछ पीसी स्थानीय ईथरनेट पर एक तेज यू. आई. पी. प्रणाली के लिए सही ढंग से प्रतिक्रिया नहीं करते हैं, क्योंकि यू. आई. पी. प्रणाली पीसी के प्राप्त करने के लिए तैयार होने से पहले एक प्रतिक्रिया पैकेट शुरू कर सकती है। समाधान यह है कि मुख्य लूप में यू. आई. पी. प्रणाली को कम बार कॉल किया जाए (विंडोज पी. सी. को लगभग 1 मिलीसेकंड के प्रतिक्रिया समय के लिए डिज़ाइन किया गया है)। यू. आई. पी. के विशिष्ट कार्यान्वयन में एक निश्चित आई. पी. पता होता है, जो उन्हें वास्तविक नेटवर्क में अव्यावहारिक बना सकता है, हालांकि कुछ ने डी. एच. सी. पी. को लागू किया है। यू. आई. पी. वी. 6 के संदर्भ संस्करण सहित यू. आई. पी. के बाद के संस्करणों को कॉन्टिकी के साथ एकीकृत किया गया है, जो एक ऑपरेटिंग सिस्टम है जो सहकारी मल्टीटास्किंग के लिए कोरोटीन का उपयोग करता है। कॉन्टिकी यू. आई. पी. के उपयोग को सरल बनाते हुए एक सरलीकृत साकेट ए. पी. आई. द्वारा आवश्यक बहु-कार्य प्रदान करता है। हालाँकि ये संस्करण 0.9 से कम लोकप्रिय हो सकते हैं। एम्बेडेड कोड के कई उदाहरण उनका उपयोग नहीं करते हैं। टी. सी. पी. और यू. डी. पी. पोर्ट संख्या एल. डब्ल्यू. आई. पी. की इंटरनेट इंजीनियरिंग टास्क फोर्स सूची भी देखें-एक अन्य टी. सी. पी./आई. पी. स्टैक परियोजना (जिसे डंकेल्स द्वारा भी बनाया गया है), लेकिन अधिक पूरी तरह से विशेषताओं वाला और अधिक सक्षम हार्डवेयर संदर्भों के उद्देश्य से बाहरी लिंक यू. आई. पी. स्रोत यू. आई. पी. पोर्ट ए. वी. आर. माइक्रोकंट्रोलर यू. आई. पी.-आधारित वेब सर्वर ओपन. आर. आई. एस. सी.-एम्बेडेड एस. ओ. सी. एम्बेडेड सिस्टम का उपयोग करके बी. एस. डी. लाइसेंस का उपयोग करके मुक्त नेटवर्क-संबंधित सॉफ्टवेयर सॉफ्टवेयर