একটি বন্দর এবং একটি সকেটের মধ্যে পার্থক্য কি?


928

এটি আমার সংস্থার একজন সফ্টওয়্যার ইঞ্জিনিয়ার দ্বারা উত্থাপিত একটি প্রশ্ন ছিল। আমি বিস্তৃত সংজ্ঞা আগ্রহী।


19
কেবল পুনরাবৃত্তি করতে, সকেটগুলি নেটওয়ার্ক আইওতে সীমাবদ্ধ নয়। বিভিন্ন অ্যাপ্লিকেশনগুলির মধ্যে ডেটা স্ট্রিমিংয়ের জন্য এগুলি বিভিন্ন ধরণের পরিস্থিতিতে উপলব্ধ।
অলি

উত্তর:


976

সারসংক্ষেপ

একটি টিসিপি সকেট একটি আইডি ঠিকানা এবং একটি নির্দিষ্ট টিসিপি সংযোগ বা শ্রবণকারী অবস্থার প্রেক্ষাপটে একটি পোর্ট দ্বারা সংজ্ঞায়িত একটি এন্ডপয়েন্ট দৃষ্টান্ত

একটি বন্দর হ'ল ভার্চুয়ালাইজেশন সনাক্তকারী যা একটি পরিষেবা শেষ পয়েন্টকে সংজ্ঞায়িত করে (কোনও সার্ভিস উদাহরণস্বরূপ এন্ডপয়েন্ট অরফ সেশন আইডেন্টিফায়ার থেকে আলাদা )।

একটি TCP সকেট হয় না একটি সংযোগ , এটি একটি নির্দিষ্ট সংযোগ শেষবিন্দু নেই।

কোনও পরিষেবা শেষ পয়েন্টে সমবর্তী সংযোগ থাকতে পারে , কারণ একটি সংযোগটি এর স্থানীয় এবং দূরবর্তী উভয় দ্বারা চিহ্নিত করা হয়েছে প্রান্তে , যা ট্র্যাফিককে একটি নির্দিষ্ট পরিষেবা উদাহরণে রুট করার অনুমতি দেয়।

প্রদত্ত ঠিকানা / পোর্ট সংমিশ্রণের জন্য কেবলমাত্র একটি শ্রোতার সকেট থাকতে পারে

উদ্ভাস

এটি একটি আকর্ষণীয় প্রশ্ন যা আমাকে মনে হয়েছিল যে আমি ভিতরে জানি things আপনি ভেবেছিলেন "সকেট" এর মতো একটি নাম স্ব-বর্ণনামূলক হবে: স্পষ্টতই শেষ পয়েন্টে আপনি কোনও নেটওয়ার্কের তারের সংযোগ স্থাপনের চিত্রটি উত্থাপন করার জন্য বেছে নেওয়া হয়েছিল, সেখানে শক্তিশালী ক্রিয়ামূলক সমান্তরাল রয়েছে। তবুও, নেটওয়ার্ক পার্লেন্সে "সকেট" শব্দটি এত বেশি লাগেজ বহন করে যে সতর্কতার সাথে পুনরায় পরীক্ষা করা প্রয়োজন।

বিস্তৃত সম্ভাব্য অর্থে, একটি বন্দর হল প্রবেশ বা বিন্যাসের একটি বিন্দু point যদিও নেটওয়ার্কিং প্রসঙ্গে ব্যবহৃত হয়নি, ফরাসী শব্দটি পোর্টের আক্ষরিক অর্থে দরজা বা প্রবেশদ্বার , এর অর্থ জোর দিয়ে বোঝানো হচ্ছে যে বন্দরগুলি পরিবহণের শেষের পয়েন্ট যা আপনি ডেটা বা বড় ইস্পাত পাত্রে প্রেরণ করেন কিনা।

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

আইপি ঠিকানা এবং একটি পোর্টের সংমিশ্রণটি কঠোরভাবে একটি এন্ডপয়েন্ট হিসাবে পরিচিত এবং কখনও কখনও তাকে সকেটও বলা হয়। এই ব্যবহারটি মূল টিসিপি স্পেসিফিকেশন আরএফসি793 দিয়ে উত্পন্ন হয়েছে।

একটি টিসিপি সংযোগ দুটি এন্ডপয়েন্টস ওরফে সকেট দ্বারা সংজ্ঞায়িত করা হয়

একটি এন্ডপয়েন্ট (সকেট) একটি নেটওয়ার্ক ঠিকানা এবং একটি পোর্ট শনাক্তকারীর সংমিশ্রণ দ্বারা সংজ্ঞায়িত করা হয় । নোট করুন যে ঠিকানা / পোর্টটি দেয় না সম্পূর্ণরূপে কোনও সকেট সনাক্ত (এটি আরও পরে)।

পোর্টগুলির উদ্দেশ্য হ'ল একটি প্রদত্ত নেটওয়ার্ক ঠিকানায় একাধিক প্রান্তকে আলাদা করা। আপনি বলতে পারেন যে একটি বন্দর একটি ভার্চুয়ালাইজড শেষ পয়েন্ট। এই ভার্চুয়ালাইজেশনটি একক নেটওয়ার্ক ইন্টারফেসে একাধিক সমবর্তী সংযোগগুলি সম্ভব করে তোলে।

এটি সকেট জুটি (ক্লায়েন্টের আইপি ঠিকানা, ক্লায়েন্ট পোর্ট নম্বর, সার্ভার আইপি ঠিকানা এবং সার্ভার পোর্ট নম্বর সমন্বিত 4-টিউপল) যা দুটি প্রান্ত নির্দিষ্ট করে যা ইন্টারনেটে প্রতিটি টিসিপি সংযোগটি অনন্যভাবে চিহ্নিত করে। ( টিসিপি-আইপি সচিত্র খণ্ড 1 , ডব্লিউ। রিচার্ড স্টিভেন্স)

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

সি # তে, টিসিপি সংযোগ স্থাপন করতে (বিদ্যমান শ্রোতার কাছে) প্রথমে আপনি একটি টিসিপিসিলেট তৈরি করুন । আপনি যদি TcpClient কনস্ট্রাক্টরের একটি শেষ পয়েন্টটি নির্দিষ্ট না করেন তবে এটি ডিফল্ট ব্যবহার করে - এক উপায়ে বা অন্যভাবে স্থানীয় শেষ পয়েন্টটি সংজ্ঞায়িত করা হয়। তারপরে আপনি যে সংযোগটি তৈরি করেছেন তার উপর ভিত্তি করেই আপনি অনুরোধ করবেন। এই পদ্ধতির জন্য অন্যান্য প্রান্তটি বর্ণনা করার জন্য একটি প্যারামিটার প্রয়োজন।

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

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

স্পষ্টতা অন্যান্য ক্ষেত্রেও বৃদ্ধি করা হবে। আইপি ঠিকানা এবং পোর্টের সংমিশ্রণে একটি সকেট সনাক্ত করা যায় না :

[...] টিসিপি স্থানীয় এবং বিদেশী ঠিকানাগুলির সমন্বিত চারটি মান ব্যবহার করে ইনকামিং বিভাগগুলিকে ডিলিটিপ্লিক্স করে: গন্তব্য আইপি ঠিকানা, গন্তব্য পোর্ট নম্বর, উত্স আইপি ঠিকানা এবং উত্স পোর্ট নম্বর। টিসিপি নির্ধারণ করতে পারে না কোন প্রক্রিয়াটি কেবল গন্তব্য বন্দরের দিকে তাকিয়ে ইনকামিং বিভাগে আসে। এছাড়াও, [প্রদত্ত পোর্ট নম্বর] এ [বিভিন্ন] শেষ পয়েন্টগুলির মধ্যে একমাত্র আগত সংযোগের অনুরোধগুলি গ্রহণ করবে তা শোনার অবস্থায় রয়েছে। (পি 255, টিসিপি-আইপি সচিত্র ভলিউম 1 , ডব্লু। রিচার্ড স্টিভেন্স)

যেমন আপনি দেখতে পাচ্ছেন, কেবল নেটওয়ার্ক সার্ভিসে একই ঠিকানা / পোর্ট সহ অসংখ্য সকেট থাকা সম্ভব নয়, তবে নির্দিষ্ট ঠিকানা / পোর্টের সংমিশ্রণে কেবল একটি শ্রোতার সকেট রয়েছে। সাধারণ লাইব্রেরি প্রয়োগগুলি একটি সকেট শ্রেণি উপস্থাপন করে যার একটি সংযোগ তৈরি এবং পরিচালনা করতে ব্যবহৃত হয়। এটি অত্যন্ত দুর্ভাগ্যজনক, যেহেতু এটি বিভ্রান্তির কারণ এবং এটি দুটি ধারণার ব্যাপক সংঘাতের দিকে পরিচালিত করে।

হাগরওয়াল আমাকে বিশ্বাস করে না (মন্তব্য দেখুন) সুতরাং এখানে একটি আসল নমুনা। আমি একটি ওয়েব ব্রাউজারকে http://dilbert.com এর সাথে সংযুক্ত করেছি এবং তারপরে দৌড়ে এসেছি netstat -an -p tcp। আউটপুটটির শেষ ছয় লাইনে দুটি সকেট স্বতন্ত্রভাবে সনাক্ত করার জন্য ঠিকানা এবং পোর্ট যথেষ্ট নয় এই দুটি উদাহরণ রয়েছে। 192.168.1.3 (আমার ওয়ার্কস্টেশন) এবং 54.252.94.236:80 (রিমোট HTTP সার্ভার) এর মধ্যে দুটি স্বতন্ত্র সংযোগ রয়েছে

  TCP    192.168.1.3:63240      54.252.94.236:80       SYN_SENT
  TCP    192.168.1.3:63241      54.252.94.236:80       SYN_SENT
  TCP    192.168.1.3:63242      207.38.110.62:80       SYN_SENT
  TCP    192.168.1.3:63243      207.38.110.62:80       SYN_SENT
  TCP    192.168.1.3:64161      65.54.225.168:443      ESTABLISHED

