অভিনন্দন, আপনি বন্দর এবং প্রোটোকল একে অপরের সাথে সরাসরি সংযুক্ত নেই বুঝতে পেরে নেটওয়ার্কিং স্তরগুলির ধারণার সঞ্চার করেছেন। অন্যরা যেমন বলছে, যে কোনও টিসিপি পোর্টের সাথে সংযোগ রাখতে টেলনেট ব্যবহার করা যেতে পারে। তবে এটি কেন সম্ভব তা বোঝার জন্য আপনাকে নেটওয়ার্কিং স্তরগুলি সম্পর্কে কিছুটা বোঝা দরকার। যদি আপনি কখনও ওএসআই 7 লেয়ার মডেলের কথা শুনে থাকেন তবে এটিই আপনাকে অন্য বন্দরের সাথে সংযোগ স্থাপনের জন্য টেলনেট ব্যবহার করতে দেয়। যদিও ইন্টারনেটে, তারা কেবল তাদের 4 টি স্তর এবং এটির নামক ইন্টারনেট প্রোটোকল স্যুটটি নিয়ে উদ্বেগ প্রকাশ করে। নেটওয়ার্কিংয়ের স্তর ছাড়াই প্রতিটি প্রোগ্রামের নিজস্ব প্রোটোকলটি বোঝার প্রয়োজন হবে না, তবে তার নিজস্ব আইপি অ্যাড্রেসিং স্কিম এবং পোর্ট সিস্টেমটি সংজ্ঞায়িত করতে হবে, যার অর্থ প্রতিটি রাউটারকে কীভাবে এই স্কিমগুলি রুট করতে হবে এবং বিভিন্ন প্রোটোকলগুলি কী পরিমাণে বেশি হবে তা বোঝার দরকার ছিল শেখা এবং নির্ণয় করা আরও কঠিন। এটিকে সহজভাবে বলতে গেলে, স্তরগুলি ছাড়াই ইন্টারনেট প্রায় কাজ করবে না।
আপনি যা নিয়ে উদ্বিগ্ন তা হ'ল পরিবহন স্তর এবং অ্যাপ্লিকেশন স্তর। ট্রান্সপোর্ট লেয়ারে আমাদের টিসিপি এবং ইউডিপির মতো ইন্টারনেট প্রোটোকল রয়েছে যার প্রতি পোর্ট সংখ্যা 1 থেকে 65535 অবধি রয়েছে। অ্যাপ্লিকেশন স্তরে আমাদের কাছে এইচটিটিপি, এসএমটিপি এবং ডিএনএস এর মতো প্রোটোকল রয়েছে। সাধারণত প্রতিটি ইন্টারনেট স্ট্যান্ডার্ড ডকুমেন্ট যা একটি প্রোটোকলকে সংজ্ঞায়িত করে একটি ডিফল্ট টিসিপি বা ইউডিপি পোর্ট নির্দিষ্ট করে যা প্রোটোকলটি ডিফল্টরূপে ব্যবহার করা উচিত। যেমন এইচটিটিপি-র জন্য টিসিপি পোর্ট 80, এসএমটিপির জন্য টিসিপি পোর্ট 25, ডিএনএসের জন্য ইউডিপি পোর্ট 53 এবং টেলনেটের জন্য টিসিপি পোর্ট 23। টেলনেট প্রোগ্রামটি আসলে টেলনেট প্রোটোকল বলে, যা একটি প্রমিত প্রোটোকল, তবে বেশিরভাগ বর্তমানের মান অনুসারে একটি প্রাচীন। কারণ এর প্রোটোকল সিকোয়েন্সগুলি 8-বিট অক্ষর থেকে তৈরি, আপনি খুব কমই প্রোটোকলটি দেখতে পান এবং এটি বেশিরভাগ স্বচ্ছ হ'ল এইচটিটিপি এবং এসএমটিপির মতো আরও আধুনিক প্রোটোকলের সাথে তুলনা করে যা জিইটি, পোষ্ট, হেলো, লগিন, এএসসিআইতে মানুষের দৃশ্যমান শব্দ ব্যবহার করে, প্রভৃতি
কারণ এর প্রোটোকলটি সাধারণত দৃশ্যমান হয় না, অন্যান্য টিসিপি বন্দরগুলির সাথে সংযোগ স্থাপনের জন্য এবং ব্যবহারকারীকে ম্যানুয়ালি প্রোটোকল টাইপ করার অনুমতি দেওয়ার জন্য একটি শালীন সরঞ্জামের জন্য তৈরি টেলনেট কিছু নেটওয়ার্ক প্রশাসক সার্ভারগুলির সাথে সমস্যাগুলি নির্ণয়ের জন্য এই কৌশলটি ব্যবহার করেন। তবে যেহেতু টেলনেট প্রোগ্রামটির নিজস্ব প্রোটোকল রয়েছে এবং এটি কখনও কখনও অতিরিক্ত বিট পাঠাতে পারে, আপনি এখনও এই কৌশলটি নিয়ে সমস্যায় পড়তে পারেন। আপনি যখন টেলনেট ব্যবহার করেন আপনি অ্যাপ্লিকেশন স্তরের পাশাপাশি ট্রান্সপোর্ট লেয়ারে সত্যই "সংযোগ তৈরি করছেন"। এটি কেবল ঘটে যায় যে অন্যান্য অ্যাপ্লিকেশন স্তর প্রোটোকলগুলি বেশিরভাগ ডায়াগনস্টিকগুলির জন্য এটির মাধ্যমে ঠিক কাজ করতে পারে এবং টেলনেট প্রোটোকলে হস্তক্ষেপ করবে না। এনসি (নেট ক্যাট। এটি বিড়াল কমান্ডের নেটওয়ার্ক ভিত্তিক সংস্করণ হতে নামটি পেয়েছে) এর মাধ্যমে এটি করার জন্য আরও ভাল প্রোগ্রাম রয়েছে।
$ nc www.stackexchange.com 80
এনসি প্রোগ্রাম কোনও অ্যাপ্লিকেশন স্তর প্রোটোকল কথা বলে না এবং আপনি এটির সাথে কোনও সংযোগ স্থাপন করার সময় আপনি কেবলমাত্র ইন্টারনেট স্তর (আইপি ঠিকানা) এবং পরিবহন স্তর (টিসিপি বা ইউডিপি) এ "সংযোগ তৈরি করছেন"। এর অর্থ হ'ল আপনি কী অ্যাপ্লিকেশন স্তর প্রোটোকল ব্যবহার করেন তা নিয়ন্ত্রণ করুন। প্রায় কোনও কিছুই সুষ্ঠু খেলা, এমনকি বাইনারি প্রোটোকল। এটি আপনাকে দরকারী জিনিসগুলি যেমন ফাইলগুলি দুর্নীতিগ্রস্থ না করে স্থানান্তর করা এবং আগত ট্র্যাফিকের জন্য পোর্টগুলিতে শোনার জন্য অনুমতি দেয়:
nc -l 9000 < movie.mp4 (Your friend runs this)
nc friends.computer.hostname 9000 > movie.mp4 (you run this)
এবং তারপরে মুভি.এমপি 4 কোনও অ্যাপ্লিকেশন লেয়ার প্রোটোকল (যেমন এফটিপি) ব্যবহার করে নেটওয়ার্কে স্থানান্তরিত হয়। অ্যাপ্লিকেশন প্রোটোকলটি আসলে আপনার বন্ধু আপনাকে জানায় যে তারা আপনার আদেশটি চালানোর জন্য প্রস্তুত।
এনসি ইউডিপি প্যাকেট এবং ইউনিক্স-ডোমেন সকেটগুলিও পরিচালনা করতে পারে। শুনতে এটি ব্যবহার করাও আকর্ষণীয় হতে পারে।
nc -l 12345
এখন আপনার ওয়েব ব্রাউজারে http: // লোকালহোস্ট: 12345 / দেখুন এবং আপনার এনসি সেশনে আপনার ব্রাউজারের GET / HTTP/1.1
অনুরোধটি দেখতে পাওয়া উচিত । এই মুহুর্তে আপনি কিছু টাইপ করতে পারেন এবং টিপতে পারেন Ctrl-D
এবং এটি আপনার ব্রাউজারে সরল পাঠ্যে প্রদর্শিত হবে (আপনি যদি এইচটিএমএল দেখাতে চান তবে আপনাকে HTML কোড অনুসারে যথাযথ HTTP প্রোটোকল প্রতিক্রিয়াটি ফেরত পাঠাতে হবে) back
কখনও কখনও, প্রোগ্রামগুলি যা মূলত HTTP এর মতো একটি প্রোটোকল কথা বলে সেগুলি অন্য পোর্টগুলির সাথে সংযোগ করতে পারে যা ভিন্ন প্রোটোকলের জন্য বোঝানো হয়। আপনি সাধারণত কোনও জিইউআই ব্রাউজারে এটি আর করতে পারবেন না কারণ তারা কিছু বন্দরগুলির সাথে সংযোগ স্থাপন থেকে বিরত রেখেছে, তবে আপনি যদি পোর্ট 25 (মেল প্রেরণের জন্য এসএমটিপি) সাথে সংযোগ স্থাপনের জন্য কার্লের মতো কোনও প্রোগ্রাম ব্যবহার করেন তবে আপনি সম্ভবত দু'একটি দেখতে পাবেন of প্রোটোকল ভঙ্গ সম্পর্কে ত্রুটি।
$ curl yourispsmtpserverhost.com:25
220 yourispsmtpserverhost.com ESMTP Postfix
221 2.7.0 Error: I can break rules, too. Goodbye.
এটি ঘটে কারণ কার্ল সাধারণত HTTP প্রোটোকল কথা বলে তাই এটি কোনও টিসিপি হ্যান্ডশেক স্থাপনের পরে এটি ডেটা প্রেরণ শুরু করে:
GET / HTTP/1.1
Host: yourispsmtpserverhost.com:25
User-agent: curl
তবে এসএমটিপি সার্ভারটি যা প্রত্যাশা করছে তা হ'ল এসএমটিপি, যা আরও এরকম:
HELO myhomecomputername.local
কোন পর্যায়ে সার্ভারটি তার শনাক্তকরণ লাইনটি আবার পাঠায়:
250 yourispsmtpserverhost.com
সুতরাং আপনি দেখতে পাচ্ছেন যে এসএমটিপি সার্ভারের সাথে ট্রান্সপোর্ট লেয়ার সংযোগ স্থাপন থেকে কার্লকে বাধা দেয় না, এটি কেবল প্রোটোকল বলতে পারে না। তবে আপনি নিজেরাই প্রোটোকলটি টেলনেটের মতো প্রোগ্রামের সাথে বা আরও বেশি পছন্দ মতো এনসি বলতে পারেন।
nc(1)
) কমান্ডটি অনেক বেশি নমনীয়। এটি এসএসএল / টিএলএস সিফার্ড পরিষেবাগুলির সাথে সংযুক্ত হতে পারে এবং এটি একটি সার্ভার এবং এমনকি চারপাশে রিলে ডেটা হিসাবে ব্যবহৃত হতে পারে।