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

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

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

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

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

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

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

ইন্টারনেট অ্যাপ্লিকেশন প্রোগ্রামিং ইন্টারফেস (এপিআই) বাস্তবায়ন করে এমন অনেক লাইব্রেরি ইন্টারনেটে বিদ্যমান। প্রথম মূলধারার প্যাকেজ - বার্কলে সকেট লাইব্রেরি এখনও UNIX সিস্টেমে ব্যাপকভাবে ব্যবহার করা হয়। আরেকটি খুব সাধারণ API হল মাইক্রোসফট অপারেটিং সিস্টেমের জন্য উইন্ডোজ সকেট (WinSock) লাইব্রেরি। অন্যান্য কম্পিউটার প্রযুক্তির সাথে সম্পর্কিত, সকেট APIগুলি পুরোপুরি পরিপক্ক: 1993 সাল থেকে WinSock ব্যবহার করা হয়েছে এবং 1982 সাল থেকে বার্কলে সকেটগুলি ব্যবহার করা হয়েছে।

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

সকেট ইন্টারফেস প্রকার

সকেট ইন্টারফেসগুলি তিনটি ভাগে ভাগ করা যায়:

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

নেটওয়ার্ক প্রোটোকল মধ্যে সকেট সাপোর্ট

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

ইন্টারনেটে যোগাযোগ করার জন্য, আইপি সকেট লাইব্রেরী নির্দিষ্ট কম্পিউটার সনাক্ত করতে আইপি ঠিকানা ব্যবহার করে। ইন্টারনেটের অনেক অংশে নামকরণ পরিষেবাগুলির সাথে কাজ করে, যাতে ব্যবহারকারী এবং সকেট প্রোগ্রামারগুলি ঠিকানা দ্বারা ( উদাহরণস্বরূপ , 208.185.127.40) নামের পরিবর্তে কম্পিউটারের সাথে কম্পিউটারের সাথে কাজ করতে পারে ( যেমন , "thiscomputer.wireless.about.com")। স্ট্রিম এবং ডাটাগ্রাম সকেটগুলি একে অপরের কাছ থেকে একাধিক অ্যাপ্লিকেশানগুলি সনাক্ত করতে আইপি পোর্ট নম্বর ব্যবহার করে। উদাহরণস্বরূপ, ইন্টারনেটে ওয়েব ব্রাউজার ওয়েব সার্ভারগুলির সাথে সকেট যোগাযোগের ডিফল্ট হিসাবে 80 পোর্ট ব্যবহার করতে জানে