যেহেতু একটা সকেট একটি সংযোগ শেষবিন্দু না থাকে, তখন ঠিকানা / পোর্ট সমন্বয় সঙ্গে দুই সকেট হয় 207.38.110.62:80এবং ঠিকানা / পোর্ট সমন্বয় সঙ্গে আরো দুটি 54.252.94.236:80

আমি মনে করি হাগরওয়ালের ভুল বোঝাবুঝি আমার "সনাক্তকরণ" শব্দটির খুব যত্ন সহকারে ব্যবহারের ফলে ঘটেছিল। আমার অর্থ "সম্পূর্ণ, নির্বিঘ্নে এবং স্বতন্ত্রভাবে সনাক্তকরণ"। উপরের নমুনায় ঠিকানা / বন্দরের সংমিশ্রণের সাথে দুটি শেষপয়েন্ট রয়েছে 54.252.94.236:80। যদি আপনার সমস্ত কিছু ঠিকানা এবং পোর্ট হয় তবে এই সকেটগুলি আলাদা করে জানাতে আপনার পর্যাপ্ত তথ্য নেই। সকেট সনাক্ত করার জন্য এটি পর্যাপ্ত তথ্য নয় ।

অভিযোজ্য বস্তু

আরএফসি 79৯৩ এর ২.7 ধারা অনুচ্ছেদে বলা হয়েছে

শেষের দিকে সকেটের জুড়ি দ্বারা একটি সংযোগ সম্পূর্ণরূপে নির্দিষ্ট করা হয়। স্থানীয় সকেট বিভিন্ন বিদেশী সকেটের সাথে অনেক সংযোগে অংশ নিতে পারে।

সকেটের এই সংজ্ঞাটি প্রোগ্রামিং দৃষ্টিকোণ থেকে সহায়ক নয় কারণ এটি কোনও সকেটের অবজেক্টের মতো নয় , যা কোনও বিশেষ সংযোগের সমাপ্তি। একজন প্রোগ্রামার এবং এই প্রশ্নের শ্রোতাদের বেশিরভাগই প্রোগ্রামার, এটি একটি গুরুত্বপূর্ণ কার্যকরী পার্থক্য।

তথ্যসূত্র

  1. টিসিপি-আইপি সচিত্র খণ্ড 1 প্রোটোকল , ডব্লিউ। রিচার্ড স্টিভেন্স, 1994 অ্যাডিসন ওয়েসলি

  2. আরএফসি 79৯৩ , তথ্য বিজ্ঞান ইনস্টিটিউট, দক্ষিণ ক্যালিফোর্নিয়া বিশ্ববিদ্যালয় ডারপা জন্য A

  3. আরএফসি 147 , একটি সকেটের সংজ্ঞা, জোয়েল এম উইনেট, লিংকন ল্যাবরেটরি


6
সম্ভবত, কীওয়ার্ড সকেট এবং পোর্টের সাথে একটি বাস্তব বিশ্বের উপমা তাদের প্রশ্নের পক্ষে আপ-ভোট দিয়েছিল help তবুও দুর্দান্ত ব্যাখ্যা!
রোহিতভারমা

5
@rationalcoder - পুরো উত্তরটি পড়ুন। কোনও কিছু দ্বারা সংজ্ঞায়িত হওয়া এবং এটি দ্বারা চিহ্নিত হওয়ার মধ্যে পার্থক্য রয়েছে। উদাহরণস্বরূপ কোনও শ্রেণীর উদাহরণ ক্লাস দ্বারা সংজ্ঞায়িত করা হয়। তারা আংশিক কিন্তু এর দ্বারা সম্পূর্ণরূপে চিহ্নিত হয় না।
পিটার জিতলেন

6
আমি ভোট দিয়েছি না কারণ আমি এই উক্তিটির সাথে একমত নই - " আইপি ঠিকানা এবং পোর্টের সংমিশ্রণে একটি সকেট চিহ্নিত করা যায় না: " .. টিসিপি আরএফসি পড়ুন - সরঞ্জাম.এইটিএফ.আর / html / rfc793 .. এটি খুব স্পষ্ট যে সকেট আইপি এবং পোর্টের সংমিশ্রণ, যদি আপনি আইপি এবং পোর্ট জানেন তবে আপনি একটি সকেট বা শেষ পয়েন্ট চিহ্নিত করেছেন, যদি আপনি সকেটের জুড়ি অর্থাৎ ক্লায়েন্ট আইপি + পোর্ট এবং সার্ভার আইপি + পোর্ট জানেন তবে আপনি একটি অনন্য সংযোগ সনাক্ত করেছেন ..
হাগারওয়াল

6
"উপরের নমুনায় ঠিকানা / বন্দরের সংমিশ্রণের সাথে দুটি শেষ-পয়েন্ট রয়েছে 54.252.94.236:80। আপনার যা কিছু আছে তার ঠিকানা এবং বন্দর থাকলে এই সকেটগুলি আলাদা করে রাখার মতো পর্যাপ্ত তথ্য আপনার কাছে নেই a এটি সনাক্ত করার জন্য পর্যাপ্ত তথ্য নয় সকেট." আপনার কাছে 3 টি সকেট, 2 স্থানীয় এবং একটি একই সার্ভার সকেট সংযুক্ত রয়েছে এমন দুটি সংযোগের মধ্যে those একই সকেট নয়, ভিন্ন সংযোগগুলি; না তারা আসলে দুটি ভিন্ন সকেট? সেগুলি আলাদা হওয়ার কারণে তাদের আলাদা করে বলার দরকার নেই, তবে সংযোগগুলি আলাদা করার জন্য আপনার বিভিন্ন স্থানীয় সকেটগুলির প্রয়োজন হবে।
অ্যান্ড্রু ক্যালভিন

6
-1 আপনার উত্তরটি কেবল ভুল। আপনি: "একটি টিসিপি সকেট ... একটি নির্দিষ্ট সংযোগের শেষ পয়েন্ট ।" আরএফসি 793 : "একটি সকেট একযোগে একাধিক সংযোগে ব্যবহৃত হতে পারে ।" আপনি কোন লাইব্রেরি ব্যবহার করছেন তা আমি নিশ্চিত নই, তবে আমি যে লাইব্রেরিগুলি ব্যবহার করেছি সেগুলিতে সকেট অবজেক্টগুলি আইপি এবং পোর্ট দ্বারা স্বতন্ত্রভাবে সংজ্ঞায়িত করা হয়েছে এবং প্রতিটি প্রত্যন্ত সকেটের সংযোগ অবজেক্ট তৈরি করেছে।
জাজ

187

একটি সকেট তিনটি জিনিস নিয়ে গঠিত:

  1. একটি আইপি ঠিকানা
  2. একটি পরিবহন প্রোটোকল
  3. একটি পোর্ট নম্বর

একটি বন্দর হল 1 এবং 65535 এর মধ্যে এমন একটি সংখ্যা যা কোনও ডিভাইসে লজিক্যাল গেটকে নির্দেশ করে। ক্লায়েন্ট এবং সার্ভারের মধ্যে প্রতিটি সংযোগের জন্য একটি অনন্য সকেট প্রয়োজন।

উদাহরণ স্বরূপ:

  • 1030 একটি বন্দর।
  • (10.1.1.2, টিসিপি, পোর্ট 1030) একটি সকেট।

80
না। একটি সকেট পাঁচটি জিনিস নিয়ে গঠিত : {প্রোটোকল, স্থানীয় ঠিকানা, স্থানীয় বন্দর, দূরবর্তী ঠিকানা, দূরবর্তী পোর্ট}
ব্যবহারকারী 207421

19
@ এজেপি না, আবার। আরও তথ্যের জন্য নির্বাচিত উত্তর দেখুন।
কেহলান ক্রুমমে

2
@ কোরেতুগেই এটি আইপি শিরোনামে রয়েছে। টিসিপি স্তরটি এটি দেখতে পাচ্ছে না এমন কী ভাবেন?
ব্যবহারকারী 207421

1
@ EJP হিসাবে আমি উপরে সর্বাধিক ভোট দেওয়া উত্তরে দেখতে পাচ্ছি যে কোনও সকেট নিজেই সংযোগ নয় তবে এটি কোনও সংযোগের শেষ পয়েন্ট হয় তবে কীভাবে এটি স্থানীয় এবং দূরবর্তী পোর্ট এবং আইপি ঠিকানা উভয়কে অন্তর্ভুক্ত করতে পারে। একটি সকেট সংযোগের কেবল এক পক্ষের প্রতিনিধিত্ব করবে যেমন স্থানীয় পোর্ট এবং স্থানীয় আইপি ঠিকানা বা দূরবর্তী পোর্ট এবং দূরবর্তী আইপি নাম্বার। আমি ভুল হলে দয়া করে আমাকে সংশোধন করুন।
আরবিটি

7
@ ইজেপি স্টিল আরএফসি 3৯৩: "এক জোড়া সকেট স্বতন্ত্রভাবে প্রতিটি সংযোগ সনাক্ত করে is যদি কোনও সকেট ইতিমধ্যে পাঁচটি জিনিস নিয়ে থাকে তবে কীভাবে আমার উদ্ধৃতিতে "একজোড়া সকেট" থাকতে পারে?
গ্যাব 好人

100

