কম্পিউটার

কম্পিউটার নেটওয়ার্কিংয়ের জন্য সকেট প্রোগ্রামিংয়ের একটি ওভারভিউ

একটি সকেট কম্পিউটার নেটওয়ার্ক প্রোগ্রামিংয়ের সবচেয়ে মৌলিক প্রযুক্তিগুলির মধ্যে একটি। সকেটগুলি নেটওয়ার্ক সফ্টওয়্যার অ্যাপ্লিকেশনগুলিকে নেটওয়ার্ক হার্ডওয়্যার এবং অপারেটিং সিস্টেমে তৈরি মানক প্রক্রিয়া ব্যবহার করে যোগাযোগের অনুমতি দেয়৷

যদিও এটি ইন্টারনেট সফ্টওয়্যার বিকাশের আরেকটি বৈশিষ্ট্যের মতো শোনায়, সকেট প্রযুক্তি ওয়েবের আগে বিদ্যমান ছিল। অনেক জনপ্রিয় নেটওয়ার্ক সফটওয়্যার অ্যাপ্লিকেশন সকেটের উপর নির্ভর করে।

আপনার নেটওয়ার্কের জন্য সকেট প্রযুক্তি কী করতে পারে

একটি সকেট ঠিক দুটি সফ্টওয়্যারের (একটি পয়েন্ট-টু-পয়েন্ট সংযোগ) মধ্যে একটি একক সংযোগকে প্রতিনিধিত্ব করে। একাধিক সকেট ব্যবহার করে দুইটির বেশি সফ্টওয়্যার ক্লায়েন্ট/সার্ভার বা বিতরণ করা সিস্টেমের সাথে যোগাযোগ করতে পারে। উদাহরণস্বরূপ, অনেক ওয়েব ব্রাউজার সার্ভারে তৈরি সকেটগুলির একটি গ্রুপ ব্যবহার করে একক ওয়েব সার্ভারের সাথে একই সাথে যোগাযোগ করতে পারে৷

সকেট-ভিত্তিক সফ্টওয়্যার সাধারণত নেটওয়ার্কে দুটি পৃথক কম্পিউটারে চলে, তবে সকেটগুলি একটি একক কম্পিউটারে স্থানীয়ভাবে (আন্তঃপ্রক্রিয়া) যোগাযোগ করতেও ব্যবহার করা যেতে পারে। সকেটগুলি দ্বিমুখী, যার অর্থ সংযোগের উভয় দিক ডেটা প্রেরণ এবং গ্রহণ করতে সক্ষম৷

কখনও কখনও যোগাযোগের সূচনাকারী অ্যাপ্লিকেশনটিকে ক্লায়েন্ট এবং অন্য অ্যাপ্লিকেশনটিকে সার্ভার বলা হয়, তবে এই পরিভাষাটি পিয়ার-টু-পিয়ার নেটওয়ার্কিংয়ে বিভ্রান্তির দিকে নিয়ে যায় এবং সাধারণত এড়ানো উচিত৷

সকেট API এবং লাইব্রেরি

ইন্টারনেটে স্ট্যান্ডার্ড অ্যাপ্লিকেশন প্রোগ্রামিং ইন্টারফেস (এপিআই) প্রয়োগ করে এমন বেশ কয়েকটি লাইব্রেরি রয়েছে। প্রথম মূলধারার প্যাকেজ, বার্কলে সকেট লাইব্রেরি, ইউনিক্স সিস্টেমে ব্যাপকভাবে ব্যবহৃত হয়।

আরেকটি সাধারণ API হল Microsoft অপারেটিং সিস্টেমের জন্য Windows Sockets (WinSock) লাইব্রেরি। অন্যান্য কম্পিউটার প্রযুক্তির সাথে আপেক্ষিক, সকেট API পরিপক্ক। WinSock 1993 সাল থেকে এবং বার্কলে সকেট 1982 সাল থেকে ব্যবহার করা হচ্ছে৷

সকেট APIগুলি তুলনামূলকভাবে ছোট এবং সহজ। অনেক ফাংশন ফাইল ইনপুট/আউটপুট রুটিনে ব্যবহৃত যেমন read(), write(), এবং close() . ব্যবহার করার জন্য প্রকৃত ফাংশন কলগুলি নির্বাচিত প্রোগ্রামিং ভাষা এবং সকেট লাইব্রেরির উপর নির্ভর করে৷

