বন্দর এবং প্রোটোকল আসলে কি?


11

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

আমি এর অর্থ কী তা বুঝতে পেরেছি তবে কেবল একটি কৃত্রিম পর্যায়ে। মূলত, আমি জানি যে একটি বন্দর কী এবং আমি বুঝতে পারি প্রোটোকল কী, তবে সেগুলি আসলে কী?

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

প্রোটোকল কি? আমি ভাবতে পারি যে তারা কোনও প্রকারের কোড .... আপনি কি নিজের প্রোটোকল তৈরি করতে পারবেন? একটি নির্দিষ্ট প্রোটোকল চালানোর জন্য আপনি কীভাবে একটি নির্দিষ্ট বন্দর পাবেন? প্রোটোকল তৈরি করতে আপনি কোন ভাষা ব্যবহার করেন? আপনি কীভাবে একটি নতুন প্রোটোকল সংজ্ঞায়িত বা উদ্ভাবন করবেন?

উত্তর:


9

হ্যালো 71 এর উত্তর, এটি কোনও প্যাকেটের কোনও ঠিকানার কাঠামোর কথা চিন্তা করে কোনও পোর্টটি কল্পনা করতে সহায়তা করবে। একটি প্যাকেট ডেটাগুলির একক হিসাবে একটি নেটওয়ার্কের কাছাকাছি চলে গেছে। টিসিপি হ'ল পরিবহন স্তর প্রোটোকলের উদাহরণ যা বন্দর ব্যবহার করে এবং সাধারণত আইপি-র মাধ্যমে ব্যবহৃত হয়।

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

Source IP    Source Port       Dest IP       Dest Port       Service
10.1.1.10    23434             192.168.1.1   80              web
10.1.1.10    34343             192.168.1.1   25              incoming email

ওয়েব পরিষেবাদি 80 পোর্টের মালিক এবং ইমেল পরিষেবা 25 পোর্টের মালিক - তারা তাদের নিজ নিজ বন্দরগুলিতে "শোনো", যা ট্র্যাফিককে সঠিক জায়গায় শেষ করতে সক্ষম করে।

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

Source IP    Source Port       Dest IP       Dest Port       Service
10.1.1.10    23232             192.168.1.1   80              web request 1
10.1.1.10    23234             192.168.1.1   80              web request 2

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

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

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


ধন্যবাদ! এটি কেবল উত্তর ছিল যা আমি সন্ধান করছিলাম, সাহায্যের জন্য ধন্যবাদ!
বব

3

হুঁ। আমি মনে করব যে শুরু করার সবচেয়ে ভাল জায়গাটি হ'ল আইপি স্যুটকে লক্ষ্য করা, ওরফে টিসিপি / আইপি মডেল। (সরলতার উদ্দেশ্যে OSI মডেলের অন্যান্য স্তরগুলি উপেক্ষা করা))

মূলত, এটি স্তরগুলির একটি সিরিজ:

অ্যাপ্লিকেশন স্তর - এইচটিটিপি, এফটিপি, পিওপি, এসএসএইচ, ইত্যাদি
পরিবহন স্তর - টিসিপি, ইউডিপি, ইত্যাদি
ইন্টারনেট স্তর - আইপি, আইসিএমপি ইত্যাদি
লিঙ্ক স্তর - ইথারনেট ইত্যাদি etc.

বন্দরগুলি বেশিরভাগ ক্ষেত্রে পরিবহণ স্তরে প্রয়োগ করা হয় (স্তর 4 - হ্যাঁ, নম্বরটি সঠিক)

ওএসে বাস্তবায়িত বেশিরভাগ টিসিপি এবং / অথবা ইউডিপি স্ট্যাকগুলি প্রোগ্রামগুলিতে পোর্ট নির্ধারণ এবং কেবল প্যাকেটগুলি নেটওয়ার্কের মধ্যে আসার সাথে সাথে এই প্রোগ্রামগুলিতে ইভেন্ট উত্থাপনের একটি মৌলিক ব্যবস্থা ব্যবহার করে। তবে যে কোনও বাস্তবায়ন তাত্ত্বিকভাবে কাজ করতে পারে; এমনকি অনুমানের বিকল্প স্ট্যাকগুলি একাডেমিয়ায় চিন্তাও করতে পারে।

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

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