একটি সকেট দুটি নেটওয়ার্ক অ্যাপ্লিকেশনগুলির মধ্যে একটি একক সংযোগ উপস্থাপন করে। এই দুটি অ্যাপ্লিকেশন নামমাত্রভাবে বিভিন্ন কম্পিউটারে চালিত হয়, তবে সকেটগুলি একটি কম্পিউটারে ইন্টারপ্রোসেস যোগাযোগের জন্যও ব্যবহার করা যেতে পারে। অ্যাপ্লিকেশনগুলি একে অপরের সাথে যোগাযোগের জন্য একাধিক সকেট তৈরি করতে পারে। সকেট দ্বি নির্দেশমূলক, যার অর্থ সংযোগের উভয় পক্ষই উভয়ই ডেটা প্রেরণ এবং গ্রহণ করতে সক্ষম। অতএব ওএসআই মডেলের যে কোনও স্তরের উপরের দিকে 2 থেকে তাত্ত্বিকভাবে একটি সকেট তৈরি করা যেতে পারে। প্রোগ্রামাররা প্রায়শই পরোক্ষভাবে নেটওয়ার্ক প্রোগ্রামিংয়ে সকেট ব্যবহার করে। উইনসকের মতো প্রোগ্রামিং লাইব্রেরিগুলি সকেট প্রোগ্রামিংয়ের অনেক নিম্ন-স্তরের বিশদ লুকায়। সকেটগুলি ১৯৮০ এর দশকের গোড়ার দিক থেকে বিস্তৃত ব্যবহৃত।

একটি পোর্ট নেটওয়ার্ক যোগাযোগের জন্য একটি এন্ডপয়েন্ট বা "চ্যানেল" উপস্থাপন করে। পোর্ট নম্বরগুলি একই কম্পিউটারে বিভিন্ন অ্যাপ্লিকেশনকে একে অপরের সাথে হস্তক্ষেপ না করে নেটওয়ার্ক সংস্থানগুলি ব্যবহার করার অনুমতি দেয়। পোর্ট সংখ্যাগুলি সাধারণত নেটওয়ার্ক প্রোগ্রামিংয়ে দেখা যায়, বিশেষত সকেট প্রোগ্রামিংয়ে। কখনও কখনও, যদিও, বন্দর নম্বরগুলি নৈমিত্তিক ব্যবহারকারীর কাছে দৃশ্যমান করা হয়। উদাহরণস্বরূপ, কোনও ব্যক্তি ইন্টারনেটে ভিজিট করা কয়েকটি ওয়েবসাইট নীচের মত একটি URL ব্যবহার করে:

http://www.mairie-metz.fr:8080/ এই উদাহরণস্বরূপ, 8080 নম্বরটি ওয়েব সার্ভারের সাথে সংযোগ করতে ওয়েব ব্রাউজার দ্বারা ব্যবহৃত পোর্ট নম্বরটিকে বোঝায়। সাধারণত, কোনও ওয়েবসাইট পোর্ট নম্বর ৮০ ব্যবহার করে এবং এই নম্বরটি ইউআরএল (যদিও এটি হতে পারে) এর সাথে অন্তর্ভুক্ত করার দরকার নেই।

আইপি নেটওয়ার্কিংয়ে, পোর্ট নম্বরগুলি তাত্ত্বিকভাবে 0 থেকে 65535 পর্যন্ত হতে পারে Most বেশিরভাগ জনপ্রিয় নেটওয়ার্ক অ্যাপ্লিকেশন, যদিও, ব্যাটার নম্বরগুলি রেঞ্জের নিম্ন প্রান্তে ব্যবহার করে (যেমন HTTP এর জন্য 80)।

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

রেফ http://compnetworking.about.com/od/basicnetworkingconcepts/l/bldef_port.htm

রেফ http://compnetworking.about.com/od/itinformationtechnology/l/bldef_sket.htm


2
ওএসআই মডেলের লেয়ার 2 হ'ল নোডের মধ্যে একটি সংযোগ, এটির সংযোগ প্রক্রিয়াগুলির কোনও ব্যবস্থা নেই। আমি বিশ্বাস করি না যে আপনি ওএসআই এল 2 এ বিদ্যমান একটি সকেট বিবেচনা করতে পারেন।
আন্তোনিও হ্যালি

18
একটি সার্কিট একটি সংযোগ - একটি সকেট একটি শেষ পয়েন্ট। একটি সংযোগ 2 সকেট নিয়ে গঠিত।
মার্ক ব্র্যাকেট

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

84

কিছু উপমা সঙ্গে

যদিও সকেটের জন্য উপরে ইতিমধ্যে অনেকগুলি প্রযুক্তিগত জিনিস সরবরাহ করা হয়েছে ... আমি আমার উত্তরটি যুক্ত করতে চাই, সেক্ষেত্রে যদি কেউ এখনও আইপি, বন্দর এবং সকেটের মধ্যে পার্থক্য অনুভব করতে না পারে

একটি সার্ভার এস বিবেচনা করুন ,

এবং বলুন যে ব্যক্তি এক্স, ওয়াই, জেডের সেই সার্ভার এস এর একটি পরিষেবা (চ্যাট পরিষেবা বলুন) দরকার

তারপর

আইপি ঠিকানা বলে -> কে? এক্স, ওয়াই, জেডের সাথে যোগাযোগ করতে চান এমন চ্যাট সার্ভারটি কি 'এস'

ঠিক আছে, আপনি "সার্ভার কে" পেয়েছেন

তবে ধরুন যে সার্ভার 'এস' অন্যান্য লোককেও কিছু অন্যান্য পরিষেবাদি সরবরাহ করছে, বলুন 'এস' ব্যক্তি এ, বি, সি ব্যক্তিকে স্টোরেজ পরিষেবা সরবরাহ করে

তারপর

পোর্ট বলছে ---> কোনটি? আপনার (এক্স, ওয়াই, জেড) পরিষেবাটির প্রয়োজন চ্যাট পরিষেবা দরকার যা স্টোরেজ পরিষেবা নয়

ঠিক আছে .., আপনি সার্ভার তৈরি করে জানতে পারেন যে 'চ্যাট পরিষেবা' আপনি যা চান সেটি সঞ্চয়স্থান নয়

কিন্তু

আপনি তিন এবং সার্ভার তিনটি আলাদাভাবে সনাক্ত করতে চাইবে

সেখানে আসে সকেট

এখন সকেট বলে -> কোনটি?বিশেষ সংযোগ

অর্থাৎ, বলে,

ব্যক্তির জন্য সকেট 1 এক্স

ব্যক্তির জন্য সকেট 2 ওয়াই

এবং ব্যক্তি Z এর জন্য সকেট 3

আমি আশা করি যে এটি এমন কাউকে সহায়তা করে যা এখনও বিভ্রান্ত ছিল :)


সুতরাং এক্স, ওয়াই, জেড একই পোর্টের সাথে সংযুক্ত হবে, অর্থাত্ একই পরিষেবা, তবে সার্ভারের পাশে বিভিন্ন সকেট রয়েছে? সুতরাং, যখন বলুন, এক্স সার্ভারে কিছু প্যাকেট প্রেরণ করে, তখন এটি বলবে: 'আমাকে (প্রোটোকল, এক্স এর আইপি, এক্স এর পোর্ট, এস এর আইপি, এস এর পোর্ট) সকেটটি সন্ধান করুন' এবং চ্যাট অ্যাপটিতে প্রেরণ করুন)। আমি ধরে নিই কিছু অ্যাপ্লিকেশন-স্পেসিফিক অবজেক্টস এবং সকেট অবজেক্টের মধ্যে অবশ্যই একটি বাঁধাই থাকতে হবে? উদাহরণস্বরূপ, আমি যখন সকেট -1 থেকে কিছু ডেটা পেয়েছি, আমি এটি ব্যবহারকারীর বার্তা হিসাবে প্রদর্শন করতে চাই, তবে অ্যাপটি সকেট থেকে প্রাপ্ত বার্তাগুলি ইউজার-এক্স থেকে জানা উচিত।
একঘেয়েমি

44

প্রথমত, আমি মনে করি আমাদের এ থেকে বি প্যাকেট পাওয়ার বিষয়টি কীভাবে তা বোঝা উচিত understanding

কোনও নেটওয়ার্কের একটি সাধারণ সংজ্ঞা হ'ল ওএসআই মডেল ব্যবহার যা একটি নেটওয়ার্ককে উদ্দেশ্য অনুসারে কয়েকটি স্তরকে পৃথক করে। এখানে কয়েকটি গুরুত্বপূর্ণ বিষয় রয়েছে, যা আমরা এখানে কভার করব:

  • তথ্য স্তর সংযোগ আছে । এই স্তরটি একটি নেটওয়ার্ক ডিভাইস থেকে অন্য নেটওয়ার্কে প্যাকেট পাওয়ার জন্য দায়ী এবং এটি স্তরটির ঠিক উপরে যা আসলে সংক্রমণ করে। এটি ম্যাকের ঠিকানাগুলির বিষয়ে কথা বলে এবং তাদের ম্যাক (হার্ডওয়্যার) ঠিকানার ভিত্তিতে হোস্টগুলি কীভাবে সন্ধান করতে পারে তা জানে তবে এর চেয়ে বেশি কিছুই নয়।
  • নেটওয়ার্ক লেয়ার লেয়ার যে আপনার মেশিন এবং এই ধরনের শারীরিক ডিভাইস উপর শারীরিক সীমা জুড়ে ডেটা পরিবহন করার অনুমতি দেয়। নেটওয়ার্ক স্তরটি অবশ্যই একটি অতিরিক্ত ঠিকানা ভিত্তিক প্রক্রিয়াটি সমর্থন করবে যা কোনওভাবে শারীরিক ঠিকানার সাথে সম্পর্কিত; ইন্টারনেট প্রোটোকল প্রবেশ করুন (আইপিভি 4)। একটি আইপি অ্যাড্রেস আপনার প্যাকেটটি ইন্টারনেটে এ থেকে বি পেতে পারে তবে স্বতন্ত্র হप्सকে কীভাবে ট্র্যাভার করতে হয় সে সম্পর্কে কিছুই জানে না। রাউটিংয়ের তথ্য অনুসারে উপরের স্তরটি দ্বারা এটি পরিচালনা করা হয়।
  • ট্রান্সপোর্ট লেয়ার । এ স্তরটি এ থেকে বি তে কীভাবে তথ্য আসে এবং সেই আচরণে যে কোনও বিধিনিষেধ, চেক বা ত্রুটি রয়েছে তার সংজ্ঞা দেওয়ার জন্য এই স্তরটি দায়বদ্ধ। উদাহরণস্বরূপ, টিসিপি একটি প্যাকেটে অতিরিক্ত তথ্য যুক্ত করে যে প্যাকেটগুলি হারিয়ে গেলে তা হ্রাস করা সম্ভব।

