पृष्ठभूमि और प्रौद्योगिकी सहित विंसॉक का परिचय
Introduction Winsock Including Background Technology
यह पोस्ट मुख्य रूप से विंडोज सॉकेट एपीआई के बारे में बात कर रही है, जिसे WSA और Winsock तक छोटा किया जा सकता है। इस पोस्ट को पढ़ने के बाद आप इसकी परिभाषा, पृष्ठभूमि, तकनीक के साथ-साथ कार्यान्वयन भी जान सकते हैं।
इस पृष्ठ पर :विंसॉक की परिभाषा
विंसॉक क्या है? कंप्यूटिंग में, विंसॉक एक तकनीकी विनिर्देश है जिसका उपयोग यह परिभाषित करने के लिए किया जाता है कि विंडोज नेटवर्क सॉफ़्टवेयर को नेटवर्क सेवाओं, विशेष रूप से टीसीपी /आईपी तक कैसे पहुंचना चाहिए। इसे विंसॉक कहा जाता है क्योंकि यह विंडोज़ के लिए बर्कले यूनिक्स सॉकेट इंटरफ़ेस का एक अनुकूलन है। सॉकेट एक विशेष समझौता है जिसका उपयोग एक ही कंप्यूटर या नेटवर्क पर दो प्रोग्राम प्रक्रियाओं के बीच डेटा को जोड़ने और आदान-प्रदान करने के लिए किया जाता है।
बख्शीश: यदि आप अन्य इंटरनेट प्रोटोकॉल के बारे में अधिक जानकारी जानना चाहते हैं, तो मिनीटूल वेबसाइट पर जाने की सलाह दी जाती है।
विंसॉक विंडोज सॉकेट एपीआई (डब्ल्यूएसए) का संक्षिप्त रूप है। यह विंडोज़ टीसीपी/आईपी क्लाइंट अनुप्रयोगों (जैसे एफ़टीपी क्लाइंट या वेब ब्राउज़र) और बुनियादी टीसीपी/आईपी प्रोटोकॉल स्टैक के बीच मानक इंटरफ़ेस को परिभाषित करता है।
संबंधित पोस्ट: विंडोज़ 10 नेटवर्क समस्या को ठीक करने के लिए नेटश विंसॉक रीसेट कमांड का उपयोग करें
विंसॉक की पृष्ठभूमि
विंडोज़ सॉकेट एपीआई को अक्टूबर 1991 में कंप्यूसर्व बीबीएस नेटवर्क पर बीओएफ (बर्ड ऑफ ए फेदर) चर्चा में जेएसबी सॉफ्टवेयर (बाद में स्टारडस्ट टेक्नोलॉजीज) के मार्टिन हॉल द्वारा प्रस्तावित किया गया था।
विनिर्देश का पहला संस्करण मार्टिन हॉल, माइक्रोडाइन (बाद में सन माइक्रोसिस्टम्स) के मार्क तौफीक, सन माइक्रोसिस्टम्स के ज्योफ अर्नोल्ड और माइक्रोसॉफ्ट के हेनरी सैंडर्स और जे एलार्ड ने कई अन्य लोगों की मदद से लिखा था।
कॉपीराइट, बौद्धिक संपदा और संभावित अविश्वास मुद्दों को सर्वोत्तम तरीके से कैसे हल किया जाए, और IETF या गैर-लाभकारी फाउंडेशनों की स्थापना के माध्यम से काम पर विचार करने पर कुछ चर्चाएं हुईं। अंत में, यह निर्णय लिया गया कि विनिर्देश को केवल पाँच (असंबद्ध) लेखकों द्वारा कॉपीराइट किया जाना चाहिए।
सभी भाग लेने वाले डेवलपर्स ने लंबे समय तक नाम को केवल विंसॉक में संक्षिप्त करने से इनकार कर दिया क्योंकि एपीआई और डीएलएल लाइब्रेरी फ़ाइल (winsock.dll) के बीच बहुत भ्रम था, जिसने केवल इसके ऊपर के एप्लिकेशन के लिए सामान्य WSA इंटरफ़ेस को उजागर किया था। आम तौर पर यह माना जाता है कि केवल यह सुनिश्चित करना कि सिस्टम पर डीएलएल फ़ाइल मौजूद है, पूर्ण टीसीपी/आईपी प्रोटोकॉल समर्थन प्रदान कर सकता है।
विंसॉक की तकनीक
विंडोज सॉकेट एपीआई विनिर्देश दो इंटरफेस को परिभाषित करता है: एप्लिकेशन डेवलपर्स द्वारा उपयोग किया जाने वाला एपीआई, और एसपीआई जो नेटवर्क सॉफ्टवेयर डेवलपर्स को सिस्टम में नए प्रोटोकॉल मॉड्यूल जोड़ने के लिए एक विधि प्रदान करता है। प्रत्येक इंटरफ़ेस एक अनुबंध का प्रतिनिधित्व करता है।
एपीआई गारंटी देता है कि अनुरूप अनुप्रयोग किसी भी नेटवर्क सॉफ़्टवेयर विक्रेता के अनुरूप प्रोटोकॉल कार्यान्वयन के साथ सामान्य रूप से चल सकते हैं। एसपीआई अनुबंध गारंटी देता है कि अनुरूप प्रोटोकॉल मॉड्यूल को विंडोज़ में जोड़ा जा सकता है ताकि उनका उपयोग एपीआई-अनुपालक अनुप्रयोगों द्वारा किया जा सके।
हालाँकि जब विंडोज़ सॉकेट पहली बार जारी किया गया था तब ये अनुबंध महत्वपूर्ण थे, अब वे केवल अकादमिक महत्व के हैं क्योंकि नेटवर्क वातावरण को मल्टी-प्रोटोकॉल समर्थन की आवश्यकता होती है। विंडोज़ सॉकेट्स एपीआई संस्करण 2.0 में आईपीएक्स/एसपीएक्स का उपयोग करने का कार्य शामिल है, हालाँकि जब डब्ल्यूएसए 2.0 ने फैक्ट्री छोड़ी तो यह प्रोटोकॉल लगभग अप्रचलित था।
विंडोज़ सॉकेट कोड और डिज़ाइन बीएसडी सॉकेट पर आधारित हैं, लेकिन एपीआई को पारंपरिक विंडोज़ प्रोग्रामिंग मॉडल के अनुरूप बनाने की अनुमति देने के लिए अतिरिक्त सुविधाएँ प्रदान की जाती हैं।
विंडोज सॉकेट एपीआई ने बीएसडी सॉकेट एपीआई की लगभग सभी विशेषताओं को कवर किया है, लेकिन कुछ अपरिहार्य बाधाएं हैं, जो मुख्य रूप से विंडोज और यूनिक्स के बीच मूलभूत अंतर के कारण थीं (हालांकि विंडोज सॉकेट और बीएसडी सॉकेट के बीच का अंतर उनके बीच के अंतर से कम था) उत्तरार्द्ध और धाराएँ)।
हालाँकि, विंडोज़ सॉकेट का डिज़ाइन लक्ष्य डेवलपर्स के लिए सॉकेट-आधारित अनुप्रयोगों को यूनिक्स से विंडोज़ में पोर्ट करना अपेक्षाकृत आसान बनाना था। एपीआई बनाना पर्याप्त नहीं था जो केवल नए लिखे गए विंडोज़ प्रोग्रामों के लिए उपयोगी था।
इसलिए, विंडोज़ सॉकेट में पोर्टिंग की सुविधा के लिए डिज़ाइन किए गए कई तत्व शामिल थे। उदाहरण के लिए, यूनिक्स एप्लिकेशन नेटवर्क त्रुटियों और मानक सी लाइब्रेरी फ़ंक्शंस में पाई गई त्रुटियों को लॉग करने के लिए समान इरनो वैरिएबल का उपयोग कर सकते हैं।
चूंकि इसे विंडोज़ में लागू नहीं किया जा सकता है, इसलिए विंडोज़ सॉकेट्स ने त्रुटि जानकारी प्राप्त करने के लिए एक विशेष फ़ंक्शन, WSAGetLastError() पेश किया है। ऐसा तंत्र बहुत मददगार था, लेकिन एप्लिकेशन पोर्टिंग अभी भी बेहद जटिल थी।
कई आदिम टीसीपी/आईपी अनुप्रयोगों को यूनिक्स के लिए विशिष्ट सिस्टम सुविधाओं (जैसे छद्म टर्मिनल और फोर्क सिस्टम कॉल) का उपयोग करके कार्यान्वित किया गया है, और विंडोज़ में इस फ़ंक्शन को पुन: उत्पन्न करना समस्याग्रस्त था। अपेक्षाकृत कम समय में, पोर्टिंग ने समर्पित विंडोज़ अनुप्रयोगों के विकास का मार्ग प्रशस्त किया।
विंसॉक का कार्यान्वयन
- Microsoft ने Winsock 1.0 का कार्यान्वयन प्रदान नहीं किया।
- विंसॉक का संस्करण 1.1 विंडोज़ फॉर वर्कग्रुप्स (कोड नाम स्नोबॉल) के लिए एक ऐड-ऑन पैकेज (जिसे वूल्वरिन कहा जाता है) में प्रदान किया गया था।
- विंसॉक संस्करण 2.1 विंडोज 95 के लिए ऐड-ऑन पैकेज में प्रदान किया गया था।
- Winsock 2.x का नवीनतम संस्करण नए Windows संस्करण के साथ या सर्विस पैक के भाग के रूप में प्रदान किया गया है।
- विंसॉक 2 को लेयर्ड सर्विस प्रोवाइडर (एलएसपी) नामक एक तंत्र के माध्यम से बढ़ाया जा सकता है।