পটভূমি ও প্রযুক্তি সহ উইনসকের ভূমিকা
Introduction Winsock Including Background Technology
এই পোস্টটি মূলত উইন্ডোজ সকেট API সম্পর্কে কথা বলছে, যা WSA এবং Winsock এ সংক্ষিপ্ত করা যেতে পারে। এই পোস্টটি পড়ার পরে, আপনি এর সংজ্ঞা, পটভূমি, প্রযুক্তি এবং সেইসাথে বাস্তবায়ন জানতে পারবেন।
এই পৃষ্ঠায় :Winsock সংজ্ঞা
Winsock কি? কম্পিউটিং-এ, উইনসক হল একটি প্রযুক্তিগত স্পেসিফিকেশন যা উইন্ডোজ নেটওয়ার্ক সফ্টওয়্যারকে কীভাবে নেটওয়ার্ক পরিষেবা, বিশেষ করে TCP/IP অ্যাক্সেস করা উচিত তা সংজ্ঞায়িত করতে ব্যবহৃত হয়। এটিকে উইনসক বলা হয় কারণ এটি উইন্ডোজের সাথে বার্কলে ইউনিক্স সকেট ইন্টারফেসের একটি অভিযোজন। একটি সকেট হল একটি বিশেষ চুক্তি যা একই কম্পিউটার বা নেটওয়ার্কে দুটি প্রোগ্রাম প্রক্রিয়ার সাথে সংযোগ এবং ডেটা বিনিময় করতে ব্যবহৃত হয়।
পরামর্শ: আপনি যদি অন্যান্য ইন্টারনেট প্রোটোকল সম্পর্কে আরও তথ্য জানতে চান, তাহলে MiniTool ওয়েবসাইটে যাওয়ার পরামর্শ দেওয়া হচ্ছে।
Winsock হল Windows Sockets API (WSA) এর সংক্ষিপ্ত রূপ। এটি Windows TCP/IP ক্লায়েন্ট অ্যাপ্লিকেশন (যেমন FTP ক্লায়েন্ট বা ওয়েব ব্রাউজার) এবং মৌলিক TCP/IP প্রোটোকল স্ট্যাকের মধ্যে আদর্শ ইন্টারফেস সংজ্ঞায়িত করে।
সম্পর্কিত পোস্ট: উইন্ডোজ 10 নেটওয়ার্ক সমস্যা ঠিক করতে Netsh Winsock রিসেট কমান্ড ব্যবহার করুন
উইনসকের পটভূমি
1991 সালের অক্টোবরে CompuServe BBS নেটওয়ার্কে BoF (Bard of a Feather) আলোচনায় JSB সফটওয়্যার (পরে স্টারডাস্ট টেকনোলজিস) এর মার্টিন হল Windows Sockets API প্রস্তাব করেছিলেন।
স্পেসিফিকেশনের প্রথম সংস্করণটি লিখেছেন মার্টিন হল, মাইক্রোডাইন (পরবর্তীতে সান মাইক্রোসিস্টেমস) এর মার্ক তৌফিক, সান মাইক্রোসিস্টেমের জিওফ আর্নল্ড এবং হেনরি স্যান্ডার্স এবং মাইক্রোসফ্টের জে অ্যালার্ড আরও অনেকের সহায়তায়।
কপিরাইট, বৌদ্ধিক সম্পত্তি, এবং সম্ভাব্য অনাস্থার সমস্যাগুলি কীভাবে সর্বোত্তমভাবে সমাধান করা যায় এবং IETF বা অলাভজনক ফাউন্ডেশন প্রতিষ্ঠার মাধ্যমে কাজের বিবেচনার বিষয়ে কিছু আলোচনা হয়েছিল। শেষ পর্যন্ত, সিদ্ধান্ত নেওয়া হয়েছিল যে স্পেসিফিকেশনটি শুধুমাত্র পাঁচজন (অসম্বন্ধিত) লেখকদের দ্বারা কপিরাইট করা উচিত।
সমস্ত অংশগ্রহণকারী বিকাশকারীরা দীর্ঘ সময়ের জন্য নামটিকে কেবল উইনসক হিসাবে সংক্ষিপ্ত করতে অস্বীকার করেছিল কারণ API এবং DLL লাইব্রেরি ফাইলের (winsock.dll) মধ্যে অনেক বিভ্রান্তি ছিল, যা শুধুমাত্র উপরের অ্যাপ্লিকেশনটিতে সাধারণ WSA ইন্টারফেসকে উন্মুক্ত করেছিল। এটি সাধারণত বিশ্বাস করা হয় যে শুধুমাত্র DLL ফাইলটি সিস্টেমে বিদ্যমান আছে তা নিশ্চিত করা সম্পূর্ণ TCP/IP প্রোটোকল সমর্থন প্রদান করতে পারে।
উইনসকের প্রযুক্তি
উইন্ডোজ সকেট API স্পেসিফিকেশন দুটি ইন্টারফেস সংজ্ঞায়িত করে: অ্যাপ্লিকেশন ডেভেলপারদের দ্বারা ব্যবহৃত API, এবং SPI যা নেটওয়ার্ক সফ্টওয়্যার বিকাশকারীদের সিস্টেমে নতুন প্রোটোকল মডিউল যোগ করার জন্য একটি পদ্ধতি প্রদান করে। প্রতিটি ইন্টারফেস একটি চুক্তি প্রতিনিধিত্ব করে।
API গ্যারান্টি দেয় যে কনফর্মিং অ্যাপ্লিকেশনগুলি যেকোনো নেটওয়ার্ক সফ্টওয়্যার বিক্রেতার কনফর্মিং প্রোটোকল বাস্তবায়নের সাথে স্বাভাবিকভাবে চলতে পারে। এসপিআই চুক্তি গ্যারান্টি দেয় যে কনফর্মিং প্রোটোকল মডিউলগুলি উইন্ডোজে যুক্ত করা যেতে পারে যাতে সেগুলি API- অনুগত অ্যাপ্লিকেশনগুলি ব্যবহার করতে পারে।
যদিও এই চুক্তিগুলি গুরুত্বপূর্ণ ছিল যখন উইন্ডোজ সকেটগুলি প্রথম প্রকাশ করা হয়েছিল, তবে সেগুলি এখন শুধুমাত্র একাডেমিক তাত্পর্যের কারণ নেটওয়ার্ক পরিবেশের জন্য মাল্টি-প্রটোকল সমর্থন প্রয়োজন৷ উইন্ডোজ সকেটস এপিআই সংস্করণ 2.0 আইপিএক্স/এসপিএক্স ব্যবহার করার ফাংশন অন্তর্ভুক্ত করে, যদিও এই প্রোটোকলটি প্রায় অপ্রচলিত ছিল যখন WSA 2.0 ফ্যাক্টরি ছেড়েছিল।
উইন্ডোজ সকেট কোড এবং ডিজাইন বিএসডি সকেটের উপর ভিত্তি করে, তবে এপিআইকে প্রচলিত উইন্ডোজ প্রোগ্রামিং মডেলের সাথে সামঞ্জস্য করার জন্য অতিরিক্ত বৈশিষ্ট্য প্রদান করা হয়েছে।
উইন্ডোজ সকেট এপিআই প্রায় বিএসডি সকেট এপিআই-এর সমস্ত বৈশিষ্ট্যকে কভার করে, তবে কিছু অনিবার্য বাধা রয়েছে, যা মূলত উইন্ডোজ এবং ইউনিক্সের মধ্যে মৌলিক পার্থক্যের কারণে সৃষ্ট হয়েছিল (যদিও উইন্ডোজ সকেট এবং বিএসডি সকেটের মধ্যে পার্থক্য কম ছিল। পরবর্তী এবং স্ট্রিমস)।
যাইহোক, উইন্ডোজ সকেটের ডিজাইন লক্ষ্য ছিল ডেভেলপারদের জন্য ইউনিক্স থেকে উইন্ডোজ পর্যন্ত সকেট-ভিত্তিক অ্যাপ্লিকেশন পোর্ট করা তুলনামূলকভাবে সহজ করা। শুধুমাত্র নতুন লিখিত উইন্ডোজ প্রোগ্রামের জন্য উপযোগী API তৈরি করা যথেষ্ট ছিল না।
অতএব, উইন্ডোজ সকেটগুলিতে পোর্টিং সহজতর করার জন্য ডিজাইন করা অনেক উপাদান রয়েছে। উদাহরণস্বরূপ, ইউনিক্স অ্যাপ্লিকেশনগুলি স্ট্যান্ডার্ড C লাইব্রেরি ফাংশনে সনাক্ত করা নেটওয়ার্ক ত্রুটি এবং ত্রুটিগুলি লগ করার জন্য একই ত্রুটি ভেরিয়েবল ব্যবহার করতে পারে।
যেহেতু এটি উইন্ডোজে প্রয়োগ করা যায় না, উইন্ডোজ সকেট একটি বিশেষ ফাংশন চালু করেছে, WSAGEtLastError(), ত্রুটির তথ্য পুনরুদ্ধার করতে। এই ধরনের একটি প্রক্রিয়া খুব সহায়ক ছিল, কিন্তু অ্যাপ্লিকেশন পোর্টিং এখনও অত্যন্ত জটিল ছিল।
অনেক আদিম TCP/IP অ্যাপ্লিকেশন ইউনিক্সের জন্য নির্দিষ্ট সিস্টেম বৈশিষ্ট্যগুলি ব্যবহার করে প্রয়োগ করা হয়েছে (যেমন সিউডো টার্মিনাল এবং ফর্ক সিস্টেম কল), এবং উইন্ডোজে এই ফাংশনটি পুনরুত্পাদন করা সমস্যাযুক্ত ছিল। অপেক্ষাকৃত অল্প সময়ের মধ্যে, পোর্টিং ডেডিকেটেড উইন্ডোজ অ্যাপ্লিকেশনগুলির বিকাশের পথ দিয়েছে।
উইনসকের বাস্তবায়ন
- মাইক্রোসফ্ট Winsock 1.0 এর বাস্তবায়ন প্রদান করেনি।
- Winsock এর সংস্করণ 1.1 একটি অ্যাড-অন প্যাকেজে (যাকে বলা হয় উলভারিন) উইন্ডোজ ফর ওয়ার্কগ্রুপের জন্য (কোড নামে স্নোবল) প্রদান করা হয়েছিল।
- Winsock সংস্করণ 2.1 Windows 95 এর জন্য একটি অ্যাড-অন প্যাকেজে সরবরাহ করা হয়েছিল।
- Winsock 2.x এর সর্বশেষ সংস্করণটি নতুন উইন্ডোজ সংস্করণের সাথে বা একটি পরিষেবা প্যাকের অংশ হিসাবে সরবরাহ করা হয়েছে।
- Winsock 2 লেয়ারড সার্ভিস প্রোভাইডার (LSP) নামক একটি প্রক্রিয়ার মাধ্যমে প্রসারিত করা যেতে পারে।