টিসিপিতে বন্দরগুলির ধারণাগুলি অন্তর্ভুক্ত রয়েছে । এগুলি একই আইপি ঠিকানায় কার্যকরভাবে বিভিন্ন ডেটা এন্ডপয়েন্টগুলি যেখানে কোনও ইন্টারনেট সকেট ( AF_INET) বাঁধাই করতে পারে।

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

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

সুতরাং পোর্টগুলি মূলত একই ঠিকানা ভাগ করে নেওয়ার একাধিক সমবর্তী সংযোগের অনুমতি দেওয়ার একটি নির্দিষ্টকরণ-বাধ্যতামূলক উপায়।

এখন, আমাদের কীভাবে কোনও অ্যাপ্লিকেশন পয়েন্ট থেকে বাইরের বিশ্বে যোগাযোগ করবেন সেদিকে আমাদের নজর দেওয়া দরকার। এটি করার জন্য, আপনাকে আপনার অপারেটিং সিস্টেমটি দয়া করে জিজ্ঞাসা করতে হবে এবং যেহেতু বেশিরভাগ ওএসগুলি বার্কলে সকেটগুলি কাজ করার পদ্ধতি সমর্থন করে, আমরা দেখতে পাই যে আমরা এই জাতীয় অ্যাপ্লিকেশন থেকে পোর্টগুলি যুক্ত সকেট তৈরি করতে পারি:

int fd = socket(AF_INET, SOCK_STREAM, 0); // tcp socket
int fd = socket(AF_INET, SOCK_DGRAM, 0); // udp socket
// later we bind...

গ্রেট! সুতরাং sockaddrকাঠামোগুলিতে, আমরা আমাদের বন্দর এবং বাম নির্দিষ্ট করব! কাজ শেষ! বেশ, প্রায়, ব্যতীত:

int fd = socket(AF_UNIX, SOCK_STREAM, 0);

সম্ভব। উরগ, এই কাজগুলিতে একটি স্প্যানার ছুড়ে ফেলেছে!

ঠিক আছে, আসলে এটি হয়নি। আমাদের যা করতে হবে তা হ'ল কিছু উপযুক্ত সংজ্ঞা দেওয়া:

  • একটি ইন্টারনেট সকেট হ'ল একটি আইপি ঠিকানা, একটি প্রোটোকল এবং এর সাথে সম্পর্কিত পোর্ট নম্বরের সংমিশ্রণ যা কোনও পরিষেবা ডেটা সরবরাহ করতে পারে। সুতরাং টিসিপি পোর্ট 80, স্ট্যাকওভারফ্লো ডটকম একটি ইন্টারনেট সকেট।
  • একটি ইউনিক্স সকেট ফাইল সিস্টেমের মধ্যে উপস্থাপিত একটি আইপিসির শেষ পয়েন্ট, যেমন /var/run/database.sock
  • সকেট এপিআই হ'ল অ্যাপ্লিকেশনকে অনুরোধ করার একটি পদ্ধতি যা কোনও সকেটে ডেটা পড়তে এবং লিখতে সক্ষম হয়।

ভাল খবর! যে জিনিস আপ পরিপাটি। আমাদের প্রকল্পে তাই,

  • একটি বন্দর এমন একটি সংখ্যক শনাক্তকারী যা পরিবহন স্তর প্রোটোকলের অংশ হিসাবে পরিষেবা নম্বরটি সনাক্ত করে যা প্রদত্ত অনুরোধটির প্রতিক্রিয়া জানানো উচিত।

সুতরাং সত্যিই একটি বন্দর একটি ইন্টারনেট সকেট গঠনের প্রয়োজনীয়তার একটি উপসেট। দুর্ভাগ্যক্রমে, এটি ঠিক তাই ঘটে যে সকেট শব্দের অর্থটি বিভিন্ন ধরণের ধারণাকে প্রয়োগ করা হয়েছে। সুতরাং আমি আন্তরিকভাবে আপনাকে পরামর্শ দিচ্ছি যে আপনি আপনার পরবর্তী প্রকল্পের সকেটের নাম দিন, কেবল বিভ্রান্তি বাড়ানোর জন্য;)


এই কারণেই বুলেটগুলি ছেড়ে যায় না এবং পাওয়ারপয়েন্ট ছেড়ে যায় না; তারা কাজ করে!
অনুরাগ কালিয়া

টিসিপি-আইপি এবং নেটওয়ার্ক যোগাযোগের জন্য খুব সুন্দর ভূমিকা। প্রথমদিকে, এই প্রথম পড়ুন।
কলিন

32

একটি সকেট = আইপি ঠিকানা + একটি পোর্ট (সংখ্যার ঠিকানা)
একসাথে তারা একটি মেশিনে নেটওয়ার্ক সংযোগের জন্য একটি এন্ড-পয়েন্টটি সনাক্ত করে। (আমি কি নেটওয়ার্ক 101 এনেছি?)


7
আমি বিশ্বাস করি আপনার সংজ্ঞার চেয়ে বন্দরটির বিস্তৃত অর্থ রয়েছে।
রিচার্ড ডরম্যান

2
এবং সকেটগুলি কেবলমাত্র টিসিপি / আইপি স্ট্যাকের সাপেক্ষে নয়। সাধারণভাবে ইউনিক্স ডোমেন সকেট বা আন্তঃ প্রক্রিয়া যোগাযোগ সকেটগুলি দেখুন।
ম্যাথিয়াস কুরুল

এই উত্তর সম্পর্কে নিশ্চিত না। আপনি কোনও পোর্ট বরাদ্দ না করে সকেটের মাধ্যমে অন্য প্রক্রিয়াটির সাথে যোগাযোগ করতে HTTP ব্যবহার করতে পারেন।
এফ এফ

31

সাধারণত, আপনি অনেক তাত্ত্বিক পাবেন তবে এই দুটি ধারণাকে পৃথক করার অন্যতম সহজ উপায় হ'ল:

কোনও পরিষেবা পেতে, আপনার একটি পরিষেবা নম্বর প্রয়োজন। এই পরিষেবা নম্বরটিকে একটি বন্দর বলা হয়। যে হিসাবে সহজ।

উদাহরণস্বরূপ, পরিষেবা হিসাবে এইচটিটিপি 80 পোর্টে চলছে।

এখন, অনেক লোক পরিষেবাটির অনুরোধ করতে পারে এবং ক্লায়েন্ট-সার্ভারের একটি সংযোগ স্থাপন করেছে। প্রচুর সংযোগ থাকবে। প্রতিটি সংযোগ একটি ক্লায়েন্ট প্রতিনিধিত্ব করে। প্রতিটি সংযোগ বজায় রাখার জন্য, সার্ভারটি তার ক্লায়েন্ট বজায় রাখতে সংযোগ প্রতি একটি সকেট তৈরি করে।


প্রতিটি সকেটের কি নিজস্ব নিজস্ব বন্দর দরকার?
সোমবার পেপার 14

অসাধারণ. একটি পর্বত-জ্ঞান উপস্থাপনের সবচেয়ে সহজ উপায়।
আসিফ মেহমুদ 15'15

5
আপনার বক্তব্যটি সঠিক কিনা তা আমি নিশ্চিত নই: "সার্ভারটি তার ক্লায়েন্ট বজায় রাখতে সংযোগ অনুযায়ী সকেট তৈরি করে" সঠিক is
রুশী আগরওয়াল

1
@ রশিআগ্রাওয়াল তারপরে আমি আপনাকে এটি সন্ধান করার পরামর্শ দিচ্ছি। বিশেষত, দেখুন মানুষ গ্রহণ।
ব্যবহারকারী 207421

1
এটি সূচিত করে যে সার্ভারটি তার ক্লায়েন্টকে বজায় রাখার জন্য প্রতি সংযোগের জন্য তৈরি প্রতিটি সকেটের জন্য একই পোর্ট নম্বর থাকতে পারে (যেমন HTTP সংযোগের ধারাবাহিকতার জন্য পোর্ট 80) তবে সংযোগের জন্য অনুরোধগুলি প্রেরিত হওয়া ক্লায়েন্টগুলির বিভিন্ন আইপি ঠিকানা সহ। ঠিক আছে?
রন্দিকা বিষ্মান

25

2 পিসির মধ্যে সংযোগের সাথে সকেটকে সমীকরণ করার অনেকগুলি উত্তর রয়েছে বলে মনে হচ্ছে ... যা আমি মনে করি এটি একেবারেই ভুল। একটি সকেট সর্বদা 1 পিসির শেষ পয়েন্ট ছিল, এটি সংযুক্ত বা নাও থাকতে পারে - অবশ্যই আমরা সকলেই শ্রোতা বা ইউডিপি সকেটগুলি ব্যবহার করেছি। গুরুত্বপূর্ণ অংশটি হ'ল এটি ঠিকানাযোগ্য এবং সক্রিয়। ১.১.১.১.৩৩৩৩৪৪ এ একটি বার্তা প্রেরণে কাজ করা সম্ভবত না, কারণ সেই শেষ পয়েন্টের জন্য কোনও সকেট সংজ্ঞায়িত করা হয়নি।