আরও তথ্যের জন্য, ওএসআই মডেল, টিসিপি এবং আইপি তে উইকিপিডিয়া পৃষ্ঠাগুলি পরীক্ষা করুন।


আমি সব বুঝতে পারি। সুতরাং মূলত, একটি বন্দর একটি শারীরিক জিনিস না? এটি প্রোগ্রামেড যে কিছু? কোন কম্পিউটারে বন্দরটি সংজ্ঞায়িত করা হয়? এবং তারপরে প্রোটোকলগুলির জন্য কীভাবে এটি তৈরি করা হয়? যারা প্রোগ্রাম করা হয়?
বব

না, কোনও বন্দর এই প্রসঙ্গে কোনও শারীরিক জিনিস নয় (অবশ্যই কোনও ইউএসবি পোর্ট শারীরিক তবে এই বিষয়ের সাথে সম্পর্কিত নয়)। প্রোটোকলগুলি আরএফসি ( en.wikedia.org/wiki/Request_for_Comments ) এর মাধ্যমে সংজ্ঞায়িত করা হয় এবং কোড - প্রোগ্রামযুক্ত প্রয়োগ করা হয়।
পল

এটি কী বলা যায় যে টিসিপি হ'ল একটি সিস্টেম প্রক্রিয়া যা আইপি থেকে আগত ডেটা সংরক্ষণ করার জন্য মেমরি সংরক্ষণ করে (বা আইপি দ্বারা তথ্য সংগ্রহের জন্য) এবং এই মেমরিটি 'বন্দরগুলিতে বিভক্ত'। এবং অন্যান্য অ্যাপ্লিকেশন (প্রক্রিয়া) যেমন এইচটিটিপি, টিসিপিকে অবহিত করতে পারে যে তারা নির্দিষ্ট পোর্টগুলি সংরক্ষণ করতে চায় (যেমন 80 এবং 443)। তারপরে এটি টিসিপির কাজ হয়ে যায় ১. এইচটিটিপিকে সেই মেমরি ঠিকানাগুলিতে ডেটা আউটগোয়িং ডেটা যুক্ত করার অনুমতি দেয় এবং ২. এই মেমরি ঠিকানাগুলিতে ইনকামিং ডেটা যুক্ত করা হয় তখন HTTP কে জানাতে হবে?
জ্যাচ স্মিথ

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

3

যদিও এই প্রশ্নটি ইতিমধ্যে উত্তর হিসাবে চিহ্নিত হয়েছে, আমি ওপিতে জিজ্ঞাসা করা অতিরিক্ত কিছু প্রশ্নের সমাধান করতে চেয়েছিলাম।

এই বন্দরগুলি কি শারীরিক বস্তু?

কোনও বন্দর শারীরিক বস্তু নয়।

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

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

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

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

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

কয়টি বন্দর আছে?