সকেট ইন্টারফেসের প্রকারগুলি

সকেট ইন্টারফেস তিনটি বিভাগে বিভক্ত করা যেতে পারে:

  • স্ট্রিম সকেট :এটি সবচেয়ে সাধারণ প্রকার। দুটি যোগাযোগকারী পক্ষ প্রথমে একটি সকেট সংযোগ স্থাপন করে, তারপরে সেই সংযোগের মাধ্যমে পাস করা যেকোন ডেটা যে ক্রমানুসারে পাঠানো হয়েছিল (একটি সংযোগ-ভিত্তিক প্রোগ্রামিং মডেল ব্যবহার করে) একই ক্রমে পৌঁছানোর গ্যারান্টি দেওয়া হয়।
  • ডেটাগ্রাম সকেট :সংযোগহীন শব্দার্থ অফার করুন। ডেটাগ্রামের সাথে, সংযোগগুলি স্ট্রিমগুলির মতো স্পষ্ট নয় বরং অন্তর্নিহিত। উভয় পক্ষ প্রয়োজন অনুযায়ী ডেটাগ্রাম পাঠায় এবং অন্য পক্ষের প্রতিক্রিয়ার জন্য অপেক্ষা করে। বার্তা প্রেরণে হারিয়ে যেতে পারে বা অর্ডারের বাইরে প্রাপ্ত হতে পারে; অ্যাপ্লিকেশনটি এই সমস্যাগুলির সাথে কাজ করে, সকেট নয়। ডেটাগ্রাম সকেটগুলি প্রয়োগ করা কিছু অ্যাপ্লিকেশনকে স্ট্রিম সকেট ব্যবহারের তুলনায় একটি কর্মক্ষমতা বৃদ্ধি এবং অতিরিক্ত নমনীয়তা দিতে পারে৷
  • কাঁচা সকেট :TCP এবং UDP-এর মতো স্ট্যান্ডার্ড প্রোটোকলের জন্য লাইব্রেরির অন্তর্নির্মিত সমর্থনকে বাইপাস করুন। কাস্টম লো-লেভেল প্রোটোকল ডেভেলপমেন্টের জন্য কাঁচা সকেট ব্যবহার করা হয়।

নেটওয়ার্ক প্রোটোকলগুলিতে সকেট সমর্থন

আধুনিক নেটওয়ার্ক সকেটগুলি সাধারণত আইপি, টিসিপি এবং ইউডিপি ইন্টারনেট প্রোটোকলের সাথে ব্যবহার করা হয়। ইন্টারনেট প্রোটোকলের জন্য সকেট প্রয়োগকারী লাইব্রেরিগুলি স্ট্রিমগুলির জন্য TCP, ডেটাগ্রামের জন্য UDP এবং কাঁচা সকেটগুলির জন্য IP ব্যবহার করে৷

ইন্টারনেটে যোগাযোগ করতে, আইপি সকেট লাইব্রেরি নির্দিষ্ট কম্পিউটার সনাক্ত করতে আইপি ঠিকানা ব্যবহার করে। ইন্টারনেটের অনেক অংশ নামকরণ পরিষেবার সাথে কাজ করে, যাতে ব্যবহারকারী এবং সকেট প্রোগ্রামাররা ঠিকানার পরিবর্তে কম্পিউটারের সাথে নামের (উদাহরণস্বরূপ, thiscomputer.wireless.lifewire.com) কাজ করতে পারে (উদাহরণস্বরূপ, 208.185.127.40)।

স্ট্রিম এবং ডেটাগ্রাম সকেটগুলি একে অপরের থেকে একাধিক অ্যাপ্লিকেশন আলাদা করতে আইপি পোর্ট নম্বর ব্যবহার করে। উদাহরণস্বরূপ, ইন্টারনেটে ওয়েব ব্রাউজারগুলি ওয়েব সার্ভারের সাথে সকেট যোগাযোগের জন্য ডিফল্ট হিসাবে পোর্ট 80 ব্যবহার করতে জানে৷


  1. পাইথনে নিম্ন-স্তরের নেটওয়ার্কিং ইন্টারফেস (সকেট)

  2. একটি প্রোগ্রামিং ল্যাপটপে কী সন্ধান করবেন

  3. রুবি ডেভেলপারদের জন্য ডেটা স্ট্রাকচারের একটি ওভারভিউ

  4. রুবি নেটওয়ার্ক প্রোগ্রামিং