সকেটগুলি প্রোটোকল নির্দিষ্ট - সুতরাং টিসিপি / আইপি এবং ইউডিপি / আইপি উভয়ই ব্যবহার করে এমন স্বতন্ত্রতার বাস্তবায়ন * (আইপ্যাড্রেস: পোর্ট) উদাহরণস্বরূপ, আইপিএক্স (নেটওয়ার্ক, নোড, এবং ... আহেম, সকেট - তবে আলাদা সাধারণ "সকেট" শব্দটি দ্বারা সকেট বোঝানো হয় IP আইপিএক্স সকেট নম্বরগুলি আইপি পোর্টগুলির সমতুল্য)। তবে, তারা সকলেই একটি অনন্য ঠিকানাযোগ্য শেষ পয়েন্ট দেয়।

যেহেতু আইপি প্রভাবশালী প্রোটোকল হয়ে উঠেছে, একটি পোর্ট (নেটওয়ার্কিং শর্তে) একটি ইউডিপি বা টিসিপি পোর্ট নম্বর দ্বারা সমার্থক হয়ে উঠেছে - যা সকেটের ঠিকানার একটি অংশ।

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

  • প্রযুক্তিগতভাবে, আইপি শিরোনামের আইপি ঠিকানা রয়েছে এবং আইপি শীর্ষে প্রোটোকল (ইউডিপি বা টিসিপি) পোর্ট নম্বর ধারণ করে। এটি অন্যান্য প্রোটোকলগুলি থাকা সম্ভব করে (যেমন আইসিএমপি যার কোনও পোর্ট নম্বর নেই, তবে আইপি ঠিকানা সম্পর্কিত তথ্য রয়েছে)।


25

সংক্ষিপ্ত সংক্ষিপ্ত উত্তর।

একটি পোর্ট এমন একটি হোস্টের অভ্যন্তরীণ ঠিকানা হিসাবে বর্ণনা করা যেতে পারে যা কোনও প্রোগ্রাম বা প্রক্রিয়া সনাক্ত করে।

একটি সকেট একটি প্রোগ্রামিং ইন্টারফেস হিসাবে বর্ণিত হতে পারে যা একটি প্রোগ্রামকে অন্য প্রোগ্রাম বা প্রক্রিয়াগুলির সাথে, ইন্টারনেটে বা স্থানীয়ভাবে যোগাযোগ করতে দেয়।


3
বন্দর বর্ণনায় 'অভ্যন্তরীণ' শব্দটি আমার কাছে 'অ-সর্বজনীন' বলে মনে হচ্ছে।
জোনাস এন

সুতরাং আমরা কি বলতে পারি: পোর্টগুলির ভিতরে সকেটগুলি চলছে? বা পোর্টস সকেটের ভিতরে চলে?
গুচো Ca

@ গুচোকা আমরা বলতে পারি না যে সকেট বা বন্দরগুলি একেবারেই চালিত হয়, একে অপরের ভিতরে থাকতে দাও। আপনি যা জিজ্ঞাসা করছেন তা অস্পষ্ট।
ব্যবহারকারী 207421

16

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


সর্বাধিক সাধারণ উত্তরের জন্য, ধর্মঘট "একটি বন্দর এবং একটি হোস্টনাম বা নেটওয়ার্ক অ্যাডাপ্টার নিয়ে এবং এগুলিকে একটিতে সংযুক্ত করে তৈরি"। উদাহরণস্বরূপ, একটি ইউনিক্স সকেট (কোডে) একটি ডেটা স্ট্রাকচার (বা অবজেক্ট) যা আপনি ডেটা প্রেরণ বা গ্রহণ করতে ব্যবহার করতে পারেন।
জোসিয়াহা যোদার-ডিঅ্যাকটিভ ছাড়া ..

14

এগুলি বেসিক নেটওয়ার্কিং ধারণাগুলি তাই আমি এগুলি বিশদগুলিতে বোঝার সহজ তবে একটি বিস্তৃত পদ্ধতিতে ব্যাখ্যা করব।

  • একটি সকেট টেলিফোনের মতো হয় (অর্থাত্ যোগাযোগের জন্য শেষ প্রান্তে ডিভাইস)
  • আইপি আপনার টেলিফোন নম্বরটির মতো (যেমন আপনার সকেটের ঠিকানা)
  • পোর্টটি সেই ব্যক্তির মতো যার সাথে আপনি কথা বলতে চান (যেমন যে পরিষেবাটি আপনি সেই ঠিকানা থেকে অর্ডার করতে চান)
  • সকেট ক্লায়েন্ট বা সার্ভার সকেট হতে পারে (যেমন কোনও সংস্থায় গ্রাহক সহায়তার টেলিফোনটি একটি সার্ভার তবে আপনার বাড়ির একটি টেলিফোন বেশিরভাগ ক্লায়েন্ট হয়)

সুতরাং নেটওয়ার্কিংয়ের একটি সকেট একটি ভার্চুয়াল যোগাযোগ ডিভাইস যা একটি জোড় (আইপি, পোর্ট) = (ঠিকানা, পরিষেবা) এ আবদ্ধ।

বিঃদ্রঃ:

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

আশা করি এটি আপনার সন্দেহকে সাফ করবে


এই প্রশ্নের অধীনে সকেট / বন্দর / আইপি ঠিকানার এই সমস্ত বোঝাপড়া এবং উপমাগুলি দেখতে আকর্ষণীয়। এবং আমি এই উত্তর পছন্দ।
ব্লাডমুন

12

চমৎকার আপ-ভোট দেওয়া উত্তরগুলি পড়ার পরে, আমি দেখতে পেয়েছি যে নিম্নলিখিত প্রোগ্রামটির জন্য আমার জন্য জোর দেওয়া দরকার, নেটওয়ার্ক প্রোগ্রামিংয়ের একজন নতুন:

টিসিপি-আইপি সংযোগগুলি হ'ল দ্বি-দিকনির্দেশক পথগুলি: একটি ঠিকানা যুক্ত হয়: অন্য ঠিকানার সাথে পোর্ট সংমিশ্রণ: পোর্ট সংমিশ্রণ। সুতরাং, যখনই আপনি আপনার স্থানীয় মেশিন থেকে কোনও রিমোট সার্ভারের কোনও বন্দরে কোনও সংযোগ খুলুন (www.google.com:80 বলুন), আপনি সার্ভারটি প্রেরণের অনুমতি দেওয়ার জন্য, সংযোগের সাথে আপনার মেশিনে একটি নতুন পোর্ট নম্বরও যুক্ত করছেন আপনার কাছে ফিরে আসা জিনিসগুলি (যেমন 127.0.0.1:65234)। আপনার মেশিনের সংযোগগুলি দেখতে নেটট্যাট ব্যবহার করা সহায়ক হতে পারে:

> netstat -nWp tcp (on OS X)
Active Internet connections
Proto Recv-Q Send-Q  Local Address          Foreign Address        (state)    
tcp4       0      0  192.168.0.6.49871      17.172.232.57.5223     ESTABLISHED
...

12

একটি সকেট ঠিকানা একটি আইপি ঠিকানা এবং পোর্ট নম্বর

123.132.213.231         # IP address
               :1234    # port number
123.132.213.231:1234    # socket address

একটি সংযোগ ঘটে যখন 2 সকেট এক সাথে আবদ্ধ হয়।


দুটি সকেট একসাথে বাঁধাইয়ের মতো জিনিস নেই। 'আবদ্ধ' শব্দের অর্থ বন্দরগুলির সাথে অন্য কিছু।
ব্যবহারকারী 207421

10

সকেট একটি বিশেষ ধরণের ফাইল হ্যান্ডেল যা অপারেটিং সিস্টেম থেকে নেটওয়ার্ক পরিষেবাদি অনুরোধ করার জন্য একটি প্রক্রিয়া দ্বারা ব্যবহৃত হয়। একটি সকেটের ঠিকানাটি ট্রিপল: {প্রোটোকল, স্থানীয় ঠিকানা, স্থানীয়-প্রক্রিয়া} যেখানে স্থানীয় প্রক্রিয়াটি একটি বন্দর নম্বর দ্বারা চিহ্নিত করা হয়।

টিসিপি / আইপি স্যুটে উদাহরণস্বরূপ:

c টিসিপি, 193.44.234.3, 12345}

একটি কথোপকথন দুটি প্রক্রিয়া মধ্যে যোগাযোগ লিঙ্ক এইভাবে দুটি মধ্যে একটি সম্পর্ক চিত্রিত করে। একটি অ্যাসোসিয়েশন হ'ল 5-টিপল যা সম্পূর্ণভাবে দুটি প্রক্রিয়া নির্দিষ্ট করে যা সংযোগকে অন্তর্ভুক্ত করে: {প্রোটোকল, স্থানীয় ঠিকানা, স্থানীয়-প্রক্রিয়া, বিদেশী ঠিকানা, বিদেশী প্রক্রিয়া}

টিসিপি / আইপি স্যুটে উদাহরণস্বরূপ:

c টিসিপি, 193.44.234.3, 1500, 193.44.234.5, 21}

একটি বৈধ সমিতি হতে পারে।

অর্ধ-সংস্থানটি হ'ল: {প্রোটোকল, স্থানীয় ঠিকানা, স্থানীয় প্রক্রিয়া}

অথবা

{প্রোটোকল, বিদেশী ঠিকানা, বিদেশী প্রক্রিয়া}

যা সংযোগের প্রতিটি অর্ধেক নির্দিষ্ট করে।

অর্ধ-সমিতিকে সকেট বা পরিবহন ঠিকানাও বলা হয়। এটি হ'ল একটি সকেট যোগাযোগের একটি শেষ পয়েন্ট যা কোনও নেটওয়ার্কে নামকরণ এবং সম্বোধন করা যায়। সকেট ইন্টারফেসটি যোগাযোগ প্রোটোকলের একাধিক অ্যাপ্লিকেশন প্রোগ্রামিং ইন্টারফেস (এপিআই) এর একটি। জেনেরিক যোগাযোগ প্রোগ্রামিং ইন্টারফেস হিসাবে নির্মিত, এটি প্রথম 4.2BSD ইউনিক্স সিস্টেম দ্বারা প্রবর্তিত হয়েছিল। যদিও এটি মানসম্মত হয়নি, এটি একটি ডি-ফ্যাক্টো শিল্পের মান হিসাবে পরিণত হয়েছে।