পোর্ট সংখ্যাগুলি বিভিন্নভাবে নির্ধারিত হয়, তিনটি রেঞ্জের উপর ভিত্তি করে:

  1. সুপরিচিত / সিস্টেম বন্দরগুলি (0-1023) - পোর্টগুলির এই ব্যাপ্তিগুলি সিস্টেম প্রক্রিয়াগুলি দ্বারা ব্যবহৃত হয় যা বহুল ব্যবহৃত ব্যবহৃত জাতীয় নেটওয়ার্ক পরিষেবাদি সরবরাহ করে (HTTP / 80, HTTPS / 443, টেলনেট / 21, এসএসএইচ / 22)

  2. নিবন্ধিত / ব্যবহারকারীর বন্দরগুলি (1024-49151) - 1024 থেকে 49151 পর্যন্ত পোর্ট সংখ্যার ব্যাপ্তি নিবন্ধিত বন্দরগুলি। একটি অনুরোধকারী সত্তা দ্বারা আবেদনের উপরে নির্দিষ্ট পরিষেবার জন্য তাদের আইএএনএ দ্বারা নিয়োগ করা হয়। (ওয়েবমিন / 10000, HTTP প্রক্সি / 8080, রিমোট ডেস্কটপ প্রোটোকল / 3389, ইত্যাদি)

  3. ক্ষণজীবী / ডায়নামিক / ব্যক্তিগত বন্দর (49152-65535) - পরিসীমা 49152-65535 গতিশীল বা ব্যক্তিগত পোর্ট যে রয়েছে না পারেন IANA সাথে নিবন্ধিত হতে পারে। এই ব্যাপ্তিটি কাস্টম বা অস্থায়ী উদ্দেশ্যে এবং সাময়িক বন্দরগুলির স্বয়ংক্রিয় বরাদ্দের জন্য ব্যবহৃত হয়।

আমি কি বন্দর সংখ্যা বাড়াতে বা হ্রাস করতে পারি?

উপলব্ধ বন্দরগুলির সংখ্যা বৃদ্ধি করতে সক্ষম হওয়ার ক্ষেত্রে, আপনি গণিতের কারণে 65535 এর উপরে কোনও বন্দর নির্ধারণ করতে পারবেন না যা নেটওয়ার্কিং (বাইনারি) কাজ করতে দেয় - সুতরাং এই প্রশ্নের উত্তর হ'ল না, আপনি মোট উপলব্ধ সংখ্যা বাড়াতে পারবেন না 65535 উপরে পোর্ট।

প্রোটোকল কি?

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

আমি ভাবতে পারি যে তারা কোনও প্রকারের কোড .... আপনি কি নিজের প্রোটোকল তৈরি করতে পারবেন? প্রোটোকল তৈরি করতে আপনি কোন ভাষা ব্যবহার করেন?

হ্যাঁ আপনি নিজের প্রোটোকল তৈরি করতে পারেন। প্রোটোকল বিভিন্ন ভাষায় রচিত হয়। আমি কোনও সফ্টওয়্যার বিকাশকারী নই, তবে আমি নিশ্চিত যে আপনি যতটা ভাষা ব্যবহার করছেন ততক্ষণ লাইব্রেরি রয়েছে যা আপনাকে এমন সফ্টওয়্যার লিখতে দেয় যা টিসিপি / আইপি যোগাযোগ করতে পারে (অন্যান্য প্রোটোকল স্যুট রয়েছে, তবে টিসিপি / আইপি সবচেয়ে বেশি প্রোটোকল লেখার জন্য আপনি সেই ভাষাটি ব্যবহার করতে পারেন widely প্রোগ্রামিং ভাষা 'সি' প্রোটোকল লেখার ক্ষেত্রে সবচেয়ে বেশি ব্যবহৃত হয় বলে মনে হয়। এটি ১৯ network০ এর দশকে ইউএনআইএক্স-এ প্রথম নেটওয়ার্ক প্রোটোকলগুলির অনেকগুলি বিকাশ করা হয়েছিল এবং ইউএনআইএক্স নিজেই যে ভাষায় লিখিত ছিল সে সি হতে পারে।

একটি নির্দিষ্ট প্রোটোকল চালানোর জন্য আপনি কীভাবে একটি নির্দিষ্ট বন্দর পাবেন?

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

আপনি কীভাবে একটি নতুন প্রোটোকল সংজ্ঞায়িত বা উদ্ভাবন করবেন?

দেখুন https://journal.paul.querna.org/articles/2012/02/22/designing-network-protocols/ কেউ একটি ব্লগ পোস্টে যারা সম্প্রতি একটি নতুন নেটওয়ার্কিং প্রোটোকল এবং কিছু সাজানোর কি তিনি কি ছিল উন্নত হয়েছে জন্য এ পথ ধরে.

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