پس منظر اور ٹیکنالوجی سمیت ونساک کا تعارف
Introduction Winsock Including Background Technology
یہ پوسٹ بنیادی طور پر ونڈوز ساکٹ API کے بارے میں بات کر رہی ہے، جسے WSA اور Winsock میں مختصر کیا جا سکتا ہے۔ اس پوسٹ کو پڑھنے کے بعد، آپ اس کی تعریف، پس منظر، ٹیکنالوجی کے ساتھ ساتھ عمل درآمد کو جان سکتے ہیں۔
اس صفحہ پر:ونساک کی تعریف
Winsock کیا ہے؟ کمپیوٹنگ میں، ونساک ایک تکنیکی تصریح ہے جس کا استعمال اس بات کی وضاحت کے لیے کیا جاتا ہے کہ ونڈوز نیٹ ورک سافٹ ویئر کو نیٹ ورک سروسز، خاص طور پر TCP/IP تک کیسے رسائی حاصل کرنی چاہیے۔ اسے Winsock کہا جاتا ہے کیونکہ یہ برکلے UNIX ساکٹ انٹرفیس کو ونڈوز میں موافقت کرتا ہے۔ ایک ساکٹ ایک خاص معاہدہ ہے جو ایک ہی کمپیوٹر یا نیٹ ورک پر دو پروگرام کے عمل کے درمیان ڈیٹا کو جوڑنے اور تبادلے کے لیے استعمال ہوتا ہے۔
ٹپ: اگر آپ دوسرے انٹرنیٹ پروٹوکول کے بارے میں مزید معلومات جاننا چاہتے ہیں، تو MiniTool ویب سائٹ پر جانے کی سفارش کی جاتی ہے۔
Winsock Windows Sockets API (WSA) کا مخفف ہے۔ یہ ونڈوز TCP/IP کلائنٹ ایپلی کیشنز (جیسے FTP کلائنٹس یا ویب براؤزرز) اور بنیادی TCP/IP پروٹوکول اسٹیک کے درمیان معیاری انٹرفیس کی وضاحت کرتا ہے۔
متعلقہ پوسٹ: ونڈوز 10 نیٹ ورک کا مسئلہ حل کرنے کے لیے Netsh Winsock Reset کمانڈ استعمال کریں۔
ونساک کا پس منظر
Windows Sockets API کی تجویز JSB سافٹ ویئر (بعد میں سٹارڈسٹ ٹیکنالوجیز) کے مارٹن ہال نے اکتوبر 1991 میں CompuServe BBS نیٹ ورک پر BoF (برڈ آف اے فیدر) بحث میں کی تھی۔
تفصیلات کا پہلا ورژن مارٹن ہال، مائیکروڈائن (بعد میں سن مائیکرو سسٹم) کے مارک توفیق، سن مائیکرو سسٹم کے جیوف آرنلڈ، اور مائیکرو سافٹ کے ہنری سینڈرز اور جے ایلارڈ نے بہت سے دوسرے لوگوں کی مدد سے لکھا تھا۔
کاپی رائٹ، دانشورانہ املاک، اور ممکنہ عدم اعتماد کے مسائل، اور IETF یا غیر منافع بخش بنیادوں کے قیام کے ذریعے کام پر غور کرنے کے بارے میں کچھ بات چیت ہوئی۔ آخر میں، یہ فیصلہ کیا گیا کہ تفصیلات صرف پانچ (غیر وابستہ) مصنفین کے ذریعہ کاپی رائٹ ہونی چاہئیں۔
تمام حصہ لینے والے ڈویلپرز نے ایک طویل عرصے تک نام کو مختصراً Winsock کرنے سے انکار کر دیا کیونکہ API اور DLL لائبریری فائل (winsock.dll) کے درمیان بہت زیادہ الجھن تھی، جس نے صرف عام WSA انٹرفیس کو اس کے اوپر کی ایپلی کیشن سے بے نقاب کیا۔ عام طور پر یہ خیال کیا جاتا ہے کہ صرف اس بات کو یقینی بنانا کہ DLL فائل سسٹم پر موجود ہے مکمل TCP/IP پروٹوکول سپورٹ فراہم کر سکتا ہے۔
ونساک کی ٹیکنالوجی
ونڈوز ساکٹ API تصریح دو انٹرفیس کی وضاحت کرتی ہے: ایپلیکیشن ڈویلپرز کے ذریعہ استعمال ہونے والا API، اور SPI جو نیٹ ورک سافٹ ویئر ڈویلپرز کو سسٹم میں نئے پروٹوکول ماڈیولز شامل کرنے کا طریقہ فراہم کرتا ہے۔ ہر انٹرفیس ایک معاہدے کی نمائندگی کرتا ہے۔
API اس بات کی ضمانت دیتا ہے کہ موافق ایپلیکیشنز کسی بھی نیٹ ورک سافٹ ویئر وینڈر کے موافق پروٹوکول کے نفاذ کے ساتھ عام طور پر چل سکتی ہیں۔ SPI معاہدہ اس بات کی ضمانت دیتا ہے کہ موافق پروٹوکول ماڈیولز کو ونڈوز میں شامل کیا جا سکتا ہے تاکہ وہ API کے مطابق ایپلی کیشنز کے ذریعے استعمال ہو سکیں۔
اگرچہ یہ معاہدے اہم تھے جب Windows Sockets کو پہلی بار جاری کیا گیا تھا، لیکن اب یہ صرف تعلیمی اہمیت کے حامل ہیں کیونکہ نیٹ ورک کے ماحول کو ملٹی پروٹوکول سپورٹ کی ضرورت ہوتی ہے۔ Windows Sockets API ورژن 2.0 میں IPX/SPX استعمال کرنے کا فنکشن شامل ہے، حالانکہ یہ پروٹوکول تقریباً متروک ہو چکا تھا جب WSA 2.0 نے فیکٹری چھوڑی تھی۔
ونڈوز ساکٹ کوڈ اور ڈیزائن BSD ساکٹ پر مبنی ہیں، لیکن API کو روایتی ونڈوز پروگرامنگ ماڈل کے مطابق کرنے کی اجازت دینے کے لیے اضافی خصوصیات فراہم کی گئی ہیں۔
Windows Sockets API نے تقریباً BSD ساکٹ API کی تمام خصوصیات کا احاطہ کیا ہے، لیکن کچھ ناگزیر رکاوٹیں ہیں، جو بنیادی طور پر Windows اور Unix کے درمیان بنیادی اختلافات کی وجہ سے تھیں (حالانکہ Windows Sockets اور BSD ساکٹ کے درمیان فرق سے کم تھا۔ مؤخر الذکر اور اسٹریمز)۔
تاہم، ونڈوز ساکٹ کے ڈیزائن کا مقصد ڈیولپرز کے لیے ساکٹ پر مبنی ایپلی کیشنز کو یونکس سے ونڈوز تک پورٹ کرنا نسبتاً آسان بنانا تھا۔ یہ APIs بنانا کافی نہیں تھا جو صرف نئے لکھے گئے ونڈوز پروگراموں کے لیے کارآمد تھے۔
لہذا، ونڈوز ساکٹ میں بہت سے عناصر موجود ہیں جو پورٹنگ کی سہولت کے لیے ڈیزائن کیے گئے ہیں۔ مثال کے طور پر، یونکس ایپلی کیشنز نیٹ ورک کی غلطیوں اور معیاری C لائبریری فنکشنز میں پائی جانے والی غلطیوں کو لاگ کرنے کے لیے ایک ہی errno متغیر کا استعمال کر سکتی ہیں۔
چونکہ اسے ونڈوز میں لاگو نہیں کیا جا سکتا، اس لیے ونڈوز ساکٹ نے غلطی کی معلومات کو بازیافت کرنے کے لیے ایک خاص فنکشن WSAGetLastError() متعارف کرایا۔ اس طرح کا طریقہ کار بہت مددگار تھا، لیکن ایپلی کیشن پورٹنگ اب بھی انتہائی پیچیدہ تھی۔
بہت سے قدیم TCP/IP ایپلی کیشنز کو یونکس کے لیے مخصوص سسٹم فیچرز (جیسے سیوڈو ٹرمینلز اور فورک سسٹم کالز) کا استعمال کرتے ہوئے لاگو کیا گیا ہے، اور ونڈوز میں اس فنکشن کو دوبارہ پیش کرنا مشکل تھا۔ نسبتاً کم وقت میں، پورٹنگ نے ونڈوز کے لیے وقف کردہ ایپلی کیشنز کی ترقی کا راستہ فراہم کیا۔
ونساک کے نفاذ
- مائیکروسافٹ نے ونساک 1.0 کا نفاذ فراہم نہیں کیا۔
- Winsock کا ورژن 1.1 ایک اضافی پیکج میں فراہم کیا گیا تھا (جسے Wolverine کہا جاتا ہے) ونڈوز فار ورک گروپس (کوڈ نامی Snowball) کے لیے۔
- Winsock ورژن 2.1 ونڈوز 95 کے لیے ایک اضافی پیکج میں فراہم کیا گیا تھا۔
- Winsock 2.x کا تازہ ترین ورژن ونڈوز کے نئے ورژن کے ساتھ یا سروس پیک کے حصے کے طور پر فراہم کیا گیا ہے۔
- Winsock 2 کو ایک طریقہ کار کے ذریعے بڑھایا جا سکتا ہے جسے لیئرڈ سروس پرووائیڈر (LSP) کہا جاتا ہے۔