এই উত্তরটি আমার পক্ষে এটি করেছে। আমার ধারণা এটি কারণ, কারণ আর কেউ শব্দের সমিতি উল্লেখ করেনি। ভাল ব্যাখ্যা।
যৌক্তিক

আপনার উদাহরণগুলির মধ্যে কোনও প্রক্রিয়া নম্বর নেই। আপনি যে শব্দটির সন্ধান করছেন তা হ'ল 'বন্দর'।
ব্যবহারকারী 207421

প্রথম প্যারা পড়ুন .. এটি পরিষ্কারভাবে উল্লেখ আছে। সঠিক বাক্যাংশটি উদ্ধৃত করে আমাকে যে কোনও অস্পষ্টতা সম্পর্কে জানতে দিন .. আমার জন্য উন্নতি করতে সহায়ক হবে।
কৃষ্ণ

7

একটি সকেট একটি যোগাযোগের শেষ পয়েন্ট হয়। একটি সকেট সরাসরি টিসিপি / আইপি প্রোটোকল পরিবারের সাথে সম্পর্কিত নয়, এটি আপনার সিস্টেম সমর্থন করে এমন কোনও প্রোটোকল দিয়ে ব্যবহার করা যেতে পারে। সি সকেট এপিআই আশা করে যে আপনি প্রথমে সিস্টেম থেকে একটি ফাঁকা সকেট বস্তু পাবেন যা আপনি তখন স্থানীয় সকেটের ঠিকানার সাথে আবদ্ধ করতে পারেন (সংযোগ-ভিত্তিক প্রোটোকলের জন্য আগত ট্র্যাফিকটি সরাসরি পুনরুদ্ধার করতে বা সংযোগ-ভিত্তিক প্রোটোকলের জন্য আগত সংযোগের অনুরোধগুলি গ্রহণ করতে) বা যে আপনি একটি দূরবর্তী সকেট ঠিকানার সাথে সংযোগ করতে পারেন (উভয় প্রোটোকলের জন্য)। আপনি দুটোই নিয়ন্ত্রণ করতে চাইলে আপনি উভয়ই করতে পারেন, স্থানীয় সকেটের ঠিকানাটি সকেটের সাথে আবদ্ধ এবং দূরবর্তী সকেটের ঠিকানাটি সকেটের সাথে সংযুক্ত রয়েছে। সংযোগ-স্বল্প প্রোটোকলগুলির জন্য সকেট সংযোগ করা এমনকি alচ্ছিক তবে আপনি যদি এটি না করেন তবে আপনি ' আপনি সকেটটি যে প্যাকেটটি প্রেরণ করতে চান তার সাথে গন্তব্য ঠিকানাও পাস করতে হবে যেমন সকেট কীভাবে জানতে পারে যে এই ডেটা কোথায় প্রেরণ করবে? সুবিধা হ'ল আপনি বিভিন্ন সকেটের ঠিকানায় প্যাকেট প্রেরণের জন্য একটি একক সকেট ব্যবহার করতে পারেন। একবার আপনি নিজের সকেটটি কনফিগার করেছেন এবং এমনকি সংযুক্ত হয়ে গেলে, এটি দ্বি-দিকনির্দেশক যোগাযোগ পাইপ হিসাবে বিবেচনা করুন। আপনি কোনও গন্তব্যে ডেটা প্রেরণ করতে এটি ব্যবহার করতে পারেন এবং কিছু গন্তব্য এটি আপনার কাছে ডেটা ফেরত দেওয়ার জন্য ব্যবহার করতে পারেন। আপনি সকেটে যা লেখেন তা পাঠানো হয় এবং যা প্রাপ্ত হয়েছে তা পড়ার জন্য উপলব্ধ। আপনি কোনও গন্তব্যে ডেটা প্রেরণ করতে এটি ব্যবহার করতে পারেন এবং কিছু গন্তব্য এটি আপনার কাছে ডেটা ফেরত দেওয়ার জন্য ব্যবহার করতে পারেন। আপনি সকেটে যা লেখেন তা পাঠানো হয় এবং যা প্রাপ্ত হয়েছে তা পড়ার জন্য উপলব্ধ। আপনি কোনও গন্তব্যে ডেটা প্রেরণ করতে এটি ব্যবহার করতে পারেন এবং কিছু গন্তব্য এটি আপনার কাছে ডেটা ফেরত দেওয়ার জন্য ব্যবহার করতে পারেন। আপনি সকেটে যা লেখেন তা পাঠানো হয় এবং যা প্রাপ্ত হয়েছে তা পড়ার জন্য উপলব্ধ।

অন্যদিকে পোর্টগুলি এমন কিছু যা কেবলমাত্র TCP / IP প্রোটোকল স্ট্যাকের নির্দিষ্ট কিছু প্রোটোকল রয়েছে। টিসিপি এবং ইউডিপি প্যাকেটের পোর্ট রয়েছে। একটি বন্দর কেবল একটি সাধারণ সংখ্যা। উত্স পোর্ট এবং গন্তব্য পোর্টের সংমিশ্রণটি দুটি হোস্টের মধ্যে একটি যোগাযোগের চ্যানেল সনাক্ত করে। যেমন আপনার একটি সার্ভার থাকতে পারে যা উভয়ই হতে পারে, একটি সাধারণ এইচটিটিপি সার্ভার এবং একটি সাধারণ এফটিপি সার্ভার। এখন যদি সেই সার্ভারের ঠিকানার জন্য কোনও প্যাকেট আসে, তবে এটি কীভাবে জানবে যে এটি HTTP বা FTP সার্ভারের প্যাকেট? ঠিক আছে, এটি তাই জানবে যে এইচটিটিপি সার্ভারটি পোর্ট ৮০ এবং এফটিপি সার্ভারটি পোর্ট ৮০ এ চলবে, সুতরাং প্যাকেটটি যদি কোনও গন্তব্য পোর্ট ৮০ নিয়ে আসে তবে এটি HTTP সার্ভারের জন্য, এফটিপি সার্ভারের জন্য নয়। এছাড়াও প্যাকেটের একটি সোর্স পোর্ট রয়েছে যেহেতু এ জাতীয় উত্স পোর্ট না থাকায় একটি সার্ভারে একবারে কেবল একটি আইপি ঠিকানার সাথে একটি সংযোগ থাকতে পারে। উত্স বন্দরটি কোনও সার্ভারের জন্য অন্যভাবে অভিন্ন সংযোগগুলি পৃথক করা সম্ভব করে তোলে: তাদের সকলের একই গন্তব্য পোর্ট রয়েছে, যেমন পোর্ট ৮০, একই গন্তব্য আইপি (সার্ভারের আইপি), এবং একই উত্স আইপি, যেহেতু তারা এসেছে have একই ক্লায়েন্ট, তবে তাদের আলাদা উত্স পোর্ট রয়েছে বলে সার্ভার তাদের একে অপরের থেকে আলাদা করতে পারে। এবং সার্ভার যখন উত্তরগুলি ফেরত পাঠায়, তখন অনুরোধটি যে বন্দরে এসেছিল সেটি পোর্টে এটি করবে, সেইভাবে ক্লায়েন্ট একই সার্ভার থেকে প্রাপ্ত বিভিন্ন প্রতিক্রিয়াও আলাদা করতে পারে।


2
এটি ভুল। একটি সকেট একটি শেষ পয়েন্ট নয়। একটি সকেট দুটি শেষ পয়েন্ট দ্বারা সংজ্ঞায়িত করা হয়। প্রতিটি প্রান্তটি নেটওয়ার্ক ঠিকানা এবং একটি বন্দর দ্বারা সংজ্ঞায়িত করা হয়। পোর্টগুলির উদ্দেশ্য হ'ল একই নেটওয়ার্ক ঠিকানার একাধিক এন্ডপয়েন্টগুলিকে আলাদা করা, যাতে একাধিক সমবর্তী সকেটগুলি সমর্থন করা যায়।
পিটার ওয়েন

1
আমি লক্ষ্য করেছি যে আরএফসি 3 3৩ (মূল টিসিপি স্পেক) কোনও সকেট হিসাবে একটি নেটওয়ার্ক ঠিকানা এবং একটি পোর্টের সংমিশ্রণকে বোঝায়, তাই আপনি এটি কোথায় পেয়েছেন তা দেখতে পেলাম তবে এটি এখনও ভুল নয় যে ইনস্মুচাস একটি সকেট অগত্যা দুটি সমাপ্তি দ্বারা সংজ্ঞায়িত করা হয়েছে।
পিটার উইন

2
প্রতিবিম্বের উপর সাহিত্যগুলি পরস্পরবিরোধী এবং আমি ক্ষমা চাইছি। অত্যন্ত কঠোরভাবে কথোপকথন ঘটে না যতক্ষণ না দুটি টিন্ডপয়েন্ট (ওরফে সকেট) এর মধ্যে একটি টিসিপি সংযোগ স্থাপন করা হয় যার প্রত্যেকটি নেটওয়ার্ক ঠিকানা এবং একটি বন্দর দ্বারা চিহ্নিত করা হয়। আমি হাল ছেড়ে দিলাম।
পিটার উইন

6

বন্দরটি সবচেয়ে সহজ অংশ ছিল এটি সকেটের জন্য কেবল একটি অনন্য শনাক্তকারী। সকেট এমন কিছু যা প্রক্রিয়াগুলি সংযোগ স্থাপন এবং একে অপরের সাথে যোগাযোগের জন্য ব্যবহার করতে পারে। লম্বা জেফের একটি দুর্দান্ত টেলিফোন উপমা ছিল যা নিখুঁত ছিল না, তাই আমি এটিকে ঠিক করার সিদ্ধান্ত নিয়েছি:

  • আইপি এবং পোর্ট ~ ফোন নম্বর
  • সকেট-ফোন ডিভাইস
  • সংযোগ ~ ফোন কল
  • সংযোগ স্থাপন করা - একটি নম্বর কল করা
  • প্রক্রিয়া, দূরবর্তী অ্যাপ্লিকেশন ~ লোক
  • বার্তা ~ স্পিচ

গুড শোধন (বিশেষ করে যখন আপনি টেলিফোন সুইচিং ইতিহাস নেটওয়ার্কিং পরিভাষা ভিত্তিপ্রস্তর অংশ বিবেচনা ..)
oɔɯǝɹ

একটি netstatডিসপ্লে কিছু সময় দেখুন। শ্রোতা সকেট থেকে গৃহীত সমস্ত সকেট একই পোর্টে ভাগ করে। অতএব পোর্ট একটি সকেট জন্য একটি অনন্য শনাক্তকারী নয়।
ব্যবহারকারী 207421

6

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


5

একটি সকেট আপনার সফ্টওয়্যার মধ্যে একটি কাঠামো। এটি কম-বেশি কোনও ফাইল; এটি পড়া এবং লেখার মতো অপারেশন করে। এটি কোনও শারীরিক জিনিস নয়; এটি আপনার সফ্টওয়্যারটির দৈহিক বিষয়গুলি বোঝার জন্য একটি উপায়।

একটি বন্দর একটি ডিভাইসের মতো জিনিস। প্রতিটি হোস্টের এক বা একাধিক নেটওয়ার্ক রয়েছে (সেগুলি শারীরিক); একটি হোস্ট প্রতিটি নেটওয়ার্কে একটি ঠিকানা আছে। প্রতিটি ঠিকানার হাজার হাজার বন্দর থাকতে পারে।

একটি সকেট কেবল কোনও ঠিকানায় একটি বন্দর ব্যবহার করতে পারে। সকেটটি পোর্টের জন্য বরাদ্দ করে যেমন ফাইল সিস্টেম I / O এর জন্য কোনও ডিভাইস বরাদ্দ করে। একবার বন্দর বরাদ্দ হয়ে গেলে, অন্য কোনও সকেট সেই বন্দরের সাথে সংযোগ করতে পারে না। সকেট বন্ধ হয়ে গেলে বন্দরটি মুক্ত করা হবে।

কটাক্ষপাত করে TCP / IP পরিভাষা


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

1
দুঃখিত। একাধিক সকেট 80 পোর্টের সাথে সংযুক্ত নেই One একটি সকেট সংযুক্ত থাকে এবং অতিরিক্ত সকেট তৈরি করে যেখানে আসল স্থানান্তর ঘটে। Opengroup.org/onlinepubs/009695399/funitions/listen.html দেখুন ।
এস .লট

1
আসলে, opengroup.org/onlinepubs/009695399/funitions/connect.htmlবর্ণনাটি আরও ভাল। সংযোগ দিয়ে ফিরে আসা পিয়ার সকেট 80 পোর্টে নেই
এস .লোট

1
এই পোস্টটি বেশ কয়েকটি বিবরণে ভুল এবং বিভিন্ন দিক থেকে বিভ্রান্তিকর।
পিটার জিতলেন

@ পিটার ওয়োন: কোন বিবরণ? কোন দিক? আমার ভুল থেকে শিক্ষা নেওয়ার আশা করছি।
এস .লট

5

থেকে ওরাকল জাভা টিউটোরিয়াল :

একটি সকেট নেটওয়ার্কে চলমান দুটি প্রোগ্রামের মধ্যে দ্বি-মুখী যোগাযোগের লিঙ্কের একটি শেষ পয়েন্ট। একটি সকেট একটি পোর্ট নম্বরে আবদ্ধ যাতে টিসিপি স্তরটি অ্যাপ্লিকেশনটি সনাক্ত করতে পারে যা ডেটা প্রেরণ করা হয়।


এটি কেবলমাত্র একটি টিউটোরিয়াল, এবং অবশ্যই কোনও আদর্শিক রেফারেন্স নয়।
ব্যবহারকারী 207421

"একটি সকেট দ্বি-মুখী যোগাযোগের লিঙ্কের একটি প্রান্তস্থল" এটি কি কোনও সকেট সংজ্ঞা নয়, জাভা টিউটোরিয়াল নয় ??
প্রয়াগাপড

@ প্রয়াগআপ্ড অবশ্যই এটি একটি সংজ্ঞা, তবে এটি একটি টিউটোরিয়াল থেকে, কোনও নির্দিষ্টকরণ নয়।
ব্যবহারকারী 207421

4

পোর্ট এবং সকেটকে ব্যাংক শাখার সাথে তুলনা করা যেতে পারে।

"ব্যাংক" এর বিল্ডিং নম্বর আইপি ঠিকানার সাথে সমান। একটি ব্যাংক বিভিন্ন বিভাগ পেয়েছে যেমন:

  1. সঞ্চয়ী হিসাব বিভাগ
  2. ব্যক্তিগত loanণ বিভাগ
  3. হোম loanণ বিভাগ
  4. অভিযোগ বিভাগ

সুতরাং 1 (সঞ্চয় অ্যাকাউন্ট বিভাগ), 2 (ব্যক্তিগত loanণ বিভাগ), 3 (স্ব loanণ বিভাগ) এবং 4 (অভিযোগ বিভাগ) বন্দর are

এখন আমাদের বলুন যে আপনি একটি সঞ্চয়ী অ্যাকাউন্ট খুলতে যান, আপনি ব্যাঙ্কে যান (আইপি ঠিকানা), তারপরে আপনি "সঞ্চয়ী অ্যাকাউন্ট বিভাগ" (বন্দর নম্বর 1) এ যান, তারপরে আপনি "সঞ্চয়ী অ্যাকাউন্ট বিভাগের অধীনে কর্মরত কোনও কর্মচারীর সাথে দেখা করুন "। অ্যাকাউন্ট খোলার জন্য আসুন আমরা তাকে SAVINGACCOUNT_EMPLOYEE1 বলি।

SAVINGACCOUNT_EMPLOYEE1 হ'ল আপনার সকেট বর্ণনাকারী, তাই SAVINGACCOUNT_EMPLOYEE1 থেকে SAVINGACCOUNT_EMPLOYEEN থাকতে পারে। এটি সমস্ত সকেট বর্ণনাকারী।

তেমনি, অন্যান্য বিভাগগুলি তাদের অধীনে কর্মরত থাকবে এবং তারা সকেটের সাথে সমান।


3

একটি সকেট একটি ডেটা I / O প্রক্রিয়া mechanism একটি বন্দর একটি যোগাযোগ প্রোটোকলের একটি চুক্তিগত ধারণা । পোর্ট ছাড়াই একটি সকেট থাকতে পারে। একটি নির্দিষ্ট সকেটের বাইরে কোনও বন্দর বিদ্যমান থাকতে পারে (যেমন যদি একই বন্দরে বেশ কয়েকটি সকেট সক্রিয় থাকে, যা কিছু প্রোটোকলের জন্য অনুমোদিত হতে পারে)।

কোন প্রোটোকল সহ প্যাকেটটি রিসিভারের দিকে নিয়ে যাওয়া উচিত তা নির্ধারণের জন্য একটি বন্দর ব্যবহার করা হয়, তবে এটি সর্বদা প্রয়োজন হয় না এবং প্রাপ্ত সকেট নির্বাচনটি অন্য উপায়ে করা যায় - একটি পোর্ট পুরোপুরি একটি সরঞ্জাম যা প্রোটোকল হ্যান্ডলার দ্বারা ব্যবহৃত হয় নেটওয়ার্ক সাবসিস্টেম উদাহরণস্বরূপ যদি কোনও প্রোটোকল কোনও বন্দর ব্যবহার না করে, প্যাকেটগুলি সমস্ত শ্রোতা সকেট বা কোনও সকেটে যেতে পারে।


3

আপেক্ষিক টিসিপি / আইপি পরিভাষা যা আমি ধরে নিয়েছি তা প্রশ্নের দ্বারা আবদ্ধ। সাধারণ লোকের পদে:

একটি পোর্ট একটি নির্দিষ্ট জিপ কোডের কোনও নির্দিষ্ট বাড়ির টেলিফোন নম্বরটির মতো। শহরের জিপ কোডটি শহরের আইপি ঠিকানা এবং সেই শহরের সমস্ত বাড়ির হিসাবে বিবেচনা করা যেতে পারে।

অন্যদিকে একটি সকেট হ'ল একে অপরের সাথে কথা বলে একজোড়া বাড়ির টেলিফোনের মধ্যে একটি প্রতিষ্ঠিত ফোন কলের মতো। এই কলগুলি একই শহরে বা বিভিন্ন শহরে দুটি বাড়ির মধ্যে প্রতিষ্ঠিত হতে পারে। একে অপরের সাথে কথা বলার জোড়ার মধ্যে এটি অস্থায়ীভাবে প্রতিষ্ঠিত পথ যা সোকেট।


2
একটি সকেট একটি শেষ পয়েন্ট। কোনও সংযোগ স্থাপনের আগে (টিসিপি) উপস্থিত হওয়ার আগে, বা সংযোগের অনুপস্থিতিতে (ইউডিপি) উপস্থিত রয়েছে। তবে এটি নিজেই সংযোগ নয়।
ব্যবহারকারী 207421

2

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

একটি বন্দর একটি শেষ পয়েন্ট বৈষম্যমূলক। এটি অন্য প্রান্ত থেকে অন্য প্রান্তকে পৃথক করে। নেটওয়ার্কিং স্তরে, এটি একটি অ্যাপ্লিকেশনকে অন্যের থেকে পৃথক করে, যাতে নেটওয়ার্কিং স্ট্যাক তথ্যটিতে যথাযথ অ্যাপ্লিকেশনটিতে যেতে পারে।


2

ইতিমধ্যে এই প্রশ্নের তাত্ত্বিক উত্তর দেওয়া হয়েছে। আমি এই প্রশ্নের একটি ব্যবহারিক উদাহরণ দিতে চাই, যা সকেট এবং বন্দর সম্পর্কে আপনার বোঝার সাফ করবে।

আমি এটি এখানে খুঁজে পেয়েছি

এই উদাহরণটি উইলির মতো কোনও ওয়েবসাইটের সাথে সংযোগ স্থাপনের প্রক্রিয়াটি অনুসরণ করবে। আপনি আপনার ওয়েব ব্রাউজারটি খুলবেন (মোজিলা ফায়ারফক্সের মতো) এবং ঠিকানা বারে www.wiley.com টাইপ করবেন। আপনার ওয়েব ব্রাউজারটি তার আইপি ঠিকানাটি সনাক্ত করতে www.wiley.com নামটি সন্ধান করতে একটি ডোমেন নেম সিস্টেম (ডিএনএস) সার্ভার ব্যবহার করে। এই উদাহরণস্বরূপ, ঠিকানাটি 192.0.2.100।

ফায়ারফক্স 192-0.2.100 ঠিকানা এবং বন্দর যেখানে অ্যাপ্লিকেশন স্তর ওয়েব সার্ভার কাজ করছে তার সাথে সংযোগ স্থাপন করে। ফায়ারফক্স জানবে কোন বন্দরটি প্রত্যাশা করবে কারণ এটি একটি সুপরিচিত বন্দর। ওয়েব সার্ভারের জন্য সুপরিচিত বন্দরটি টিসিপি পোর্ট 80।

ফায়ারফক্স সংযোগের জন্য চেষ্টা করছে এমন গন্তব্য সকেটটি সকেট: বন্দর হিসাবে লেখা হয়েছে, বা এই উদাহরণে, 192.0.2.100:80। এটি সংযোগের সার্ভার সাইড, তবে সার্ভারটি মোজিলা ফায়ারফক্সে আপনি যে ওয়েব পৃষ্ঠাটি দেখতে চান তা কোথায় পাঠাতে হবে তা জানতে হবে, সুতরাং সংযোগের ক্লায়েন্টের পক্ষে আপনার সকেট রয়েছে।

ক্লায়েন্টের পার্শ্ব সংযোগটি আপনার আইপি ঠিকানা, যেমন 192.168.1.25 এবং এলোমেলোভাবে নির্বাচিত গতিশীল পোর্ট নম্বর দিয়ে তৈরি। ফায়ারফক্সের সাথে যুক্ত সকেট দেখতে 192.168.1.25:49175 এর মতো দেখাচ্ছে। ওয়েব সার্ভারগুলি টিসিপি পোর্ট ৮০ এ কাজ করে, এই উভয় সকেটই টিসিপি সকেট, আপনি যদি কোনও ইউডিপি পোর্টে অপারেটিং সার্ভারের সাথে সংযোগ স্থাপন করছিলেন তবে সার্ভার এবং ক্লায়েন্ট সকেট উভয়ই ইউডিপি সকেট হবে।


খুব খারাপ মানের উদ্ধৃতি। তৃতীয় অনুচ্ছেদটি 'সকেট' শব্দের অপব্যবহার করে যেমন এর অর্থ 'আইপি ঠিকানা'। এটা হয় না।
ব্যবহারকারী 207421

2

সকেট আই / ও ডাটা ব্যবহারের জন্য ব্যবহারকারী অ্যাপ্লিকেশনগুলিতে কার্নেল দ্বারা সরবরাহ করা একটি বিমূর্ততা। একটি সকেট প্রকারটিকে হ্যান্ডলিং, একটি আইপিসি যোগাযোগ ইত্যাদি দ্বারা সংজ্ঞায়িত করা হয় তাই কেউ যদি কোনও টিসিপি সকেট তৈরি করেন তবে তিনি সকেটে ডেটা পড়ার এবং এটিতে সহজ পদ্ধতিতে ডেটা লেখার মতো কৌশলগুলি করতে পারেন এবং টিসিপি রূপান্তরগুলির মতো নিম্ন স্তরের প্রোটোকল হ্যান্ডলিং এবং নিম্ন স্তরের নেটওয়ার্ক প্রোটোকলগুলিতে প্যাকেট ফরোয়ার্ড কর্নেলের নির্দিষ্ট সকেট প্রয়োগের মাধ্যমে সম্পন্ন করা হয়। সুবিধাটি হ'ল ব্যবহারকারীর প্রোটোকল নির্দিষ্ট নাইটিগিটিগুলি পরিচালনা করার বিষয়ে চিন্তা করার দরকার নেই এবং কেবলমাত্র একটি সাধারণ বাফারের মতো সকেটে ডেটা পড়া এবং লেখা উচিত। আইপিসির ক্ষেত্রেও এটি সত্য, ব্যবহারকারী কেবল সকেটে ডেটা পড়েন এবং লেখেন এবং কার্নেল তৈরি করা সকেটের ধরণের ভিত্তিতে সমস্ত নিম্ন স্তরের বিশদ পরিচালনা করে hand

আইপি সহ একত্রে বন্দরটি সকেটে একটি ঠিকানা সরবরাহ করার মতো, যদিও এটি প্রয়োজনীয় নয় তবে এটি নেটওয়ার্ক যোগাযোগে সহায়তা করে।


2

একক পোর্টে একাধিক বৈদ্যুতিক আউটলেটের মতো বিভিন্ন বহিরাগত আইপির সাথে সংযুক্ত এক বা একাধিক সকেট থাকতে পারে।

  TCP    192.168.100.2:9001     155.94.246.179:39255   ESTABLISHED     1312
  TCP    192.168.100.2:9001     171.25.193.9:61832     ESTABLISHED     1312
  TCP    192.168.100.2:9001     178.62.199.226:37912   ESTABLISHED     1312
  TCP    192.168.100.2:9001     188.193.64.150:40900   ESTABLISHED     1312
  TCP    192.168.100.2:9001     198.23.194.149:43970   ESTABLISHED     1312
  TCP    192.168.100.2:9001     198.49.73.11:38842     ESTABLISHED     1312

2

সকেট হল নেটওয়ার্কিং এন্ডপয়েন্টের এসডাব্লু বিমূর্ততা, অ্যাপ্লিকেশনটির ইন্টারফেস হিসাবে ব্যবহৃত হয়। জাভাতে, সি # এটি অবজেক্ট দ্বারা প্রতিনিধিত্ব করা হয়, লিনাক্সে, ইউনিক্স এটি একটি ফাইল।

বন্দর হ'ল একটি সকেটের একটি সম্পত্তি যা আপনি নির্দিষ্ট করতে চান যদি আপনি কোনও যোগাযোগ স্থাপন করতে চান। সকেট থেকে প্যাকেটটি পেতে আপনাকে নির্দিষ্ট স্থানীয় বন্দর এবং এনআইসির (স্থানীয় আইপি ঠিকানার সাথে) বা সমস্ত এনআইসি-র সাথে আবদ্ধ করতে হবে (আইএনএডিডিআর_এনআই বাইন্ড কলে নির্দিষ্ট করা আছে)। প্যাকেট প্রেরণ করতে, আপনাকে দূরবর্তী সকেটের পোর্ট এবং আইপি নির্দিষ্ট করতে হবে।


1

একটি সকেট মূলত নেটওয়ার্ক যোগাযোগের জন্য একটি অন্তিম পয়েন্ট হয়, এতে অন্তত একটি আইপি-ঠিকানা এবং একটি পোর্ট থাকে। জাভা / সি # তে একটি সকেট দ্বি-মুখী সংযোগের একদিকে উচ্চ স্তরের বাস্তবায়ন।

এছাড়াও, জাভা ডকুমেন্টেশনের একটি সংজ্ঞা ।


জাভা টিউরিয়ালে, আপনি বোঝাতে চেয়েছেন।
ব্যবহারকারী 207421

1

পোর্ট:

একটি বন্দর পেরিফেরিয়াল ডিভাইসগুলির জন্য যেমন সিরিয়াল, সমান্তরাল এবং ইউএসবি পোর্টগুলির জন্য একটি শারীরিক সংযোগ বিন্দুকে উল্লেখ করতে পারে। পোর্ট শব্দটি নির্দিষ্ট কিছু ইথারনেট সংযোগ পয়েন্টকে হাব, সুইচ বা রাউটার হিসাবে চিহ্নিত করে।

সকেট:

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


একটি টিসিপি বা ইউডিপি পোর্ট শারীরিক কিছু বা ইথারনেট সংযোগ পয়েন্টগুলিতে উল্লেখ করে না। আপনি প্রশ্নের উত্তর দেন নি।
ব্যবহারকারী 207421

1

আইপি নেটওয়ার্ক প্রোটোকলের জন্য একটি পোর্ট টিসিপি এবং ইউডিপি ট্রান্সপোর্টের একটি যোগাযোগের শেষ পয়েন্টকে নির্দেশ করে। সকেট হল এই প্রোটোকলগুলির (সকেট এপিআই) বাস্তবায়নে ব্যবহৃত যোগাযোগের শেষ পয়েন্টের জন্য একটি সফ্টওয়্যার বিমূর্ততা। একটি বিকল্প বাস্তবায়ন হল এক্সটিআই / টিএলআই এপিআই।

আরো দেখুন:

স্টিভেনস, ডাব্লুআর 1998, ইউএনআইএক্স নেটওয়ার্ক প্রোগ্রামিং: নেটওয়ার্কিং এপিআই: সকেট এবং এক্সটিআই; খণ্ড ১, প্রেন্টাইস হল।
স্টিভেন্স, ডব্লিউআর, 1994, টিসিপি / আইপি সচিত্র, খণ্ড 1: প্রোটোকলস, অ্যাডিসন-ওয়েসলি।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.